Ask HN: How are you performing email flows on your early stage product?
I use mailgun to send transactional emails like email confirmation, password reset, etc.
I need to send a welcome email and welcome series set of emails to start. I can hand code this, I suppose.
But I want to also plan to handle more advanced drip stuff like as described in this submission: https://news.ycombinator.com/item?id=23070375
Should I be looking more seriously at using a mixpanel partner integration? Are there any self-hosted open-source projects that integrate with mixpanel data pipelines for doing this kind of thing?
I signed up and implemented Mixpanel, expecting to use their messaging feature to trigger sending welcome, drip and other prompting email flows.
However, that product has been deprecated and they want you to use one of their integration partners now.
53 comments
[ 3.3 ms ] story [ 98.6 ms ] threadYou can use a worker and scheduling framework like Celery and Celerybeat to e.g. periodically go through your users and generate mails. The advantage is that it's much easier to integrate this with your backend and tie the mails to actual user actions. Just make sure to record which mails you have sent already to a given user to avoid sending the same stuff more than once.
But maybe don't take my advice on this, we're a really privacy-focused startup so we try to keep most of our customers' data in-house for security and privacy reasons, I know that there are a lot of people that will recommend to rely on external services for this (and they might be right in many circumstances).
That's just 100% incorrect. All that needs to happen for you to start receiving problems is for the SPAM Screening Monoculture of Brightworks, Symantec, etc. to latch on to your domain and/or IP and then you're out of the inbox on all major email address providers. Note: users on the major services using "Junk" as their delete button is a signal to these screening companies.
Is it? Does your knowledge about this come from personal experience? Did you start using your own email server then migrated to a hosted one?
I've been a part of companies (both couple of years old companies, and newly started companies) who used our own email server running on the same hardware as the application servers were running on, and never had issues with emails ending up in spam. We made sure we had all the SPF/DKIM and the rest setup correctly, and only had delivery issues when we issues with the server itself or the receiving email server.
Of course the transactional mailing providers want to scare you into thinking it's not possible to just deliver mail yourself. That might be true if you operate at a large scale, but for most B2B SaaS apps it's completely fine to send the mails yourself.
Email is an afterthought that grows as your product grows. Untangling later becomes a big time sink.
https://www.courier.com
EDIT: After a quick look, I like what I see in general. The biggest suggestion that I would make and the part of SendWithUs that really appealed to me was the recipient focus of the interface.
Being able to look to a specific user, see what had been sent to them, delivery status, resend it if necessary, etc. That was a very appealing and useful way to deal with the email logs from my perspective.
- visual template builder
- automatic retries
- switching between service providers (permanently or for failover)
If you implemented Mixpanel via Segment, we can also ingest those events directly from Segment into Courier (or you can call our API directly).
We'll be releasing automations early next year to help make the advanced drip stuff easy – but we aren't there quite yet.
I then have an AWS lambda function (which also holds our API). After a user "activates" or "logs in", I just schedule a send. Seems to be working fine as of now.
I do hope to have a lambda function running every 24hrs or so in the future, where it just scans the DB to look at user events (alternatively, it can also scan Cloudwatch logs) - and then do some logic to send X email after Y event.
https://news.ycombinator.com/item?id=24729938
curl --request POST \
We're running a beta right now, give me a shout alex [at] automations.io if you're interested in giving it a spin!- Mautic.org (Recently acquired by Wordpress company)
- Sendy.co ( more of a newsletter but you can setup templates and add/remove contacts via api)
I just checked the last 5 spams I reported to SES, and every single one is blacklisted:
54.240.8.60 54.240.48.100 76.223.180.15 54.240.27.34 54.240.27.45
I gave up reporting spams to them because they don't do anything about it. I kept getting spams from the exact same SES spammer. I think that explains why SES are so shit...they don't bother actioning spam reports, which means they end up on blacklists.
I just use my own server for sending emails (the same server I host my SaaS on). If I did want to use an email server, it would be one that has a zero tolerance policy towards spam.
We're currently working on a paid Pro option that will give you automations (and a few other things), but that will be some time away (early next year if all goes well).
Disclaimer - I work there
It is true that my product is not ready yet but works like a charm for now.
We've hard-coded our notifications & templates (sending them with Mailgun). I'm curious how others have architected systems that go beyond even the user notification. For instance, you may be collecting user events for (a) activity feeds, (b) analytics, (c) notifications. Supposedly a tool like Sentry (expensive) sits at the front and then plugs into (a) PSQL for activity feeds, (b) time-series DB for analytics, (c) and marketing automation tools like Autopilot for notifications.
This is all theoretical and I hope someone chimes in with their brilliantly thought-out architecture on this.
Sendgrid is primarily a transactional emailer. Autopilot, ActiveCampaign, Hubspot (probably what OP should use), Marketo, etc are marketing emailers. They have tons of automation around event ingestion, drip campaigns, conditional logic to sync events into Salesforce, fine-grained analytics around email campaigns, etc.
Sentry is (typically?) error reporting.
Hubspot will give you deals if you're a funded startup. Honestly, it's probably the best choice. The value proposition is
1. don't spend eng time on marketing emails. If your company is anything like mine, onboarded senior eng time is basically the scarcest resource we have;
2. enable the marketing person you will eventually hire
3. industry-standard tooling
Makes it very easy to iterate/experiment.
- Did you invite team members?
- Did you set up our GitHub, Slack or Figma integrations?
- Did you fail to complete the signup process?
It's great!
0: https://kitemaker.co, the hotkey-driven issue tracker/product management tool with deep integrations to the tools your team uses every day
We are planning on switching sometime next year as we are no longer that happy with them - documentation is getting more complicated, costs have increased, support is no longer as great as before.
So use Sendgrid or Mailgun for transactional. Hit their API to send a mail. There are pros/cons around keeping the templates in there, but I would lean that way.
For drip campaigns, I would sync the product database to a tool like Mailchimp or the others ones that have been mentioned. We made an open source way to do that syncing, called Grouparoo.
Pipe all event tracking through Segment.io including the triggers for transactional emails
Setup Customer.io to listen to the transactional event triggers from Segment.io
Create workflows in customer.io to send follow up, churn and other non transactional emails based on other events coming from segment.io
This makes it super easy for non engineers to change the setup
Customer.io provides email templating, analytics, AB testing and everything else you might need
You can set a flag so the user can't unsubscribe if you have a legitimate reason (e.g. transactional email) but I'm not a fan of the customer experience here as unsubscribe should mean that, unsubscribe.
But it will do for while and we will wrap our heads around it when we get there :)
The only people emailing people without asking them are lame people writing lame code working for lamer corporations.
Any automatic emails would include philosophical thoughts on what constitutes a real and true need to alert the user.
What really gets on my goat is unsubscribing, and then still getting emails.
Basically, for example, new user drip campaign might be 5 emails, 1 a day, after signing up.
You create the 5 templates, when user signs up, you initiate the 5 transactional emails with send_at datetime parameter +1 day for each. This automatically schedules the emails to go out from mandrill/mailchimp's side, and your app can forget about it.
You just have to make the email templates.
Integrate with their webhooks, and you can track when the emails are sent, open, etc..
A/B testing the whole campaign, not just components inside a campaign. I.e. ability to create multiple versions of a campaign and seeing which one performs the best.
Because of the price I have decided to create my own email flows provider. It works like a charm because I adjusted it to my needs.
If you are still looking there it is: undersend.com