> ## Documentation Index
> Fetch the complete documentation index at: https://docs.z360.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect Z360 Forms/Pipelines with WordPress using custom code

<iframe src="https://www.youtube.com/embed/4hnDkU7MM8A" title="YouTube video player" frameborder="0" className="w-full aspect-video rounded-xl" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />

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.

<Note>
  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](/connect-z360-with-wordpress-plugins) instead.
</Note>

### **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

<Warning>
  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.
</Warning>

### **Field Name Reference**

| Description   | Forms (Webhook) | Pipelines (API) |
| ------------- | --------------- | --------------- |
| First name    | `first_name`    | `First Name`    |
| Last name     | `last_name`     | `Last Name`     |
| Email address | `email`         | `Email`         |
| Phone number  | `phone`         | `Phone Number`  |

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

### **Setup by Form Builder**

Read the [Using Code Snippets Safely](#using-code-snippets-safely) section before adding any snippets.

<AccordionGroup>
  <Accordion title="Contact Form 7 (native — no code needed)">
    Contact Form 7 is the only builder in this list that works natively using the free [Contact Form 7 to Webhook](https://wordpress.org/plugins/cf7-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:**
      ```text theme={null}
      Content-Type: application/json
      ```
    * **Body:**
      ```json theme={null}
      {
          "first_name": "[first-name]",
          "last_name": "[last-name]",
          "email": "[email]",
          "phone": "[phone]"
      }
      ```

    #### Connecting to Z360 Pipelines

    * **Webhook URL:** Paste your Z360 API Endpoint URL.
    * **Method:** POST
    * **Headers** (one per line):
      ```text theme={null}
      Content-Type: application/json
      Authorization: Bearer z360_your-token-here
      ```
    * **Body:**
      ```json theme={null}
      {
          "First Name": "[first-name]",
          "Last Name": "[last-name]",
          "Email": "[email]",
          "Phone Number": "[phone]"
      }
      ```

    Replace the CF7 field tags with the actual tag names from your Form tab. Save and test.

    <Warning>
      Do not use curl-style syntax like `-H \"Content-Type: application/json\"`. The plugin expects plain `Key: Value` format, one header per line.
    </Warning>
  </Accordion>

  <Accordion title="WPForms">
    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](https://wordpress.org/plugins/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

    ```php theme={null}
    add_action('wpforms_process_complete', 'wpforms_to_z360_form', 10, 4);

    function wpforms_to_z360_form($fields, $entry, $form_data, $entry_id) {
        // Replace 6 with your WPForms form ID
        if ($form_data['id'] != 6) return;

        // Replace 1, 2, 3, 4 with your actual field IDs
        $payload = array(
            'first_name' => $fields[1]['value'],
            'last_name'  => $fields[2]['value'],
            'email'      => $fields[3]['value'],
            'phone'      => $fields[4]['value'],
        );

        wp_remote_post('https://app.z360.biz/webhooks/forms/z360_your-token-here', array(
            'method'  => 'POST',
            'headers' => array('Content-Type' => 'application/json'),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    #### Connecting to Z360 Pipelines

    ```php theme={null}
    add_action('wpforms_process_complete', 'wpforms_to_z360_pipeline', 10, 4);

    function wpforms_to_z360_pipeline($fields, $entry, $form_data, $entry_id) {
        // Replace 6 with your WPForms form ID
        if ($form_data['id'] != 6) return;

        // Replace 1, 2, 3, 4 with your actual field IDs
        $payload = array(
            'First Name'   => $fields[1]['value'],
            'Last Name'    => $fields[2]['value'],
            'Email'        => $fields[3]['value'],
            'Phone Number' => $fields[4]['value'],
        );

        wp_remote_post('https://app.z360.biz/forms/YOUR_FORM_ID/api', array(
            'method'  => 'POST',
            'headers' => array(
                'Content-Type'  => 'application/json',
                'Authorization' => 'Bearer z360_your-token-here',
            ),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    **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**.

    <Warning>
      Read the [Using Code Snippets Safely](#using-code-snippets-safely) section before activating any snippet.
    </Warning>
  </Accordion>

  <Accordion title="Fluent Forms">
    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](https://wordpress.org/plugins/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

    ```php theme={null}
    add_action('fluentform/submission_inserted', 'fluentform_to_z360_form', 10, 3);

    function fluentform_to_z360_form($entry_id, $form_data, $form) {
        // Replace 4 with your Fluent Forms form ID
        if ($form->id != 4) return;

        $payload = array(
            'first_name' => $form_data['names']['first_name'] ?? $form_data['first_name'] ?? '',
            'last_name'  => $form_data['names']['last_name'] ?? $form_data['last_name'] ?? '',
            'email'      => $form_data['email'] ?? '',
            'phone'      => $form_data['phone'] ?? '',
        );

        wp_remote_post('https://app.z360.biz/webhooks/forms/z360_your-token-here', array(
            'method'  => 'POST',
            'headers' => array('Content-Type' => 'application/json'),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    #### Connecting to Z360 Pipelines

    ```php theme={null}
    add_action('fluentform/submission_inserted', 'fluentform_to_z360_pipeline', 10, 3);

    function fluentform_to_z360_pipeline($entry_id, $form_data, $form) {
        // Replace 4 with your Fluent Forms form ID
        if ($form->id != 4) return;

        $payload = array(
            'First Name'   => $form_data['names']['first_name'] ?? $form_data['first_name'] ?? '',
            'Last Name'    => $form_data['names']['last_name'] ?? $form_data['last_name'] ?? '',
            'Email'        => $form_data['email'] ?? '',
            'Phone Number' => $form_data['phone'] ?? '',
        );

        wp_remote_post('https://app.z360.biz/forms/YOUR_FORM_ID/api', array(
            'method'  => 'POST',
            'headers' => array(
                'Content-Type'  => 'application/json',
                'Authorization' => 'Bearer z360_your-token-here',
            ),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    **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.

    <Warning>
      Read the [Using Code Snippets Safely](#using-code-snippets-safely) section before activating any snippet.
    </Warning>
  </Accordion>

  <Accordion title="Ninja Forms">
    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](https://wordpress.org/plugins/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

    ```php theme={null}
    add_action('ninja_forms_after_submission', 'ninjaforms_to_z360_form');

    function ninjaforms_to_z360_form($form_data) {
        // Replace 1 with your Ninja Forms form ID
        if ($form_data['form_id'] != 1) return;

        $fields = array();
        foreach ($form_data['fields'] as $field) {
            $fields[$field['key']] = $field['value'];
        }

        // Replace field keys with yours
        $payload = array(
            'first_name' => $fields['first_name'] ?? '',
            'last_name'  => $fields['last_name'] ?? '',
            'email'      => $fields['email'] ?? '',
            'phone'      => $fields['phone'] ?? '',
        );

        wp_remote_post('https://app.z360.biz/webhooks/forms/z360_your-token-here', array(
            'method'  => 'POST',
            'headers' => array('Content-Type' => 'application/json'),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    #### Connecting to Z360 Pipelines

    ```php theme={null}
    add_action('ninja_forms_after_submission', 'ninjaforms_to_z360_pipeline');

    function ninjaforms_to_z360_pipeline($form_data) {
        // Replace 1 with your Ninja Forms form ID
        if ($form_data['form_id'] != 1) return;

        $fields = array();
        foreach ($form_data['fields'] as $field) {
            $fields[$field['key']] = $field['value'];
        }

        // Replace field keys with yours
        $payload = array(
            'First Name'   => $fields['first_name'] ?? '',
            'Last Name'    => $fields['last_name'] ?? '',
            'Email'        => $fields['email'] ?? '',
            'Phone Number' => $fields['phone'] ?? '',
        );

        wp_remote_post('https://app.z360.biz/forms/YOUR_FORM_ID/api', array(
            'method'  => 'POST',
            'headers' => array(
                'Content-Type'  => 'application/json',
                'Authorization' => 'Bearer z360_your-token-here',
            ),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    **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.

    <Warning>
      Read the [Using Code Snippets Safely](#using-code-snippets-safely) section before activating any snippet.
    </Warning>
  </Accordion>

  <Accordion title="Formidable Forms">
    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](https://wordpress.org/plugins/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

    ```php theme={null}
    add_action('frm_after_create_entry', 'formidable_to_z360_form', 30, 2);

    function formidable_to_z360_form($entry_id, $form_id) {
        // Replace 1 with your Formidable form ID
        if ($form_id != 1) return;

        // Replace 25, 26, 27, 28 with your actual field IDs
        $payload = array(
            'first_name' => FrmEntryMeta::get_entry_meta_by_field($entry_id, 25),
            'last_name'  => FrmEntryMeta::get_entry_meta_by_field($entry_id, 26),
            'email'      => FrmEntryMeta::get_entry_meta_by_field($entry_id, 27),
            'phone'      => FrmEntryMeta::get_entry_meta_by_field($entry_id, 28),
        );

        wp_remote_post('https://app.z360.biz/webhooks/forms/z360_your-token-here', array(
            'method'  => 'POST',
            'headers' => array('Content-Type' => 'application/json'),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    #### Connecting to Z360 Pipelines

    ```php theme={null}
    add_action('frm_after_create_entry', 'formidable_to_z360_pipeline', 30, 2);

    function formidable_to_z360_pipeline($entry_id, $form_id) {
        // Replace 1 with your Formidable form ID
        if ($form_id != 1) return;

        // Replace 25, 26, 27, 28 with your actual field IDs
        $payload = array(
            'First Name'   => FrmEntryMeta::get_entry_meta_by_field($entry_id, 25),
            'Last Name'    => FrmEntryMeta::get_entry_meta_by_field($entry_id, 26),
            'Email'        => FrmEntryMeta::get_entry_meta_by_field($entry_id, 27),
            'Phone Number' => FrmEntryMeta::get_entry_meta_by_field($entry_id, 28),
        );

        wp_remote_post('https://app.z360.biz/forms/YOUR_FORM_ID/api', array(
            'method'  => 'POST',
            'headers' => array(
                'Content-Type'  => 'application/json',
                'Authorization' => 'Bearer z360_your-token-here',
            ),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    **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**.

    <Warning>
      Read the [Using Code Snippets Safely](#using-code-snippets-safely) section before activating any snippet.
    </Warning>
  </Accordion>

  <Accordion title="Forminator">
    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](https://wordpress.org/plugins/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

    ```php theme={null}
    add_action('forminator_custom_form_submit_before_set_fields', 'forminator_to_z360_form', 10, 3);

    function forminator_to_z360_form($entry, $form_id, $field_data_array) {
        // Replace 1 with your Forminator form ID
        if ($form_id != 1) return;

        $fields = array();
        foreach ($field_data_array as $field) {
            $fields[$field['name']] = $field['value'];
        }

        // Handle Name field (may contain first-name and last-name as sub-values)
        $first = '';
        $last = '';
        if (isset($fields['name-1']) && is_array($fields['name-1'])) {
            $first = $fields['name-1']['first-name'] ?? '';
            $last  = $fields['name-1']['last-name'] ?? '';
        } else {
            $first = $fields['name-1'] ?? '';
        }

        // Replace field names (email-1, phone-1) with yours
        $payload = array(
            'first_name' => $first,
            'last_name'  => $last,
            'email'      => $fields['email-1'] ?? '',
            'phone'      => $fields['phone-1'] ?? '',
        );

        wp_remote_post('https://app.z360.biz/webhooks/forms/z360_your-token-here', array(
            'method'  => 'POST',
            'headers' => array('Content-Type' => 'application/json'),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    #### Connecting to Z360 Pipelines

    ```php theme={null}
    add_action('forminator_custom_form_submit_before_set_fields', 'forminator_to_z360_pipeline', 10, 3);

    function forminator_to_z360_pipeline($entry, $form_id, $field_data_array) {
        // Replace 1 with your Forminator form ID
        if ($form_id != 1) return;

        $fields = array();
        foreach ($field_data_array as $field) {
            $fields[$field['name']] = $field['value'];
        }

        // Handle Name field (may contain first-name and last-name as sub-values)
        $first = '';
        $last = '';
        if (isset($fields['name-1']) && is_array($fields['name-1'])) {
            $first = $fields['name-1']['first-name'] ?? '';
            $last  = $fields['name-1']['last-name'] ?? '';
        } else {
            $first = $fields['name-1'] ?? '';
        }

        // Replace field names (email-1, phone-1) with yours
        $payload = array(
            'First Name'   => $first,
            'Last Name'    => $last,
            'Email'        => $fields['email-1'] ?? '',
            'Phone Number' => $fields['phone-1'] ?? '',
        );

        wp_remote_post('https://app.z360.biz/forms/YOUR_FORM_ID/api', array(
            'method'  => 'POST',
            'headers' => array(
                'Content-Type'  => 'application/json',
                'Authorization' => 'Bearer z360_your-token-here',
            ),
            'body'    => wp_json_encode($payload),
            'timeout' => 15,
        ));
    }
    ```

    **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.

    <Warning>
      Read the [Using Code Snippets Safely](#using-code-snippets-safely) section before activating any snippet.
    </Warning>
  </Accordion>
</AccordionGroup>

### **Using Code Snippets Safely**

The [Code Snippets](https://wordpress.org/plugins/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.

<Warning>
  **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.
</Warning>

**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.

<Tip>
  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.
</Tip>

### **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

<AccordionGroup>
  <Accordion title="What's the difference between the Forms and Pipelines endpoints?">
    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.
  </Accordion>

  <Accordion title="Why does CF7 work natively but other builders need code?">
    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.
  </Accordion>

  <Accordion title="Is the Code Snippets plugin safe?">
    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.
  </Accordion>

  <Accordion title="Can I connect to both a Form and a Pipeline from the same WordPress form?">
    Yes. Add both snippets with different function names. Both will fire when the form is submitted, sending data to both endpoints.
  </Accordion>

  <Accordion title="Can I connect multiple WordPress forms to different Z360 pipelines?">
    Yes. Create a separate snippet per form, or combine them in a single snippet with an `if/elseif` block checking the form ID.
  </Accordion>

  <Accordion title="Will the Code Snippets plugin slow down my site?">
    No. A small webhook snippet only executes when the specific form is submitted. It adds no overhead to page loads or other site operations.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Form submits without error but no lead appears in Z360">
    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.
  </Accordion>

  <Accordion title="Getting a 422 Unprocessable Content error">
    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.
  </Accordion>

  <Accordion title="Getting a 401 Unauthorized error">
    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".
  </Accordion>

  <Accordion title="Code snippet is activated but no lead is created">
    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.
  </Accordion>

  <Accordion title="Site shows an error after activating a Code Snippet">
    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.
  </Accordion>
</AccordionGroup>

📖 **Related articles:**

* [Connect Z360 with WordPress Plugins](/connect-z360-with-wordpress-plugins)
* [Connect Z360 with Bit Integrations](/connect-z360-with-bit-integrations)
* [Connect Z360 with Third-Party Forms via Zapier](/connect-z360-with-third-party-forms-via-zapier)
* [Integrations Overview](/Integrations-overview)
