How to create and trigger a webhook after an opt-in or a sale
Integrations
A webhook sends information to another tool the moment something happens, for example when a parent signs up or buys. The data goes out as an HTTP request in JSON format.
You will need a funnel.
Method 1: in an automation rule
- Open your funnel, select an opt-in page and click Automation rules, then Add rule.
- Choose your trigger and add the action Send webhook.
- Paste the address where the data should go. To test first, use a free service such as RequestBin or Pipedream to create a test address.
- Sign up on your own page as a test.
- Open your test address to see the data which arrived.
Method 2: in a workflow
- Go to Automations, then Workflows, and create a workflow, for example "Send webhook when a tag is added".
- Add the action Send webhook and paste the destination address. Test it the same way.
SleepPRO™ webhooks come from these IP addresses: 185.236.142.1, 185.236.142.2 and 185.236.142.3.
What the data looks like
Each webhook has a type which tells you what happened:
- Funnel step form subscribed: contact.optin.completed, with the funnel step and contact details.
- Blog page form subscribed: contact.optin.completed, with the blog page and contact details.
- New sale: customer.sale.completed, with the customer, funnel step, price plan, order and resources bought.
- Tag added: contact.tag.added, with the tag and contact.
- Tag removed: contact.tag.removed, with the tag and contact.
- Registered to webinar: contact.webinar.registered, with the webinar, contact and session time.
- Enrolled in course: contact.course.enrolled, with the course, contact and access type.
- Enrolled in course bundle: contact.course_bundle.enrolled, with the bundle, contact and access type.
- Campaign completed: contact.campaign.finished, with the campaign and contact.
- Page visited: contact.page.visited, with the funnel step and contact.
- Email link clicked: contact.email_link.clicked, with the email and contact.
For example, a tag added webhook looks like this:
{
"type": "contact.tag.added",
"data": {
"tag": {"id": 141002, "name": "Newborn guide"},
"contact": {"id": 29143587, "email": "parent@example.com", "fields": []}
},
"account": {"email": "you@yoursleepbusiness.com"},
"created_at": "2026-10-05T09:52:38+00:00"
}Did this answer your question?