POST at your URL whenever they happen.
Under the hood, subscriptions are Scenarios (Texter’s automation feature). You never need to build one from scratch: every event in the sidebar has a ready-made template you import once.
The payload envelope
Every delivery is aPOST with a JSON body in the same envelope:
eventName- which event fired (each event page lists its name)eventData- the event’s data; the exact fields are documented per event
eventName, and add subscriptions over time.
Subscribe in three steps
Pick an event
Open the event’s page in the sidebar - e.g. New Incoming Messages or Chat Resolved. Each page contains the full import body.
Fill in your values
Replace
{{yourWebhookURL}} with your endpoint, plus any template-specific placeholders (each page tells you exactly what to change and where it sits in the JSON).Import it
Send the body to Import Subscription with a token holding the scopes Create scenarios and Manage scenarios on behalf of user. A
201 returns your subscription - save its _id.Manage subscriptions
| Action | Endpoint |
|---|---|
List all (templates are prefixed (SUB)) | List All Subscriptions |
| Pause | Inactivate Subscription |
| Resume / revert to a version | Activate Subscription |
| Delete permanently | Delete Subscription |
| Debug deliveries | List Scenario Runs - see whether the event fired, conditions matched, and the webhook request succeeded |
Customizing filters
Some templates filter with filtrex expressions you can adapt:- Single keyword:
text == "help" - Multiple keywords (OR):
text == "buy" or text == "purchase" - Complex logic with
and,or,not, parentheses:(text == "urgent" and text == "error") or text == "critical" - Whole sentences match exactly:
text == "I want to speak to a human" - Field existence:
exists(agent.uid)/not exists(agent.uid) - Array membership:
inArray(addedLabels, "vip")