In this article, you will learn how to create and trigger a webhook after an opt-in or a sale. The webhook action sends trigger-related data as an HTTP request in JSON format.
You will need:
A systeme.io account
A funnel
Select your opt-in page from the funnel list on the left, then click the Automation Rules tab (1) and Add rule (2).

Select Funnel step form subscribed as the trigger (3).

Select Send webhook as the action, and add the destination URL (4), then click Save rule (5).
In this example, we used RequestBin to generate the URL.

Perform a test opt-in by subscribing to your published opt-in page, then return to your RequestBin dashboard, open the bin you created, and check the incoming requests to view the data sent by systeme.io.

Select Workflows under the automations tab, and create a new workflow. To learn more about workflows, check out our dedicated help article: How to create workflows in systeme.io.
Add a trigger to the workflow, then select Send webhook as the action and paste your destination URL (1).

To test the workflow, perform the action specified in your trigger (e.g., add a tag to a contact), then return to RequestBin and inspect the received request to verify that the webhook was triggered successfully.
Important: The webhook requests sent through systeme.io originate from the following IP addresses: 185.236.142.1, 185.236.142.2, and 185.236.142.3.
Below, you'll find examples of the webhook data structure for various triggers used in automations or workflows:
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" } |
Last updated on November 10, 2026