Excellent es una plataforma para gestionar grupos de restaurantes. Los datos de cada grupo viven en una sola base de datos, aislados de los de todos los demás grupos a nivel de fila, y ese aislamiento lo impone la propia base de datos en cada lectura y escritura. Esta página enumera nuestros compromisos de seguridad y, para cada uno, nombra el mecanismo concreto que lo respalda. Es deliberadamente honesta sobre lo que está en nuestra hoja de ruta pero todavía no se ha implementado — esos puntos aparecen en Lo que viene, nunca se dan a entender antes. Excellent es operada por Excellent AI LLC, una sociedad de responsabilidad limitada de Arizona con sede en Glendale, Arizona.
1. Nuestros compromisos de seguridad
a.Los datos de cada grupo de restaurantes están aislados a nivel de fila en la base de datos.
Todos los negocios funcionan en la misma base de datos, pero ningún grupo puede leer ni escribir los registros de otro grupo. El aislamiento lo impone la propia base de datos en cada consulta, no un código de aplicación que podría olvidar una verificación.
Cómo funciona
Cada fila con alcance de inquilino lleva un org_id, y la Row-Level Security de Postgres está habilitada en todas las tablas. Una única función determina su organización a partir de su sesión iniciada, y la política de cada tabla limita a ella las lecturas y escrituras. Una verificación de nuestro conjunto de pruebas automatizadas hace fallar la compilación si alguna tabla nueva se publica sin Row-Level Security habilitada.
b.El acceso entre inquilinos está impedido por diseño, no por convención.
Cuando una parte necesita legítimamente acceder al registro de otra —por ejemplo, un invitado que abre un documento compartido—, ese acceso es una relación específica y revisada, nunca una regla de seguridad relajada.
Cómo funciona
El acceso entre organizaciones solo pasa por una función de base de datos acotada y que verifica el inquilino; nunca ampliamos una política de Row-Level Security para que un grupo vea las filas de otro. En cada pull request se ejecutan controles deterministas que lo comprueban: no existe ninguna política entre inquilinos, cada función privilegiada de la base de datos está limitada a la organización de quien la invoca y cada una fija su ruta de ejecución contra la inyección.
c.Las credenciales conectadas se cifran con claves que la base de datos nunca guarda.
Los secretos que usted conecta —como el token de acceso de una cuenta de redes sociales— se sellan antes de almacenarse, con una clave que se guarda fuera de la base de datos. Una copia robada de la base de datos solo entrega texto cifrado, no credenciales utilizables.
Cómo funciona
Las credenciales de los inquilinos se sellan con AES-256-GCM usando una clave que solo existe en el entorno de la aplicación, nunca en Postgres. Cada valor lleva su propio vector de inicialización aleatorio y una etiqueta de autenticación, de modo que los datos alterados o descifrados con la clave equivocada fallan de forma segura en lugar de descifrarse como algo incorrecto.
d.Cada cambio queda registrado en un registro de solo anexado que evidencia cualquier manipulación.
Los cambios en los registros se escriben en un registro de auditoría que no puede editarse ni eliminarse, para que su historial operativo siga siendo confiable.
Cómo funciona
Un trigger de la base de datos escribe una entrada por cada modificación en una tabla de registro cuyo propio trigger rechaza las actualizaciones y eliminaciones. Una verificación de cobertura en nuestro conjunto de pruebas hace fallar la compilación si se agrega una nueva tabla de inquilino sin registro de auditoría, para que el rastro no desarrolle huecos sin que nadie lo note.
e.Puede obtener una copia completa de sus datos en cualquier momento, sin pedírnosla.
Sus registros son suyos. Un administrador puede descargar toda la organización —cada registro del negocio, fila por fila— como un solo archivo desde el propio producto, sin solicitudes, sin tickets y sin esperar por nosotros.
Cómo funciona
La exportación se ejecuta con la propia sesión del administrador que la solicita, de modo que el mismo aislamiento a nivel de fila descrito arriba la limita a su organización y a nada más — no hay ninguna función privilegiada de base de datos en ese recorrido — y la descarga está restringida a los administradores de la organización.
Lo que contiene lo define un único archivo de manifiesto, y una verificación de nuestro conjunto de pruebas hace fallar la compilación si falta en él alguna tabla que lleve un identificador de organización sin una razón declarada, de modo que la exportación no puede quedarse atrás del esquema sin que se note.
Los valores secretos, como las credenciales de cuentas conectadas, se enmascaran en su lugar, y una tabla que no se puede leer se informa dentro del archivo en vez de omitirse en silencio.
f.Nunca enviamos correos electrónicos ni mensajes de texto reales desde canales de prueba o no verificados.
Los entornos que no son de producción y los remitentes no verificados no pueden enviar mensajes a personas reales. Esto lo impone el código de envío, no se deja a la disciplina de configuración.
Cómo funciona
El control de envíos vive dentro del cliente de envío: un mensaje sale solo cuando el entorno es de producción, la organización es real y ese canal específico ha sido verificado; de lo contrario, se desvía a un receptor de pruebas y nunca llega a un destinatario.
La verificación del dominio de correo y la verificación del teléfono se registran como dos hechos independientes, de modo que uno nunca puede habilitar al otro.
Hoy ningún inquilino tiene un canal de SMS verificado, por lo que no se envía ningún mensaje de texto.
g.La seguridad se verifica en cada cambio y se sondea de forma programada.
Nuestros controles de seguridad se prueban de forma continua: automáticamente en cada cambio de código y, de forma periódica y programada, contra la aplicación en funcionamiento.
Cómo funciona
El conjunto completo de controles de seguridad deterministas se ejecuta en cada pull request: escaneo de secretos, análisis estático de los errores conocidos de esta tecnología y las verificaciones de aislamiento entre inquilinos y de Row-Level Security descritas arriba.
Además, tres sondeos se ejecutan cada noche contra producción: un sondeo de superficie de solo lectura; una matriz de acceso entre inquilinos e IDOR (39 sondeos), que en su última ejecución no encontró ninguna brecha de aislamiento; y un barrido del rol anónimo que comprueba qué puede ejecutar la clave publicable incluida en cada paquete del navegador, que en su última ejecución encontró que todas las funciones de gerente y de plataforma la rechazaban correctamente.
Cada uno publica su propio informe de cobertura, que nombra las partes de la superficie de funciones de nuestra base de datos que todavía no alcanza y que seguimos ampliando; y un agente de red team adversarial semanal modela las amenazas del código en busca de fallas de lógica que los controles deterministas no pueden ver.
Nuestras dependencias de terceros están sujetas al mismo control: un bot abre de forma programada pull requests de actualización agrupadas, y una verificación aparte hace fallar la compilación — con cualquier nivel de gravedad, tanto en las dependencias que publicamos como en las de compilación — si hay un aviso de seguridad publicado y abierto contra cualquier cosa que publiquemos.
Esa verificación se ejecuta cada noche, además de en cada cambio, de modo que un aviso publicado contra código que ya publicamos se detecta sin esperar al siguiente cambio.
Los hallazgos llegan a una única cola revisada.
h.La analítica de terceros se limita a nuestras páginas de marketing.
Medimos el tráfico de nuestro sitio web público. No medimos a su equipo dentro de la aplicación ni los enlaces sin inicio de sesión que usted envía a sus invitados, de modo que las páginas que abre su personal y los enlaces en los que hacen clic sus invitados nunca se describen a un proveedor de analítica.
Cómo funciona
Google Analytics se habilita según la ruta, no solo según el nombre de host: se carga únicamente en una lista explícita de páginas públicas de marketing, y todas las demás páginas —el espacio de trabajo con sesión iniciada, los enlaces de eventos, facturas y documentos para invitados, las páginas de inicio de sesión y de registro— quedan excluidas por defecto, incluidas las páginas que todavía no existen. Una verificación de nuestro conjunto de pruebas lee el propio árbol de rutas de la aplicación en cada pull request y hace fallar la compilación si se fuera a medir alguna página que requiere inicio de sesión o alguna página cuyo enlace lleve un token de acceso de invitado.
i.Las funciones de IA operan dentro del mismo aislamiento y nunca cambian sus datos en silencio.
La plataforma usa IA para redactar y asistir, pero la IA opera dentro de los mismos límites de inquilino que todo lo demás y nunca actúa por sí sola sobre los datos de producción.
Cómo funciona
Las lecturas de la IA pasan por el mismo aislamiento a nivel de fila que cualquier otra solicitud. Nuestro motor redacta la configuración de IA en tiempo de diseño; un motor determinista y versionado la ejecuta en tiempo de ejecución: la IA nunca modifica por sí sola los datos ni el esquema de producción. Las respuestas del modelo que hacen referencia a sus registros se validan contra el conjunto real antes de usarse, y el uso de IA queda registrado con su costo y tiene un límite por organización.
En tránsito. Todo el tráfico se sirve mediante TLS. La aplicación configura HTTP Strict Transport Security (con un max-age de dos años, incluidos los subdominios) para que los navegadores se nieguen a conectarse mediante HTTP sin cifrar. También configura X-Frame-Options: DENY y una Content-Security-Policy que bloquea el clickjacking (frame-ancestors ’none’), X-Content-Type-Options: nosniff, una política de referencia estricta y una política de permisos restrictiva que deshabilita por defecto la cámara, el micrófono, la geolocalización y los temas (topics). Una Content-Security-Policy completa para scripts y estilos está en nuestra hoja de ruta. La política actual solo cubre la inserción en marcos.
En reposo. La base de datos, sus copias de seguridad y el almacenamiento de archivos están alojados en Supabase y Vercel, que cifran los datos en reposo como característica de su plataforma administrada. Además, las credenciales de inquilinos conectadas reciben el sobre adicional de AES-256-GCM descrito en el compromiso c, con una clave que se guarda fuera de la base de datos.
Ubicación. La plataforma y sus datos están alojados en Estados Unidos.
Excellent utiliza los proveedores de servicios que se indican a continuación (“subencargados del tratamiento”) para operar la plataforma. Cada uno trata los datos únicamente para prestarnos su servicio, en virtud de acuerdos que limitan su uso. Verificamos esta lista contra la configuración real de la plataforma — un proveedor aparece aquí solo si está conectado al sistema en funcionamiento.
Modelos de IA
Anthropic (Claude)
Para qué lo usamos
Funciones de IA (redacción y asistencia)
Datos que puede procesar
Contenido de las instrucciones (prompts), que puede incluir datos del negocio del inquilino
Región
Estados Unidos
OpenAI
Para qué lo usamos
Funciones de IA y búsqueda semántica
Datos que puede procesar
Contenido de las instrucciones (prompts) y embeddings del índice de búsqueda, que pueden incluir datos del negocio del inquilino
Región
Estados Unidos
Moonshot (Kimi)Fuera de Estados Unidos
Para qué lo usamos
Solo uso interno — redacción de las publicaciones del blog y de redes sociales de Excellent, y pruebas internas de modelos
Datos que puede procesar
Ningún dato de inquilinos. El código de enrutamiento se niega a enviar datos de cualquier organización a un proveedor fuera de Estados Unidos, sea cual sea la configuración
Región
República Popular China
Excellent distribuye las solicitudes de IA entre varios proveedores de modelos; cuál atiende una solicitud determinada depende de nuestra configuración. Anthropic y OpenAI son proveedores de Estados Unidos y los únicos que reciben datos de inquilinos; Moonshot, con sede en la República Popular China, se usa solo para nuestro propio contenido y pruebas, y el código de enrutamiento se niega a enviarle datos de cualquier organización. Accedemos a estos proveedores a través de sus API, cuyos términos no usan los datos enviados por API para entrenar sus modelos. No usamos sus productos para consumidores con datos de inquilinos. Las organizaciones con requisitos de residencia de datos deben contactarnos.
Alojamiento y datos
Supabase
Para qué lo usamos
Base de datos, autenticación y almacenamiento de archivos
Datos que puede procesar
Todos los datos de la plataforma: datos de cuentas y del personal, información de contacto de los invitados, registros del negocio y archivos cargados
Región
Estados Unidos
Vercel
Para qué lo usamos
Alojamiento de la aplicación y entrega de contenido
Datos que puede procesar
Tráfico de solicitudes y respuestas en tránsito (puede incluir cualquiera de los anteriores), y registros de ejecución, que pueden incluir identificadores de organización, conservados durante el plazo de retención de registros de Vercel
Región
Estados Unidos
Pagos
Stripe
Para qué lo usamos
Procesamiento de pagos (Checkout) y pagos a cuentas conectadas (Connect)
Datos que puede procesar
Los datos de tarjetas y la información de identidad y bancaria para pagos se ingresan en Stripe y Stripe los conserva. No almacenamos números de tarjeta y nunca vemos los datos bancarios que usted proporciona a Stripe; solo un contacto de facturación e identificadores de cuentas conectadas. (Las instrucciones de pago que un restaurante decide mostrar a sus propios clientes, que pueden indicar su cuenta bancaria, son un registro del negocio de ese restaurante y se conservan junto con el resto de sus datos.)
Región
Estados Unidos
Correo electrónico
Resend
Para qué lo usamos
Entrega de correo electrónico transaccional
Datos que puede procesar
Direcciones de correo electrónico de los destinatarios y contenido de los mensajes
Región
Estados Unidos
Postmark
Para qué lo usamos
Entrega de correo electrónico transaccional y análisis del correo entrante
Datos que puede procesar
Direcciones de correo electrónico de los destinatarios, contenido de los mensajes y mensajes entrantes enviados a la plataforma
Región
Estados Unidos
Monitoreo y analítica
Sentry
Para qué lo usamos
Monitoreo de errores y alertas
Datos que puede procesar
Informes de errores depurados: el mensaje de error, los marcos de la pila y la ruta donde ocurrió — las direcciones de los destinatarios se enmascaran y los tokens de portador y los enlaces compartidos se eliminan antes de que un registro salga de nuestros servidores. No se envían registros de invitados, del personal ni del negocio
Región
Estados Unidos
Google Analytics (GA4)
Para qué lo usamos
Analítica de tráfico solo en nuestras páginas públicas de marketing — no se carga en la aplicación con sesión iniciada ni en los enlaces sin inicio de sesión que enviamos a sus invitados; está totalmente deshabilitada en los entornos de staging y desarrollo
Datos que puede procesar
IP del visitante, dispositivo y navegador, y eventos de vista de página de esas páginas de marketing. Nunca le llegan rutas de páginas con sesión iniciada ni direcciones de enlaces de invitados, y no enviamos a Google nombres, direcciones de correo electrónico ni registros del negocio — no usamos cookies publicitarias
Región
Estados Unidos / global
Búsquedas y cuentas conectadas
Mapbox
Para qué lo usamos
Búsqueda de direcciones y negocios durante la incorporación
Datos que puede procesar
Texto de búsqueda de direcciones o negocios e IP de quien lo solicita (datos de ubicación del negocio, no registros de invitados)
Región
Estados Unidos
Meta / Instagram
Para qué lo usamos
Publicación de las entradas en redes sociales que usted aprueba — operada en nuestro nombre por Ethical Digital LLC, una afiliada bajo propiedad común
Datos que puede procesar
El identificador de la cuenta de Instagram conectada y el contenido que usted publica
Región
Estados Unidos / global
Intuit (QuickBooks Online)
Para qué lo usamos
Conexión de su empresa de QuickBooks Online, cuando usted lo decide — conservamos la autorización que emite Intuit y almacenamos solo el nombre de la empresa conectada; desconectarla revoca esa autorización en Intuit
Datos que puede procesar
El identificador y el nombre de la empresa conectada, y los tokens de autorización que Intuit nos emite (sellados con AES-256-GCM). No enviamos a Intuit registros de invitados, del personal ni del negocio
Región
Estados Unidos
Hay dos integraciones configuradas que no están activas actualmente, por lo que no figuran arriba: un operador de SMS (Twilio) — verificamos las firmas de los mensajes entrantes, pero no enviamos mensajes de texto — y Google Business Profile, cuyo conector existe pero no está habilitado. Excellent no utiliza ningún servicio de publicidad de terceros.
4. Solicitudes de gobiernos y autoridades policiales
Excellent tiene una política escrita para las solicitudes de autoridades policiales, tribunales, organismos reguladores y otras autoridades públicas sobre los datos que conservamos acerca de nuestros clientes o en su nombre. Nos compromete a lo siguiente, y cada compromiso es un paso que la propia empresa realiza:
Exigimos un proceso legal válido. Divulgamos datos solo ante una citación judicial (subpoena), una orden judicial o una orden de registro emitida por una autoridad de Estados Unidos que actúe dentro de su jurisdicción, y exigimos un proceso más riguroso para los datos más sensibles: como mínimo, una orden judicial para los registros sobre su actividad y una orden de registro para el contenido de sus registros, archivos y mensajes. Una solicitud procedente de fuera de Estados Unidos debe llegar a través de un proceso legal de Estados Unidos. No atendemos solicitudes informales ni voluntarias, salvo una emergencia documentada que implique un riesgo inminente para la vida de una persona.
Revisamos cada solicitud antes de divulgar cualquier cosa. Cada solicitud se coteja con una lista de verificación escrita — su forma, quién la emite (verificado por un canal que buscamos nosotros mismos, nunca con los datos de contacto que figuran en la solicitud), cómo se notificó, su jurisdicción, su especificidad y el proceso que la respalda — y no se entrega nada, ni siquiera la confirmación de que existe una cuenta, hasta que esa revisión termina. Cuando una cuestión requiere un abogado, contratamos uno para esa solicitud.
Nos oponemos a las solicitudes ilegales o excesivamente amplias. Una solicitud que no supera nuestra revisión se rechaza por escrito. Una solicitud demasiado amplia recibe una respuesta escrita que pide acotarla. Cuando un proceso obligatorio es ilegal o excesivamente amplio, podemos solicitar, a través de un abogado, que se anule o se acote, y cuando los registros pertenecen a su organización le indicamos a quien los solicita que usted es la parte que corresponde para responder.
Divulgamos lo mínimo. Cada registro de la plataforma está limitado a una organización y lleva su propio identificador, por lo que entregamos solo los registros que nombra una solicitud, para el período que nombra, y nunca una exportación de toda la organización. No entregamos credenciales de cuentas conectadas en un formato utilizable.
Primero le avisamos a usted. Antes de divulgar los datos de su organización, notificamos a su administrador registrado, con una copia de la solicitud, para que usted mismo pueda impugnarla. Las dos excepciones: que una orden judicial o una ley prohíba el aviso, en cuyo caso le notificamos cuando la prohibición vence y le pedimos a quien la emite que fije un límite de tiempo a cualquier orden indefinida; o que la divulgación haya sido una emergencia, en cuyo caso le notificamos después.
Llevamos un registro de cada solicitud — qué se pidió, qué hicimos, el razonamiento legal y quiénes intervinieron.
Solicitudes recibidas hasta la fecha: ninguna — de ninguna autoridad pública, ni directamente ni informada a nosotros por un subencargado del tratamiento, al 10 de septiembre de 2026. Actualizamos esta cifra cada vez que revisamos la política. Nuestros subencargados del tratamiento pueden recibir solicitudes de las que no se nos informa; la política establece lo que esperamos de ellos y es honesta sobre lo que podemos y no podemos saber. Los procesos legales pueden enviarse a support@beexcellent.ai con “Legal process” en el asunto; aceptar una copia por correo electrónico es una cortesía y no implica renunciar a ninguna objeción sobre la forma de notificación.
Si cree haber encontrado una vulnerabilidad de seguridad, escriba a support@beexcellent.ai con “Security” en el asunto. Incluya suficientes detalles para reproducir el problema. Nuestro objetivo es acusar recibo de los reportes en un plazo de tres días hábiles, y le mantendremos informado mientras investigamos.
Apoyamos la investigación de seguridad de buena fe: si hace un esfuerzo genuino por evitar violaciones de la privacidad, la destrucción de datos y la interrupción del servicio, no emprenderemos ni apoyaremos acciones legales en su contra. Le pedimos que no acceda, modifique ni elimine datos que no le pertenecen, que no ejecute escaneos automatizados de gran volumen contra producción y que nos dé un tiempo razonable para corregir el problema antes de cualquier divulgación pública. Nuestro contacto en formato legible por máquina está publicado en /.well-known/security.txt.
Próximamente. Publicamos un compromiso solo cuando el mecanismo que lo respalda ya está implementado. Estas protecciones están en la hoja de ruta pero todavía no están en funcionamiento, por lo que no se afirman arriba:
Autenticación multifactor para iniciar sesión (todavía no está disponible — hoy se admite iniciar sesión con contraseña, passkey, Google y enlace o código por correo electrónico; una passkey es un primer factor resistente al phishing, no un segundo factor).
Inicio de sesión único (SSO / SAML) para clientes empresariales.
Una Content-Security-Policy completa para scripts y estilos con nonces por solicitud (la política actual solo cubre el clickjacking).
Un flujo de autoservicio para la eliminación permanente (hoy sus registros se archivan bajo su control y el borrado permanente se hace a pedido — la exportación de datos con un clic con la que antes se emparejaba este punto ya está disponible, arriba).
Una prueba de penetración independiente realizada por un tercero, antes de incorporar al primer cliente de pago (nuestro plan escrito de respuesta a incidentes ya está adoptado).
Revisamos esta página a medida que cambian nuestros controles y mantenemos actualizada la fecha de revisión que figura arriba.
10 de noviembre de 2026 — Moonshot (Kimi) ya no recibe datos de inquilinos. Nuestro enrutamiento de modelos ahora se niega, en el código, a enviar datos de cualquier organización a un proveedor fuera de Estados Unidos; Moonshot se usa solo para redactar las publicaciones del blog y de redes sociales de Excellent y para pruebas internas.
9 de noviembre de 2026 — Se corrigió la entrada de Vercel: decía que Vercel no almacena datos de la aplicación, pero sus registros de ejecución pueden incluir identificadores de organización y se conservan durante el plazo de retención de registros de Vercel.
25 de septiembre de 2026 — Se agregó Intuit (QuickBooks Online) al registro de subencargados del tratamiento. Su conexión está integrada en el sistema en funcionamiento desde septiembre de 2026, pero faltaba en la lista.
10 de septiembre de 2026 — Se agregó nuestra política para las solicitudes de gobiernos y autoridades policiales, con la cantidad de solicitudes recibidas hasta la fecha, y se corrigió la nota debajo del registro de subencargados del tratamiento, que todavía decía que no usábamos ningún servicio de seguimiento de errores de terceros después de que Sentry se agregara al registro.
7 de agosto de 2026 — Google Analytics ahora se limita a nuestras páginas públicas de marketing. Antes se cargaba en todas las páginas que sirven nuestros hosts de producción, incluida la aplicación con sesión iniciada. Se agregó el compromiso de arriba y se corrigió la entrada del subencargado del tratamiento para describir lo que funciona ahora.
7 de agosto de 2026 — Se corrigieron tres entradas que subestimaban lo que operamos: la exportación de datos de la organización con un clic ya está disponible y ahora se presenta como un compromiso en lugar de figurar como trabajo futuro; la aplicación de avisos de seguridad de dependencias y las pull requests de actualización programadas ahora se ejecutan en nuestro control de compilación y se incorporaron al compromiso de pruebas de arriba; y nuestro plan de respuesta a incidentes está adoptado. La eliminación permanente y la prueba de penetración realizada por un tercero siguen en la hoja de ruta.