Privacy

Privacy Policy

This page covers two things: what the WhatsMCP product collects and stores when you link a WhatsApp number to it, and what this marketing site's cookies do. They're separate — reading email doesn't set a tracking cookie, and browsing this site doesn't touch a linked WhatsApp account. WhatsMCP is operated by Skylark Labs Ltd, a company registered in UK ("we", "us"). It is registered with the UK Information Commissioner's Office under number ZC270763.

What the product collects

To operate a linked WhatsApp account on your behalf and expose it through the API, we process: your account email; API keys (stored as salted hashes — we cannot read a key back out once it's created, only verify one presented to us); the phone number and linked-device session credentials of each WhatsApp account you connect; message content and metadata sent or received through that account; the account's local address book (contacts synced from the phone); call history; group and channel membership; media attachments you fetch through the API; and any webhook URL you configure to receive inbound messages.

For a Business (official) number — one connected through Meta's WhatsApp Cloud API rather than linked as a device — we process: the messages and media it receives through Meta's webhooks and sends through us; its display number, WhatsApp Business Account ID and phone-number ID; its message templates; and a Meta access token for that number, which we store encrypted. We read no address book or group membership for a Business number.

If you turn on WhatsApp calling for a Business number, its calls run between Meta and our SIP servers, which relay the audio to and from the SIP phone or browser you take them on. We do not record them. For each call we keep a record of the other party's number, the call's direction, when it started, whether it was answered, how long it lasted and how it ended, with technical details of the connection such as the calling device's user agent. To connect the calls we also hold the SIP password Meta issues for the number, which we never store in plain text.

With Calls out on, the number can also call people who have allowed it. A request asking someone to allow your calls is stored as a message in their conversation, and so is each answer WhatsApp reports to us — allowed, declined, or withdrawn after unanswered calls. Turning Calls out on also turns on WhatsApp's callback setting for the number, so someone who calls it temporarily allows you to call them back. We don't store whether a person allows your calls right now: that is Meta's record, and we read it from Meta each time we need it.

When you connect a Business number you grant WhatsMCP two Meta permissions: whatsapp_business_messaging, to send and receive that number's messages, and whatsapp_business_management, to read your WhatsApp Business Account, its phone numbers and message templates, to manage templates you ask us to create or delete, and to subscribe our app to its webhooks. If you turn on WhatsApp calling, we use the same two permissions to switch the number's calling and its call settings on or off, point its calls at our SIP servers, read the SIP password Meta issues for it, and check or ask whether a person allows your calls. We use them only to provide the service to you, and we have no access to your Meta account beyond what they grant.

If a number has a hosted SIP line, we keep a record of each phone, softphone, PBX or browser that connects to it: its IP address and port, its user agent and connection type, and when it connected and disconnected. Each call on the line also records the user agent and connection type of the device that placed it. You can see the last 30 days of connections in the console.

If you connect a CRM such as Pipedrive, we store its access tokens encrypted, the CRM account's name and ID, and your settings for it. For each WhatsApp number you link to it, we write your one-to-one conversations into the CRM as notes on the matching contact, starting with the past week, attach the images people send you to that contact, and, if call logging is on, log each call there. When no contact matches a number we create one, named after the number, unless you turn that off. To do this we keep which CRM contact each number matched and a record of what we have written. The panel and call window we show inside the CRM read what they display from it when they need it — a record's phone numbers, a contact's name, organisation and open deal, and the CRM fields you pick to fill a template — and we keep none of it, except in a message you send with it.

Your WhatsMCP account

When you sign up we collect your email address, password (stored only as a hash), country, and, if you tell us, what you plan to use WhatsMCP for. We also record how you reached us (the referring site and campaign tags, and more only if you accepted cookies — see below), your IP address in our server logs, and, for paid plans, the billing details our payment processor (Stripe) needs. Sign-up and password-reset forms are protected by Cloudflare Turnstile, which checks the request is not automated.

We use this to run your account and the service (performance of our contract with you), to keep the service secure and prevent abuse, to understand which channels bring customers, and to send you a short series of emails to help you get started (our legitimate interests), and to keep billing and tax records (legal obligation). Analytics cookies on this website rely on your consent. You can opt out of the getting-started emails from any of them; account and billing emails are part of the service.

WhatsMCP is for people aged 18 or over, and for business or professional use.

How it's used and stored

This data exists solely to operate your linked account and serve it back to you through the API — we do not use it for advertising, and we do not sell it. Every workspace is isolated: a request authenticated to one workspace cannot read another's data, and there is no field in which one workspace could name another. Webhook deliveries are signed with HMAC-SHA256 so your endpoint can verify they came from us.

We do not use your messages, contacts, media or call content, or anything an AI agent writes, to train artificial intelligence models, and we do not allow our providers to do so.

WhatsMCP runs no AI model of its own on your messages. The AI assistant you connect to us — Claude, ChatGPT or any other MCP or API client — and any voice-agent provider you connect with your own credentials receive the data you or your agent ask for; the LLM provider whose key you add for an AI agent receives what the agent needs to write each reply (see "AI agents" below); a CRM you connect receives what you set it to sync; and each handles that data under its own terms and privacy policy, not ours.

AI agents

If your workspace uses AI agents — agents you set up in the console to answer the people who message your numbers — we keep, for each number an agent is on, a copy of the messages in its direct chats: their text, and for a photo, voice message or other media only its kind and caption, not the file. We also keep each contact's phone number and whether they opted out of your agents, the state of each conversation (for example, handed over to your team), the replies the agent wrote, and a record of each decision on whether to answer a message and why. For each reply we record the model used, the tokens it took and an estimate of their cost, and a technical trace of its steps that records their outcome and size, not their text. We store your agents' settings and versions, who confirmed a Business number's customer-service use or accepted a Personal number's ban risk, and when, and the LLM keys you add, encrypted and shown again only as their last four characters.

To write each reply, we send these to the LLM provider whose key the agent uses: your agent's instructions, the latest messages of that conversation as text (media only by its kind and caption), and the current date and time. We send no contact details beyond what the messages themselves contain. What you type into an agent's test chat is sent the same way, and when you add a key we use it to check it with the provider and list its models. The provider handles this data under your agreement with it and its own privacy policy, as your processor, not ours, and your plan with it decides whether it keeps the data or uses it for training. Use a plan that does not train on your data.

The copied messages, the replies and the record of decisions are deleted 90 days after they were sent, and the traces after 14 days. Contacts and their opt-outs, the state of each conversation, and your agents are kept for as long as your workspace exists, so that an opt-out keeps working. Disconnecting an agent from a number stops the copying for that number; what was already copied ages out as above. Deleting a key removes it at once. About a day after you delete your workspace, everything we hold for its AI agents is deleted.

Who else sees it

We share data with the providers that run the service: our hosting provider, whose servers and storage are in Amsterdam, the Netherlands; Cloudflare, for content delivery, security and Turnstile; Brevo, for account-related email; Stripe, for billing on paid plans; Sentry, for error monitoring (see below); and, for linked Personal numbers, the network (VPN) providers that carry a number's connection to WhatsApp, which see only encrypted WhatsApp traffic. None of them may use your data for their own purposes. We do not share your data with WhatsApp/Meta beyond what operating as a linked device on the WhatsApp network inherently requires — see our Terms of Service for what that means.

For a Business (official) number, its messages and calls pass through Meta's WhatsApp Cloud API, and Meta processes them under its own terms — see Meta's WhatsApp Business Data Processing Terms.

If you use AI agents, the LLM provider whose key you add receives what each reply needs, as "AI agents" above describes. It is your provider, not ours.

When you make or take a call in a browser — the phone in our console, or our call window inside a CRM — your browser asks a public STUN server run by Google (stun.l.google.com) for its own public network address, so that the call's audio can reach it. Google sees your IP address, not the call.

When our servers run into an error, they send a report of it to Sentry, which we use for error monitoring. A report holds the error message, where in our code it happened, and the details we logged with it — mostly internal identifiers, such as those of your workspace, a number, a call or a webhook. Any of these can include personal data the failing step was handling, such as an email address or a phone number. If the error happens while we handle a web request, such as one to the console or the API, the report can also carry that request's web address and headers. The address can name a chat by its phone number; credentials and IP-address headers are removed, and the request's body and cookies are never sent. The report then also says who made the request: in the console, the signed-in user's ID and email address; through the API or MCP, the user's ID or the prefix of the API key used.

How long we keep it

Messages and AI voice-call records for a linked number are kept for your plan's message-history period, counted from when each message was sent, and then removed by our retention sweep, which runs every hour. Unpairing a number (wa_unpair_account, removing the linked device from your phone, or disconnecting a Business number) stops us collecting new data for it; what was already stored stays available to you in the console until it ages out of that period. Records of the phones and browsers connected to a hosted SIP line are deleted after 90 days. Media files, call history, group lists and the record of what we have written to a CRM are not yet removed automatically. AI agents keep their own copy of the chats they are on for 90 days, whatever your plan's period: see "AI agents" above.

You can ask us to delete all data we hold for a number or for your whole account at any time — including after you have deleted the account — by contacting us. We complete a deletion request within 30 days. We keep only what the law requires us to keep, such as billing and tax records, for the period it requires.

Server logs are kept for 30 days and API request logs for 7 days.

Your control

Your WhatsApp account stays yours: you can remove WhatsMCP as a linked device at any time from the phone (Settings → Linked devices) or by calling wa_unpair_account, and you can revoke an individual API key from the console at any time.

A Business (official) number can be disconnected from the console at any time, which turns off its WhatsApp calling, deletes its SIP line and deletes its access token from our systems; you can also revoke our app's access to your WhatsApp Business Account in Meta's Business Settings whenever you choose. Its calling can be turned off on its own in the console, and the workspace owner can switch Calls out off there at any time.

You can disconnect a CRM from the console, or uninstall our app from the CRM, at any time. Either way we delete its access tokens and stop syncing; what we already wrote stays in your CRM, where you can edit or delete it.

You can pause an AI agent, disconnect it from a number or delete an LLM key in the console at any time; "AI agents" above says what happens to what was kept.

Our role, and a data-processing agreement

For the personal data inside your messages and calls, your synced address book, and the accounts you contact, you are the data controller and we act as your processor — we handle that data only to operate the service on your instructions. For your own account data (your email, billing details, and API keys), we are the controller. If you are subject to the GDPR, UK GDPR, or a similar law and need a data-processing agreement, our Data Processing Agreement governs how we process personal data on your behalf and forms part of your agreement with us.

Where it's processed

Your account and the data of your linked numbers — messages, media and the rest — are stored on servers in Amsterdam, in the European Union. The error reports we send to Sentry are stored in its EU data region, in Germany. Some of our providers (Cloudflare, Brevo, Stripe, Sentry and, for Business numbers, Meta) operate in more than one country, so some data may be processed outside the UK or the EEA. Where it is, the transfer relies on an appropriate safeguard — the European Commission's Standard Contractual Clauses with the UK Addendum, or an adequacy decision — so the data keeps an equivalent level of protection. The LLM provider you choose for an AI agent may process what we send it outside the UK and the EEA; we send it on your instruction to your own provider, and your agreement with that provider governs the transfer.

Your data-protection rights

Depending on where you live, you may have the right to access, correct, export, or delete the personal data we hold about you, and to object to or restrict certain processing. Under the GDPR and UK GDPR you can also lodge a complaint with your data protection authority — in the UK, the Information Commissioner's Office (ico.org.uk). Under the CCPA/CPRA, California residents may request access to or deletion of their personal information and may not be discriminated against for exercising those rights — and we do not sell personal information. To exercise any of these, contact us; for data inside a linked account you can also act directly, as described under "Your control" above.

If you are not our customer but someone who messaged or called a WhatsMCP customer's number, or was messaged or called by one, that customer decides how your data is used. Please contact them directly; if you contact us, we will pass your request on to them. If the customer's AI agent is answering you, writing STOP stops it.

This website's cookies

The rest of this page — everything below — covers only what this marketing site (not the product) does in your browser.

What we use

This site loads Google Tag Manager (container GTM-KCW8QCTH), which is how we measure which pages get read. Until you accept, Tag Manager runs with analytics and advertising storage denied: it can count a page view without setting a cookie or an identifier in your browser.

It also loads Microsoft Clarity (project ynuzgrhdyf), which records how pages are used — clicks, scrolling, where a page loses people — so we can see what is confusing. Until you accept, Clarity runs without cookies, so it cannot tell one visit of yours from the next; accepting lets it set its _clck and _clsk cookies. Advertising storage is denied to Clarity at all times, the same as for Google.

If you accept, we also keep a first-party cookie, wm_ft, for 90 days, recording how you first reached this site: the referring website, campaign tags (utm_*), ad click identifiers (gclid, fbclid, msclkid) and the page you landed on. If you then create an account, this is saved with your workspace so we can tell which channels bring customers. Without your consent nothing is stored: when you click through to sign up or log in we pass along only the current page's referrer and campaign tags — never ad click identifiers.

What your choice controls

Accepting grants exactly one Google Consent Mode signal, analytics_storage, and passes the same single grant to Clarity. The three advertising signals are denied at all times, whichever button you press — we do not ask for advertising consent, so we do not take it.

  • analytics_storage — cookies that let us tell a returning reader from a new one. This is the one your choice controls.
  • wm_ft — how you first reached us, saved with your workspace if you sign up. Set only if you accept; deleted if you reject.
  • ad_storage — advertising cookies. Always denied.
  • ad_user_data — whether measurement data may be sent to Google for advertising. Always denied.
  • ad_personalization — whether that data may personalise advertising. Always denied.

security_storage is always on. It covers the storage needed to keep the site working and cannot be switched off.

Where the choice is kept

Your decision is stored in your own browser under the wm_consent key, as the choice and the time you made it. That record itself never leaves your device, and we keep no server-side record of it. Clearing your site data erases it and you will be asked again.

Changing your mind

You can change or withdraw your choice at any time. New collection stops immediately — the consent signal updates on the spot, without a reload. Cookies already set stay in your browser until you clear your site data; withdrawing consent stops further writes, it does not reach back and delete them. The one exception is wm_ft, which we delete the moment you reject.

Contact

Questions about this page: contact us.