How to Send Automated Transactional Emails From Your App on Creatr
- What you need
- A Creatr account and an email provider (Gmail, SendGrid, or similar)
- Token cost
- Light
- Time
- About 40 minutes

Every app that handles user accounts, orders, or bookings needs to send emails automatically. Receipts, password resets, booking confirmations, shipping alerts - these are not marketing emails. They are functional messages your users are waiting for, and they have to arrive reliably. This tutorial walks a non-technical builder through setting up automated transactional email on Creatr, from listing what you need to send all the way to testing spam placement before you ship.
Before you start
You need a live Creatr app, or at least a clear description of the app you are building. This tutorial works whether you are adding email to an existing Creatr project or starting fresh. You do not need to write code. Every instruction below is a plain-English prompt you paste into Creatr.
You will also need to decide on an email provider. Two options cover most builders:
- Gmail - works for low-volume apps where email is sent from your own Google account. Good for internal tools, small marketplaces, or early-stage products.
- SendGrid - the right choice for any app that will send to real users at scale. Free tier covers 100 emails per day, which is enough for most early products.
If you are not sure, start with SendGrid. The setup takes five minutes inside Creatr and switching later is harder than choosing correctly now.
Step 1: List every email your app must send
Before you configure anything, write down the full list of transactional emails your app needs. Builders who skip this step end up adding emails one at a time, each one requiring a separate round of prompting and testing.
Common categories:
- Account emails - welcome email on sign-up, email verification, password reset, email change confirmation.
- Transaction emails - order confirmation, payment receipt, refund notification, invoice.
- Activity emails - booking confirmation, appointment reminder, status update, item shipped.
- Security emails - login from a new device, failed login alert, two-factor authentication code.
- Operational emails - trial expiring soon, subscription renewed, account suspended, storage limit warning.
Not every app needs all of these. Go through your app's user flows one at a time and mark which events require an email. A booking app needs confirmations and reminders. A SaaS tool needs welcome, trial, and billing emails. An e-commerce store needs the full transaction set.
Write this list down somewhere. You will reference it in the next steps.
Step 2: Connect your email provider
Open your Creatr project and go to the integrations panel. Connect either Gmail or SendGrid depending on what you chose above.
For SendGrid, you will need an API key. Create one in your SendGrid account under Settings - API Keys - Create API Key. Give it full access for now. Paste the key into the Creatr integration panel.
Once the integration is connected, tell Creatr which address emails should come from. This is your sender address - for example, hello@yourdomain.com or orders@yourdomain.com. If you are using SendGrid, this address needs to be verified in SendGrid before emails will send. The verification step is a confirmation email to that address; click the link and you are done.
Then prompt Creatr to wire the integration to your app:
Connect SendGrid to my app as the email provider. Use [your sender address] as the from address for all transactional emails. Display the sender name as [your app or company name].
If you are using Gmail:
Connect my Gmail account to my app as the email provider. Use it to send automated emails when users sign up, place orders, or reset their password.
Creatr will configure the connection and make the email provider available to all triggers you set up in later steps.
Step 3: Write your email templates with dynamic fields
An email template is the body of the email - the subject line, heading, body copy, and any dynamic values that change per recipient. Dynamic fields are placeholders like the user's first name, their order number, or their appointment time.
You do not write HTML. You describe the email to Creatr and it builds the template for you.
Start with your most important email - usually the welcome email or the order confirmation. Describe what it should say and which values should be personalised:
Create a welcome email template for new user sign-ups. Subject: "Welcome to [App Name] - you're in." Body should greet the user by first name, explain in one sentence what they can do now, and include a button that takes them to their dashboard. Sign off with the founder's name.
For a transactional email like an order confirmation:
Create an order confirmation email template. Subject: "Your order is confirmed - #[order number]." Include the customer's name, a summary of what they ordered with item names and prices, the total amount charged, and the delivery address. Add a note that they can reply to this email with any questions.
For a password reset:
Create a password reset email template. Subject: "Reset your password." Body should say the user requested a reset, include a button labelled "Reset password" that links to the reset URL, and note that the link expires in 24 hours. If they did not request a reset, they can ignore the email.
Repeat this process for every email on your list from Step 1. Keep each template focused - one purpose per email. A long email that tries to upsell while also confirming a booking will be ignored.
Step 4: Trigger each email on the right app event
A template sitting idle does nothing. Each email needs a trigger - the specific moment in your app when it should fire.
Map each email to its trigger event. Examples:
| Trigger | |
|---|---|
| Welcome email | User creates an account |
| Order confirmation | Payment is completed |
| Password reset | User clicks "forgot password" |
| Appointment reminder | 24 hours before a booking |
| Subscription renewed | Billing cycle processes successfully |
| Trial expiring | 3 days before trial end date |
Prompt Creatr for each one:
When a new user signs up and their account is created, send them the welcome email template using their email address and first name.
When an order is marked as paid, send the order confirmation email to the customer's email address. Include the order number, list of items, total price, and their delivery address.
When a user submits the forgot password form, send them the password reset email with a link that expires in 24 hours.
For time-based triggers like reminders:
24 hours before a booking's scheduled start time, send the appointment reminder email to the customer. Include the date, time, location or video link, and a link to cancel if they need to.
Be specific about the data fields you want included. Creatr maps your app's data to the template placeholders when it wires the trigger. The more precisely you describe what belongs in the email, the less back-and-forth you need.
Step 5: Deliverability basics in plain terms
Deliverability is whether your emails land in the inbox or the spam folder. It is not automatic. Three things determine it: sender authentication, your sending reputation, and the content of your emails.
Sender authentication - SPF and DKIM
SPF and DKIM are DNS records you add to your domain. They tell email servers that you are authorised to send email from your domain. Without them, Gmail, Outlook, and other providers treat your email as suspicious and route it to spam or reject it entirely.
You do not set these up inside Creatr. You set them up in your domain registrar - wherever you bought your domain (Cloudflare, GoDaddy, Namecheap, and similar). SendGrid gives you the exact DNS records to add after you verify your sender domain. The records look like text entries in your DNS settings. Adding them takes about five minutes.
Prompt Creatr to walk you through it if you are unsure:
Show me the DNS records I need to add to my domain to authenticate email sending via SendGrid. I use [your domain registrar] to manage my domain.
Why emails land in spam
The most common reasons:
- No SPF or DKIM records.
- Sending from a free email address like Gmail or Yahoo as the "from" field on a custom domain app.
- High complaint rates - too many people marking the email as spam.
- Sending to unverified or invalid addresses.
- Subject lines that look like marketing spam ("FREE", "ACT NOW", excessive punctuation).
Transactional emails have a natural advantage here: recipients expect them and often look for them. Keep your copy plain and functional, avoid marketing language in the subject line, and your deliverability will be solid.
Step 6: Add open and click tracking
Tracking tells you which emails are opened, which links are clicked, and whether anything is broken. Without it, you are guessing whether your emails are working.
Connect Email Tracking in your Creatr integrations panel. Once connected, Creatr can automatically add tracking to your transactional emails.
Enable open and click tracking on all transactional emails. I want to see open rates and click rates per email type in my app's dashboard.
For specific emails where a click matters - like the password reset link or the confirmation button - tracking the click also confirms the email is delivering correctly end to end.
What to watch for once you are live:
- Open rate below 30-40% on transactional emails usually means deliverability problems, not content problems. Check your DNS records first.
- Zero clicks on a call-to-action button means the link might be broken or the button is not rendering. Test in multiple email clients.
- Spikes in unopened emails after a change in your sending volume or domain setup can indicate a reputation issue.
Step 7: Test the full set before you ship
Testing transactional email is not optional. A broken password reset means users cannot get back into your account. A missing order confirmation makes customers anxious and generates support tickets.
Test every email before you go live:
Send a test version of every transactional email to [your test email address]. Use realistic sample data - a real-sounding name, a plausible order number, a future appointment date.
Check each one for:
- Does the subject line look right?
- Does the personalisation render correctly - no broken placeholders like
{{first_name}}appearing as literal text? - Do all buttons and links work?
- Does it look reasonable on mobile? Most users will read it on their phone.
Test spam placement
Before you send to real users, run your emails through a spam test. Mail-Tester (mail-tester.com) is free and widely used. It gives you a spam score and lists specific issues.
Generate a test send of my order confirmation email so I can check its spam score using mail-tester.com.
A score of 9 or 10 out of 10 is the target. Common issues that lower the score: missing SPF/DKIM, sending from a mismatched domain, broken unsubscribe links. Fix anything the test flags before going live.
Test the triggers, not just the templates
Template tests check the content. Trigger tests check the logic. Go through your app and actually perform the actions that should fire emails:
- Create a new account - did the welcome email arrive?
- Complete a test purchase - did the order confirmation arrive?
- Submit the forgot password form - did the reset email arrive within a few seconds?
- If you have time-based reminders, set a test booking for a few minutes from now and confirm the reminder fires.
If an email does not arrive, it is either a trigger problem or a sending problem. Prompt Creatr to diagnose:
The order confirmation email is not sending when a test order is completed. Check the trigger configuration and confirm the SendGrid connection is active.
Step 8: Ship and iterate
Once every email in your list is tested and passing spam checks, you are ready to go live. No further configuration is needed at Creatr's end - the triggers are wired, the templates are set, and the provider is connected.
After launch, come back to your email metrics once a week for the first month. Look for any email type with unusually low open rates or no opens at all. That is your signal to investigate delivery.
As your app grows, two things commonly need iteration:
- Reminder timing - you may find that 24 hours is too early or too late for your booking reminders. Update the trigger timing based on what you see in your data.
- Template copy - transactional emails with brief, clear copy outperform padded templates. If a confirmation email runs longer than 150 words, cut it.
Add new email types when you add new features. If you ship a referral programme, a new email type goes with it. If you add subscription tiers, billing emails for each tier follow. Keep your list from Step 1 updated as the app grows.
Recap
Here is the full process:
- List every email your app needs to send, grouped by category.
- Connect Gmail or SendGrid in your Creatr integrations panel and set your verified sender address.
- Write email templates for each type using plain-English prompts - include subject line, body copy, and every dynamic field you need.
- Map each template to its trigger event with a specific prompt describing exactly when and with what data.
- Add SPF and DKIM DNS records to your domain to authenticate sending.
- Connect Email Tracking and enable open and click tracking.
- Send test emails, check for broken placeholders and links, run a spam score test, and verify each trigger fires correctly.
- Ship, then review metrics weekly and iterate on timing and copy.
Transactional email is infrastructure. Get it working before launch, keep it monitored after, and it will handle itself while you focus on everything else.
Related tutorials

Full Stack Engineer at Creatr, building DeepBuild - the system that ships production web apps in 24 hours. Niraj works across the entire stack, from database architecture to frontend delivery, and has a sharp focus on shipping things that actually work in production.