---
title: "Linkbreakers + Zoho CRM: QR lead capture and campaign tracking"
description: "Sign in with Zoho and every person who scans your QR codes and gives their email becomes a Zoho CRM Contact or Lead, with their form answers in fields, tagged so you can find each campaign's people, optionally with a deal for your sales team, and opted out of email unless they consented. Setup, what is synced, and the Assistant and MCP tools."
canonical: "https://linkbreakers.com/help/article/linkbreakers-zoho-crm-integration-qr-leads-and-campaign-tracking"
last-updated: 2026-11-09
---

# Linkbreakers + Zoho CRM: QR lead capture and campaign tracking

> Sign in with Zoho and every person who scans your QR codes and gives their email becomes a Zoho CRM Contact or Lead, with their form answers in fields, tagged so you can find each campaign's people, optionally with a deal for your sales team, and opted out of email unless they consented. Setup, what is synced, and the Assistant and MCP tools.

:::try-ai-prompt {"prompt":"Connect Zoho CRM, tag synced people with Trade show and qr-{link}, create a deal in the Qualification stage for each one, and use my form's Consent field as their marketing consent","description":"Connect Zoho CRM with the Assistant.","target":"assistant"}:::

## Short answer

Linkbreakers connects to Zoho CRM directly. In the dashboard, open **Integrations**, pick **Zoho CRM** and select **Connect with Zoho CRM**: you sign in to Zoho and allow Linkbreakers, with no key to copy and nothing to install. From then on, every person who goes through one of your links or QR codes and whose email Linkbreakers knows, for example after a lead form, is created or updated in Zoho CRM as a Contact, or as a Lead if you choose, with their name, phone and form answers in fields. You can tag them, so each campaign's people are one filter away, and have Linkbreakers create a deal for each one in the stage you choose. People who did not consent are created with Email Opt Out ticked.

No Zapier, Make or webhook is needed. The integration is available on every plan.

## Quick summary

- Sign in with Zoho, in whichever Zoho data center your account is (all but China)
- People are matched on email and created or updated as Contacts, or as Leads
- Visitors known only by their phone number are not synced: Zoho CRM people are matched on email
- Form answers go to writable Contact and Lead fields, by API name
- One main tag, plus up to 10 more tags, with `{link}` for the link's name. Tags work on every Zoho CRM edition, Free included
- Optionally a deal in the stage you choose, one open deal per contact
- Consent sets Email Opt Out: a new person who did not consent is opted out, and nobody who opted out is opted back in without consenting
- Only people's visits: bots, link previews and AI agents never reach Zoho CRM
- Also set up from the Assistant, the MCP server or the REST API

## How it works

A person is synced when a visitor goes through a step of a link's workflow and Linkbreakers knows their email. That is usually right after a [lead form](/help/article/how-to-add-a-lead-capture-form-to-a-qr-code), but it can also come from the chat bot or any step that saves visitor data. Linkbreakers sends the person to Zoho CRM from its servers, once per step, at the moments the connection covers (all of them by default).

Linkbreakers looks the email up in Zoho CRM. By default it updates the first Contact with that email, or creates one. If you chose leads, it updates the Lead with that email; someone who is already a Contact stays a Contact and is updated there; anyone else becomes a new Lead. Then Linkbreakers adds the tags and creates the deal if you asked for one.

## Connect Zoho CRM

1. In Linkbreakers, open **Integrations** in the dashboard and pick **Zoho CRM**.
2. Select **Connect with Zoho CRM**, sign in to Zoho and allow Linkbreakers. Zoho finds the data center your account lives in by itself. You come back to the page, connected to your organization.
3. Make sure the Zoho user you signed in with can create and edit Contacts, Leads and Deals: whatever they can do, the sync can do.
4. **Allow consent to be recorded.** The user's profile needs edit access to the **Email Opt Out** field. In Zoho CRM, open **Setup > Users and Control > Security Control > Profiles**, open their profile, then **Field-level access**, and give edit access to Email Opt Out for Contacts and for Leads.
5. Under **Add contacts to a tag**, choose a tag, or **No tag: contacts only**.
6. Set the options and the delivery setting below, then save.

The access Zoho grants is encrypted when it is stored and never shown. Disconnecting deletes it; you can also revoke it in Zoho at any time.

## What gets synced

| Linkbreakers | Zoho CRM |
|---|---|
| Email | Email (the match) |
| First name, last name | First Name, Last Name |
| Phone | Phone |
| Form answers and other visitor data | Writable Contact or Lead fields with the same API name, or the one you map them to |
| The tag you chose, and your tags | Tags on the person, created if needed |
| Marketing consent | Email Opt Out |

An answer goes to the field with the same API name, such as `Lead_Source` or `Company_Size`, or to the field you map it to on the Zoho CRM page. Values are sent as the field takes them: a date as a date, a whole number for an integer field, and text cut to the field's length. Fields Linkbreakers cannot write are left out. **Test connection** lists the field keys Linkbreakers can write to. To add one, create it in Zoho CRM under **Setup > Customization > Modules and Fields > Contacts (and Leads)**.

Zoho CRM requires a last name, and a Lead requires a company. A visitor who gave no last name gets the part of their email before the @, and a Lead with no company answer gets `[not provided]`.

## Options

**Contact or lead.** Under **What Zoho CRM gets for each person**:

- **The contact only**: a Contact
- **The contact and a lead**: a Lead instead of a Contact, unless the person is already a Contact
- **The contact and a deal**: a Contact and a Deal in the stage you choose, linked to the contact. Its **Title** is the deal name, `{link}: {name}` by default, where `{link}` is the link's name and `{name}` the person's name or email. The closing date is set 30 days after it is created

While a contact has an open deal, no new one is created: a visitor who goes through several steps gets one deal, not one per step. Once it is closed, won or lost, a new visit creates a new one.

**Tags.** The tag you chose under **Add contacts to a tag**, plus tags you add, separated by commas, up to 10, each up to 100 characters. `{link}` becomes the name of the link the person came through, so `qr-{link}` tells you which QR code brought each person. A tag the module does not have yet is created. Tags are only ever added, never removed.

**Marketing consent.** Choose the answer where people agree to hear from you: the **Linkbreakers consent** (a Consent field on your form, or the marketing consent goal of the [chat bot](/help/article/how-to-add-an-ai-chat-bot-to-a-qr-code)), or any other answer, such as a checkbox of your own. You can also tick **Add to the tag only those who consented**: everyone is synced, only those who said yes get the main tag.

Zoho CRM has no double opt-in Linkbreakers drives.

## Marketing consent in Zoho CRM

Consent is the **Email Opt Out** field on the Contact or Lead:

- **A new person who said yes** to your consent answer is created with Email Opt Out unticked
- **A new person who did not say yes** is created with Email Opt Out ticked, whatever your organization's default. With no consent answer chosen, nobody has said yes, so every new person is opted out
- **An existing person who said yes** has Email Opt Out unticked
- **An existing person who did not say yes** is left as they are, so someone who opted out stays opted out

If the user's profile cannot edit Email Opt Out, people still sync, and the page shows that consent was not recorded until you give that access (step 4 above).

The Linkbreakers consent field is never pre-ticked, and each answer is kept on the visitor's profile with the wording they agreed to and when.

## Which visitors and which links

The Zoho CRM page has the same three settings as the other Linkbreakers integrations:

- **Where**: every link, or only some links, directories and tags
- **When**: the moments of a visit (Entry, Interaction, Routing, Exit), or specific steps
- **What is sent**: all visitor data, only some, or just the visit. Email and phone are always sent

Only visits by people are synced. Visits past your plan's tracked visits allowance are not synced.

## What is not synced

- Visitors without an email, including those known only by their phone. They are skipped, not counted as failures
- Answers with no matching writable field
- Accounts, campaigns, tasks and other modules than Contacts, Leads and Deals
- Anything back from Zoho CRM but tags, fields and deal stages

## Set it up from the Assistant, MCP or the API

**Assistant**: in the dashboard, ask "Connect Zoho CRM and tag new people with Trade show". It gives you a sign-in link.

**MCP server**: an agent connected to the [Linkbreakers MCP server](/help/article/mcp-server-setup) has `contact_integration_oauth_start` (the sign-in link), `contact_integration_lists` (the tags), `contact_integration_fields`, `contact_integration_pipelines` (the deal stages), `contact_integration_update`, `contact_integration_test`, `contact_integration_get`, `contact_integrations_list` and `contact_integration_disconnect`, with the tool `CONTACT_TOOL_ZOHO_CRM`. Zoho CRM never takes a key: the person opens the sign-in link, and Linkbreakers finishes the connection when they come back.

**REST API**, with a token that has the `integrations:write` scope:

```bash
curl -X POST https://api.linkbreakers.com/v1/integrations/contacts/CONTACT_TOOL_ZOHO_CRM/oauth/start \
  -H "Authorization: Bearer $LINKBREAKERS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"environment": "CONTACT_OAUTH_ENVIRONMENT_PRODUCTION"}'

curl -X PATCH https://api.linkbreakers.com/v1/integrations/contacts/CONTACT_TOOL_ZOHO_CRM \
  -H "Authorization: Bearer $LINKBREAKERS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"contactListId": "Trade show", "options": {"tags": ["qr-{link}"], "consentAttributeKey": "$marketingConsent", "recordKind": "CONTACT_RECORD_KIND_DEAL", "pipelineId": "DEALS", "stageId": "Qualification"}}'
```

The sign-in link (`signInUrl`) works once, for 15 minutes, for the member who asked for it.

## When to use Zoho workflows or webhooks

The native connection writes Contacts, Leads, deals, tags and Email Opt Out. To assign owners, score leads or start a cadence, build a Zoho CRM workflow rule on the Contact, Lead or Deal Linkbreakers creates. For modules the connection does not write, send [Linkbreakers webhooks](/help/article/how-do-webhooks-work-in-linkbreakers) to Zapier, Make or n8n.

## Limits and caveats

- **Email required.** Phone-only visitors are skipped
- **Zoho's China data center is not supported**
- **One Zoho CRM organization and one main tag per workspace**, plus up to 10 extra tags
- **Fields must exist** with a writable type, or the answer is left out
- **One open deal per contact**, by design. Deals are created for Contacts, not Leads
- **One deal pipeline.** Deals go to the stages of the Deals module, not to separate pipelines
- **No retries.** A record Zoho CRM refuses is reported as the last error on the page, not sent again
- **One way.** Nothing is read back from Zoho CRM but tags, fields and deal stages

## Frequently asked questions

### Do I still need Zapier to send QR code leads to Zoho CRM?

No. Linkbreakers creates and updates Zoho CRM Contacts or Leads, tags and deals directly once you sign in.

### Does it work with my Zoho data center?

Yes, unless your account is in China. Zoho sends you to your data center when you sign in, and Linkbreakers works with the US, EU, India, Australia, Japan, UK, Saudi Arabia, UAE, Singapore and Canada ones.

### Why tags and not campaigns?

Tags exist on every Zoho CRM edition, Free included, where the Campaigns module does not. Filter Contacts or Leads by the tag to see a campaign's people.

### Will someone who opted out of email be opted back in?

No. An existing person's Email Opt Out is unticked only when they consent through your form or chat bot. A visit without consent leaves it as it is.

### What happens when I disconnect Zoho CRM?

Visitors stop being synced and the stored access is deleted. Contacts, Leads and deals already in Zoho CRM stay there.

## Sources

- Linkbreakers Zoho CRM integration page, API and MCP tools, checked in the product on 2026-11-09.
- Zoho CRM API documentation: https://www.zoho.com/crm/developer/docs/api/v7/

## Last reviewed

2026-11-09 by Laurent Schaffner.
