Security and trust
Shoppers' details stay with the store that sent them
ACR has to hold enough about a shopper to reach them and to keep a record of what was said. This page says what that is, where it lives and who can reach it.
Each store walled off
Every shopper, run and conversation carries its store's id, and Postgres row-level security limits each request to one store under a role that cannot switch it off.
Secrets encrypted
Mailbox grants, server passwords and two-factor secrets are encrypted with AES-256-GCM. Passwords, session tokens and API keys are stored only as hashes.
Every webhook checked
Events from Shopify and from the phone and voice providers are checked against their signatures before ACR acts on them, and ACR signs the webhooks it sends.
Access and credentials
Access by role
Owners, admins, members and viewers per organization. Accounts are by invitation; sign-in is with Google or a password with optional two-factor.
Support visits logged
Growth Dept staff can open a store read-only to help with support, and each visit is written to the audit log.
API keys per store
Each key belongs to one store with one role, is shown once when it is made, and can be revoked at any time.
The details
What ACR holds about shoppers
- What it needs to reach them: name, email address, phone number, country, time zone and language, as the store sent them.
- The checkout: items, total, currency and the link back to the cart, and the orders that follow.
- Consent records with their source and date, the suppression list, and each run's steps.
- Conversations: call transcripts, summaries and recordings when recording is on, and the texts and emails sent and received.
Who handles the data
- Vercel hosts the application and Neon hosts the database, both in the United States (US East).
- Twilio carries calls and text messages. ElevenLabs runs the voice agent.
- Google or Microsoft, when a store connects its mailbox. Shopify, which sends checkouts and orders.
- An AI text provider writes replies when a store has one switched on.
How stores are kept apart
- Every table that holds store data carries the store's id, with row-level security on it.
- The application connects as a role that cannot bypass row-level security.
- Each store has its own API keys, webhook secrets, phone numbers and mailboxes.
What keeps outreach in bounds
- The consent check, quiet hours, state rules and country permissions are checked when a run starts and again before each step.
- STOP and do-not-contact requests go on the store's suppression list, which every campaign respects.
- No real call, text or email is sent while a campaign is a draft; testing uses practice conversations.
Report a security issue to hello@growthdept.ai with “Security” in the subject line.
Find out what your abandoned checkouts are worth
Book a 45-minute call with the Growth Dept team. We look at your checkout, where your shoppers are and which channels suit them, and tell you whether ACR fits.