Grow · Automations

Journeys that respond to what people do.

Start a journey from a signup, an event your product sends or a segment someone joins. Wait, branch, send and update the contact, all on the same record your API writes to.

Also in the API
  • /automations, Coming
  • /segments, Live
  • /templates, Live
Automations · Cart recoverySample data
Sample journey for Nimbu Books: when a cart is abandoned, the journey waits an hour for an order, sends one reminder, then waits two more days. Anyone who orders reaches the goal and leaves. Carts over ₹1,500 get a free-delivery offer; the WhatsApp reminder for the rest is not available yet.

01, Triggers

Start from anything your product knows.

Every journey has one trigger. Most teams begin with a signup or an event from their own code; the others are there when your list gets more interesting.

  • A trigger can be narrowed to one segment, one topic or one form.
  • You can also add a person to a journey by hand from the dashboard.
  • A new contact

    Created through the API, a form or the dashboard. Imported contacts stay out unless you let them in.

  • An event from your code

    Anything you send, like user.signed_up or order.shipped, with its payload available to later steps.

  • Joining a segment

    When someone starts to match a segment’s rules, or is added to a static one.

  • A topic opt-in

    When someone chooses a topic, from a form or from the preference page.

  • A form signup

    When someone signs up through a particular form.

  • A date

    Birthdays, renewals or sign-up anniversaries from any date property, once or every year, at a local time you pick.

02, Events

Coming

One call from your code starts it.

Send an event with an email address or a contact id. Journeys that start on that event enrol the person, and a journey waiting for it moves them on. An address you have not sent before becomes a contact only when a journey actually enrols it.

  • POST /events/send answers 202 as soon as the event is accepted, so your signup request stays fast.
  • Give an event a schema and its payload is converted to those types before any step reads it.
  • Names starting with refiremail: are kept for built-in triggers.
event-send.shShell
curl -X POST https://api.refiremail.com/events/send \
  -H "Authorization: Bearer $REFIREMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "event": "user.signed_up",
    "email": "[email protected]",
    "payload": { "plan": "free", "city": "Pune" }
  }'

# 202 Accepted
# {"object":"event","event":"user.signed_up"}
signup.tsTypeScript
// Tell Refiremail that something happened in your product.
// Journeys that start on user.signed_up enrol Asha; a journey
// waiting for this event moves her to the next step.
const res = await fetch('https://api.refiremail.com/events/send', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.REFIREMAIL_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    event: 'user.signed_up',
    email: '[email protected]',
    payload: { plan: 'free', city: 'Pune' },
  }),
});

// res.status === 202

03, Steps

Wait, branch, send, update.

A journey is a set of steps joined by paths. Waits and conditions decide which path each person takes.

  • Send email

    A published template or a design from the editor, checked against suppression and consent as it sends.

  • Delay

    Wait minutes, hours or days, up to 30 days.

  • Wait until

    Hold until a time of day, on the days of the week you choose, in the time zone you set.

  • Wait for an event

    Pause until something happens, like a first project, with a timeout path for when it never does.

  • Condition

    Branch on contact fields, event data or segment membership.

  • Update contact

    Set a name or a property from event data. A journey can unsubscribe someone but never re-subscribes them.

  • Segments and topics

    Add to or remove from a static segment, or update topic subscriptions.

  • Webhook

    Call your own endpoint with a signed request, once per person per step.

  • WhatsApp messageComing

    A WhatsApp step in the same journey, on the same contact and the same consent.

04, Behaviour

Coming

Behaviour you can predict.

Journeys run for weeks, so the rules for switching them on, editing and pausing matter as much as the steps.

Switching on looks forward

Turning a journey on, or back on after a pause, enrols people for events from that moment. Last month’s signups do not suddenly get a welcome email.

Pause means pause

Everyone stops at the step they are on. Resume, and each person carries on from there.

Each step runs once

Each person runs each step once, even if a worker restarts or a job is retried. No double welcome emails.

Edits make a new version

Publishing a change creates a new version. People already inside finish on the version they entered with.

Re-entry and goals

Decide whether someone can go through a journey again, and how soon. Set a goal, and people leave the moment they reach it.

Consent at every sendComing

Each email step checks suppression and marketing consent when it sends, not only when the person entered.

05, Runs

See where everyone is.

Every person in a journey has a run: which step they are on, what each step did and when. Open one in the dashboard, or read it from the API once the automations routes open.

  • A run is running, completed, failed or cancelled.
  • Each step is pending, running, waiting, completed, failed or skipped, with the error when one fails.
  • Filter runs by status to find everyone who is stuck or failed.
Welcome journey · Run for [email protected]Sample data
Sample run for one contact, times in IST.

For the email your team writes, on the same contacts.

Build your first journey.

Start with a welcome series: one trigger, one wait, one email.