Manage webhook events
Choose the MailGraf events your endpoint receives and monitor each delivery.
A webhook sends selected MailGraf events to your service as they happen. Use it when another system needs to react without polling the API, such as updating a CRM after a contact subscribes.
Add an endpoint
Open Settings > Webhooks
Click Add endpoint to start a new connection.Enter the destination
Add an optional Name and the Endpoint URL. The URL must use HTTPS and resolve to a public internet address.Choose events
Select at least one event under Events. Choose only the events the receiving service processes.Send a test event
Save the endpoint, then click Send test event. A test makes one immediate delivery and does not retry after a failure.
The receiving service must return a 2xx response within seven seconds. MailGraf does not follow redirects, so a 3xx response counts as a failed delivery.
Choose the right events
Contact activity
contact.subscribed: a contact confirms a subscription.contact.unsubscribed: a contact unsubscribes.contact.complained: a recipient reports an email as spam.contact.tag_addedandcontact.tag_removed: one tag membership changes.contact.list_addedandcontact.list_removed: one list membership changes.
Tag and list membership events come from individual actions in the contact panel, automations, forms and the public API. Bulk imports and bulk actions do not create one webhook event for every membership change.
Campaign and email activity
campaign.sent: a campaign finishes. MailGraf sends this event once for the campaign, not once per recipient.email.delivered: an email is accepted as delivered.email.bounced: an email bounces.
Form activity
form.submitted: a form is submitted. This happens before double opt-in confirmation, so the payload may not contain a contact ID yet.
Use contact.subscribed when the receiving system must wait for confirmed consent. Use form.submitted when it must react to the submission itself.
Follow failed deliveries
Open Recent deliveries to see the latest 50 attempts kept during the 30-day retention period. Each record shows the event, response status, attempt count and delivery time.
For a normal event, MailGraf makes up to five attempts in total. After the first failure it retries after 1 minute, 5 minutes, 30 minutes and 2 hours. Fix the receiving service before clicking Retry now on a failed delivery. A manual retry starts a new delivery cycle.
Repeated failures can disable the endpoint
When deliveries repeatedly exhaust all attempts, MailGraf can switch the endpoint to Disabled. Resolve the cause, then click Enable. Enabling the endpoint resets its consecutive failure count.
Where the full reference lives
The API reference documents MailGraf's public API contract. Webhook delivery, event selection and signing are managed under Settings > Webhooks.
Frequently asked questions
Which response marks a delivery as successful?
MailGraf accepts any 2xx response. Redirects and other status codes are treated as failures.
Does a test event retry after a failure?
No. A test event makes one immediate attempt. Normal event deliveries use the automatic retry schedule.
Why was an endpoint disabled?
MailGraf can disable an endpoint after repeated deliveries exhaust all retry attempts. Fix the endpoint, then enable it again.
Related articles
Was this helpful?
Still need help?
Write to us and a person will answer.

