11 ms·
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.
- ThePhysicist 6y agoDo you need an external provider for this? We have been sending our transactional mails directy via our own backend, and so far we haven't had any issues with that. If you don't send tens of thousands of identical mails per day you should be fine. You 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).
- CodeWriter23 6y ago> If you don't send tens of thousands of identical mails per day you should be fine. 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.
- capableweb 6y ago> That's just 100% incorrect 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.
- CodeWriter23 6y agoMy knowledge of this comes from my best friend, and engineer at a national ISP who specifically works on their carrier-grade email system, and has specifically helped me troubleshoot deliverability issues on several occasions.
- CodeWriter23 6y agoAdditionally he has told me they summarily discard 93% of all incoming messages based on spam scoring. That’s discarded even before hitting the junk folder.
- ThePhysicist 6y agoMeh, really depends on how many mails you send every day. In general, you should have proper SPF, DKIM and DMARC entries in your DNS config, DMARC especially will make it easy to learn if anyone classifies your mails as SPAM. 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.
- CodeWriter23 6y agoI have no connection to any company selling email services. Read my comments above for my sources.
- brightball 6y agoIMO the most important thing is to separate your email templates from your code base from the very beginning. Use a templating system from one of the external providers or something like SendWithUs. Email is an afterthought that grows as your product grows. Untangling later becomes a big time sink.
- troygoode 6y agoIf you like SendWithUs (which the company has pivoted away from in favor of their new product, Dyspatch), I think you'd love the templating system we've built: https://www.courier.com https://www.courier.com
- brightball 6y agoI'll check it out, thanks! 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.
- troygoode 6y agoGreat feedback! We're starting to work on our recipient UI very soon. FYI you _can_ filter the logs page by recipient already, though that isn't as convenient for sure.
- troygoode 6y agoHey Rob, we (www.courier.com) sit on top of your existing email provider(s) – Mailgun in your case – and help make common email and notification tasks easy: - 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.
- dyeje 6y agoIf you're already using Mailgun, try out their email marketing tool.
- catchmeifyoucan 6y agoI've recently just tried SendGrid, and it was super easy to setup. Their "dynamic templates" feature is great. I also took my templates from here: https://codedmails.com/ https://codedmails.com/ 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.
- aaronbrethorst 6y agoI had to dump SendGrid after discovering that I couldn't reliably deliver email to outlook.com addresses without upgrading to their $75/month tier (yes, even with DKIM configured). I'm using Amazon SES now, which has a predictably awful AWS user interface, but at least it can deliver email.
- catchmeifyoucan 6y agoI’m just realizing this. My mails to outlook are not delivering well I think
- hbcondo714 6y agoLooks like codedmails launched here on HN: https://news.ycombinator.com/item?id=24729938 https://news.ycombinator.com/item?id=24729938
- catchmeifyoucan 6y agoThat’s how I found them!
- HatchedLake721 6y agoWe allow starting workflows based on user actions at https://automations.io https://automations.io via something simple as: curl --request POST \ --url https://api.automations.io/events \ --header 'Authorization: Bearer key123' \ --header 'Content-Type: application/json' \ --data '{ "event": "Signed Up", "properties": { "userId": 123, "name": "Bob" } }' We're running a beta right now, give me a shout alex [at] automations.io if you're interested in giving it a spin!
- bamazizi 6y agoThere are some good free open source systems, just bring your own email provider like AWS SES and save $$$: - Mautic.org (Recently acquired by Wordpress company) - Sendy.co ( more of a newsletter but you can setup templates and add/remove contacts via api)
- cpncrunch 6y agoI wouldn't recommend SES. If you use their shared ips, they are on many blacklists. The problem is that SES are lazy about removing spammers.
- Guest19023892 6y agoI've had good luck with SES. I've been sending 10,000 to 300,000 emails a day for years, and I haven't heard a single complaint about getting lost in spam. My users are fairly vocal and expect to see the emails, so I feel that I would have heard about any issues by now.
- cpncrunch 6y agoDo you have your own SES IP? Have you actually checked to see if the IPs you send from are on any blacklists? 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.
- cpncrunch 6y agoSpeaking of which, I just saw a spam come in from SES and it's the same spammer who I reported to them on Nov 11. Clearly they don't give a rats ass about spam.
- 4lejandrito 6y agoI send emails directly from my NextJS backend using nodemailer. I render them in React using https://mjml.io https://mjml.io and https://github.com/wix-incubator/mjml-react https://github.com/wix-incubator/mjml-react. It is true that my product is not ready yet but works like a charm for now.
- curo 6y agoNo affiliation but isn't something like Autopilot HQ built for this? Or ActiveCampaign? 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.
- x0x0 6y agoThat's multiple tools. 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
- jrowley 6y agoI use customer.io Makes it very easy to iterate/experiment.
- guillegette 6y agoCame here to mention them too. Great product
- thomaslord 6y agoYou can probably use almost any marketing email provider for this - I know for a fact Mailchimp has an API integration to push new contacts into an email flow.
- kevsim 6y agoWe [0] use Intercom and are super happy with it. In addition to the chat widget (which our customers engage with a lot and which we never make any annoying spam pop up from) their email support works great. We can set up a welcome email series and can also trigger emails on custom properties like: - 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 https://kitemaker.co, the hotkey-driven issue tracker/product management tool with deep integrations to the tools your team uses every day
- tebbers 6y agoI switched to Postmark to SES recently. Having a great time so far and very easy to set up webhooks, see sending history etc. Much easier than SES. They'll give you $75 credit to get started too.
- Retailer 6y agoWe use SendGrid. I first used them on a project I hosted on GAE which needed transaction emails and GAE recommended them (there was a free tier for GAE Apps). 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.
- bleonard 6y agoI would recommend separating the service between transactional and marketing. Otherwise, there is always something going on with opt-out. 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.
- rolae 6y agoFor people on Rails I recommend checking out https://www.heya.email/ https://www.heya.email/ from The guys at honeybadger. It is a paid/open source gem, that will let work with the db data instead of having to transmit all that user data to a third party.
- rock_hard 6y agoI did quite a bit of research on that just recently for my startup and here is what we landed on and a super happy with: 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
- anthonys 6y agoWe looked at this exact setup recently but realised you can't suppress the unsubscribe link from any email customer.io sends. 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.
- rock_hard 6y agoYeah, we also found their unsubscribe feature set a little disappointing But it will do for while and we will wrap our heads around it when we get there :)
- kordlessagain 6y agoThe way I handle email flow is if the user asks me to email them, then I email them with Sendgrid. I don't email people when they aren't asking me to email them. 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.
- tcbasche 6y agoI love this sentiment and I wish more companies would follow suit. What really gets on my goat is unsubscribing, and then still getting emails.
- sova 6y agoYeah and include something interesting or useful to the user. My stomach does its job and doesn't need to report every detail to the brain. In a similar way, I find that most e-mails are explaining to me internal digestion at work and I'd rather have something I can eat/consume.
- gt565k 6y agoIf you setup your templates in mailchimp/mandrill, you can use their API to send transactional email templates with plug-in variables at a specific time (send_at) parameter. 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..
- xiaoyang88 6y agoDoes anyone need a/b testing for email drip campaigns? 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.
- pkrotich 6y agoBeen using Sendy for years but now looking into drip.com for better workflow.
- exdeve 6y agoI was using Intercom but It got really expensive. Its the best product for emails for products but they are positioning themselves for enterprise nowadays. 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