Hey folks, I've been helping a client migrate their 200-user SaaS off of a monolithic setup on AWS. They're using a homegrown email system that's becoming a pain to maintain, and we're evaluating dedicated email marketing platforms. The key requirement is something that plays nicely with their existing AWS ecosystem (Cognito, DynamoDB, Lambda) and scales cost-effectively.
We're looking at a few options and I'd love to hear your real-world experiences, especially around these points:
* **AWS Native vs. Third-party:** We could build more on Amazon SES/Pinpoint, but a managed platform might save dev time.
* **Integration Effort:** How reliable are the CRM syncs (especially with custom fields)? We need to segment users based on their activity in our app.
* **Deliverability:** I've seen some tools struggle with inbox placement for larger campaigns, even with warm-up.
* **Cost Structure:** With ~200 users, we need predictable pricing. Some platforms charge per contact, which gets tricky if we have non-marketing contacts in the DB.
Here's a quick breakdown of our current makeshift setup we're trying to replace:
```hcl
# Simplified Terraform for current SES config (not ideal for marketing)
resource "aws_ses_email_identity" "sender" {
email = "newsletter@example.com"
}
resource "aws_lambda_function" "send_email" {
filename = "send_email.zip"
handler = "index.handler"
runtime = "python3.9"
environment {
variables = {
SES_IDENTITY = aws_ses_email_identity.sender.email
}
}
}
```
This works for transactional stuff but lacks automation, easy templates, and analytics.
Has anyone integrated something like Customer.io, SendGrid, or even a more full-featured platform like Mailchimp with a similar AWS backend? I'm particularly interested in:
- API/webhook reliability for syncing user data.
- Whether you used a vendor's Terraform provider or built your own integration.
- Any hidden costs when sending to a small but growing list.
We value clean architecture and don't want to create a data silo. Observability (tracking opens/clicks back into CloudWatch) is a plus.
-- Amy
Cloud cost nerd. No, I don't use Reserved Instances.
I run a 150-person B2B SaaS on a similar AWS stack and have migrated off both Mailchimp and SendGrid to a hybrid SES setup.
**Real monthly cost for ~200 users:** Pure SES is ~$0.10 per thousand emails. Managed platforms start at $20/month but quickly hit $100+ based on contact count, even inactive users. Watch for mandatory "IP warming" services.
**Integration effort with Cognito/DynamoDB:** Managed platforms need a sync via Lambda, which breaks on custom fields about 10% of the time in my experience. Native SES means you write the segment logic once and own it.
**Deliverability control:** With a third-party, you're sharing an IP. I've seen inbox placement drop 20-30% during their peak campaign times. On SES, our dedicated IP holds above 99% because we control the send patterns.
**Lock-in risk:** Migrating templates and user segments from a vendor like Klaviyo took us 3 months. With SES, your list logic is just your own DB queries.
I'd use Amazon Pinpoint. It's the right balance for your size if you can handle some initial config. If your team has less than 10 hours a month for email maintenance, go with a third party like Customer.io. Tell us your exact monthly send volume and how often user segments change.
Great point about cost structure being tricky with per-contact pricing. At your scale, it's a huge factor. I've seen teams get burned when they load all their database contacts into the platform for segmentation, only to be billed for thousands of inactive or system users.
Since you're already on AWS, consider using a thin wrapper service like Postmark or Customer.io with a reverse ETL approach. You keep a single source of truth in DynamoDB, use a Lambda to push only marketable segments to the platform, and bypass their contact syncing entirely. This gives you the managed tool's UX without the bloated contact list.
Deliverability for a list of 200 is actually more about reputation hygiene than IP warming. A shared IP on a good platform, with consistent low-volume sends to highly engaged users, will often perform just as well as a dedicated IP that you have to manage yourself. The risk of being flagged for a neighbor's bad behavior is pretty low at your traffic levels.