Privacy

Privacy Policy

What we collect, why, who we share it with, how long we keep it, and how you control it — with no convoluted language.

Last updated: 15.09.2026

1. Scope of this policy and who we are

Capi Agent ("the Platform", "we") is a multi-tenant SaaS platform that runs one AI agent (shown as Seli, Helpi, Promo, Watso, Webi, and Mailo depending on the channel, but it is the same engine) which answers your store's customers over WhatsApp, Instagram, Messenger, X, the chat widget on your website, and email — together with a dashboard holding a CRM, a unified inbox, campaigns and automations, analytics, a knowledge base, and billing. A seventh agent, Capi (the manager), talks only to you inside the dashboard, reads your store's numbers, and proposes actions that run only once a person approves them — it never reaches your customers.

This policy covers two legally different situations, and it matters to tell them apart:

  • Your data as a merchant (we are the Controller): your account, organization, team members, subscription, and your use of the dashboard and the website.
  • Your customers' data (we are the Processor): conversations, phone numbers, emails, social-account identifiers, orders, carts, tags, notes, and consent state. This data stays yours; we process it on your behalf and only on your documented instructions. We never sell it, never use it for advertising, and never train models on it.

The contractual terms for our role as processor are in the Data Processing Addendum, and the technical protections are on the Security page. This policy applies to the marketing website, the dashboard, the widget embedded in your store, and every channel you connect to the Platform.

2. The data we collect

a. Account and organization data: name, email address, a bcrypt-hashed password (or your Google sign-in data: name, verified email, and profile picture — we never see your Google password), your two-factor secret and backup codes (encrypted), organization and store names, roles and permissions, team invitations, and your subscription status with the last 4 digits and brand of your card as Stripe reports them to us.

b. Store data: products, prices, inventory, orders and their statuses, coupons, customers, and abandoned carts — received by connecting your platform (Salla, Zid, Shopify, WooCommerce, ikas, IdeaSoft, Ticimax, T-Soft, PlatinMarket) or entered manually. Your platform's access tokens are stored encrypted.

c. Your customers' data (third-party personal data): name, WhatsApp number or email, sender identifiers on Instagram and Messenger, account identifier on X, the content of conversations and their attachments, tags, notes, order history, carts, and the consent and unsubscribe record (when, on which channel, from which source, and the exact text that was shown).

d. Channel data we receive from Meta and X: when you connect WhatsApp, Instagram, or Messenger, we receive from Meta the names and ids of your pages, the linked Instagram business account, your WhatsApp Business number, and the content of inbound and outbound messages on those channels, along with access tokens that are stored encrypted. When you connect X, we receive the account identifier, the content of direct messages, and access and refresh tokens, stored encrypted.

e. Chat-widget data: the widget (widget.js) embedded in your store keeps a random visitor id and an attribution reference in localStorage on your own store's domain — not third-party cookies — plus the content of the messages the visitor types.

f. Technical data: IP address, browser and device type, the dashboard pages you visited, error logs (via Sentry, with no personal data by default — only ids and error kinds), and rate-limit records.

g. Audit logs: we record sensitive operations (data exports, permission changes, campaign sends, AI action approvals, settings changes with the before and after values) with the acting user and timestamp — never credentials or keys.

h. Click and attribution data: links we place in your messages are rewritten to redirect links (/r/:token) so sales can be attributed to your campaigns. Suspect clicks (bots, link previews) are labelled as such, not deleted.

We do not collect payment-card data at all. The whole payment flow happens at Stripe.

3. Where the data comes from

  • From you directly: at sign-up, in dashboard settings, the knowledge base, templates, and manual entry of customers or products.
  • From your store platform: through OAuth (Salla, Zid, Shopify, ikas, IdeaSoft) or through credentials you enter (T-Soft, PlatinMarket), and through signature-verified webhooks.
  • From Meta: through Embedded Signup for WhatsApp (scopes whatsapp_business_management and whatsapp_business_messaging), and through Facebook Login for Business for Messenger (pages_show_list, pages_messaging, pages_manage_metadata, business_management) and Instagram (instagram_basic, instagram_manage_messages in addition to the Messenger scopes).
  • From X: through OAuth 2.0 with PKCE, with the scopes tweet.read, users.read, dm.read, dm.write, offline.access.
  • From Google: if you choose Google sign-in — name, verified email, and profile picture; the account is linked by the same email.
  • From your store's visitors: through the chat widget, and through email arriving at the support address you enable (an inbound mailbox via Resend).
  • From Stripe: subscription status and payment outcome only.
  • From our own systems: operational, security, and error logs.

4. Why we process this data

  • Running the agent: generating replies, searching your products and knowledge base, tracking orders, issuing coupons, refund and cancellation requests, and escalating to a person — within the limits you set.
  • Inbox and CRM: gathering conversations from every channel in one place, customer profiles, tags, and notes.
  • Automations and campaigns: abandoned-cart messages, order status notifications, and the WhatsApp/email campaigns you create — with a consent gate before every send.
  • Analytics and attribution inside your account: measuring conversations, conversion, attributed sales, weekly insights, and mining unanswered questions for your knowledge base — all of it reads your own store's data only.
  • Agent evaluation (opt-in per store): replaying frozen transcripts in a sandbox with no writes to your store, to measure quality.
  • Billing and subscription management, plan limits, and the AI usage meter.
  • Security and abuse prevention: rate limiting, webhook signature verification, audit logs, and detecting unauthorized access.
  • Technical support — we access your account data only when you ask us for help or when there is an incident we are investigating.
  • Legal compliance: accounting records, responding to binding legal requests, and incident notification.

6. AI processing

To generate the agent's replies, we send the conversation context to a language-model provider: Anthropic (the default), OpenAI, or Google — whichever you choose for your organization. If a provider is down, we try the next one you enabled; if all of them fail, the conversation is handed to a person on your team — it is never dropped silently.

  • We send the minimum context: the system prompt (your rules and agent settings), the last 12 messages of the conversation, and the snippets the tools fetch (matching products capped at 200 characters of description each, knowledge-base answers capped at 500 characters, and order status). Not your whole database. Replies are capped at 800 output tokens and at most 5 tool rounds.
  • Prompt caching is enabled with Anthropic to reduce cost: the prompt prefix may be cached at the provider for up to 1 hour on WhatsApp and 5 minutes on the widget.
  • These providers process data as subprocessors, and under their commercial API terms they do not use inputs or outputs to train their models. We train no model on your data, and one merchant's data never influences another merchant's agent.
  • If you use your own API key, it is stored encrypted (AES-256-GCM), used only for your organization's requests, and the usage is billed to you by the provider directly.
  • The agent runs at an autonomy level you set (from "observe" to "autonomous"; the default is "approve") and under hard caps (maximum automatic refund, maximum discount percentage). Any action that spends money, grants a discount, or changes an order and exceeds a cap goes to human approval on the actions page (/dashboard/ai-agent/actions) instead of running.
  • No decision with a legal or similarly significant effect on a customer is made without human involvement, and a customer can ask for a person at any time. The agent does not claim to be human when asked directly.

Full details (tools, levels, external text, and injection defenses) are in the AI Policy.

7. Channels and what happens on each

  • WhatsApp: through Meta's WhatsApp Cloud API. A 24-hour customer-service window; outside it, only Meta-approved templates. We monitor your number's quality rating every 6 hours and slow sending if it drops. Conversation fees are paid by you to Meta directly.
  • Instagram and Messenger: through Meta's Messenger Platform, on the same Meta app. The page access token is encrypted on our side. The 24-hour window is enforced.
  • X: direct messages through OAuth 2.0. The refresh token is encrypted and refreshed on every send.
  • Website widget: keeps the visitor id and attribution reference in localStorage on your store's domain, with no third-party cookies. It shows a notice you configure (for example "AI assistant"). Widget settings are cached for 60 seconds.
  • Email: through Resend, with two separate domains you own: a support address (inbound conversations) and a marketing sender (campaigns); you verify DNS for your domains from the dashboard. Outbound attachments are not supported.
  • TikTok and Snapchat: not available at this time. We neither receive nor send on them.

You can disconnect any channel from the integrations page (/dashboard/integrations?tab=channels) — disconnecting clears the stored tokens and identifiers. If you deauthorize our app from your Facebook, Instagram, or X settings, our access stops immediately, and you delete the remaining conversations from the dashboard or by emailing privacy@capiagent.com. When a person on your team takes over a conversation, it stays with them — the agent never takes it back automatically. More detail in the Channel Policies.

8. Your duties as a merchant toward your customers

Because you are the controller of your customers' data, you commit to the following as a condition of using the Platform:

  • Obtain explicit opt-in consent before sending any marketing message on any channel, and keep proof of it. The Platform records the opt-ins and opt-outs that pass through it, but the legal responsibility is yours.
  • Honour unsubscribe requests immediately — the Platform detects opt-out keywords in Arabic and English, provides unsubscribe links in email, and stops sending automatically.
  • In Turkey: the Platform is not integrated with the Message Management System (İYS). If you send commercial electronic messages to recipients in Turkey, registering with İYS and obtaining consent through it is your responsibility.
  • Publish a privacy notice for your own store stating that you use AI Sales Agent as a processor for conversations, and tell your customer they are talking to an AI assistant where that is required.
  • Comply with Meta's WhatsApp Business and Messenger policies, the rules of X, and your store platform's policies.
  • Handle your customers' requests (access, rectification, erasure) from the dashboard, and ask us for help when you need it.
  • Choose the conversation retention window that suits you, and set the agent's caps before running it on a live channel.

9. Who we share data with (subprocessors)

We do not sell your data or your customers' data to anyone, and we do not share it for advertising. We share it only with providers that are necessary to run the service, each within the limits of its purpose:

  • Vercel — application hosting, compute, edge network, and scheduled jobs (USA / global network).
  • Neon — the primary PostgreSQL database (USA / EU).
  • Cloudflare R2 — storage for conversation attachments, uploads, and nightly backups (Cloudflare's global network).
  • Upstash — Redis for rate limiting, locks, and short-lived cache, and QStash as the job queue for campaign sends and syncs (job payloads carry ids, not message bodies).
  • Anthropic / OpenAI / Google — language-model inference per your choice (USA).
  • Meta Platforms — WhatsApp, Instagram, Messenger: message content and customer identifiers on those channels.
  • X Corp — X direct messages.
  • Resend — marketing and transactional email sending and the inbound support mailbox (USA).
  • Stripe — payments and subscriptions; card data is held by Stripe only.
  • Google (Sign-in) — authentication of dashboard users.
  • Sentry — error monitoring with no personal data by default.
  • Google Analytics 4 / Google Tag Manager / Microsoft Clarity — on the marketing website only, and only after you accept in the cookie banner. They never run inside the dashboard or the widget. Details and the cookies by name are in the Cookie Policy.
  • GitHub Actions — runs the nightly backup job.
  • Your store platform (Salla, Zid, Shopify, WooCommerce, ikas, IdeaSoft, Ticimax, T-Soft, PlatinMarket) — within the scope you authorize at connection time.

The full list with the purpose, data type, and location of each provider is on the Subprocessors page. We announce any material addition by email to the account owner and by an in-dashboard notice before it takes effect, and you have the right to object and terminate your subscription.

We may also disclose data when a binding law or court order requires it, or to protect our rights and the safety of users.

10. International data transfers

The providers above process data mainly in the United States and the European Union, that is outside Saudi Arabia and Turkey. In those cases we rely on Standard Contractual Clauses (SCCs) or equivalent provider commitments, and restrict access to the minimum needed to run the service.

If the law that applies to you (PDPL or KVKK) requires an additional basis for transferring your customers' data abroad, we document that basis with you in the Data Processing Addendum, and you as the controller ensure your customers are informed of the transfer in your store's privacy notice.

11. Retention periods

The trial: signing up starts a 14-day free trial with no card. If it ends without a subscription, your account switches to read-only — you can see everything, billing and settings still work, but agent replies, campaigns, and automations stop. We do not delete your data because a trial ended. The same applies when an account is suspended for a failed payment: the data stays readable and sending stops.

Closing the account: when you request closure from the data-rights settings (/dashboard/settings/data-rights; it asks you to type the organization name to confirm), deletion is scheduled after a 30-day grace period during which you can cancel it with one click. After that, the account's data is permanently erased: customers, orders, conversations, and integrations — erased within 30 days of closing the account.

Conversations: a per-merchant setting on the same page: either delete dormant conversations automatically after a number of days you choose, or keep them permanently (an explicit choice). Manual deletion from the dashboard is immediate and irreversible.

DataPeriod
Account, store, and customer dataFor the life of the subscription, then a 30-day grace period after closure
ConversationsPer your setting: after N dormant days, or permanently
Audit and security logs12 months (365 days)
Job runs, webhook events, and published system events30 days
Resolved failed messages (dead-letter)90 days
Rate-limit records7 days
Marketing attribution events (clicks)400 days — so you can compare year over year
Billing recordsAs required by applicable accounting law (typically 10 years)
Backups30 days, then pruned

The nightly backup is stored in our own Cloudflare R2 bucket and pruned after 30 days, so anything you delete leaves the backups within 30 days at most.

12. Security and incident notification

  • Encryption in transit over HTTPS/TLS on every connection, with HSTS and an enforced Content Security Policy (CSP).
  • Every secret in the database is encrypted with AES-256-GCM (AI keys, platform tokens, WhatsApp, Meta, and X credentials, two-factor secrets). Decrypted values are never logged or sent to the browser.
  • Passwords are stored with bcrypt — we cannot see or recover them. Optional two-factor authentication (TOTP) with single-use backup codes, and rate-limited login attempts.
  • Full isolation between organizations — every query is scoped to the user's organization and active store, and permissions are always checked on the server.
  • Signature verification of every inbound webhook (HMAC-SHA256) and every job-queue message, with timing-safe comparison.
  • A nightly backup at 03:30 UTC to our own bucket, retained for 30 days.
  • Text from external sources (product descriptions, knowledge-base answers) is treated as untrusted data before it reaches the model.

Incident notification: if we confirm a personal-data breach affecting your account, we notify you without undue delay and no later than 72 hours after confirmation, by the account email and an in-dashboard notice, with the facts known at the time — so you can notify your regulator and your customers according to your own obligations. Full details and vulnerability reporting are on the Security page and via security@capiagent.com.

13. Your rights and your customers' rights

As a merchant, you have the following rights over your data, and you can exercise most of them yourself from the dashboard:

  • Access and portability: from the data-rights settings (/dashboard/settings/data-rights) you export your whole account as one JSON file (organization, stores, customers, orders, conversations and messages, products, campaigns…) capped at 5,000 rows per collection, with a manifest stating the caps and what was excluded. Encrypted tokens and keys are never exported. CSV exports of customers, products, and orders also exist.
  • Rectification and erasure: edit or delete any customer from the customers page (/dashboard/customers), and delete the whole account as described under retention.
  • Objection and withdrawal of consent: against any processing based on legitimate interest or consent, by contacting us.
  • Complaint: if you believe there has been a violation, you have the right to lodge a complaint with the competent authority: the Saudi Data and AI Authority (SDAIA) in Saudi Arabia, the Personal Data Protection Board (KVKK Kurulu) in Turkey, or your country's data protection authority in the EU.

Your store's customers: if one of your customers sends you a request (access / erasure / rectification / portability), you can fulfil it yourself from the customers page. If you need technical help with it, email us and we assist within 30 days at most. If a customer of yours contacts us directly, we refer them to you as the controller and let you know. The practical steps are on the Data Deletion page.

14. Cookies and local storage

  • Strictly necessary cookies in the dashboard: the sign-in session, the active store, language, theme, and the CSRF protection cookies from the auth library — the Platform does not work without them.
  • Analytics cookies: Google Analytics 4 / Tag Manager / Microsoft Clarity on the marketing website only, loaded only after you accept in the cookie banner; your choice is stored in the cookie_consent cookie.
  • The widget on your store: localStorage only (a visitor id and an attribution reference), with no cookies from us on your store's domain.
  • Email: click redirect links and unsubscribe links. We use no hidden tracking pixels.
  • We use no advertising cookies and no cross-site third-party tracking.

The full list is in the Cookie Policy.

15. Children

The Platform is intended for business use by people over 18. We do not knowingly collect children's data, and if we discover that we have received such data we delete it immediately. If your store serves minors, you as the controller are responsible for the legal basis for messaging them.

16. Changes to this policy

We may update this policy as the Platform evolves. We notify you of any material change (for example a new subprocessor, a new channel, or a change in the purpose of processing) by the email registered on your account or by an in-dashboard notice before it takes effect. The date of the last update is shown at the top of the page, and non-material changes (wording, clarification) are published directly.

This page describes our actual practices in the product and does not constitute legal advice. For any question or to exercise your rights, email us at privacy@capiagent.com.