Skip to main content
If your WordPress form plugin does not support custom webhook headers or JSON body formatting natively, you can use a lightweight PHP snippet to send form submissions directly to Z360. This guide covers Contact Form 7, WPForms, Fluent Forms, Ninja Forms, Formidable Forms, and Forminator. Each plugin section below includes snippets for both Z360 Forms and Z360 Pipelines — use the one that matches your setup.
If your form plugin supports webhooks natively with custom headers and field mapping (e.g., Gravity Forms with the Webhooks addon), you don’t need custom code. See Connect Z360 with WordPress Plugins instead.

Z360 Endpoints

Z360 provides two types of endpoints. Both accept flat JSON — no wrapper object needed. Forms (Webhook URL — no auth required):
  • URL format: https://app.z360.biz/webhooks/forms/z360_{uuid}
  • Header: Content-Type: application/json
  • Field names are snake_case: first_name, last_name, email, phone
  • Contacts are automatically tagged with “Inbound — Form”
  • Found in: Z360 → Forms → select form → Generate Form Links → Webhook section
Pipelines (API Endpoint — Bearer auth required):
  • URL format: https://app.z360.biz/forms/{id}/api
  • Headers: Content-Type: application/json and Authorization: Bearer {your_token}
  • Field names are Title Case with spaces: First Name, Last Name, Email, Phone Number
  • Found in: Z360 → Pipelines → select pipeline → three dots → Generate Link → API / Webhook tab
For Pipelines, the pipeline’s communication channel must be enabled. If disabled, the API endpoint will not process requests and will redirect to the Z360 homepage instead. The form may appear to submit successfully, but no lead will be created.

Field Name Reference

All field names are case-sensitive. Always copy them exactly as shown above.

Setup by Form Builder

Read the Using Code Snippets Safely section before adding any snippets.
Contact Form 7 is the only builder in this list that works natively using the free Contact Form 7 to Webhook plugin. It lets you write a custom JSON body and set custom headers directly in the UI.CF7 Form tab — note the field tag names (e.g., first-name, last-name, email, phone).

Connecting to Z360 Forms

Webhook tab configuration:
  • Check “Send to Webhook”.
  • Webhook URL: Paste your Z360 Webhook URL.
  • Method: POST
  • Headers:
  • Body:

Connecting to Z360 Pipelines

  • Webhook URL: Paste your Z360 API Endpoint URL.
  • Method: POST
  • Headers (one per line):
  • Body:
Replace the CF7 field tags with the actual tag names from your Form tab. Save and test.
Do not use curl-style syntax like -H \"Content-Type: application/json\". The plugin expects plain Key: Value format, one header per line.
WPForms’ built-in Webhooks addon (Elite plan) sends flat key-value JSON but cannot add custom Authorization headers required for Pipelines. The snippet below works with any version of WPForms, including WPForms Lite (free).Step 1: Install and activate the Code Snippets plugin (free).Step 2: Go to Snippets → Add New, name it, and paste the snippet for your use case.

Connecting to Z360 Forms

Connecting to Z360 Pipelines

How to find your field IDs: Open the form in the WPForms builder, click each field — the ID is shown in the left panel. Your form ID is visible in WPForms → All Forms.Step 3: Set the snippet to “Run snippet everywhere”, then click Save Changes and Activate.
Read the Using Code Snippets Safely section before activating any snippet.
Fluent Forms’ built-in Webhook integration (Pro plan) sends flat key-value JSON but cannot add Bearer auth headers. The snippet below works with any version of Fluent Forms, including the free plugin.Step 1: Install and activate the Code Snippets plugin (free).Step 2: Go to Snippets → Add New, name it, and paste the snippet for your use case.

Connecting to Z360 Forms

Connecting to Z360 Pipelines

Field key notes: If your Name field is a “Name Fields” type, values are stored under names.first_name and names.last_name. If you used separate text inputs, use the field names from each field’s settings (e.g., $form_data['first_name']). Your form ID is visible in Fluent Forms → All Forms.Step 3: Set the snippet to “Run snippet everywhere”, then click Save Changes and Activate.Do not add a Webhook feed in Fluent Forms’ settings for this form — the snippet handles everything.
Read the Using Code Snippets Safely section before activating any snippet.
Ninja Forms’ Webhooks addon (Elite or standalone) uses an ARGS-based field mapping interface that sends flat key-value data but cannot add custom auth headers.Step 1: Install and activate the Code Snippets plugin (free).Step 2: Go to Snippets → Add New, name it, and paste the snippet for your use case.

Connecting to Z360 Forms

Connecting to Z360 Pipelines

Field key notes: The field keys (first_name, email, etc.) must match the Key value set in each field’s Administration section in the Ninja Forms editor.Step 3: Set the snippet to “Run snippet everywhere”, then click Save Changes and Activate.Do not add a Webhooks action in Ninja Forms for this form — the snippet handles everything.
Read the Using Code Snippets Safely section before activating any snippet.
Formidable Forms’ built-in API addon (Business plan) uses Basic Auth, which is not compatible with Z360. The snippet below works with any version of Formidable Forms, including the free plugin.Step 1: Install and activate the Code Snippets plugin (free).Step 2: Go to Snippets → Add New, name it, and paste the snippet for your use case.

Connecting to Z360 Forms

Connecting to Z360 Pipelines

How to find your field IDs: Open the form in the editor, click each field — the ID appears in the field settings panel. Your form ID is shown in Formidable → Forms.Step 3: Set the snippet to “Run snippet everywhere”, then click Save Changes and Activate.
Read the Using Code Snippets Safely section before activating any snippet.
Forminator has a built-in webhook integration (free), but it sends data with auto-generated field keys like text-1 and email-1 that Z360 cannot map. The snippet below works with any version of Forminator.Step 1: Install and activate the Code Snippets plugin (free).Step 2: Go to Snippets → Add New, name it, and paste the snippet for your use case.

Connecting to Z360 Forms

Connecting to Z360 Pipelines

Field name notes: Edit the form, click each field, and check the Name value in the field settings sidebar. Replace name-1, email-1, phone-1 with your actual field names. If you used separate text fields instead of a combined Name field, replace the name handling block with simple lookups like $fields['text-1'].Step 3: Set the snippet to “Run snippet everywhere”, then click Save Changes and Activate.Do not also configure a webhook in Forminator’s Integrations tab for this form — the snippet handles everything.
Read the Using Code Snippets Safely section before activating any snippet.

Using Code Snippets Safely

The Code Snippets plugin is the safest way to add custom PHP to WordPress without editing theme files directly. Why Code Snippets instead of functions.php:
  • If a snippet has a PHP error, only that snippet is deactivated — your site keeps running. A broken functions.php can take your entire site down with a white screen.
  • Snippets survive theme updates and theme switches.
  • Each snippet can be turned on and off independently.
Before activating any snippet:
  • Double-check your form ID. A wrong form ID means the snippet silently does nothing — harmless, but no lead will arrive.
  • Double-check your field IDs and field names. Wrong values send empty data to Z360.
  • Verify your endpoint URL and Bearer token (for Pipelines). Copy both directly from Z360 — do not type from memory.
  • Test on a staging site first if you have one. If not, activate the snippet, submit one test entry with real data, and verify the lead appears in Z360 before going live.
  • Never paste code from untrusted sources. Only use snippets from official documentation or your development team.
If something goes wrong after activating a snippet:
  • Code Snippets automatically deactivates broken snippets and shows you the error in the admin dashboard.
  • If you cannot access the WordPress admin, rename the plugin folder via FTP/SFTP at /wp-content/plugins/code-snippets to something like code-snippets-disabled. This deactivates the plugin and all its snippets instantly. Your site will recover.
You can verify the endpoint independently before adding any code. Copy the example curl command from Z360’s API / Webhook tab, run it in your terminal, and confirm a lead is created. This helps isolate whether an issue is on the WordPress side or Z360 side.

Tips

  • Test with a real phone number with country code. Z360 validates phone numbers and rejects fake or test numbers.
  • Each pipeline has its own API endpoint. When connecting multiple pipelines, use the correct endpoint and token for each.
  • The webhook URL token and Bearer token may be the same value — but always copy each from its respective section in Z360.
  • If you are unsure about your form’s field IDs, submit a test entry and check the entry details in your form builder’s submissions page.

Frequently Asked Questions

The Forms webhook URL (/webhooks/forms/...) creates leads in a standalone Z360 Form. It uses snake_case field names and no authentication. The Pipelines API endpoint (/forms/{id}/api) creates leads in a specific pipeline stage. It uses Title Case field names with spaces and requires a Bearer token.
CF7’s webhook plugin lets you type a custom JSON body and set custom headers directly. Other form builders use key-value field mapping interfaces that cannot send custom authentication headers or control the exact JSON key format Z360 requires.
Yes. Code Snippets is a widely-used WordPress plugin with over 500,000 active installations. If a snippet causes an error, only that snippet is deactivated — it does not take down your site. It is significantly safer than editing functions.php directly.
Yes. Add both snippets with different function names. Both will fire when the form is submitted, sending data to both endpoints.
Yes. Create a separate snippet per form, or combine them in a single snippet with an if/elseif block checking the form ID.
No. A small webhook snippet only executes when the specific form is submitted. It adds no overhead to page loads or other site operations.

Troubleshooting

For Pipelines: the most likely cause is that the pipeline’s communication channel is disabled. When disabled, the API endpoint returns a redirect (HTTP 302). WordPress treats this as a success, so no error is shown. Enable the communication channel in your pipeline settings. For Forms: verify the Webhook URL matches exactly what Z360 shows.
A required field is missing or a field name does not match. For Forms, use snake_case: first_name, last_name, email, phone. For Pipelines, use Title Case: First Name, Last Name, Email, Phone Number. Phone numbers must be real and include a country code.
Pipelines only — the Bearer token is incorrect or missing. Copy it again from Z360’s API / Webhook tab. Make sure the format is exactly Bearer z360_your-token-here with a single space after “Bearer”.
Check four things: (1) the form ID in the snippet matches your actual form ID, (2) the field IDs or field names match your form’s fields exactly, (3) the endpoint URL is correct, and (4) the Bearer token is correct (for Pipelines). Enable WordPress debug logging by adding define('WP_DEBUG', true); and define('WP_DEBUG_LOG', true); to wp-config.php, then check wp-content/debug.log after a test submission.
Code Snippets automatically deactivates broken snippets. Go to your WordPress admin and fix the error. If you cannot access the admin, rename the code-snippets plugin folder via FTP at /wp-content/plugins/code-snippets to disable all snippets. Your site will recover immediately.
📖 Related articles: