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
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.
4. Make a test opt-in by subscribing to the squeeze page.
5. 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.
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.
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" } |