Use this for
- Zapier / n8n / Make.com
- Your own backend posting events on signup, plan change, cancellation, etc.
- Anything that can speak HTTP POST
Setup
Brand → Integrations → Connect Custom webhook. Maillayer mints an integration row + a webhook URL + a bearer secret. The Setup tab gives you:
curl -X POST https://<your-app>/api/hooks/<integrationId> \
-H "Authorization: Bearer <secret>" \
-H "Content-Type: application/json" \
-d '{
"event": "user.signup",
"data": {
"email": "[email protected]",
"first_name": "Alice"
}
}'Event resolution
Maillayer figures out the event name in this order:
- Query parameter:
?event=user.signup - Body field:
"event": "user.signup" - Body field:
"type": "user.signup"(Stripe-style) - Falls back to
*(matches any wildcard action)
Configure actions
The Actions tab is where you map events → actions. Each action has:
- Event filter:
user.signupexact match,customer.*prefix, or*for any. - Action type: send_template / upsert_contact / apply_tags / enroll_sequence.
- Action config: field mappings using
{{data.email}}syntax.
Example: signup → welcome + sequence enrollment
Three actions on event user.signup:
- upsert_contact — email
{{data.email}}, first_name{{data.first_name}}, tags['signup', 'free-trial']. - send_template —
tpl_welcome, to{{data.email}}. - enroll_sequence — onboarding, by
{{data.email}}.
Inspect everything in Logs
The integration's Logs tab shows every inbound POST: payload, actions run, per-action status. Click a row to expand and see exactly what fired and what errored.