Pipeline Intelligence Book a Demo
Help · API

Lead API

Two different endpoints

Do not treat these as the same. Same API path, different apps. Wrong host → auth fails.
Product Full Lead API URL (different hosts)
CRM POST https://crm.pipelineintel.io/api/public/leads
Connect POST https://connect.pipelineintel.io/api/public/leads

Get the secret from that product’s Admin → Integrations → Website form → For developers.

Which product are you using?

Choose one to tailor the example below. Secrets are not interchangeable.

Authentication

Send the workspace API secret in one of these ways:

  • Authorization: Bearer YOUR_API_SECRET (recommended)
  • X-Lead-Intake-Secret: YOUR_API_SECRET

Also include tenantId (workspace ID) in the JSON body unless you are using a form embed token (hosted form path — not needed for Twin-style server posts).

Security: Treat the secret like a password. Rotate it in Admin if it leaks. Do not publish live secrets, workspace IDs, or form links with tokens on marketing pages.

Fields

Which fields are required is configured per workspace under Admin → Website form → Form fields. Company is always required. Defaults also require name, email, phone, industry / use case, and seats.

Pipeline field Also accepts
companycompany_name, organization, account
namecontactName, full_name, or first_name + last_name
emailemail_address, contact_email
phonephone_number, mobile
industryindustryUseCase, useCase, use_case
seatsseatCount, numberOfSeats, seatsNeeded
messagenotes, comments, description
formNameform, form_id, utm_campaign
tenantIdWorkspace ID from Admin

Nested customFields, fields, or properties objects are flattened automatically.

Example

Pick CRM or Connect above to fill the host. Until then, CRM is shown as the sample host — Connect uses a different host from the table.

curl -X POST 'https://crm.pipelineintel.io/api/public/leads' \
  -H 'Authorization: Bearer YOUR_API_SECRET' \
  -H 'Content-Type: application/json' \
  -d '{
    "tenantId": "WORKSPACE_ID",
    "company": "Acme Logistics",
    "name": "Jane Doe",
    "email": "jane@acme.example",
    "phone": "+12155550100",
    "industry": "Freight brokerage",
    "seats": "25",
    "message": "Interested in Connect + CRM",
    "formName": "twin-morning"
  }'

Daily lead agents (Twin, Zapier, Make, etc.)

If a tool offers “REST API” or “inbound webhook” to send a morning lead list, set the destination to the full URL for your product from Two different endpoints — not only the shared path /api/public/leads.

  • Schedule the agent daily (or whenever leads are ready).
  • Use the CRM host or the Connect host — never assume they are the same.
  • POST one lead per request; loop the list.
  • Map company, name, email, phone, industry, seats, and optional notes.
  • Set formName to something stable like twin-morning so reps see the source.

Twin’s own “inbound webhook” usually means something calling Twin to start an agent. For sending leads into Pipeline, Twin should call this Lead API instead.

What happens in Pipeline

  • Leads create or match CRM accounts and arrive unassigned.
  • Matching email on an existing account logs activity instead of duplicating.
  • care@pipeline.care is emailed on every submission (plus any extra addresses you configure).
  • Your team also gets in-app Signal alerts.

Website form without coding

Prefer the hosted form? In Admin, copy the form link or website snippet and paste it on your site. No API key in the browser.