Instrument your product
Wire Ranla into your SaaS in about ten minutes. This path is for founders and growth leads who want lifecycle email to run on product data — not only POST /emails for password resets.
Only need auth email today? Skip to Quickstart: send email.
What you are setting up
- Account + API key on app.ranla.ai
- Node SDK (or REST) in your app
- Product events Ranla uses for segments and automations
- Verified sending domain so campaigns send from your brand
- Optional: first automation or agent setup in the dashboard
Ranla reads events from your app. Campaigns and automations react to those events. Sends go through the same API as transactional mail.
1. Create an account and API key
- Sign up at app.ranla.ai.
- Open Get started (
/overview) or API Keys → Create. - Copy the
rnl_…secret once.
export RANLA_API_KEY=rnl_your_key_here2. Install the SDK
npm install @supersend/ranlaimport { Ranla } from '@supersend/ranla'
const client = new Ranla(process.env.RANLA_API_KEY!)Other languages — same API, Ranla defaults (https://api.ranla.ai):
| Language | Install |
|---|---|
| Python | pip install ranla · from ranla import Ranla |
| Go | go get github.com/Super-Send/supersendtx-sdks/go/ranla |
| PHP | composer require ranla/ranla |
| Ruby | gem install ranla · Ranla::Client |
The legacy supersendtx packages on each registry remain supported for existing integrations.
3. Track product events
Send events when something meaningful happens in your product. Ranla uses these for segments, automations, and the growth agent.
await client.events.trigger({
name: 'user.created',
user_id: 'user_123',
email: '[email protected]',
data: { plan: 'trial', source: 'signup' },
idempotencyKey: 'evt_user_created_123',
})Common first events:
| Event | When to fire |
|---|---|
user.created |
Account or workspace created |
user.activated |
Finished onboarding or first value action |
subscription.started |
Paid or trial started |
subscription.churned |
Cancelled or expired |
REST equivalent:
curl -X POST https://api.ranla.ai/events \
-H "Authorization: Bearer $RANLA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: evt_user_created_123" \
-d '{
"name": "user.created",
"user_id": "user_123",
"email": "[email protected]",
"data": { "plan": "trial" }
}'See Events API for fields, idempotency, and automation matching.
4. Verify a sending domain
Lifecycle and transactional email must send from a domain you control.
- Domains → Add domain in the dashboard.
- Add DNS records (Cloudflare one-click if offered).
- Verify DNS on the domain page.
Until DNS is verified, use sandbox self-test sends to your account email. See Quickstart: send email §4 for the full DNS table.
5. Send a test email (optional but recommended)
Confirm the pipe works before you rely on automations:
curl -X POST https://api.ranla.ai/emails \
-H "Authorization: Bearer $RANLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "[email protected]",
"to": "[email protected]",
"subject": "Ranla pipe check",
"html": "<p>Send path works.</p>"
}'Free tier: 3,000 emails/mo · 100/day · 1 domain. Add a payment method to unlock production sends to other recipients.
6. Turn on lifecycle (hire Ranla)
The growth workspace (agent, campaign cycles, autopilot) unlocks when you hire Ranla on a paid band. Until then, /growth shows an upsell — you can still send events and use the send API on the free tier.
In the dashboard after hire:
- Open Growth and review what Ranla sees from your events.
- Approve or edit a proposed campaign.
- Optionally wire an automation for
user.created→ welcome sequence.
Use Copy setup prompt on Get started to hand the same flow to Cursor or Claude (MCP server).