---
title: "Linkbreakers + Bird: sync QR code contacts to Bird audiences"
description: "Connect Bird (formerly MessageBird) with a workspace API key and every person who scans your QR codes and gives their email or phone becomes a Bird contact, added to the audience you choose, ready for WhatsApp, email and SMS campaigns. Setup, what is synced, how email marketing consent is recorded, and the Assistant and MCP tools."
canonical: "https://linkbreakers.com/help/article/linkbreakers-bird-integration-qr-multichannel-messaging"
last-updated: 2026-11-09
---

# Linkbreakers + Bird: sync QR code contacts to Bird audiences

> Connect Bird (formerly MessageBird) with a workspace API key and every person who scans your QR codes and gives their email or phone becomes a Bird contact, added to the audience you choose, ready for WhatsApp, email and SMS campaigns. Setup, what is synced, how email marketing consent is recorded, and the Assistant and MCP tools.

:::try-ai-prompt {"prompt":"Connect Bird with my API key bk_eu1_..., add synced contacts to my Bird audience for the store opening, and record marketing consent from my form's Consent field","description":"Connect Bird with the Assistant.","target":"assistant"}:::

## Short answer

Linkbreakers connects to Bird (bird.com, formerly MessageBird) directly. In the dashboard, open **Integrations**, pick **Bird**, paste a Bird workspace API key (`bk_eu1_...` or `bk_us1_...`) and select **Connect**. From then on, every person who goes through one of your links or QR codes and whose email or phone Linkbreakers knows, for example after a form, is created or updated as a Bird contact, with their name and form answers, and added to the Bird audience you choose. Your WhatsApp, email and SMS campaigns in Bird can then reach them.

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

## Quick summary

- Connect once per workspace with a Bird workspace API key from **Platform tools > API keys**
- Contacts are created or updated, matched on email and phone
- Visitors known only by their phone number are synced too
- Optionally added to one Bird audience
- First name, last name and form answers (as contact properties) are filled in
- Marketing consent given in Linkbreakers is recorded in Bird's preferences for email, never over an opt-out
- Only people's visits: bots, link previews and AI agents never become contacts
- Also set up from the Assistant, the MCP server or the REST API

## How it works

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

Bird matches the contact on its email and phone number, so a returning visitor updates the same contact. Linkbreakers does not write its own visitor ID to Bird's external ID, which stays free for your own systems.

## Connect Bird

1. In Bird, open **Platform tools > API keys** and create a key with the `email_marketing` write permission (contacts and audiences). To record the consent of visitors who give it, also give it the `preferences` write permission.
2. In Linkbreakers, open **Integrations** in the dashboard and pick **Bird**.
3. Paste the key in **Bird API key** and select **Connect**. Linkbreakers checks the key against Bird before storing it.
4. Under **Add contacts to an audience**, choose the Bird audience contacts join, or **No audience: contacts only**.
5. Set the options and the delivery setting below, then save.

Use a workspace key, which starts with `bk_eu1_` or `bk_us1_` and names the region your Bird workspace lives in. Organization keys (`bm_...`) are refused. The key is encrypted when it is stored and never shown again; the page shows the region and the start of the key.

## What gets synced

| Linkbreakers | Bird |
|---|---|
| Email | Contact email |
| Phone | Contact phone number |
| First name, last name | First name, last name (up to 100 characters each) |
| Form answers and other visitor data | Contact properties with the same key, or the one you map them to |
| The audience you chose | The contact's audiences |

Answers only reach Bird when the contact property exists there with a matching type. Create them in Bird under **Contacts > Contact properties**, with the same keys as your form fields. **Test connection** on the Bird page lists the property keys Linkbreakers can write to. Bird limits each text value to 500 characters and all custom values of a contact to 2 KB: longer text is cut, and a value that would pass the 2 KB is left out.

## Options

**Which answer goes to which field.** An answer whose key is already a Bird contact property goes there by itself. Map the others to the property you want.

**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 audience only those who consented**.

Bird has no tags and no double opt-in through its API, so those options are not shown for Bird.

## Marketing consent in Bird

When a visitor said yes, Linkbreakers records it in Bird's preferences store: the email channel is granted for marketing (non-transactional) messages, with Linkbreakers as the source. This needs the key's `preferences` permission; without it, the contact is still synced and the page says the consent was not recorded.

Linkbreakers never records consent over an opt-out already in Bird, whoever recorded it, so someone who unsubscribed is never subscribed again. A visitor who did not say yes gets nothing recorded: Bird has no "not subscribed" state short of an opt-out, and Linkbreakers does not opt anyone out on their behalf.

Only email consent is recorded. The consent is asked in Linkbreakers without naming a channel, and WhatsApp and SMS marketing need the channel's own opt-in, which you collect and record in Bird.

## Which visitors and which links

The Bird 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, since they are what makes a contact

Only visits by people are synced. Crawlers, link previews, AI agents and automated browsers never become contacts. Visits past your plan's tracked visits allowance are not synced.

## What is not synced

- Visitors with neither an email nor a phone
- Answers with no matching Bird contact property
- WhatsApp or SMS consent: only email marketing consent is recorded
- Anything back from Bird: unsubscribes and edits made there stay in Bird

## Check that it works

The **Activity** section shows how many contacts Bird accepted and when the last one was synced. If Bird refuses a contact, its reason shows there as the last error until the next contact goes through. A failed contact is not retried.

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

**Assistant**: in the dashboard, ask "Connect Bird with my API key and add contacts to my Store opening audience".

**MCP server**: an agent connected to the [Linkbreakers MCP server](/help/article/mcp-server-setup) has `contact_integration_connect`, `contact_integration_lists`, `contact_integration_update`, `contact_integration_fields`, `contact_integration_test`, `contact_integration_get`, `contact_integrations_list` and `contact_integration_disconnect`, with the tool `CONTACT_TOOL_BIRD`.

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

```bash
curl -X POST https://api.linkbreakers.com/v1/integrations/contacts/CONTACT_TOOL_BIRD/connect \
  -H "Authorization: Bearer $LINKBREAKERS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "bk_eu1_..."}'

curl https://api.linkbreakers.com/v1/integrations/contacts/CONTACT_TOOL_BIRD/lists \
  -H "Authorization: Bearer $LINKBREAKERS_TOKEN"
```

Then `PATCH /v1/integrations/contacts/CONTACT_TOOL_BIRD` with `contactListId` (the audience) and `options`.

## When to use webhooks instead

The native connection creates contacts, adds them to an audience and records email consent. To send a WhatsApp or SMS message the moment someone scans, start a Bird Flow from the contact, or send [Linkbreakers webhooks](/help/article/how-do-webhooks-work-in-linkbreakers) to Zapier, Make or n8n and call Bird's messaging API from there. To open a WhatsApp chat straight from a QR code, see the [WhatsApp article](/help/article/linkbreakers-whatsapp-integration-qr-to-whatsapp-chat).

## Limits and caveats

- **One Bird workspace and one audience per Linkbreakers workspace**
- **Contact properties must exist in Bird** with a matching type, or the answer is left out
- **Email consent only.** WhatsApp and SMS opt-ins are your own to collect
- **No retries.** A contact Bird refuses is reported on the page, not sent again
- **One way.** Linkbreakers writes to Bird; it reads nothing back but your audiences and properties

## Frequently asked questions

### Can I sync visitors who only gave a phone number?

Yes. Bird contacts can be identified by phone alone, so a visitor known only by their phone is synced. Consent is only recorded for an email.

### Which Bird permissions does the key need?

`email_marketing` write, for contacts and audiences. Add `preferences` write if you want Linkbreakers to record marketing consent.

### Will someone who opted out in Bird be subscribed again?

No. If Bird has an opt-out for that email, Linkbreakers records nothing.

### Does Linkbreakers send WhatsApp messages through Bird?

No. Linkbreakers adds people to Bird as contacts; your campaigns and Flows in Bird send the messages.

### What happens when I disconnect Bird?

Visitors stop being synced and the stored key is deleted. Contacts already in Bird stay there.

## Sources

- Linkbreakers Bird integration page, API and MCP tools, checked in the product on 2026-11-09.
- Bird API documentation: https://docs.bird.com/api

## Last reviewed

2026-11-09 by Laurent Schaffner.
