Skip to content
AI sales7 min read

Sending website leads to HubSpot and Pipedrive automatically

How to get website and chat leads into HubSpot or Pipedrive without retyping: the fields to send, how each CRM matches records, webhooks, Zapier and Make.

ASDK TeamPublished Updated 7 min read

On this page

TL;DR

  • A website lead is only useful once it is in the CRM, with an owner, the context of the conversation and the right next step. Copying it from an email inbox loses hours and details.
  • HubSpot matches contacts by email address; Pipedrive expects you to find or create the person first and then attach a lead. Design your integration around those rules or you will create duplicates.
  • There are three ways to connect: a native connector, webhooks through Zapier or Make, or your own code against the CRM's API. All three need the same field mapping, the same duplicate rules and a way to notice when something fails.

What a good lead record contains

Before choosing how to connect, decide what should arrive. A lead from a website conversation can carry far more than a form submission, and that context is what makes the first sales call better.

FieldWhy it matters
Name, work email, companyIdentity and duplicate matching
Phone (optional)Only if your team calls
Source page and campaign (UTM)Which content and channels produce leads
Answers to qualifying questionsTeam size, timeline, use case: what routing and scoring use
Score or temperatureWhether this needs a call today
Conversation summaryThree lines the rep reads before the call
Link to the full transcriptSo nobody asks the same questions twice
Meeting booked (if any)Date, time and host
ConsentWhat the visitor agreed to and when

The summary, the transcript and the qualifying answers are what turn a record into a warm human handoff. For how to collect them without a long form, see conversational lead generation, and for turning the answers into a priority, our lead scoring model.

How HubSpot handles incoming leads

HubSpot stores people as contacts, linked to companies and deals. Three rules shape any integration:

Email is the key. HubSpot's API guide says "email address is the primary unique identifier to avoid duplicate contacts in HubSpot." The knowledge base adds that HubSpot "automatically deduplicates contacts using email addresses, and companies using domain names." When a form submits data for an existing email, it updates that contact rather than creating a new one (HubSpot Knowledge Base).

API-created companies are an exception. The same page warns that "companies created through API will not be deduplicated by the Company domain name property," and that this includes installed third-party sync apps. If your integration creates companies, search by domain first or let HubSpot associate contacts to companies itself.

Use upsert, not create. The Contacts API has a batch upsert endpoint: "if the contacts already exist, they'll be updated and if the contacts don't exist, they'll be created," keyed on email or a custom unique property. Batch operations take up to 100 records at a time. A contact needs at least one of email, first name or last name; HubSpot recommends always including email.

Two more details trip people up:

  • Lifecycle stage only moves forward through the API. You "can only set the value forward in the stage order"; moving a customer back to "lead" requires clearing the field first. Do not let a website conversation overwrite an existing customer's stage.
  • Enumeration properties need internal values. Send the internal name of a dropdown option, not its label.

How Pipedrive handles incoming leads

Pipedrive separates persons and organizations from what you sell to them: leads and deals. According to the Leads API, "Leads are potential deals stored in Leads Inbox before they are archived or converted to a deal." That makes the Leads Inbox the natural home for website leads that are not yet qualified.

The rules:

  • A lead needs a title and a person or organization. "A lead always has to be linked to a person or an organization or both."
  • The person must exist first. "If the person does not exist yet, it needs to be created first."
  • Find before you create. The API's add-person endpoint requires only a name and says nothing about matching existing persons, so search first. The Persons API search endpoint accepts fields=email and exact_match=true, then you create the person only if nothing matches.
  • Source is set for you. "All leads created through the Pipedrive API will have a lead source and origin set to API." Use labels or the channel fields to tell website chat leads apart from other API sources.
  • Set the owner. If you leave owner_id out, the lead belongs to the user whose credentials made the request. Route it explicitly.

So a website lead in Pipedrive is three calls: search person by email, create the person if needed (with the organization), create the lead with a title such as "Website chat: demo request, 60 people, Q1 start," the owner and a label.

Three ways to connect

1. A native connector

The chat or form tool connects to your CRM through the CRM's app marketplace, usually with OAuth. You map fields once in a settings screen. This is the least work and the easiest to maintain, as long as the connector supports the fields and rules above. Ask the vendor how it handles duplicates, lifecycle stages and owners before you rely on it.

2. Webhooks plus Zapier or Make

If the tool sends webhooks, an automation platform can receive them and call the CRM.

  • Zapier offers a Catch Hook trigger that parses the request body and a Catch Raw Hook that keeps the raw body and headers. Its help page lists webhooks on the Professional, Team and Enterprise plans, not on Free, with payloads up to 10 MB for triggers (Zapier).
  • Make custom webhooks run a scenario "immediately after the webhook URL receives a request," queue requests when the scenario runs on a schedule, and process up to 300 incoming requests per 10 seconds. Make deactivates webhooks not connected to any scenario for more than five days (Make).

This route is flexible: you can add enrichment, a Slack alert or a spreadsheet log in the same flow. It is also one more system to monitor.

3. Your own code

A small service receives the webhook and calls the HubSpot or Pipedrive API directly. Full control, no per-task fees, but you own retries, authentication and API changes.

A sample webhook payload and mapping

Whatever the route, the data looks similar. A simplified example of what a chat tool might send:

JSON
{
  "event": "lead.created",
  "occurred_at": "2026-10-21T09:14:00Z",
  "contact": { "name": "Dana Kim", "email": "dana@example.com", "company": "Example Freight" },
  "qualification": { "team_size": "51-200", "timeline": "next quarter", "use_case": "route planning" },
  "score": 72,
  "source": { "page": "https://www.example.com/pricing", "utm_source": "linkedin" },
  "summary": "Asked about pricing for 80 users and the accounting integration. Wants a demo.",
  "transcript_url": "https://app.example.com/conversations/abc123",
  "consent": { "marketing": false, "follow_up": true }
}

And where each field goes:

Payload fieldHubSpotPipedrive
contact.emailContact email (upsert key)Person email (search key)
contact.companyCompany, associated to the contactOrganization, linked to the person
qualification fieldsCustom contact propertiesCustom fields on the lead
scoreCustom property or your score propertyCustom field or a label (hot, warm)
source.page, utm_sourceCustom contact propertiesChannel and custom fields
summary, transcript_urlA note on the contactA note on the lead
consentSubscription and consent propertiesMarketing status on the person

Rules that keep the CRM clean

  • Never create without matching. Upsert by email in HubSpot; search then create in Pipedrive.
  • Never downgrade. A returning customer who chats should not become a new lead. Check the lifecycle stage or existing deals first, and route customers to their account owner.
  • Set an owner on every record, by territory, round robin or existing account owner.
  • Make retries safe. Webhooks can be delivered twice. Use the event ID or the email plus timestamp to avoid creating two notes or two leads.
  • Alert on failures. A broken token or a renamed custom field can silently stop all leads. Send failures to a channel someone watches, and keep a log you can replay.
  • Respect consent. Record what the visitor agreed to. Under GDPR Article 21, people in the EU can object at any time to direct marketing, after which their data must no longer be used for it. A request for a demo is not consent to a newsletter.

Test before you trust it

Send a test lead with a new email

Check that the contact or person, the company or organization and the lead appear once, with the owner, source and summary.

Send it again

Same email, new conversation. You should get an updated record and a new note, not a duplicate.

Send one for an existing customer

It should go to the account owner, not into the new-lead queue, and the customer's lifecycle stage should not change.

Break it on purpose

Revoke the token or rename a field in a test account, send a lead and confirm someone gets an alert.

Time it

Measure from the visitor's last message to the CRM notification. Minutes matter; see speed to lead.

Where ASDK fits

ASDK's Sales agent, in early access, qualifies visitors, books meetings and sends leads with their conversations to your team. Native HubSpot and Pipedrive connections are part of CRM sync on the Pro plan; they are built and waiting for approval in the vendors' app marketplaces, so treat them as coming soon. Until then, webhooks, which work with Zapier and Make, are available in early access from the Starter plan. Plan details are on the pricing page. Whatever tool you use, the field list and the rules above are what make lead qualification on the website pay off in the CRM.

ASDK agentEarly access

Try the Sales agent in early access

Qualifies visitors, books meetings and sends leads to your CRM through webhooks and Zapier.

Automatic lead delivery is not just a time saver. It is how the context of a website conversation reaches the person who calls back, while the buyer still remembers asking. Map the fields once, respect each CRM's matching rules, and watch for failures, and your sales team will never have to ask "what did they want?" again.

Frequently asked questions

How do I avoid duplicate contacts when sending website leads to HubSpot?

Always send the email address. HubSpot uses email as the main unique identifier for contacts and updates the existing record when an email matches. Through the API, use the upsert endpoint with email as the identifier instead of a plain create.

Should website leads go into Pipedrive as leads or deals?

Usually as leads. Pipedrive's Leads Inbox is meant for potential deals that are not yet qualified, and a lead can be converted to a deal later. Send directly to deals only if your team treats every website request as a qualified opportunity.

Do I need Zapier or Make to connect a website chat to my CRM?

Not if the chat tool has a native connector for your CRM. If it only offers webhooks, an automation tool such as Zapier or Make can receive them and create records. Note that Zapier lists webhooks on its paid plans only.

What should a lead record from a website conversation include?

Name, work email and company; the page where the conversation started and the campaign source; the answers to qualifying questions; a short summary and a link to the full transcript; the consent the visitor gave; and any meeting that was booked.

Sources

Pages we read for this article, with the date we checked each one.

  1. Contacts API guide — HubSpot Developers — accessed October 21, 2026
  2. Deduplicate records in HubSpot — HubSpot Knowledge Base (updated September 2026) — accessed October 21, 2026
  3. Leads API — Pipedrive Developers — accessed October 21, 2026
  4. Persons API — Pipedrive Developers — accessed October 21, 2026
  5. Trigger Zaps from webhooks — Zapier Help Center — accessed October 21, 2026
  6. Webhooks — Make Help Center — accessed October 21, 2026
  7. Regulation (EU) 2016/679 (General Data Protection Regulation), Article 21 — EUR-Lex — accessed October 21, 2026

Glossary terms in this article