Skip to content

Funnel Webhooks ​

A funnel webhook lets your online shop or form tool tell RestartiX Webinars when something happens — an order is placed or paid, a survey is completed — so the contact is counted in the matching step of your funnels. WooCommerce, MerchantPro and Tally are supported out of the box, and any other system that can send a JSON request can use the Generic type.

Access: admins and marketers can create and delete webhooks, copy their addresses and use them in funnel steps. Everyone on your team can see deliveries under Analytics → Webhooks.

How it works ​

A webhook is a web address that belongs to your organization, not to one funnel. You paste it into your shop or form tool once, then choose it in Webhook steps in as many funnels as you like.

Each time your provider sends a delivery to that address:

  1. The secret in the address identifies the webhook.
  2. The email address is read from the delivery, in the format of the webhook's type.
  3. The platform looks for a contact with that email in your organization. If there isn't one, nothing is recorded — webhooks never create contacts.
  4. Every Webhook step that uses this webhook, in any funnel, checks its status filter. Each step that accepts the delivery records an entry for the contact.
  5. The delivery is logged under Analytics → Webhooks.

The platform doesn't look at which event the provider says it's sending. Every delivery is handled the same way, so you separate stages — order placed, order paid — with the steps' status filters.

An entry is recorded only when all of these are true:

  • The email matches a contact. Capitalization doesn't matter, but a buyer who uses a different address from the one they gave you isn't matched.
  • The contact isn't already in the step. A contact enters a step once per session, or once overall in a standalone funnel. Repeat deliveries — "order updated" events, a second order — add neither entries nor revenue.
  • In a webinar funnel, the contact is registered for that webinar. The entry goes to the session they attended live, or else one they watched on replay, or else one where they only joined the pre-show, or else their most recent registration.
  • That session and the funnel are still active. Nothing is recorded for a session that has been archived — for example, an order that arrives after the session's replay has ended (see Sessions & Lifecycle) — or in an archived funnel.

Webhook types ​

TypeEmail is read fromStatus the step filter checksKept with the entry
WooCommercebilling.emailThe order's statusOrder ID, total and currency
MerchantProcustomer_emailThe order's payment_statusOrder ID, total, currency and payment status
TallyThe form's email-type field, or a field labeled Email, E-mail, Adresa email or Adresa de email (in any capitalization)—The whole submission
GenericA top-level email field—The whole request body

You choose the type when you create the webhook, and it can't be changed afterwards.

Create a webhook ​

  1. Go to Funnels and click Webhooks. The Funnel Webhooks panel lists your webhooks.
  2. Click New Webhook.
  3. Enter a Name — for example, "Main WooCommerce Shop" — and choose the Type.
  4. Click Create.
  5. On the new webhook's card, click Copy to copy its address.

The address ends in /v1/webhooks/funnel?secret= followed by a long secret. It never changes. You can't rename a webhook in the dashboard; to change the name or type, create a new webhook.

Set up your provider ​

Paste the address wherever your provider asks for a webhook URL. The platform accepts POST requests whose body is JSON.

MerchantPro ​

  • Create a webhook for the order events you want to track, such as an order being created and its payment being completed.
  • Send the full, default order payload. A minimal payload with only the order ID has no email address, so it's rejected.
  • Steps filter on MerchantPro's payment_status: temporary, awaiting, partially_paid, paid, failed, cancelled, refunded and rejected.

WooCommerce ​

  • Create webhooks for order creation and order updates, so a step can catch an order when its status changes to the one you want.
  • Steps filter on the order status: pending, processing, on-hold, completed, cancelled, refunded and failed.

Tally ​

  • Add the address as a webhook on your Tally form.
  • Include an email question, and ask respondents to use the address they registered with.

Generic ​

Send a POST request with a JSON body that has a top-level email field. To report revenue, add amount and currency at the top level too:

json
{
  "email": "[email protected]",
  "amount": 49.90,
  "currency": "EUR",
  "product": "Masterclass replay"
}

Send amount as a plain number

Write amount as a number, such as 49.90. A value like "49,90 lei" can't be added up: the step shows no revenue at all whenever that entry falls within the funnel page's filters.

Use a webhook in a funnel ​

  1. Open the funnel and click Edit Funnel.
  2. Add a Webhook step from the Conversions group, or click an existing one.
  3. In Webhook, choose the webhook.
  4. For WooCommerce and MerchantPro webhooks, set the Status filter:
    • Accept all records every delivery.
    • Only specific records only deliveries whose status you tick. Switching to it ticks completed and processing for WooCommerce, or paid for MerchantPro.
  5. Click Save Changes.

A delivery with no status in it passes every filter. Several steps can use the same webhook, each with its own filter: the Sales template, for example, has Order Created (all statuses) and Purchase (processing and completed). The Sales and Questionnaire templates ask for a webhook when you create the funnel and use it in all their Webhook steps, so create the webhook first.

Check the filter on MerchantPro steps

New Webhook steps, and the Sales template's Purchase step, start with the WooCommerce statuses completed and processing ticked. MerchantPro never sends those, so the step records nothing. Once you choose a MerchantPro webhook those two statuses aren't in the list, so Only specific looks as if nothing is ticked. Click Accept all; if you want a filter, click Only specific again — it resets to paid — and tick the statuses you need.

Revenue ​

A Webhook step adds up the amounts of its entries: the WooCommerce order total, the MerchantPro total amount, or amount from a Generic delivery. The total appears under the step on the funnel page and in a Revenue KPI card, which uses the funnel's last Webhook step. The funnel page's session and date filters apply.

  • Only the delivery that created the entry counts. A contact's second order in the same session doesn't add to revenue.
  • Amounts in different currencies are added together without conversion, and only one currency code is shown.

Security ​

The secret in the address is the only check: if your provider signs its requests, the platform doesn't verify that signature. Anyone who has the address can send deliveries to it, so treat it like a password and keep it out of pages, chats and support tickets.

If the address leaks, create a new webhook, switch your provider and your Webhook steps to it, then delete the old one.

Check deliveries in the webhook log ​

Go to Analytics → Webhooks (Webhook Activity; see Analytics). Choose a funnel source — Funnel — WooCommerce, Funnel — MerchantPro, Funnel — Tally or Funnel — Generic — and a status to narrow the list. The cards count Total, Success, Errors and Skipped deliveries. Click a row in the Webhook Log to open Webhook Details, with the HTTP status, duration, error message and metadata. Click Load More for older deliveries.

StatusError MessageWhat happened
success—A contact was found. Metadata shows the contact's ID and created, the number of new entries.
skippedcontact not foundNo contact in your organization has that email address.
erroremail not found in payloadThe delivery had no email where the webhook's type expects one, or its body wasn't JSON.
erroranother messageLooking up the contact failed.

Your provider gets a success response for success and skipped deliveries, so it won't retry them. Deliveries without an email address get an error response, which your provider may report as failed.

A success with created at 0 means no new entry was recorded, because:

  • no funnel step uses this webhook;
  • the step's status filter didn't accept the delivery's status;
  • the contact already had an entry in the step for that session;
  • in a webinar funnel, the contact isn't registered for that webinar, or the session the entry would go to is archived;
  • the funnel is archived.

Deliveries sent with a wrong or missing secret are rejected before the platform knows which organization they belong to, so they never appear in the log.

Troubleshooting ​

ProblemWhat to check
Nothing appears in the logThe address in your provider is incomplete or wrong. Copy it again from the webhook card, including the ?secret= part.
email not found in payloadThe webhook's type matches your provider, and the delivery contains an email: the full order payload for MerchantPro, an email question for Tally, a top-level email for Generic. Test pings without an email show up this way too.
contact not foundThe buyer or respondent used a different email address, or isn't a contact yet — for example, they bought without ever registering.
success, but created is 0The reasons listed above. For MerchantPro, check the status filter first.
The log shows new entries, but the step's count doesn't changeThe funnel page's session picker or date range excludes them, or they went into another funnel that uses the same webhook.
No revenueThe deliveries have no amount, one of the amounts isn't a plain number, or the Revenue KPI card is looking at a different Webhook step (it uses the last one).

Delete a webhook ​

Click the trash icon on the webhook's card and confirm. You can only delete a webhook that no funnel step uses — otherwise you see Failed to delete. It may be referenced by funnel steps. First choose another webhook in those steps, or clear their Webhook field, including steps in archived funnels. Entries the webhook already recorded stay in your funnels.

Creating and deleting webhooks is recorded in the Audit Log.