Elementor Forms to an Israeli CRM: Webhooks, Duplicates and Phone Numbers
Back to blog
automation·September 30, 2026·7 min read·By Yehonatan Saadia

Elementor Forms to an Israeli CRM: Webhooks, Duplicates and Phone Numbers

Elementor Pro has no native action for Israeli CRMs, so leads travel through the Webhook action or a PHP hook. This guide covers what the webhook really sends, what happens when it fails, and how to stop duplicates, messy phone numbers and lost UTM data.

Key takeaways

  • No Israeli CRM is among Elementor Pro's native form actions; use the Webhook action with a tool in between, or the new_record PHP hook.
  • The Webhook action has a URL and an Advanced Data toggle only - no auth headers, so Fireberry's tokenid header must be added elsewhere.
  • Keep Collect Submissions on: Elementor > Submissions and its CSV export are your record when a webhook fails.
  • Normalise Israeli phone numbers to one format and search before you create, or the CRM fills with duplicates.
  • Hidden fields with the Request Parameter dynamic tag carry utm_source and gclid into the lead.

Elementor Pro has no built-in action for Israeli CRMs such as Fireberry, monday.com or ActiveTrail. You connect them through the Webhook action in the form's Actions After Submit, pointed at an automation tool or your own endpoint, or through the elementor_pro/forms/new_record PHP hook, which gives you field IDs, headers and error handling.

The Form widget in Elementor Pro sits on a large share of Israeli WordPress sites, and the question behind it is always the same: how does every lead land in the CRM exactly once, with a clean phone number and the campaign it came from. This guide covers the options, what each one really sends, and where leads get lost.

What can Elementor send after a form is submitted?

Elementor runs the actions listed in the Actions After Submit field, in the Content tab of the Form widget, and one form can run several of them. Out of the box the widget offers:

  • Collect Submissions - stores every submission in WP-Admin under Elementor > Submissions. It is active by default.
  • Email and Email 2 - usually a notification to you and a confirmation to the visitor.
  • Redirect and Popup - what the visitor sees next.
  • Webhook - posts the submission to any URL.
  • Marketing services - MailChimp, Drip, ActiveCampaign, GetResponse, ConvertKit and MailerLite, plus Slack and Discord.

No Israeli system is on that list. Fireberry (formerly Powerlink), monday.com, ActiveTrail and Rav Messer are reached through the Webhook action, a third-party add-on, or code. Elementor lets external developers register new form actions, which is how such add-ons work, so check who maintains one before your sales pipeline depends on it. For the mailing-list side, the ActiveTrail API guide covers tokens that expire and IP locks.

What does the Elementor Webhook action actually send?

The Elementor Webhook action sends a POST request to the URL you paste in, and it has one other setting: an Advanced Data toggle. There is no place for an authorization header, no field mapping and no way to rename keys. A feature request in Elementor's GitHub discussions (#21768, March 2023) asks for exactly that, and users there report that fields arrive keyed by their labels rather than their IDs. Three consequences follow:

  • A label is not a stable key. Rename "Phone" to "Mobile phone" in the editor and the receiving side quietly stops finding the field. On a Hebrew form the key is a Hebrew label, which the receiving code has to match exactly.
  • A CRM that needs a token cannot be called directly. Fireberry authenticates every request with a tokenid header and monday.com expects an Authorization header. The Webhook action sends neither, so it has to point at something in between - Zapier, Make, n8n or your own endpoint - that adds the credential.
  • Read the payload instead of guessing it. Elementor's help pages do not document the exact body with and without Advanced Data. Point the webhook at a request-inspection URL, submit a test lead with each setting, and map from what actually arrives.

When you control the WordPress code, the cleaner route is the elementor_pro/forms/new_record hook, which runs after the form actions. Elementor's own example reads $record->get( 'fields' ), keyed by each field's ID, and sends it with wp_remote_post. Give every field a custom ID (phone, email, utm_source) and the mapping survives any change to the visible labels:

add_action( 'elementor_pro/forms/new_record', function ( $record, $handler ) {
    if ( 'lead_form' !== $record->get_form_settings( 'form_name' ) ) {
        return;
    }
    $fields = [];
    foreach ( $record->get( 'fields' ) as $id => $field ) {
        $fields[ $id ] = $field['value'];
    }
    $response = wp_remote_post( 'https://api.fireberry.com/api/record/{object}', [
        'headers' => [ 'tokenid' => FIREBERRY_TOKEN, 'Content-Type' => 'application/json' ],
        'body'    => wp_json_encode( map_to_crm_fields( $fields ) ),
        'timeout' => 15,
    ] );
    if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) >= 300 ) {
        error_log( 'CRM push failed: ' . $record->get_form_settings( 'form_name' ) );
    }
}, 10, 2 );

{object} and map_to_crm_fields() are yours to fill in, because object and field names differ between Fireberry accounts - the Fireberry API guide explains how to discover them. Fireberry's token also carries the permissions of the user it belongs to, so issue it from a dedicated integration user, never from a salesperson's account.

Four ways to get Elementor leads into an Israeli CRM

RouteWhere the CRM credential livesField keysHow you learn about a failureFits when
Webhook action to Zapier or MakeIn the automation toolLabels, remapped in the toolThe tool's run historyOne form, no developer
Webhook action to your own endpoint (n8n or a small service)On your serverLabels, remapped in codeYour own logs and alertsSeveral forms or several target systems
new_record PHP hookIn wp-config.phpField IDserror_log or the response hookOne site with a developer on hand
Third-party Elementor add-on for the CRMIn the add-on's settingsThe add-on's mapping screenDepends on the add-onOnly if it is actively maintained

What happens when the Elementor webhook fails?

When the receiving URL is down or answers with an error, the lead does not reach the CRM, and Elementor's documentation describes no retry queue for the Webhook action. The visitor still sees the success message, so nobody notices until a salesperson asks where the leads went. Four habits close the gap:

  1. Keep Collect Submissions on. Every submission stays in Elementor > Submissions, and Export All to CSV or Export Selected to CSV gives you the list to reconcile against the CRM.
  2. Read the response. The elementor_pro/forms/webhooks/response hook receives the wp_remote_post response, an array or a WP_Error, together with the record. Log failures there, or push them to a queue that retries.
  3. Respect the CRM's limits. Fireberry allows 100 requests per minute per organization by default, counted across all tokens and integrations, and answers 429 Too Many Requests beyond it. A daily limit also applies and resets at 00:00 UTC.
  4. Reconcile on a schedule. Once a week, compare the number of submissions in WordPress with the leads created in the CRM from the website source.

Duplicate leads and Israeli phone numbers

Duplicate leads from Elementor come from the same person filling in two forms, submitting again a day later, or a retry after a timeout that had in fact succeeded. The CRM cannot recognise the person unless the integration looks before it creates, and looking only works on a normalised phone number:

  • One phone format. The same mobile number arrives as 052-1234567, 0521234567, +972 52-123-4567 or 972521234567. Strip everything except digits, convert a leading 972 to 0 (or the reverse), and store one form only. Whatever the form accepts, do this on the server.
  • Search, then create. Look up the normalised phone and the lowercased email first. In Fireberry, reading is a POST to /api/query; in monday.com, search the board before calling create_item, as the monday.com API guide describes.
  • Update when found. Attach the new submission to the existing lead as a note or activity instead of opening a second one.
  • Mind monday.com status labels. create_item takes column_values as a JSON string, and its create_labels_if_missing argument will create a new status label from a typo if you let it.

UTM values reach the CRM through a Hidden field whose default value is Elementor's Request Parameter dynamic tag. In the field's Advanced tab, open the dynamic icon, choose Site > Request Parameter, set the type to Get and the parameter name to utm_source, and add a Fallback such as direct. Repeat for utm_medium, utm_campaign and gclid. Three things to check:

  • The parameter exists only on the URL where the visitor landed. If they browse to another page before filling in the form, the value is gone, so store first-touch attribution in the browser - see tracking lead sources without analytics.
  • WordPress reserves some query variable names, and Elementor notes that using one as a request parameter returns a 404.
  • If the page is served from a full-page cache, submit a test from a fresh URL and confirm the hidden value matches that URL.

This part is a technical description, not legal advice. For marketing consent, Elementor has an Acceptance field type. Send its value to the CRM as its own field, together with the submission time and the exact wording the visitor saw, so the record shows what was agreed and when. The Honeypot and reCAPTCHA field types are worth adding too, since spam that reaches the CRM costs a salesperson a call.

Sources

#Elementor#אלמנטור#Fireberry#monday.com#webhook#lead capture

Frequently asked questions

Does Elementor Pro have a built-in Fireberry or monday.com integration?

No. The native Actions After Submit list covers email, redirect, popup, a generic webhook and services such as MailChimp, ActiveCampaign and MailerLite, but no Israeli CRM. Fireberry, monday.com, ActiveTrail and Rav Messer are reached through the Webhook action with a tool in between, a third-party add-on, or the new_record PHP hook.

Can the Elementor Webhook action send an authorization header?

Not from its settings. The action takes a URL and an Advanced Data toggle, with no field for custom headers, which is why a CRM that needs a token cannot be called directly. Send the webhook to Zapier, Make, n8n or your own endpoint, which adds the token, or use the new_record hook in PHP.

Where do I find an Elementor lead that never reached the CRM?

In WP-Admin under Elementor > Submissions, provided the Collect Submissions action is on, which it is by default. You can open each submission or export all or selected ones to CSV, then compare that list against the leads the CRM received from the website to find what the webhook dropped.

How do I pass UTM parameters from an Elementor form to the CRM?

Add a Hidden field for each parameter and set its default value to the Request Parameter dynamic tag, type Get, with the parameter name such as utm_source and a fallback value. The value only exists on the landing URL, so a visitor who browses first needs first-touch attribution stored in the browser.

Why does my CRM get duplicate leads from Elementor?

Because the integration creates a new record on every submission. The same person fills in two forms, returns a day later, or a retry follows a timeout that had actually succeeded. Normalise the phone number to one format, search by phone and email first, and update the existing lead when one is found.

Keep reading

Related service

Custom CRM

A CRM built around your pipeline, connected to the tools you already use.

Learn more →←

About the author

Yehonatan Saadia

Freelance automation, web & MVP developer

I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.

Work with me

Have a project like this?

Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.