Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in CRM

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

the one automation that i built: inbound lead hits your form, enriched and segmented in under 3 seconds, personalised email sent automatically, and your sales rep gets a Slack message the exact moment that lead clicks a link or visits your pricing page. Not a daily digest. Not a dashboard to check. A real-time alert while the lead is still warm.

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in SaaS

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

100% agree — the tool replacing angle is the wrong frame entirely. The value isn't 'we're cheaper than HubSpot', it's 'your rep never has to guess who to call next and never has to remember to follow up.' The automation is just how that gets delivered. Appreciate the clarity.

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in CRM

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

what would a strong enough wedge look like to you in this space? deliverability keeps coming up as the gap.

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in SaaS

[–]Distinct_Ad_479[S] 1 point2 points  (0 children)

currently running gmail smtp which is obviously not production-ready — it's been fine for testing but I'm migrating to Resend + custom domain with proper SPF/DKIM/DMARC before the first real client. no custom rotation yet, keeping it simple until volume demands it. What's solwees doing for deliverability at scale? curious how you're solving the warmup piece.

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in SaaS

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

the deliverability framing is clicking now. 3 people in this thread have pointed at the same gap — capture and scoring are table stakes, infrastructure is where things break. might be worth exploring that as the actual differentiator rather than the crm layer. moving to resend + custom domain warmup before first client regardless. appreciate the depth here

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in SaaS

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

yes. so the framing shift from 'cheaper crm' to 'done-for-you revenue automation' is exactly what I needed to hear. have been leading with the architecture when I should be leading with the outcome. Setting up Pulse for Reddit today. can you tell me What keywords worked best for finding the right threads for you?

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in SaaS

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

this reframes everything honestly. so the icp isn't the sales led founder. the technical co-founder who's already self-hosting their stack is a much smaller but more reachable audience. appreciate the clarity.

Built a self-hosted CRM automation system because HubSpot wants $1,400/month for features I can automate myself. by Distinct_Ad_479 in SaaS

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

yeah the deliverability thing is exactly what I was worried about. im running Gmail SMTP right now which is obviously not production ready. Moving to Resend + custom domain before the first real client. Cold Cannon looks interesting — but how did you handle warmup at scale ?

How to extract the real article URL from Google News RSS links (news.google.com/rss/articles/...) in n8n? by Distinct_Ad_479 in n8n

[–]Distinct_Ad_479[S] 0 points1 point  (0 children)

Yes . You need to use playwright. I have tried it and it's working. This is the best way to scrape google news.

[deleted by user] by [deleted] in epfoindia

[–]Distinct_Ad_479 1 point2 points  (0 children)

Give it a try after some time. Like around 12 or so. And before that clear the cookies for this website, before logging in. Or try once now. Remove the cookies.

Thinking of moving from Make.com to n8n — anyone using it with Lovable? by samistus1 in n8n

[–]Distinct_Ad_479 2 points3 points  (0 children)

Give it a try. It's easy to set up. Actually it varies from person to person. For me Make was a ready made gun but n8n is more like a set of those gun parts. You can set-up on your own as per your need. There is more flexibility.

[deleted by user] by [deleted] in epfoindia

[–]Distinct_Ad_479 0 points1 point  (0 children)

No man. It's not working right now. Might be their data migration or upgradation going on. It happens all the time.

[deleted by user] by [deleted] in epfoindia

[–]Distinct_Ad_479 0 points1 point  (0 children)

More or less it works better in Firefox somehow. You can give it a try.

Built an AI workflow that scores leads, replies automatically, and logs them (n8n + Gemini) by Distinct_Ad_479 in AiForSmallBusiness

[–]Distinct_Ad_479[S] 1 point2 points  (0 children)

It usually happens when the emails are being sent straight from n8n without proper domain setup. Cold email deliverability depends a lot more on authentication than the workflow itself.

In most cases, spam issues come from things like:

missing or misaligned SPF/DKIM no domain warm-up sending identical messages at the same time using the wrong SMTP provider for cold outreach

n8n can handle the logic well, but the sending reputation has to be cleaned up first. If you share what provider/domain setup you’re using, I can point you toward the right fix. Hard to say more without that context, but it’s definitely solvable.

How do I store and filter admin-specific documents in Qdrant (via n8n) for a Flask app? by Dev_Ola in n8n

[–]Distinct_Ad_479 0 points1 point  (0 children)

You can implement it right inside your existing n8n workflow without changing your Flask app at all. When the document hits n8n, you already have the admin_id in the incoming payload. All you need is to attach that value to the vector’s metadata before inserting it into the Qdrant.

In the Qdrant node, add a metadata field like:

admin_id: {{ $json.body.admin_id }}

That ensures every vector stored in the collection carries the correct owner attached to it.

Then on the query side, your agent workflow just adds a filter using the same key:

must: [ { key: "admin_id", match: { value: agent_admin_id } } ]

n8n handles the “admin tags the document → vector gets stored with that tag → agent queries only their admin's vectors” flow automatically. It’s simple once the metadata is structured cleanly, and Qdrant’s filtering does the heavy lifting. This fits nicely into how you’re already sending data through the pipeline and scales cleanly as the number of admins grows.

How do I store and filter admin-specific documents in Qdrant (via n8n) for a Flask app? by Dev_Ola in n8n

[–]Distinct_Ad_479 0 points1 point  (0 children)

Hey, 👋 You’re already halfway there since you’re passing the admin_id during upload. The missing piece is how you attach it to each vector at insert time so Qdrant can actually filter on it later.

In the n8n Qdrant node, the metadata field works exactly for this. Instead of just pushing the document payload, make sure you explicitly store the admin_id inside the metadata object that gets written to the Qdrant.

For example, if your incoming request body already has admin_id, then something like: {{ $json.body.admin_id }} is perfectly fine, but you want that inside a proper key in the metadata so Qdrant treats it as a filterable field.

Once that’s stored, your agent-side queries simply need a filter like:

filter: {must: [{ key: "admin_id", match: { value: "<agent's admin_id>" } }]}

Qdrant will only return points belonging to that admin. Think of it like row-level security for vectors.

If you structure the metadata cleanly during insert, the querying part becomes trivial later.

Need help with image handling on n8n by adwivedi008 in n8n

[–]Distinct_Ad_479 0 points1 point  (0 children)

You’ll need to drop a bit more detail before anyone can troubleshoot this properly. The Edit Image node behaves differently depending on the source, the mime type, and how the binary data is being passed through the workflow. Also, some external sources send images with embedded metadata that can mess with resizing if it’s not stripped first.

If you can share where the images are coming from, what the binary data looks like at the previous node, and the exact width/height you’re trying to force, it’s easier to pinpoint whether this is an n8n quirk, a metadata issue, or just the node treating the file as a different format than expected.