How to create and trigger a webhook after an opt-in or a sale
In this article, you will learn how to create and trigger a webhook after an opt-in or a sale. The webhook action sends data related to a trigger that calls a rule as an HTTP request in JSON format.
You will need:
a systeme.io account
a funnel
Navigate to your funnel, select a squeeze page, and click on "Automation rules".
Create a new rule (e.g., "Send webhook after opt-in").
Create a webhook destination. To test the rule, use a free web service like requestbin.net (for this example we created https://eop2plf1gq3xln6.m.pipedream.net).
Add the destination URL to the action field.

Make a test opt-in by subscribing to the squeeze page.
Check the destination source and review the results.
(Example: Update the destination page *https://eop2plf1gq3xln6.m.pipedream.net?inspect).*

In your systeme.io account, click on "**Automations**", then select "**Workflows**" to create a new workflow (e.g., "Send webhook after a tag is added").
Create a webhook destination. To test the rule, you can create a webhook destination by using a free web service like requestbin.net (for this example, we created https://eop2plf1gq3xln6.m.pipedream.net).
Add the destination URL to the action field.
*IMPORTANT :**
The webhook requests sent through systeme.io come from the same server. The IP address values used are: 185.236.142.1, 185.236.142.2 and 185.236.142.3.
Below, you'll find examples of the webhook's data structure when different triggers are selected as automations or within a workflow:
FUNNEL STEP FORM SUBSCRIBED:
| {"type": "contact.optin.completed","data": {"funnel_step": {"id": 2102831,"name": "Squeeze page","type": "squeeze","funnel": {"id": 614554,"name": "webhook data structure documentation"}},"contact": {"id": 29142804,"email": "temochkaykvlv+aslkfkvmk@gmail.com","fields": [],"ip": "31.173.103.109","referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T08:10:29+00:00"} |
NEW SALE:
| {"type": "customer.sale.completed","data": {"customer": {"id": 616824,"payment_processor": "paypal","contact_id": 20756080,"email": "test-1922@systeme.io","fields": {"country": "FR","phone_number": "test-1922","street_address": "test-1922","first_name": "test-1922","surname": "test-1922","postcode": "test-1922","city": "test-1922"},"client_ip": "172.31.31.127"},"funnel_step": {"id": 311,"name": "Comment cr\\u00e9er un blog qui rapporte","type": "offer-form","funnel": {"id": 118,"name": "Comment cr\\u00e9er un blog qui rapporte"}},"offer_price_plan": {"id": 19,"name": "Comment cr\\u00e9er un blog qui rapporte","inner_name": "Comment cr\\u00e9er un blog qui rapporte","type": "one_shot","direct_charge_amount": 583,"subscription_plan": null,"currency": "eur"},"order": {"id": 612661,"created_at": "2021-09-10T14:23:17+00:00"},"order_item": {"id": 763123,"created_at": "2021-09-10T14:23:17+00:00","resources": [{"quantity": null,"enrollment_access_type": null,"enrollment_dripping_access_course": null,"type": "systemeio_tag","course": null,"course_bundle": null,"physical_product": null,"data": {"id": 110,"name": "FR-Client-CCBQR-7"}},{"quantity": null,"enrollment_access_type": "full_access","enrollment_dripping_access_course": null,"type": "membership_course","course_bundle": null,"physical_product": null,"tag": null,"data": {"id": 111,"name": "Formation Un blog qui rapporte","description": null}}]},"coupon": null},"account": {"email": "aurelien@readmeimfamous.com"},"created_at": "2021-09-10T14:23:33+00:00"} |
TAG ADDED:
| {"type": "contact.tag.added","data": {"tag": {"id": 141002,"name": "MyAwesomeTag"},"contact": {"id": 29143587,"email": "temochkaykvlv+lksdllfnsnkfdls@gmail.com","fields": [],"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T09:52:38+00:00"} |
TAG REMOVED:
| {"type": "contact.tag.removed","data": {"tag": {"id": 141002,"name": "MyAwesomeTag"},"contact": {"id": 27212122,"email": "temochkaykvlv+test@gmail.com","fields": {"first_name": "Tema test","surname": "Testovich"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T09:54:08+00:00"} |
BLOG PAGE FORM SUBSCRIBED:
| {"type": "contact.optin.completed","data": {"page_model": {"id": 2643372,"name": "Home page","blog": {"id": 33665,"name": "Test blog"}},"contact": {"id": 29148862,"email": "temochkaykvlv+sdadk@gmail.com","fields": [],"ip": "31.173.103.109","referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T10:25:23+00:00"} |
REGISTERED TO WEBINAR:
| {"type": "contact.webinar.registered","data": {"webinar": {"id": 54072,"duration": "7200","funnel_step": {"id": 2103445,"name": "Webinar registration","type": "webinar_registration","funnel": {"id": 614774,"name": "webinar funnel"}}},"contact": {"id": 29149232,"email": "temochkaykvlv+wklm@gmail.com","fields": [],"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null},"registered_at": "2021-10-05T10:37:06+00:00","scheduled_at": "2021-10-05T15:00:00+00:00"},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T10:37:06+00:00"} |
ENROLLED IN COURSE:
| {"type": "contact.course.enrolled","data": {"course": {"id": 44685,"name": "webhook data structure doc","description": null},"contact": {"id": 29150265,"email": "temochkaykvlv+kek@gmail.com","fields": {"first_name": "name","surname": "last name"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null},"access_type": "full_access"},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T11:12:29+00:00"} |
ENROLLED IN COURSE BUNDLE:
| {"type": "contact.course_bundle.enrolled","data": {"course_bundle": {"id": 6624,"name": "webhook data structure doc"},"contact": {"id": 27212122,"email": "temochkaykvlv+test@gmail.com","fields": {"first_name": "Tema test","surname": "Testovich"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null},"access_type": "full_access","first_active_course": null},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T15:42:47+00:00"} |
CAMPAIGN COMPLETED:
| {"type": "contact.campaign.finished","data": {"campaign": {"id": 82393,"name": "test campaign","description": "webhook data structure doc"},"contact": {"id": 29150412,"email": "temochkaykvlv+luiklas@gmail.com","fields": {"first_name": "sadkl;","surname": "dsl;;"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T15:42:53+00:00"} |
PAGE VISITED:
| {"type": "contact.page.visited","data": {"funnel_step": {"id": 2102832,"name": "Thank You \\/ Download Page","type": "opt_in_thank_you_page","funnel": {"id": 614554,"name": "webhook data structure documentation"}},"contact": {"id": 29171084,"email": "temochkaykvlv+asdfg@gmail.com","fields": [],"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T16:29:02+00:00"} |
EMAIL LINK CLICKED:
| {"type": "contact.email_link.clicked","data": {"sent_email": {"id": 1321034,"subject": "test email webhook"},"contact": {"id": 24431099,"email": "temochkaykvlv@gmail.com","fields": {"first_name": "Test","surname": "Testovich"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-07T10:07:08+00:00"} |
You will need:
a systeme.io account
a funnel
Method 1:
Navigate to your funnel, select a squeeze page, and click on "Automation rules".
Create a new rule (e.g., "Send webhook after opt-in").
Create a webhook destination. To test the rule, use a free web service like requestbin.net (for this example we created https://eop2plf1gq3xln6.m.pipedream.net).
Add the destination URL to the action field.

Make a test opt-in by subscribing to the squeeze page.
Check the destination source and review the results.
(Example: Update the destination page *https://eop2plf1gq3xln6.m.pipedream.net?inspect).*

Method 2:
In your systeme.io account, click on "**Automations**", then select "**Workflows**" to create a new workflow (e.g., "Send webhook after a tag is added").
Create a webhook destination. To test the rule, you can create a webhook destination by using a free web service like requestbin.net (for this example, we created https://eop2plf1gq3xln6.m.pipedream.net).
Add the destination URL to the action field.

The webhook requests sent through systeme.io come from the same server. The IP address values used are: 185.236.142.1, 185.236.142.2 and 185.236.142.3.
Webhook data structure documentation
Below, you'll find examples of the webhook's data structure when different triggers are selected as automations or within a workflow:
FUNNEL STEP FORM SUBSCRIBED:
| {"type": "contact.optin.completed","data": {"funnel_step": {"id": 2102831,"name": "Squeeze page","type": "squeeze","funnel": {"id": 614554,"name": "webhook data structure documentation"}},"contact": {"id": 29142804,"email": "temochkaykvlv+aslkfkvmk@gmail.com","fields": [],"ip": "31.173.103.109","referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T08:10:29+00:00"} |
NEW SALE:
| {"type": "customer.sale.completed","data": {"customer": {"id": 616824,"payment_processor": "paypal","contact_id": 20756080,"email": "test-1922@systeme.io","fields": {"country": "FR","phone_number": "test-1922","street_address": "test-1922","first_name": "test-1922","surname": "test-1922","postcode": "test-1922","city": "test-1922"},"client_ip": "172.31.31.127"},"funnel_step": {"id": 311,"name": "Comment cr\\u00e9er un blog qui rapporte","type": "offer-form","funnel": {"id": 118,"name": "Comment cr\\u00e9er un blog qui rapporte"}},"offer_price_plan": {"id": 19,"name": "Comment cr\\u00e9er un blog qui rapporte","inner_name": "Comment cr\\u00e9er un blog qui rapporte","type": "one_shot","direct_charge_amount": 583,"subscription_plan": null,"currency": "eur"},"order": {"id": 612661,"created_at": "2021-09-10T14:23:17+00:00"},"order_item": {"id": 763123,"created_at": "2021-09-10T14:23:17+00:00","resources": [{"quantity": null,"enrollment_access_type": null,"enrollment_dripping_access_course": null,"type": "systemeio_tag","course": null,"course_bundle": null,"physical_product": null,"data": {"id": 110,"name": "FR-Client-CCBQR-7"}},{"quantity": null,"enrollment_access_type": "full_access","enrollment_dripping_access_course": null,"type": "membership_course","course_bundle": null,"physical_product": null,"tag": null,"data": {"id": 111,"name": "Formation Un blog qui rapporte","description": null}}]},"coupon": null},"account": {"email": "aurelien@readmeimfamous.com"},"created_at": "2021-09-10T14:23:33+00:00"} |
TAG ADDED:
| {"type": "contact.tag.added","data": {"tag": {"id": 141002,"name": "MyAwesomeTag"},"contact": {"id": 29143587,"email": "temochkaykvlv+lksdllfnsnkfdls@gmail.com","fields": [],"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T09:52:38+00:00"} |
TAG REMOVED:
| {"type": "contact.tag.removed","data": {"tag": {"id": 141002,"name": "MyAwesomeTag"},"contact": {"id": 27212122,"email": "temochkaykvlv+test@gmail.com","fields": {"first_name": "Tema test","surname": "Testovich"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T09:54:08+00:00"} |
BLOG PAGE FORM SUBSCRIBED:
| {"type": "contact.optin.completed","data": {"page_model": {"id": 2643372,"name": "Home page","blog": {"id": 33665,"name": "Test blog"}},"contact": {"id": 29148862,"email": "temochkaykvlv+sdadk@gmail.com","fields": [],"ip": "31.173.103.109","referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T10:25:23+00:00"} |
REGISTERED TO WEBINAR:
| {"type": "contact.webinar.registered","data": {"webinar": {"id": 54072,"duration": "7200","funnel_step": {"id": 2103445,"name": "Webinar registration","type": "webinar_registration","funnel": {"id": 614774,"name": "webinar funnel"}}},"contact": {"id": 29149232,"email": "temochkaykvlv+wklm@gmail.com","fields": [],"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null},"registered_at": "2021-10-05T10:37:06+00:00","scheduled_at": "2021-10-05T15:00:00+00:00"},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T10:37:06+00:00"} |
ENROLLED IN COURSE:
| {"type": "contact.course.enrolled","data": {"course": {"id": 44685,"name": "webhook data structure doc","description": null},"contact": {"id": 29150265,"email": "temochkaykvlv+kek@gmail.com","fields": {"first_name": "name","surname": "last name"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null},"access_type": "full_access"},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T11:12:29+00:00"} |
ENROLLED IN COURSE BUNDLE:
| {"type": "contact.course_bundle.enrolled","data": {"course_bundle": {"id": 6624,"name": "webhook data structure doc"},"contact": {"id": 27212122,"email": "temochkaykvlv+test@gmail.com","fields": {"first_name": "Tema test","surname": "Testovich"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null},"access_type": "full_access","first_active_course": null},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T15:42:47+00:00"} |
CAMPAIGN COMPLETED:
| {"type": "contact.campaign.finished","data": {"campaign": {"id": 82393,"name": "test campaign","description": "webhook data structure doc"},"contact": {"id": 29150412,"email": "temochkaykvlv+luiklas@gmail.com","fields": {"first_name": "sadkl;","surname": "dsl;;"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T15:42:53+00:00"} |
PAGE VISITED:
| {"type": "contact.page.visited","data": {"funnel_step": {"id": 2102832,"name": "Thank You \\/ Download Page","type": "opt_in_thank_you_page","funnel": {"id": 614554,"name": "webhook data structure documentation"}},"contact": {"id": 29171084,"email": "temochkaykvlv+asdfg@gmail.com","fields": [],"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-05T16:29:02+00:00"} |
EMAIL LINK CLICKED:
| {"type": "contact.email_link.clicked","data": {"sent_email": {"id": 1321034,"subject": "test email webhook"},"contact": {"id": 24431099,"email": "temochkaykvlv@gmail.com","fields": {"first_name": "Test","surname": "Testovich"},"ip": null,"referred_by_contact_id": null,"referred_by_contact_email": null}},"account": {"email": "temochkaykvlv@gmail.com"},"created_at": "2021-10-07T10:07:08+00:00"} |
Updated on: 26/05/2025
Thank you!