An agency trusts us with its client conversations, its listings and its team. This page explains how we protect that data. It describes how the service is built, not a promise that nothing can ever fail: if you find something, write to us at santino.fajardo@tangoagent.app.
Every agency, isolated
- Every record is tied to the agency it belongs to, and the database filters every console read and write with row-level security (RLS) policies: a person only sees rows of the agencies they are a member of.
- The agent identifies the agency by the number the client wrote to, verified with Twilio's signature, and every query it makes is scoped to that agency.
- On every code change, automated tests verify that one agency cannot see another's data.
- Tango's team sees a directory of agencies (name, owner email, line and onboarding status) to onboard them, not their conversations, clients or listings. If the agency asks for it when signing up, a Tango team member joins as a support admin: they appear in the team and the agency can remove them at any time.
Role-based access
- Four roles: owner, admin, agent and viewer. Owners and admins manage the team, listings and settings; agents handle conversations; viewers can only look.
- Every permission is enforced in three layers applying the same rule: the database, the server and the interface.
- People join a team only by invitation —from an owner or admin, or the onboarding invitation Tango sends the owner—, and their email is verified before access is granted.
- Sign-in is by email and password or with Google. Passwords are stored hashed by the authentication provider: we do not store them.
- The console always acts with the person's own session: it holds no credential capable of bypassing the database's permissions.
Encryption and credentials
- All traffic is encrypted with TLS: between your browser and the console, between our services and with every provider.
- The database and photos are stored encrypted at rest by our infrastructure providers.
- Each agency's WhatsApp (Twilio) access token is encrypted with a public key as soon as it is entered, and only the agent can open it. The encryption is bound to the agency: copied to another one, it is useless.
- Production secrets live only in each provider's production environment, never on personal computers.
WhatsApp and the agent
- Every incoming message is verified against Twilio's signature before it is processed, with a per-sender rate limit; a repeated message is never processed twice.
- The agent can only read the listings, never modify them, and is instructed to talk only about properties a search returned in that conversation.
- When a team member takes over a conversation, the agent stops replying: the database guarantees the two never answer at once.
- On WhatsApp, a viewing offer can only be taken by the member it was sent to, from their verified WhatsApp number and on their own agency's line; in the console, by a member with their session and role. The number is verified by sending from it a code the console shows only to that member, and an offer forwarded to and tapped from another phone is not taken by anyone.
- If something fails during a turn, the client gets a safe reply instead of silence, and the agency's handoff contacts are alerted.
- Replies are generated by an Anthropic model through its commercial API, which does not use that data for training.
Logs without personal data
- Technical logs are designed not to keep message content or client data: phone numbers are masked and errors are recorded by type and code.
- In the agent, database errors are logged by code, without the detail that could carry a row of data.
Infrastructure and development
- The database is hosted in São Paulo, Brazil. The full list of providers is in the Privacy policy.
- Development and production are separate environments, with different databases and credentials. The exception is property photos, delivered through a public URL that cannot be guessed: they live in a single Cloudinary account, in folders separated by environment, and each environment's key reaches the whole account. Tests run against local databases, never against real data.
- No change reaches production directly: it goes through a pull request, automated tests and the development environment, and a person releases it.
- Dependencies pinned by version and hash, secret scanning on every change and least privilege at every deployment step.
- Database permissions are checked automatically: no table is left exposed without row-level security.
If something goes wrong
If we detect an incident affecting personal data, we contain it, investigate it and notify the affected agencies without undue delay with what we know: what happened, what data it reached and what we are doing about it. Where required, we also report it to the supervisory authority.
Reporting a vulnerability
If you find a security flaw, write to us at santino.fajardo@tangoagent.app with the details and how to reproduce it. We will reply, let you know when it is fixed, and we will not take action against good-faith research that does not access third-party data or disrupt the service.
What your team can do
- Give each person the least role they need, and use “viewer” for anyone who only needs to look.
- Remove people who stop working with you from the team: they lose access immediately.
- Use unique passwords, or sign in with a Google account that has two-step verification.
- Tell your clients they are being helped by an automated assistant.