Skip to main content
You do not need to write custom code to deliver live leads or booked appointments into 3i CRM. The 3i Inbound Gateway is natively compatible with all major automation builders and webhook tools. Below are copy-paste guides for the most common no-code platforms.

1. Zapier Setup Guide

Use the Webhooks by Zapier action to deliver leads from Facebook Lead Ads, TikTok, Google Forms, or your custom CRM.

Configuration Steps

  1. Add an Action step and search for Webhooks by Zapier.
  2. Select POST (or Custom Request) as the Event.
  3. Configure the webhook parameters:

Data Mapping in Zapier

Map your trigger variables into 3i keys:

Headers Configuration in Zapier

In the Headers section at the bottom of the Zapier action, add:

2. Make.com (Integromat) Setup Guide

Deliver leads from Make scenarios using the native HTTP module.

Configuration Steps

  1. Add the HTTP module and choose Make a request.
  2. Configure the module fields:
    • URL: https://api.3i.life/functions/v1/inbound-lead-gateway
    • Method: POST
    • Headers:
      • Name: x-source-token, Value: <YOUR_ASSIGNED_TOKEN>
      • Name: Content-Type, Value: application/json
      • Name: Idempotency-Key, Value: {{1.lead_id}}
    • Body type: Raw
    • Content type: JSON (application/json)
  3. In the Request content box, insert your JSON payload using Make’s drag-and-drop variables:

3. GoHighLevel (GHL) / LeadConnector Workflows

When using GoHighLevel to route leads or booked appointments to a 3i agent, use the Custom Webhook workflow action.
Zero-Header Path Format for GHL:
Some GHL workflow webhook actions do not easily support custom HTTP headers. 3i allows you to pass your token directly in the URL path so no custom headers are required.

Configuration in GHL

  1. In your GHL Workflow, add a new action: Webhook (or Custom Webhook).
  2. Set Method to POST.
  3. Set the URL to the path-based gateway address:
  4. GHL automatically sends the contact’s custom fields, appointments, and tags in the JSON body. 3i’s adaptive mapping engine automatically unpacks the contact without needing complex transform scripts.

4. Form Builders (Typeform, Jotform, ClickFunnels, Unbounce)

If your landing page builder supports direct webhook URLs upon form submission:
  1. Locate the Webhooks or Integrations panel in your form settings.
  2. Enter the path-based gateway URL:
  3. Set the method to POST.
  4. Submit a test form. 3i automatically unwraps the nested form answers, maps standard fields (name, phone, email), and saves custom questions to the lead’s profile.

Testing in Sandbox Mode (listen: true)

Before turning on live traffic in your Zap, Scenario, or Workflow, test your payload without creating live leads or triggering agent notifications. Add "listen": true to your test payload:
Expected Test Response:
Receiving HTTP 200 confirms that your URL, token, and JSON syntax are 100% verified. You can now remove "listen": true and activate live routing.

Troubleshooting & Common Mistakes

  • Cause: The x-source-token header is missing, contains whitespace, or the token is not recognized.
  • Fix: Verify your 36-character UUID token with your 3i client. If your platform (like ClickFunnels or GHL) doesn’t allow custom headers, use the URL path format:
    https://api.3i.life/functions/v1/inbound-lead-gateway/v/<YOUR_ASSIGNED_TOKEN>
  • Cause: The webhook was sent as application/x-www-form-urlencoded or multipart form data rather than raw JSON.
  • Fix: In Zapier, ensure Payload Type is set to json. In Make.com, ensure Body type is set to Raw and Content type is JSON (application/json).
  • Cause: Neither name nor first_name was supplied in the payload.
  • Fix: Contact name is mandatory. Ensure your trigger mapping includes at least first_name (or name).
  • Cause: The appointment date/time is missing or passed in an unparseable format.
  • Fix: Pass scheduled_at in standard UTC ISO 8601 format (e.g. 2026-09-30T15:00:00Z). Alternatively, pass appointment_date: "2026-09-30", appointment_time: "10:00 AM", and appointment_timezone: "America/New_York".
  • Cause: Looking for custom fields in standard CRM columns.
  • Fix: Any field unique to your platform that does not match a standard column is automatically swept into custom_fields with zero data loss. In 3i CRM, the receiving agent sees these under Lead Details → Vendor Data.