Saltar al contenido

GuíasIntegraciones y automatización6 min de lectura

Brief de integración API: qué definir antes de desarrollar

Qué debe definir un brief de integración API antes de escribir código: fuente de verdad, campos, dirección, frecuencia y criterios de aceptación.

Publicado
Revisado
Entradas de formas distintas encajan en una interfaz de integración ajustada a cada una.

Daniil MaximkinIngeniero de producto y soluciones

Respuesta corta

Un brief de integración API debe indicar la fuente de verdad de cada campo, en qué dirección se mueven los datos, con qué frecuencia y qué hace que dos registros sean el mismo, es decir, la clave de idempotencia. También debe decir a quién se avisa si falla una ejecución y definir criterios de aceptación que una tercera persona pueda comprobar sin preguntarte qué querías decir.

— Daniil

Conclusiones clave

  • El brief define una fuente de verdad por campo, no por sistema. Un campo puede pertenecer al CRM aunque aparezca en una página que lee casi todo de Shopify.
  • La dirección y la frecuencia se escriben por campo: una sincronización bidireccional suele ser varios flujos unidireccionales que comparten una conexión.
  • La clave de idempotencia impide que un evento repetido o reintentado cree otro registro. No basta con esperar que el emisor solo lo intente una vez.
  • Los criterios de aceptación los puede comprobar alguien que no estuvo en la conversación: una cifra, un estado o el resultado de una consulta, no 'debería funcionar bien'.
  • El alcance de una integración se define a partir de los sistemas y la tarea. Un diagnóstico de tracking es otra cuestión y nunca un requisito previo.
En esta guía

Muchos problemas de integración que aparecen meses después se decidieron mal en la primera conversación, normalmente sin que nadie notara que estaba tomando una decisión. Nadie escribió qué sistema era responsable del correo del cliente. Ahora ambos creen serlo y lo actualizan en direcciones opuestas cuando alguien de soporte olvida en qué pantalla está.

Un brief de integración API, el contrato de datos del que hablo en la página del servicio, es el documento breve que evita esto. Se escribe antes de desarrollar y responde a una pregunta: ¿qué estamos acordando construir exactamente?

¿Qué debe incluir un brief de integración API?

Una fuente de verdad para cada campo que se mueve, su dirección y frecuencia, una clave de idempotencia que define un duplicado, una persona responsable de autorización y errores, y criterios de aceptación que se puedan comprobar sin otra conversación. Esa es la lista completa.

Esta plantilla reúne esas decisiones en una o dos páginas para acordarlas antes de desarrollar.

El objetivo del proceso y los sistemas implicados

El brief responde a algo más concreto que «conectar el sistema A con el B». Dos o más sistemas rara vez necesitan todo lo que contiene el otro. Normalmente uno necesita unos pocos campos del otro, ante un desencadenante y en una dirección.

La primera sección nombra los sistemas y la tarea en lenguaje sencillo: cuáles intervienen, qué activa el intercambio y qué significa «terminado» para una ejecución. Un cliente se registra, llega un webhook o alguien de soporte necesita ver el estado de entrega de otro sistema. Esta sección es breve a propósito. Evita que la petición crezca en silencio hasta convertirse en «conectar todo con todo», que es donde empiezan el coste y los duplicados.

Para el caso hipotético de CRM y facturación que usamos abajo: Sistemas: un CRM y una herramienta de facturación. Desencadenante: se emite una factura o cambia una dirección de facturación. Terminado: el otro sistema guarda el valor nuevo una sola vez.

Fuente de verdad y campos

Para cada campo que se mueve entre sistemas, el brief establece quién es responsable de él. No es el sistema del que resulta más fácil leerlo, sino aquel cuyo valor se considera correcto cuando ambos discrepan.

Ejemplo hipotético: un CRM y una herramienta de facturación guardan la dirección de facturación del cliente. Si el comercial la corrige en el CRM tras una llamada, el CRM es la fuente de verdad, aunque la herramienta de facturación la necesite para imprimir una factura. Escribir «el CRM es responsable de la dirección; facturación la recibe» resuelve en una línea una discusión que aparecería en la primera discrepancia.

Cada campo tiene también una dirección, qué sistema escribe y cuál lee, y una frecuencia: en tiempo real ante un evento, por consultas periódicas o por lotes durante la noche. Una sincronización bidireccional suele ser varios flujos unidireccionales que comparten conexión. Nombrarlos por separado evita que una petición bienintencionada de «sincronizar todo» termine con dos sistemas sobrescribiéndose mutuamente.

Este es el ejemplo completado para el caso anterior:

CampoResponsable, fuente de verdadDirecciónFrecuenciaClave de idempotencia
Dirección de facturación del clienteCRMCRM → herramienta de facturaciónAl cambiar, mediante webhookID de cliente + versión de la dirección
Total y líneas de la facturaHerramienta de facturaciónHerramienta de facturación → CRMAl emitir, mediante webhookID de factura
Estado del pagoHerramienta de facturaciónHerramienta de facturación → CRMCada 30 minutos, mediante consultaID de factura + marca de tiempo del estado

La clave de idempotencia es lo que muchos borradores omiten. Evita el fallo más común: que el mismo evento llegue y se procese dos veces. No tiene que ser compleja; a menudo basta el ID de factura. Debe quedar escrita antes de desarrollar, no descubrirse cuando una factura duplicada aparece en una bandeja de entrada.

Autorización, errores y responsabilidad

El brief debe decir qué ocurre si algo falla. Una integración que solo funciona cuando todo va bien no está terminada.

La autorización indica quién gestiona las credenciales de cada lado, dónde se guardan y quién puede revocarlas si hay que desactivar la integración con urgencia. Los errores cubren tres preguntas: qué fallo permite un reintento y cuál es permanente, dónde termina una ejecución que agota sus reintentos, y a quién se avisa. La cola o registro de fallos definitivos, la vía dead-letter, debe revisarla alguien. «Un correo al desarrollador» es una respuesta válida si está escrita; el fallo habitual es que nadie decidió, no que se eligiera a la persona equivocada.

Para el ejemplo de CRM y facturación: Credenciales: una clave de API por lado, gestionada por la persona responsable de operaciones en el gestor de contraseñas de la empresa; cada lado puede revocar la suya. Reintentable: tiempos de espera agotados y respuestas 5xx, hasta el límite acordado. Permanente: una respuesta 4xx por un ID de cliente desconocido. Registro de fallos definitivos: una tabla de ejecuciones fallidas en la base de datos de la integración. Aviso: a la persona responsable de operaciones, por correo, por cada ejecución que termina en ese registro.

Un caso documentado públicamente: Shopify advierte que la entrega de webhooks no siempre está garantizada y recomienda dos medidas. Ignorar duplicados mediante la cabecera X-Shopify-Webhook-Id de cada evento y ejecutar una conciliación periódica que consulte la API para no depender solo de webhooks. Estos detalles explican por qué hacen falta una clave de idempotencia y una vía de fallos definitivos, en esta API y en muchas otras que envían webhooks.

Criterios de aceptación

El brief define qué significa «terminado» de forma que una tercera persona pueda comprobarlo sin preguntarte qué querías decir. Para el mismo ejemplo:

  • Cada factura emitida aparece en el cliente correspondiente del CRM dentro del plazo de la frecuencia acordada.
  • Un webhook entregado dos veces con el mismo ID de factura genera exactamente un registro.
  • Un cambio de dirección de facturación hecho en el CRM se refleja en la siguiente factura emitida para ese cliente.
  • Una entrega que agota sus reintentos aparece en el registro de fallos definitivos con el ID de factura y genera una alerta a la persona indicada; no queda solo en un log.
  • Volver al proceso manual, desactivando el webhook, requiere un paso documentado y ningún cambio de código.

Cada punto nombra un hecho comprobable: un recuento, un registro o una entrada de log. No una impresión de que la integración «funciona bien».

Qué no decide este brief

El documento tiene un alcance concreto. No fija precio ni plazo; se acuerdan cuando el alcance permite presupuestar.

Tampoco elige entre webhook, consultas periódicas o exportación programada más allá de lo que implique la frecuencia de la tabla. Esa decisión suele depender de restricciones que el brief no recoge, como límites de solicitudes o un planificador ya existente. Y no evalúa tu configuración de tracking o analítica: sincronizar CRM y facturación y medir un evento de compra de GA4 son preguntas distintas. Este documento no trata la segunda.

Un ejemplo completado y una plantilla en blanco

La tabla y los criterios anteriores son un ejemplo para dos sistemas hipotéticos, un CRM y una herramienta de facturación. Nada procede de la implementación de un cliente. El único comportamiento real de plataforma citado es el de Shopify, tal como lo describe su documentación pública.

La plantilla en blanco, descarga Markdown, tiene las mismas secciones y tabla con las filas vacías, para que la completes con tus sistemas antes de hablar de desarrollo. Si prefieres prepararla conmigo, eso forma parte del trabajo de integración API y automatización, dentro de la lista de servicios. En sobre mí explico brevemente cómo abordo este trabajo.

Si prefieres hablarlo primero, contacta conmigo con los sistemas implicados y lo que hoy no funciona.

Preguntas

Preguntas que responde esta guía

¿Necesito una auditoría de tracking antes de una integración?

No. El Tracking Health Check es un diagnóstico de solo lectura que comprueba cómo cuadran GA4, Meta, Google Ads y Shopify con tus pedidos. Responde a otra pregunta y no es un paso obligatorio para definir o construir una integración. Si la tarea resulta ser un problema de medición, se dice explícitamente en vez de darlo por supuesto.

¿Quién debe escribir el brief, nosotros o el desarrollador?

Cualquiera puede preparar el borrador, pero ambos deben acordarlo antes de escribir código. Quien mejor conoce los sistemas propone los campos y su responsabilidad; quien lo construye añade el manejo de errores y la idempotencia que suelen faltar en el primer borrador.

¿Y si aún no conocemos los campos?

Es normal al principio. Enumera lo que sí sabes: los dos sistemas, el desencadenante y la forma aproximada de los datos. El brief puede ser el resultado de una conversación breve para definir el alcance; no tienes que llegar con él terminado.

¿El brief incluye precio o plazo?

No. Es un documento técnico: campos, responsabilidad, dirección, frecuencia, errores y aceptación. Precio y plazo se acuerdan aparte, cuando el brief concreta el alcance lo suficiente para presupuestarlo.

Daniil Maximkin

Hola, soy Daniil.

Trabajo contigo desde la definición del problema hasta la implementación y la entrega. Hablas con quien hace el trabajo. Trabajo en inglés y ruso.

¿Lo has intentado y sigues atascado?

Describe tu tarea

La primera respuesta es gratis, en un día laborable. O escribe directamente: next@taskfordaniel.com