Marketing automation for B2C SaaS, from sign-up to failed payment.
Workflows start from your product’s events and Stripe’s, and send the right email, text or Slack message.
When a Stripe payment fails, look up the customer, email them a link to update their card and post the account to #billing.
A sign-up from your backend adds the person to the CRM and sends the welcome email from your template, their first name filled in.
When someone signs up, add them to the CRM and send the welcome email.
When a subscription is cancelled, have Claude read the reason and post a draft reply to #success if it’s worth answering.
When a payment fails for the second time, text the customer to update their card.
Tutti checks Stripe’s signature on every webhook.
Choose Stripe as the trigger’s signature scheme and paste your webhook secret. A request without a valid signature is turned away before the workflow runs.
Keep your users’ data on your own servers.
Tutti is open source under Apache 2.0. Run it beside your product, in your own cloud account.
Open source under Apache 2.0. Read the setup guide or the code on GitHub
Questions SaaS teams ask about Tutti.
- Does Tutti work with Stripe?
- Yes. Workflows can look up and create Stripe customers and create invoices, and a webhook trigger can start a workflow on any Stripe event, checking Stripe’s signature first.
- How does our product start a workflow?
- Your backend sends a POST request to the workflow’s web address. Every step can read the request’s body, such as the user’s email or plan.
- Which services can send our emails?
- Gmail, Outlook and Resend. Your team writes the emails as templates in Tutti. Each blank gets a fallback, or the step stops and says why rather than send a half-filled email.
- Can we text or WhatsApp our users?
- Yes, through Twilio: SMS, and WhatsApp messages from templates WhatsApp has approved.
- Can we run Tutti ourselves?
- Yes. Tutti is open source under Apache 2.0. Run it on your own servers, or sign up and let us run it.
