
Última actualización: 20 de julio de 2026
La sincronización bidireccional entre Quire y otra app requiere un servidor intermediario que reciba webhooks de ambos lados y llame a cada API para reflejar el cambio. Arquitectura: Quire ↔ tu app ↔ otra app. Cuatro pasos de implementación: levantar el servidor de webhooks, registrarlo en Quire (añadiéndolo como seguidor del proyecto), registrarlo en la otra app y luego manejar los eventos usando los tipos de actividad de la documentación de la API de Quire. Dos reglas de seguridad: etiquetar el origen de cada cambio para evitar bucles infinitos y mantener un mapeo de ID entre las tareas de Quire y los elementos de la otra app. La app de sincronización bidireccional con Google Calendar es un ejemplo funcional.
Cuando los datos viven en dos apps, cada acción se hace dos veces o se desincroniza en silencio. La sincronización bidireccional elimina ese problema de doble entrada al hacer que Quire y la otra app intercambien actualizaciones automáticamente mediante webhooks. La API abierta de Quire está diseñada justo para este patrón.
El costo de las herramientas desconectadas está bien documentado. Según la investigación de McKinsey sobre la economía social, los trabajadores del conocimiento dedican casi el 20% de su semana a buscar información interna en lugar de hacer su trabajo real. Una sincronización confiable elimina automáticamente buena parte de esa carga.
La app de sincronización bidireccional con Google Calendar es el ejemplo canónico: las tareas de Quire y los eventos de Google Calendar se mantienen alineados sin conciliación manual. Esta publicación explica cómo construir el mismo patrón con la API de cualquier otra app.
La sincronización bidireccional con Google Calendar está disponible para los niveles de suscripción Premium y superiores. Puedes encontrar más información en nuestra página de precios.
| Componente | Función |
|---|---|
| App de Quire | Proporciona las credenciales de API; se registra como seguidora del proyecto para los webhooks |
| Servidor intermediario (tu app) | Recibe webhooks de ambos lados; llama a cada API para reflejar el cambio |
| Otra app (p. ej. Google Calendar) | Origen de los eventos de su lado; destino de las escrituras de API |
| URL de webhook en la configuración de la app de Quire | A dónde Quire envía (POST) los eventos de actividad |
| Tabla de mapeo de ID | Vincula los ID de tarea de Quire con los ID de elemento de la otra app |
| Etiqueta de origen en cada cambio | Evita bucles infinitos de actualización |
Piensa en la sincronización bidireccional como una conversación entre dos apps. Cuando actualizas una tarea en Quire, esta le informa a la otra app sobre el cambio. Y cuando algo se actualiza en esa otra app, se lo informa a Quire. Así tu información se mantiene consistente en todas partes.

Configurar tu app de Quire es el primer paso. Necesitarás crear una para obtener las credenciales necesarias para acceder a tu proyecto de Quire a través de su API.
Para una guía paso a paso sobre cómo crear tu propia app con la API de Quire, visita nuestra publicación de blog.
Para implementar una sincronización bidireccional, necesitarás desarrollar una app intermediaria (tu app) que actúe como puente entre Quire y tu app de destino (como Google Calendar). Piénsalo como un traductor: obtendrá información de un lado, la procesará y luego enviará los comandos correctos al otro. El flujo se ve así: Quire ↔ tu app ↔ otra app.
Para habilitar la sincronización bidireccional, primero necesitas configurar tu propio servidor como capa intermediaria. Esta app será responsable de recibir solicitudes POST de webhook tanto de Quire como de la otra app. Tu servidor debería poder:
Puedes construir esta app de servidor con la tecnología que prefieras, como Node.js, Python o Ruby. En las siguientes secciones, usaremos Node.js para mostrar un ejemplo sencillo de cómo recibir y manejar eventos de webhook. Asegúrate de que tu servidor sea accesible desde internet para que Quire y la otra app puedan enviarle eventos de webhook.
Aquí tienes un ejemplo sencillo en Node.js usando Express:
const express = require('express');
const app = express();
app.use(express.json());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});Después, necesitarás crear una ruta en tu servidor para recibir eventos de webhook de Quire.
app.post('/webhook', (req, res) => {
console.log('Received webhook event:', req.body);
// TODO: Handle the event and update Quire or other app via API
res.status(200).send('Event received');
});En este ejemplo, la ruta del webhook es /webhook, así que la URL completa será ${your-host}/webhook.
Copia esta URL de webhook y pégala en la configuración de la app de Quire, para que Quire sepa a dónde enviar las notificaciones de eventos a tu app.

Además, necesitarás registrar tu app de Quire como seguidora del proyecto que quieres sincronizar. Esto asegura que tu app reciba notificaciones de las actualizaciones relevantes.
Para una guía paso a paso sobre cómo recibir notificaciones a través de la API de Quire, visita nuestra guía.
Para sincronizar las actualizaciones de la otra app con Quire, también necesitarás crear una ruta en tu servidor para recibir eventos de webhook de esa app. El proceso de registro es similar al ejemplo mostrado antes para Quire. Simplemente configura la otra app para que envíe sus notificaciones de eventos al endpoint de webhook de tu app intermediaria, y asegúrate de que tu servidor pueda manejar y procesar estos eventos entrantes correctamente.
Una vez que tu app esté recibiendo eventos de webhook de Quire y de la otra app, necesitarás implementar la lógica para procesar estos eventos y sincronizar los datos entre ambas plataformas. Esto normalmente implica:
Al manejar cuidadosamente los eventos entrantes y actualizar los datos a través de las APIs, tu app garantiza que los cambios se reflejen con precisión en ambos lados, manteniendo una sincronización bidireccional confiable.
Aquí tienes un ejemplo usando Node.js y axios:
const axios = require('axios');
app.post('/webhook', (req, res) => {
const { type } = req.body.data;
// Reference of activity types:
// https://github.com/quire-api/quire-api/blob/master/docs/activity_types.md
switch (type) {
case 0: //Quire task created
onQuireTaskCreate();
break;
case 1: //Quire task deleted
onQuireTaskDelete();
break;
}
res.status(200).send('Event received');
});
// Route for handling events from another app to Quire
app.post('/anotherwebhook', async (req, res) => {
const { isCreate, id, name, projectId } = req.body;
if (isCreate) {
// Create a task in the Quire project
await axios.post(`https://quire.io/api/task/${projectId}`, { name });
// Optionally, store the mapping between your app's id and Quire's task id
} else {
// Retrieve the corresponding Quire task id using your mapping logic
const taskOid = getTaskIdByAppEventId(id, projectId);
// Delete the task from the Quire project
await axios.delete(`https://quire.io/api/task/${taskOid}`);
}
res.status(200).send('Event processed successfully');
});Este ejemplo muestra cómo manejar eventos de creación y eliminación de otra app y sincronizarlos con Quire. Asegúrate de implementar un manejo de errores adecuado y de mantener el mapeo de ID para una sincronización confiable.
Dos reglas de seguridad cubren los modos de falla que afectan a toda primera implementación:
La API abierta más los webhooks convierten a Quire y tus otras herramientas en una única fuente de verdad en lugar de dos que compiten entre sí. Empieza con la sincronización viable más pequeña (un tipo de evento, una dirección) y verifica que el bucle funcione de principio a fin antes de expandirlo.
Relacionado: Integra herramientas externas con Quire a través de la API de Quire — usando n8n como ejemplo — un ejemplo práctico si prefieres empezar con una herramienta de automatización sin código en lugar de un servidor personalizado.
Una conexión bidireccional donde las actualizaciones fluyen en ambos sentidos: los cambios en Quire se envían a la otra app, y los cambios ahí se envían de vuelta a Quire. La app de sincronización bidireccional con Google Calendar es un ejemplo funcional.
Una app de Quire con credenciales de API, un servidor intermediario accesible desde internet para recibir webhooks, y la lógica para traducir eventos entre ambas APIs. Funciona con cualquier lenguaje de backend.
Actúa como traductora entre Quire y el otro servicio: recibe eventos de webhook, decide qué llamadas a la API hacer y mantiene el mapeo entre los ID de tarea de Quire y los ID de elemento de la otra app.
Registra el origen de cada cambio e ignora las actualizaciones provocadas por tu propio proceso de sincronización. Sin esta protección, cada actualización rebota entre las dos apps para siempre.
Premium en adelante. Consulta los límites actuales de cada nivel en la página de precios.