Información legal
Portabilidad de datos
Cómo descargar los datos de tu empresa y preparar su traslado. Este registro describe el contenido y los formatos de la exportación de Mavvi.
Versión 2026-10-07.2 · Última actualización: 7 de octubre de 2026
Puedes preparar una exportación con tu cuenta activa, sin solicitar la baja. El propietario o un administrador puede hacerlo en Baja y exportación.
1. Descargar o preparar un cambio
- Inicia sesión con el acceso de propietario o administrador de tu empresa y entra en Baja y exportación.
- Pulsa «Preparar exportación». La opción de la plataforma prepara archivos JSON. La interfaz documentada más abajo admite también CSV.
- Cuando termine la preparación, descarga todos los archivos, incluidos los manifiestos. Cada archivo tiene su propio enlace; no se entrega un único ZIP.
- Conserva una copia en tu destino antes de la fecha indicada. Los paquetes duran como máximo 48 horas y pueden regenerarse mientras siga abierto tu plazo de extracción.
Si necesitas asistencia para cambiar de proveedor o trasladar tus datos a tu propia infraestructura, escribe a mavvi@mavvi.es indicando la empresa, el alcance y las fechas deseadas. No hace falta iniciar primero una baja para pedir ayuda. Las condiciones y los plazos del cambio están en los Términos y condiciones.
Organiza el traslado asistido antes de terminar el servicio contratado. Después del fin del servicio se conserva el acceso a la descarga de los datos propios durante el plazo aplicable. Una ampliación de conservación no prolonga el uso de las funciones de pago, ni produce una renovación o un cobro nuevo.
Cuando salen solo algunos locales, su opción de exportación entrega los datos de esos locales. Los datos generales de personas y configuración de toda la empresa se obtienen mediante la exportación de la cuenta.
2. Archivos y lectura de los datos
JSON: cada archivo de datos contiene category, cutoffAt, readStartedAt, readFinishedAt y una lista rows. Conserva objetos, listas, números, booleanos y valores vacíos null. Es la opción recomendada para importar datos en otro programa.
CSV: texto UTF‑8 con marca BOM, separador de coma y finales de línea CRLF. La primera fila contiene los campos en orden alfabético; las celdas van entre comillas dobles y las comillas interiores se duplican. Los objetos y listas se guardan como texto JSON dentro de la celda. Un valor nulo se representa como celda vacía. Los textos que podrían ejecutarse como fórmulas reciben un apóstrofo inicial; JSON conserva el valor sin esa transformación.
Originales: logotipos e imágenes propias disponibles en JPEG, PNG y, para logotipos, WebP, con un máximo de 5 MiB por original. Las referencias a una imagen en los datos no sustituyen al archivo original. Se entregan los archivos conservados por Mavvi, sin descargar contenidos de direcciones externas.
Manifiestos: siempre son JSON. Identifican el paquete, empresa, fechas, categorías, intervalos reales de lectura, exclusiones y partes. Para cada parte incluyen nombre, tipo, tamaño en bytes, número de filas y resumen SHA‑256 para comprobar su integridad. Si hay varios manifiestos, reúne sus listas de partes. Una categoría vacía aparece en los intervalos aunque no tenga archivo de filas.
Sus claves son version, schemaVersion, schemaUrl, jobId, accountId, cutoffAt, preparationStartedAt, preparedAt, expiresAt, consistency, categories, categoryReadIntervals, exclusions y parts. Cada intervalo contiene readStartedAt, readFinishedAt, rowCount y complete. Cada parte identifica id, sequence, category, file_name, content_type, size_bytes, row_count, sha256, read_started_at y read_finished_at. Las claves nuevas pueden faltar en archivos preparados con una versión anterior; prepara un paquete nuevo para obtener la estructura actual.
Cada parte contiene como máximo 500 registros y puede dividirse antes por tamaño. Los archivos no superan 8 MiB. Los datos se leen por categorías: el corte excluye registros creados después de la solicitud, pero los cambios posteriores en registros existentes pueden reflejarse al leerlos. Las fechas de lectura permiten conocer ese intervalo; no se garantiza una instantánea de toda la cuenta tomada en un solo momento.
Los identificadores son textos estables dentro de la exportación. Los campos terminados en _id enlazan con el id correspondiente: por ejemplo, business_id con Locales, contact_id con Contactos y action_id con Objetivos. user_id, assigned_to, created_by, updated_by y recorded_by identifican usuarios de acceso; reports_to_id identifica una persona del directorio. Algunas referencias pueden quedar vacías si el registro relacionado dejó de estar disponible.
Las fechas usan ISO 8601 con zona horaria. Los campos de estado y clasificación son códigos de texto; deben conservarse al importar. Un campo puede ser null si no existe valor o su contenido se ha excluido. Las listas vacías se representan como [] y los objetos vacíos como {}.
3. Registro de categorías y campos
Estos nombres de archivo y campos permiten a tu equipo o proveedor de destino interpretar la exportación. Abre cada categoría para consultar su estructura.
Empresa · account
Identificación de la empresa y etiqueta de plan guardada; no sustituye al contrato de facturación vigente.
id- identificador (texto)
name- texto
slug- texto
plan- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Locales · businesses
Datos propios del local, grupo y configuración de palabras SEO. No contiene resultados de búsquedas.
id- identificador (texto)
name- texto
category- texto
slug- texto
website_url- texto
location- texto
status- texto
group_id- identificador (texto)
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
seo_settings- objeto JSON
Grupos · groups
Nombres y referencias de los grupos de locales.
id- identificador (texto)
name- texto
slug- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Accesos · memberships
Usuarios de la empresa, función, estado y fechas de incorporación.
id- identificador (texto)
user_id- identificador (texto)
role- texto
status- texto
invited_at- fecha ISO 8601
joined_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Ámbitos de acceso · membership_scopes
Relaciona cada acceso con los grupos o locales autorizados.
id- identificador (texto)
membership_id- identificador (texto)
group_id- identificador (texto)
business_id- identificador (texto)
created_at- fecha ISO 8601
Personas · people
Directorio propio: identidad, contacto, cargo y responsable.
id- identificador (texto)
membership_id- identificador (texto)
first_name- texto
last_name- texto
email- texto
job_title- texto
reports_to_id- identificador (texto)
status- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Asignaciones de personas · people_assignments
Relaciona personas con grupos y locales.
id- identificador (texto)
person_id- identificador (texto)
group_id- identificador (texto)
business_id- identificador (texto)
created_at- fecha ISO 8601
Contactos · contacts
Datos de contacto, permisos, etiquetas y campos personalizados aportados por la empresa.
id- identificador (texto)
display_name- texto
email- texto
phone- texto
contact_type- texto
source- texto
external_reference- texto
email_permission- texto
whatsapp_permission- texto
tags- lista de textos
custom_fields- objeto JSON
archived_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Locales de contactos · contact_locations
Relación entre contactos y locales.
contact_id- identificador (texto)
business_id- identificador (texto)
created_at- fecha ISO 8601
Historial de contactos · contact_events
Tipo, origen, autor y fecha de cada cambio registrado; sin cargas técnicas de proveedores.
id- identificador (texto)
contact_id- identificador (texto)
event_type- texto
source- texto
actor_id- identificador (texto)
occurred_at- fecha ISO 8601
Actividad · activities
Actividades de los contactos, procedencia, estado y posibles anulaciones.
id- identificador (texto)
business_id- identificador (texto)
contact_id- identificador (texto)
event_type- texto
occurred_at- fecha ISO 8601
source_type- texto
source_namespace- texto
external_reference_hint- texto
state- texto
voided_at- fecha ISO 8601
void_reason- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Solicitudes · requests
Solicitudes de valoración, destinatarios, canal, origen y fechas de entrega.
id- identificador (texto)
business_id- identificador (texto)
contact_id- identificador (texto)
activity_event_id- identificador (texto)
channel- texto
recipient_email- texto
recipient_phone_e164- texto
recipient_name- texto
source_type- texto
source_reference- texto
delivery_status- texto
queued_at- fecha ISO 8601
sent_at- fecha ISO 8601
delivered_at- fecha ISO 8601
read_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Eventos de solicitudes · request_events
Tipo y fecha de los eventos asociados a cada solicitud.
id- identificador (texto)
request_id- identificador (texto)
business_id- identificador (texto)
event_type- texto
occurred_at- fecha ISO 8601
created_at- fecha ISO 8601
Comentarios privados · private_feedback
Mensajes recibidos directamente, datos de contacto facilitados y estado de gestión.
id- identificador (texto)
request_id- identificador (texto)
business_id- identificador (texto)
message- texto
customer_name- texto
customer_email- texto
contact_requested- booleano
status- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Bajas de correo · email_suppressions
Destinatarios excluidos, motivo y solicitud relacionada.
id- identificador (texto)
email- texto
reason- texto
request_id- identificador (texto)
created_at- fecha ISO 8601
Bajas de WhatsApp · whatsapp_suppressions
Teléfonos excluidos, motivo y solicitud relacionada.
id- identificador (texto)
phone_e164- texto
reason- texto
request_id- identificador (texto)
created_at- fecha ISO 8601
Acciones · actions
Gestión, asignación y plazos. El texto y la evidencia propios solo se incluyen para acciones manuales o de comentarios privados sin reseña asociada.
id- identificador (texto)
business_id- identificador (texto)
category- texto
priority- texto
status- texto
assigned_to- identificador (texto)
due_at- fecha ISO 8601
completed_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
origin- texto
source_feedback_id- identificador (texto)
improvement_action_id- identificador (texto)
ticket_group_id- identificador (texto)
title- texto
description- texto
evidence_note- texto
evidence_url- texto
Objetivos de seguimiento · improvement_actions
Estado, responsable, fechas y objetivo propio acreditado. Excluye mediciones, análisis y evidencias; el texto de origen no acreditado queda vacío.
id- identificador (texto)
status- texto
assigned_to- identificador (texto)
start_at- fecha ISO 8601
due_at- fecha ISO 8601
completed_at- fecha ISO 8601
created_by- identificador (texto)
updated_by- identificador (texto)
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
customer_objective- objeto JSON
Locales de seguimiento · improvement_locations
Relaciona un objetivo con sus locales y la fecha de asignación.
action_id- identificador (texto)
business_id- identificador (texto)
created_at- fecha ISO 8601
Diseño de solicitudes · account_settings
Diseño, marca y textos elegidos para solicitudes y formularios privados.
account_id- identificador (texto)
template_style- texto
logo_url- texto
brand_color- texto
email_subject- texto
email_heading- texto
email_intro- texto
google_button_label- texto
private_prompt- texto
private_button_label- texto
email_closing- texto
feedback_heading- texto
feedback_message- texto
feedback_comment_label- texto
feedback_submit_label- texto
thank_you_heading- texto
thank_you_message- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Contacto de solicitudes · location_settings
Remitente, contacto, logotipo y color propios de cada local.
business_id- identificador (texto)
sender_name- texto
reply_to_email- texto
reply_to_verified_at- fecha ISO 8601
contact_phone- texto
contact_email- texto
logo_url- texto
brand_color- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Preguntas · questions
Preguntas configuradas, orden y estado activo.
id- identificador (texto)
business_id- identificador (texto)
label- texto
position- número
active- booleano
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Publicaciones propias · content_drafts
Borradores y contenidos redactados, enlaces, medios, eventos, ofertas y programación.
id- identificador (texto)
topic_type- texto
summary- texto
language_code- texto
call_to_action- objeto JSON
event_data- objeto JSON
offer_data- objeto JSON
media_urls- lista de textos
scheduled_for- fecha ISO 8601
status- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Destinos de publicaciones · content_targets
Locales de destino, estado y fecha de publicación; sin respuesta técnica de Google.
id- identificador (texto)
draft_id- identificador (texto)
business_id- identificador (texto)
status- texto
published_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Permisos de comunicación · channel_permissions
Canal, finalidad, decisión, procedencia y referencia de la evidencia de consentimiento.
id- identificador (texto)
contact_id- identificador (texto)
channel- texto
purpose- texto
permission- texto
source- texto
occurred_at- fecha ISO 8601
recorded_by- identificador (texto)
evidence_reference- texto
created_at- fecha ISO 8601
Eventos de valoración · public_events
Tipo, valoración y fecha de los eventos públicos vinculados a un local; sin datos técnicos del visitante.
id- identificador (texto)
business_id- identificador (texto)
magic_link_id- identificador (texto)
event_type- texto
rating- número
created_at- fecha ISO 8601
Preferencias de respuesta · ai_settings
Tono, longitud, firma, idiomas y herencia de preferencias de la empresa.
id- identificador (texto)
business_id- identificador (texto)
inherit_global- booleano
brand_tone- texto
reply_length- texto
reply_signature- texto
reply_language_mode- texto
default_reply_language- texto
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Instrucciones propias · ai_instructions
Instrucciones de respuesta, orden y relación con las preferencias.
id- identificador (texto)
settings_id- identificador (texto)
instruction- texto
position- número
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Configuración automática · auto_reply_settings
Activación, valoraciones elegidas, demora, límite diario y requisito de texto.
business_id- identificador (texto)
enabled- booleano
ratings- lista de números
delay_minutes- número
daily_limit- número
require_text- booleano
enabled_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Términos manuales · manual_seo_terms
Términos aportados manualmente y su uso autorizado en respuestas, ficha o web. Las palabras de seguimiento SEO están en Locales.
id- identificador (texto)
business_id- identificador (texto)
term- texto
status- texto
use_in_replies- booleano
use_in_profile- booleano
use_in_website- booleano
approved_at- fecha ISO 8601
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Cambios propios de ficha · own_profiles
Solo los campos sobrescritos por el cliente; no incluye la ficha obtenida de Google.
id- identificador (texto)
business_id- identificador (texto)
status- texto
field_overrides- lista de textos
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
profile_data- objeto JSON
Configuración GEO · geo_settings
Web, consultas configuradas y estado de activación. No incluye resultados de proveedores.
business_id- identificador (texto)
website_url- texto
prompts- lista JSON
enabled- booleano
created_at- fecha ISO 8601
updated_at- fecha ISO 8601
Archivos originales · original_files
Logotipos e imágenes propias conservadas. Se entregan como archivos binarios, no como filas JSON/CSV.
Su estructura es la del formato de imagen original. El nombre, tipo, tamaño y SHA‑256 están en el manifiesto; esta categoría no produce filas JSON o CSV.
Estructuras anidadas
seo_settings.keywords: lista deid(texto),keyword(texto) ycreated_at(fecha).seo_settings.slots: lista deslot(número 1 o 2),keyword_id(identificador o nulo),pending_keyword(texto o nulo) ychange_pending(booleano). Contiene la elección del cliente, sin posiciones ni resultados de Google.customer_objective: objeto o nulo. Incluyename,description,metric,directionyunit(textos),target_valueyperiod_days(números). Solo se conserva el contenido propio acreditado. La descripción generada por un análisis queda nula; no contiene valores medidos, recomendaciones ni evidencias.custom_fields: objeto con los nombres y valores personalizados del contacto.profile_data: objeto que contiene exclusivamente las claves elegidas enfield_overrides; sus valores corresponden a los cambios del cliente.call_to_action:actionTypeyurl(textos, cuando proceden).event_data:title,startAtyendAt(textos con el título y las fechas/horas configuradas).offer_data:couponCode,redeemOnlineUrlytermsConditions(textos opcionales). Se conservan sus claves y valores JSON tal como están guardados.prompts: lista JSON de consultas configuradas para GEO, conid,themeytext(textos). Las configuraciones anteriores pueden contener directamente los textos en la lista. Las etiquetas y el contenido son configuración propia, no respuestas de los proveedores.
4. Interfaz documentada de exportación
Esta interfaz se ofrece sin cargo para la portabilidad. Usa HTTPS y la sesión autenticada del propietario o administrador en Mavvi. La cuenta se determina por esa sesión; no se acepta un identificador de otra empresa. La documentación y los archivos pueden entregarse al proveedor de destino. No se ofrece una clave de API separada para estas operaciones.
POST /api/account/offboarding/exports- Cabecera
Content-Type: application/json. Cuerpo{"format":"json"}o{"format":"csv"}. Para la salida concreta de unos locales, añadelocationRequestIdcon el identificador de esa salida propia. Devuelve HTTP 202 yjobconid,statusyexpiresAt. Máximo cuatro solicitudes por hora y usuario de la empresa; una preparación en curso puede reutilizarse. GET /api/account/offboarding/exports- Devuelve
jobs, hasta 20 preparaciones propias. Consulta una con?jobId=IDENTIFICADOR. Cada elemento incluye estado, fechas,rows,partsCount,partsynextPartsCursor. Cuando el estado seaready, descarga sus partes. Para más de 200 partes, consulta el mismojobIdañadiendopartsCursorcon el valor recibido, hasta que sea nulo. GET /api/account/offboarding/exports/{jobId}/{partId}- Usa el
downloadUrlde cada parte, con la misma sesión. Devuelve el archivo con su tipo, nombre y cabeceraX-Export-SHA256. Las partes incluyen tambiénid,category,fileName,contentType,sizeBytes,rowCount,sha256y fechas de lectura. DELETE /api/account/offboarding/exports- Cuerpo JSON con
jobId: cancela esa preparación propia. No solicita la baja ni elimina los datos de trabajo de la empresa.
Estados de preparación: queued, processing, ready, failed, cancelled y expired. Revisa el estado mientras se prepara; un fallo no se presenta como una exportación completa. Los errores se devuelven como JSON con message: acceso no autorizado (401/403), parámetros inválidos (422), límite de solicitudes (429), archivo no disponible (404), plazo terminado (410) o indisponibilidad temporal (503).
Ejemplo ficticio de un archivo JSON de Locales:
{
"category": "businesses",
"cutoffAt": "2026-10-07T08:00:00.000Z",
"readStartedAt": "2026-10-07T08:00:01.000Z",
"readFinishedAt": "2026-10-07T08:00:02.000Z",
"rows": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "Cafetería Ejemplo",
"category": "cafe",
"slug": "cafeteria-ejemplo",
"website_url": "https://example.org",
"location": "Ciudad Ejemplo",
"status": "active",
"group_id": null,
"created_at": "2026-10-01T09:00:00+00:00",
"updated_at": "2026-10-06T09:00:00+00:00",
"seo_settings": {
"keywords": [
{
"id": "22222222-2222-4222-8222-222222222222",
"keyword": "cafetería",
"created_at": "2026-10-01T09:00:00+00:00"
}
],
"slots": []
}
}
]
}5. Alcance y restricciones
- La descarga requiere conservar el permiso de administración y el plazo de extracción. Si cualquiera termina, se detiene también una descarga en curso. Los enlaces no son públicos ni amplían ese plazo.
- No se exportan contraseñas, tokens, secretos, cargas técnicas de proveedores ni información interna de seguridad. Sí se incluyen los identificadores, relaciones, fechas y configuraciones propios descritos en este registro.
- Esta exportación no incluye reseñas y contenido obtenidos de Google, estadísticas ni análisis derivados, ni texto o evidencia de acciones cuyo origen propio no esté acreditado. Esta es una limitación del exportador actual; no significa que todo dato relacionado con Google quede automáticamente excluido de un derecho de portabilidad.
- Para conectar las fichas con otro servicio, utiliza tu propio acceso autorizado a Google y la conexión que ofrezca el destino. Mavvi no transfiere sus credenciales de conexión. Una solicitud de cambio no amplía los plazos de conservación permitidos por Google ni modifica los originales allí.
- Las facturas y documentos de contratación se consultan por su canal de facturación; no forman parte de este paquete de datos de trabajo. La conservación legal se describe en los Términos y la política de privacidad.
- El destino puede necesitar adaptar nombres de campos, relaciones o formatos. La exportación no reproduce automáticamente todas las funciones de Mavvi. Si falta un dato propio que necesitas trasladar, indícalo a mavvi@mavvi.es para revisar su disponibilidad y las condiciones aplicables.
Este registro describe la interfaz y los formatos disponibles; no sustituye los derechos establecidos en los Términos y condiciones y en la normativa aplicable.
