Skip to main content

The difference between this and Send a message

This is the one worth understanding before you pick an endpoint, because it decides which of your systems owns a marketing decision.

Send a message

“Send this now.” You chose the template and the moment. An order confirmation goes out when the order is confirmed — nobody is going to change their mind about that.

Report an event

“This just happened.” We choose, from what you set up in the console. A review request three days after delivery is this one: your code knows the parcel arrived and nothing else.
Why not have your code enrol people in a sequence directly? Because that welds a sequence’s id into your deploy. Rebuild the sequence and your code quietly stops working, and changing which message fires needs an engineer.Posting an event name inverts it: your code says what happened, the console says what happens next. Marketing can change the follow-up on a Tuesday afternoon without touching your backend.

Body

string
required
The customer’s number. E.164, with or without the +; spaces are fine.Normalised the same way the contact importer is, so +91 98765 43210 and 919876543210 are the same person rather than two.
string
required
What happened, as a name — order.delivered, trial.ended, cart.abandoned.Normalised, and the response tells you how. “Order Delivered” is stored as order.delivered. Read the event field that comes back and use exactly that when you set the subscription up in the console, or the two will never match.
object
Values to carry into whatever this triggers — an order number, a courier, a date. Names to strings.At most 20 values, each name up to 60 characters and each value up to 300. Over any of those is refused rather than trimmed: a shortened name would silently stop matching the template that reads it.
string
The customer’s name, if you have it and we might not. Used when the contact is created by this call.

Response

string
The normalised name. Configure your subscription against this, not what you sent.
number
Sequences this event enrolled the contact into.
number
Sequences it took them out of. A delivery event usually ends the “where is my order” chase.
number
Tags added to the contact.
boolean
Whether anything was listening.
Nothing listening is still a 200, with matched: false and a note saying so. The contact and the event are recorded either way.This is deliberate: you should be able to start sending events before anyone has configured what they do, and adding the subscription later must not require a deploy on your side. A 404 here would have your webhook retrying for ever over a decision nobody has made yet.

Errors

See Errors for the shape.