Make Triggers
The Watch Events module is an instant trigger. When you turn a scenario on, it registers a webhook subscription with Tenreply for the event you select; when you turn it off, the subscription is removed. Use one Watch Events module per event — add more modules (in separate scenarios) to react to different events.
Events
| Event | Fires when |
|---|---|
message.received | A customer sends a new message |
message.sent | An agent or automation sends a message |
message.delivered | A sent message is delivered |
message.read | A customer reads a message |
message.failed | A message fails to send |
conversation.created | A new conversation starts |
conversation.status_changed | A conversation is opened, closed, or set to pending |
contact.created | A new contact is added |
contact.updated | A contact record is updated |
broadcast.completed | A broadcast finishes sending |
Event payloads
message.received
{ "id": "msg_abc123", "conversationId": "conv_xyz", "contactId": "contact_def", "type": "text", "content": { "text": "Hello, I need help!" }, "status": "delivered", "waMessageId": "wamid.abc", "timestamp": "2026-06-01T10:00:00.000Z"}conversation.created / conversation.status_changed
{ "id": "conv_xyz", "status": "open", "channel": "whatsapp", "contactId": "contact_def", "assignedAgentId": null, "createdAt": "2026-06-01T10:00:00.000Z"}contact.created / contact.updated
{ "id": "contact_def", "phoneNumber": "+1234567890", "name": "Jane Doe", "email": "jane@example.com", "tags": ["vip"], "createdAt": "2026-06-01T10:00:00.000Z"}message.sent / message.delivered / message.read / message.failed
Same schema as message.received with the updated status field.
broadcast.completed
{ "broadcastId": "bcast_123", "name": "June promo", "sent": 842, "failed": 3, "completedAt": "2026-06-01T11:00:00.000Z"}Signature verification
Each delivery includes the header X-Tenreply-Signature: sha256=<hmac-hex>, computed with
HMAC-SHA256 over the raw request body using the secret returned when the subscription was
created. Add a verification step in your scenario if you need to enforce it.