Blue admite Webhooks salientes para enviar datos a otros sistemas.
Un webhook es un mensaje automatizado enviado de una aplicación a otra cuando ocurre algo. Por ejemplo, cuando se crea un nuevo registro en Blue, se puede configurar un webhook para enviar datos sobre ese registro a otro sistema.
Los webhooks de Blue se activan instantáneamente, en milisegundos desde que ocurre el evento. Esta naturaleza en tiempo real los hace invaluables para integrar Blue con otros sistemas empresariales.
Webhooks
- Sincronización de datos en tiempo real entre sistemas
- Capacidad de responder y actuar sobre eventos de Blue
- No es necesario sondear repetidamente en busca de cambios; se envían instantáneamente
- Crear integraciones y flujos de trabajo personalizados
Control Sin Precedentes
Los webhooks de Blue te brindan un control detallado sobre:
- Exactamente qué eventos deben activar el webhook y de qué proyecto
- Filtros para reducir el alcance de los registros
- Validación de firma para mayor seguridad
Creando un Webhook
En Blue, los Administradores de Proyecto pueden crear webhooks en la configuración personal. Debes especificar:
- Nombre del webhook
- URL de carga útil para enviar datos
- Secreto opcional para la firma
Disparadores
Los webhooks pueden ser activados por una amplia variedad de eventos de Blue, incluyendo:
- Registro creado/actualizado/eliminado
- Comentario agregado/editado
- Asignado cambiado
- Estado de la lista de verificación cambiado
- Valor de campo personalizado cambiado
- Y muchos más
Carga Útil del Webhook
Cuando se activa, Blue envía una carga útil JSON que contiene todos los detalles del evento a la URL que especificaste.
Aquí hay un ejemplo de carga útil:
{
"event": "RECORD_CREATED",
"record": {
"id": "1234",
"title": "New record"
...
},
"company": {
"id": "5678"
},
"project": {
"id": "91011"
},
"user": {
"id": "1213"
}
}
Firma
Para validar que las cargas útiles provienen genuinamente de Blue, se puede verificar una firma opcional. Similar a OAuth, la firma se crea al hash de los contenidos de la carga útil con tu clave secreta elegida.
Validación de Ejemplo en Node.js
const crypto = require('crypto');
const key = 'secret';
const body = {...webhookPayload}
const hash = crypto.createHmac('sha256', key).update(body);
const signature = hash.digest('hex');
Integraciones Adicionales
Más allá de los webhooks personalizados, Blue también ofrece integraciones con herramientas como Zapier y Pabbly Connect para simplificar la conexión de datos de Blue con cientos de aplicaciones populares.
Ejemplo de respuesta de Webhook
{
"event": "TODO_CREATED",
"webhook": {
"id": "clb4qaopy0000vt24mlp28v03",
"uid": "edb5b5d51dc9461a952160dbe72153b4",
"name": "Testing webhook",
"url": "https://httpdump.app/dumps/7cc66eda-8e83-4039-ba49-4c36db14d508",
"secret": "",
"status": "HEALTHY",
"enabled": true,
"metadata": {
"events": [
"TODO_CREATED",
"TODO_DELETED",
"TODO_MOVED",
"TODO_NAME_CHANGED",
"TODO_CHECKLIST_CREATED",
"TODO_CHECKLIST_NAME_CHANGED",
"TODO_CHECKLIST_DELETED",
"TODO_CHECKLIST_ITEM_CREATED",
"TODO_LIST_CREATED",
"TODO_LIST_DELETED",
"TODO_LIST_NAME_CHANGED",
"COMMENT_CREATED",
"COMMENT_DELETED",
"COMMENT_UPDATED"
],
"projectIds": [
"clakt90vu000bvt64hhffqleq",
"claulnu1y0000vtrcjurjgds4",
"clb4gay0y000qvtzs8smaays8"
]
},
"createdById": "claksl2ye0000vtas0h0ln71e",
"createdAt": "2022-12-01T07:01:25.014Z",
"updatedAt": "2022-12-01T11:23:00.661Z"
},
"currentValue": {
"id": "clb4zna6x0000vt1swuwso25f",
"uid": "11021cb836f34732b31e5ebd5dd5eb27",
"title": "GGGG",
"html": null,
"text": null,
"position": "32767.5",
"archived": false,
"done": false,
"startedAt": null,
"duedAt": null,
"timezone": null,
"createdAt": "2022-12-01T11:23:09.000Z",
"updatedAt": "2022-12-01T11:23:09.241Z",
"createdById": "claksl2ye0000vtas0h0ln71e",
"todoListId": "clakt9v5t000kvt64f563l90l",
"todoCustomFields": [],
"todoUsers": [],
"todoTags": [],
"todoList": {
"id": "clakt9v5t000kvt64f563l90l",
"uid": "df0e931e6e8f4fc2905ece9da167d2d3",
"createdAt": "2022-11-17T08:29:22.000Z",
"updatedAt": "2022-11-17T08:29:22.050Z",
"title": "ETEST",
"position": 131070,
"createdById": "claksl2ye0000vtas0h0ln71e",
"projectId": "clakt90vu000bvt64hhffqleq",
"project": {
"id": "clakt90vu000bvt64hhffqleq",
"uid": "d7db469a8908496f8e5f5e68030fe4c8",
"slug": "teest",
"name": "TEEST",
"description": "",
"archived": false,
"createdAt": "2022-11-17T08:28:43.000Z",
"updatedAt": "2022-11-17T08:28:42.811Z",
"isTemplate": false,
"isOfficialTemplate": false,
"category": "GENERAL",
"companyId": "clakt8jud0002vt64205yyj10",
"imageId": null,
"hideEmailFromRoles": null,
"company": {
"id": "clakt8jud0002vt64205yyj10",
"uid": "400eb3f8238c486caf40957618be9662",
"slug": "rogue",
"name": "Rogue",
"description": null,
"createdAt": "2022-11-17T08:28:21.000Z",
"updatedAt": "2022-11-17T08:28:20.726Z",
"freeTrialExpiredAt": "2022-12-01T08:28:15.000Z",
"freeTrialStartedAt": "2022-11-17T08:28:15.000Z",
"subscribedAt": null,
"imageId": null,
"subscriptionPlanId": "clakt8jue0003vt64e40q2prj",
"freeTrialExtendedById": null,
"freeTrialExtendedAt": null
}
}
}
}
}
Si tienes alguna pregunta, contáctanos en [support@blue.cc](support@blue.cc), y podemos ayudarte. También ofrecemos servicios profesionales para soporte de integración.