Esta es la documentación BOT Clientify – Nubimed para el plugin de integración entre ambas plataformas.
Entidades a conectar
La integración permite sincronizar las siguientes entidades desde Nubimed hacia Clientify:
- Pacientes (pacientes) → Contactos Clientify
- Citas (citas) → Tareas Clientify
- Citas (citas) → Oportunidades/Deals Clientify (opcional)
Sincronización unidireccional
- Pacientes: Nubimed → Clientify
- Citas: Nubimed → Clientify (como tareas)
- Citas: Nubimed → Clientify (como oportunidades/deals, opcional)
Nota: Esta integración es unidireccional, solo sincroniza datos desde Nubimed hacia Clientify.
Campos por entidad
Pacientes Nubimed → Contactos Clientify
Se utiliza el campo id de Nubimed y el campo personalizado in_nubimed de Clientify para vincular de manera única los registros. Si no se encuentra por ID, se busca por email.
| Campo Nubimed | Campo Clientify | Observaciones |
|---|---|---|
name | first_name | Nombre del paciente |
surname | last_name | Apellido del paciente |
tax_id | taxpayer_identification_number | NIF/DNI del paciente |
contact.email | emails[0].email | Email principal |
contact.phone_1 | phones[0].phone | Teléfono principal |
contact.phone_2 | phones[1].phone | Teléfono secundario |
address.street | addresses[0].street | Dirección (tipo 5) |
address.city | addresses[0].city | Ciudad |
address.postal_code | addresses[0].postal_code | Código postal |
Description | summary | Descripción del paciente |
id | integrations[].integration_id | ID de Nubimed |
id | custom_fields[].in_nubimed | Campo personalizado con ID de Nubimed |
| – | status | Siempre se establece como ‘client’ |
| – | contact_type | Siempre se establece como ‘client’ |
| – | tags | Se añade automáticamente la etiqueta «nubimed» |
Nota: Los servicios de las citas se añaden como etiquetas adicionales al contacto.
Citas Nubimed → Tareas Clientify
Las citas de Nubimed se sincronizan como tareas en Clientify. Se crea una tarea por cada cita.
| Campo Nubimed | Campo Clientify | Observaciones |
|---|---|---|
start_time | start_datetime | Fecha y hora de inicio de la cita |
end_time | end_datetime | Fecha y hora de fin de la cita |
appointment_type | tags[] | Tipo de cita como etiqueta |
id | description | ID de Nubimed en la descripción |
id | remarks | ID de Nubimed en las observaciones |
patient_id | related_contacts[] | Contacto relacionado |
| – | task_type | Se asigna tipo «Reunión» si existe |
| – | name | Formato: «CITA [nombre] [apellido] || ESTADO : [estado] || TIPO : [tipo] || ID : [id]» |
Campos personalizados creados
La integración crea automáticamente los siguientes campos personalizados en Clientify:
Para Contactos:
dia proxima cita(tipo: date) – Fecha de la próxima citahora proxima cita(tipo: text) – Hora de la próxima citatipo proxima cita(tipo: text) – Tipo de la próxima citaestado cita(tipo: text) – Estado actual de la citaclinica(tipo: text) – Clínica asociada
Para Deals/Oportunidades:
dia proxima cita(tipo: date) – Fecha de la citahora proxima cita(tipo: text) – Hora de la citatipo cita(tipo: text) – Tipo de citaestado cita(tipo: text) – Estado de la citaclinica(tipo: text) – Clínica asociadanubimed_id(tipo: text) – ID de la cita en Nubimed
Estados de citas
Los estados de las citas en Nubimed se mapean a estados legibles en Clientify:
| Estado Nubimed | Estado Clientify |
|---|---|
1 | «pendiente» |
2 | «en curso» |
3 | «sin confirmar» |
4 | «finalizada» |
5 | «cancelada» |
6 | «no se presenta» |
7 | «en sala de espera» |
8 | «en gabinete» |
9 | «en sala espera ya visitado» |
Mecanismo de sincronización
Proceso de vinculación
La integración utiliza diferentes estrategias para vincular pacientes:
- Por campo personalizado
in_nubimed: Se busca primero si existe un contacto con el ID de Nubimed en el campo personalizado. - Por email: Si no se encuentra por ID, se busca por email del paciente.
- Creación: Si no se encuentra ninguna coincidencia, se crea un nuevo contacto.
Gestión de citas
La integración gestiona las citas de la siguiente manera:
- Obtención de citas: Se obtienen todas las citas de las clínicas configuradas en un rango de fechas.
- Primera cita por paciente: Solo se toma la primera cita de cada paciente para establecer los campos personalizados de «próxima cita».
- Actualización de próxima cita: Se actualiza la información de próxima cita solo si:
- La cita tiene el mismo ID que la almacenada previamente, o
- La nueva cita es más reciente que la fecha actual y más cercana que la cita almacenada
- Creación de tareas: Se crea o actualiza una tarea por cada cita, buscando por el ID de Nubimed en la descripción.
Modos de sincronización
La integración puede ejecutarse en dos modos:
- Full: Sincroniza todas las citas de los últimos 10 años
- Modified: Sincroniza solo las citas desde hoy hasta 12 meses en el futuro
Rango de fechas
- Modo Full: Desde hace 10 años hasta hoy
- Modo Modified: Desde hoy hasta 12 meses en el futuro
Clínicas y agendas
La integración obtiene primero todas las clínicas (agendas) disponibles para el usuario y luego sincroniza las citas de cada clínica.
Proceso de conexión
Credenciales necesarias
Para configurar la integración se necesitan las siguientes credenciales:
- Usuario: Email del usuario de Nubimed
- Token/Password: Token de autenticación de Nubimed (API Token)
Obtención de credenciales
Las credenciales se obtienen desde la plataforma Nubimed. El usuario debe tener acceso a la API de Nubimed y generar un token de autenticación.
Nota: La API de Nubimed utiliza autenticación mediante headers:
X-User-Email: Email del usuarioX-User-Token: Token de autenticación
Configuración en Clientify
- Acceder a la pestaña de Integraciones en Clientify
- Seleccionar la tarjeta de Nubimed
- Rellenar los campos:
- Usuario (email)
- Token/Password (API Token)
- Guardar la configuración
- Si todo es correcto, aparecerá un mensaje de confirmación y la integración se activará
Campos personalizados automáticos
Al configurar la integración, se crean automáticamente los campos personalizados necesarios en Clientify si no existen. No es necesario crearlos manualmente.
Configuración avanzada
Modo Trial
La integración soporta un modo de prueba (trial) que limita el número de registros sincronizados:
trialMaxContacts: Límite de contactos a sincronizar (por defecto: 10)trialMaxBudgets: Límite de presupuestos (por defecto: 10)trialMaxCompanies: Límite de empresas (por defecto: 10)trialMaxProducts: Límite de productos (por defecto: 10)trialMaxDeals: Límite de oportunidades (por defecto: 10)
Pipelines para Deals
Si se activa la sincronización de deals, la integración crea automáticamente un pipeline llamado «Seguimiento Citas Nubimed» con las siguientes etapas:
- Pendiente
- En Curso
- Sin Confirmar
- Finalizada
- Cancelada
- No Se Presenta
- En Sala De Espera
- En Gabinete
Compatibilidad
Versiones de Nubimed
La integración utiliza la API v1 de Nubimed (https://api.clinicaenlanube.com/api/v1/).
Documentación de la API: https://nubimed.stoplight.io/docs/api/cadc77b3fa0b3-nubimed
Requisitos
- Usuario con acceso a la API de Nubimed
- Token de autenticación válido
- Permisos para acceder a las clínicas/agendas necesarias
- Permisos para leer pacientes y citas
Limitaciones
- La API de Nubimed devuelve un máximo de 500 citas por petición. La integración maneja automáticamente la paginación.
- La sincronización es unidireccional: los cambios en Clientify no se reflejan en Nubimed.
- Solo se sincronizan pacientes que tienen citas asociadas.
Notas importantes
- Primera sincronización: En modo Full, la primera sincronización puede tardar bastante tiempo si hay muchas citas históricas (hasta 10 años).
- Actualización de próxima cita: La integración solo actualiza los campos de «próxima cita» si la nueva cita es más reciente que la almacenada, evitando sobrescribir citas futuras con citas pasadas.
- Etiquetas automáticas: Todos los contactos sincronizados reciben automáticamente la etiqueta «nubimed». Además, se añaden etiquetas con los servicios de cada cita.
- Tareas duplicadas: La integración verifica si ya existe una tarea con el mismo ID de Nubimed antes de crear una nueva, evitando duplicados.
- Velocidad de sincronización: La integración incluye un delay de 1 segundo entre cada sincronización de contacto para evitar sobrecargar las APIs.
