developers · Aug 12, 2025

A visão de um desenvolvedor sobre como criar uma sincronização bidirecional com a API Quire

Traduzido por IA
· Ver em inglês

Diagrama da arquitetura de sincronização bidirecional do Quire mostrando o fluxo de dados entre o Quire e aplicativos externos

Última atualização: 20 de julho de 2026

TL;DR

Uma sincronização bidirecional entre o Quire e outro aplicativo exige um servidor intermediário que receba webhooks dos dois lados e chame cada API para espelhar a mudança. Arquitetura: Quire ↔ Seu aplicativo ↔ Outro aplicativo. Quatro etapas de implementação: coloque o servidor de webhook no ar, registre-o no Quire (adicionando-o como seguidor do projeto), registre-o no outro aplicativo e depois trate os eventos usando os tipos de atividade da documentação da API Quire. Duas regras de segurança: marque a origem de cada mudança para evitar loops infinitos e mantenha um mapeamento de IDs entre as tarefas do Quire e os itens do outro aplicativo. O aplicativo de sincronização bidirecional com o Google Calendário é um exemplo funcional.

Quando os dados vivem em dois aplicativos, toda ação acaba sendo feita duas vezes ou saindo de sincronia silenciosamente. A sincronização bidirecional resolve esse problema de dupla digitação fazendo com que o Quire e o outro aplicativo troquem atualizações automaticamente por meio de webhooks. A API aberta do Quire foi criada exatamente para esse padrão.

O custo de ferramentas desconectadas é bem documentado. Segundo a pesquisa da McKinsey sobre a economia social, os trabalhadores do conhecimento gastam quase 20% da semana procurando informações internas em vez de fazer o trabalho de fato. Uma sincronização confiável elimina boa parte dessa sobrecarga automaticamente.

O aplicativo de sincronização bidirecional com o Google Calendário é o exemplo canônico: as tarefas do Quire e os eventos do Google Calendário permanecem alinhados sem reconciliação manual. Este post mostra como construir o mesmo padrão contra a API de qualquer outro aplicativo.

A sincronização bidirecional com o Google Calendário é feita para os níveis de assinatura Premium e superiores. Mais informações podem ser encontradas em nossa página de preços.

Quais são os componentes de uma sincronização bidirecional do Quire?

Componente Papel
Aplicativo Quire Fornece as credenciais de API; registrado como seguidor do projeto para receber webhooks
Servidor intermediário (seu aplicativo) Recebe webhooks dos dois lados; chama cada API para espelhar a mudança
Outro aplicativo (ex.: Google Calendário) Fonte dos eventos do seu lado; alvo das gravações via API
URL de webhook nas configurações do aplicativo Quire Onde o Quire envia (POST) os eventos de atividade
Tabela de mapeamento de IDs Mapeia os IDs de tarefa do Quire ↔ os IDs de item do outro aplicativo
Tag de origem em cada mudança Evita loops infinitos de atualização

Qual é o fluxo de trabalho da sincronização bidirecional?

Pense na sincronização bidirecional como uma conversa entre dois aplicativos. Quando você atualiza uma tarefa no Quire, ele avisa o outro aplicativo sobre a mudança. E quando algo é atualizado nesse outro aplicativo, ele avisa o Quire. Isso mantém suas informações consistentes em todos os lugares.

Diagrama do fluxo de trabalho de sincronização bidirecional ilustrando o fluxo de eventos entre o Quire, o middleware e o aplicativo externo

Quais são as etapas de implementação?

Configurar seu aplicativo Quire é o primeiro passo. Você vai precisar criar um para obter as credenciais necessárias para acessar seu projeto do Quire por meio da API dele.

Para um guia passo a passo sobre como criar seu próprio aplicativo com a API Quire, visite nosso post do blog.

Para implementar uma sincronização bidirecional, você vai precisar desenvolver um aplicativo intermediário (o seu aplicativo) que funcione como uma ponte entre o Quire e o aplicativo de destino (como o Google Calendário). Pense nele como um tradutor: ele recebe informações de um lado, processa e envia os comandos certos para o outro. O fluxo é assim: Quire ↔ Seu aplicativo ↔ Outro aplicativo.

Como construir isso passo a passo?

1. Prepare um aplicativo para tratar eventos

Para habilitar a sincronização bidirecional, primeiro você precisa configurar seu próprio servidor para atuar como a camada intermediária. Esse aplicativo será responsável por receber solicitações POST de webhook tanto do Quire quanto do outro aplicativo. Seu servidor deve ser capaz de:

  • Aceitar solicitações HTTP POST recebidas (eventos de webhook) do Quire e do outro aplicativo.
  • Analisar os payloads dos eventos e determinar quais ações precisam ser tomadas.
  • Usar as respectivas APIs para atualizar dados no Quire ou no outro aplicativo, conforme necessário.

Você pode construir esse servidor usando qualquer tecnologia de sua preferência, como Node.js, Python ou Ruby. Nas seções a seguir, vamos usar Node.js para demonstrar um exemplo simples de como receber e tratar eventos de webhook. Certifique-se de que seu servidor esteja acessível pela internet para que o Quire e o outro aplicativo consigam enviar eventos de webhook até ele.

Aqui está um exemplo simples em 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');
});

2. Configure um webhook no Quire para enviar atualizações de tarefas ao seu aplicativo.

Em seguida, você vai precisar criar uma rota no seu servidor para receber eventos de webhook do 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');
});

Neste exemplo, a rota do webhook é /webhook, então a URL completa será ${your-host}/webhook.

Copie essa URL de webhook e cole nas configurações do aplicativo Quire, para que o Quire saiba para onde enviar as notificações de evento para o seu aplicativo.

Configurações do aplicativo Quire exibindo o campo de configuração da URL de webhook

Além disso, você vai precisar registrar seu aplicativo Quire como seguidor do projeto que deseja sincronizar. Isso garante que seu aplicativo receba notificações das atualizações relevantes.

Para um guia passo a passo sobre como receber notificações via API Quire, visite nosso guia.

3. Configure um webhook no outro aplicativo para enviar suas atualizações ao seu aplicativo.

Para sincronizar as atualizações do outro aplicativo com o Quire, você também vai precisar criar uma rota no seu servidor para receber eventos de webhook desse aplicativo. O processo de registro é semelhante ao exemplo mostrado acima para o Quire. Basta configurar o outro aplicativo para enviar suas notificações de evento para o endpoint de webhook do seu aplicativo intermediário, e garantir que seu servidor consiga tratar e processar esses eventos recebidos corretamente.

4. Trate os eventos recebidos e atualize os dados tanto no Quire quanto no outro aplicativo usando as respectivas APIs.

Depois que seu aplicativo estiver recebendo eventos de webhook do Quire e do outro aplicativo, você vai precisar implementar uma lógica para processar esses eventos e sincronizar os dados entre as duas plataformas. Isso normalmente envolve:

  • Analisar os payloads dos eventos para identificar o que mudou (por exemplo, tarefa criada, atualizada ou excluída). Para mais detalhes sobre a estrutura dos eventos, consulte a documentação da API Quire - Eventos de notificação.
  • Determinar quais chamadas de API são necessárias para refletir essas mudanças no outro aplicativo.
  • Enviar as solicitações de API apropriadas ao Quire ou ao outro aplicativo para manter os dados sincronizados.
  • Manter um mapeamento entre os IDs de tarefa do Quire e os IDs de item do seu aplicativo para garantir que as atualizações sejam vinculadas corretamente.

Ao tratar cuidadosamente os eventos recebidos e atualizar os dados por meio das APIs, seu aplicativo garante que as mudanças sejam refletidas com precisão nos dois lados, mantendo uma sincronização bidirecional confiável.

Aqui está um exemplo usando Node.js e 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 exemplo demonstra como tratar eventos de criação e exclusão vindos de outro aplicativo e sincronizá-los com o Quire. Certifique-se de implementar o tratamento de erros adequado e manter o mapeamento de IDs para uma sincronização confiável.

Quais são os principais pontos de atenção?

Duas regras de segurança cobrem os modos de falha que atingem toda primeira implementação:

  • Registre a origem de cada mudança. Marque as atualizações disparadas pelo seu próprio processo de sincronização e as ignore quando voltarem como um webhook. Sem isso, o Quire envia a atualização para o outro aplicativo, o outro aplicativo dispara um webhook de volta, seu servidor envia a mudança de novo, e o loop se repete para sempre.
  • Mantenha os formatos de dados consistentes. Um campo que significa uma coisa no Quire (uma descrição em Markdown) pode precisar de uma conversão explícita antes de virar a descrição de um evento de calendário, uma nota de texto simples em um chamado, ou outro formato de destino.

Qual é o próximo passo?

API aberta mais webhooks transformam o Quire e suas outras ferramentas em uma única fonte de verdade, em vez de duas que competem entre si. Comece pela menor sincronização viável (um tipo de evento, uma direção) e verifique se o loop funciona de ponta a ponta antes de expandir.

Relacionado: Integre ferramentas externas com o Quire via API Quire — Usando o n8n como exemplo — um exemplo prático caso você prefira começar com uma ferramenta de automação sem código em vez de um servidor personalizado.

Software de gerenciamento de tarefas para dividir grandes metas no próximo pequeno passo

Perguntas frequentes

O que é a sincronização bidirecional entre o Quire e outro aplicativo?

Uma conexão em duas vias em que as atualizações fluem nos dois sentidos: as mudanças no Quire são enviadas para o outro aplicativo, e as mudanças de lá voltam para o Quire. O aplicativo de sincronização bidirecional com o Google Calendário é um exemplo funcional.

O que eu preciso para criar uma sincronização bidirecional com a API Quire?

Um aplicativo Quire com credenciais de API, um servidor intermediário acessível pela internet para receber webhooks, e uma lógica para traduzir eventos entre as duas APIs. Qualquer linguagem de back-end funciona.

Qual é o papel do aplicativo intermediário?

Ele atua como um tradutor entre o Quire e o outro serviço, recebendo eventos de webhook, decidindo quais chamadas de API fazer e mantendo o mapeamento entre os IDs de tarefa do Quire e os IDs de item do outro aplicativo.

Como evito loops infinitos de sincronização?

Registre a origem de cada mudança e ignore as atualizações disparadas pelo seu próprio processo de sincronização. Sem essa proteção, cada atualização fica indo e voltando entre os dois aplicativos para sempre.

Qual plano do Quire é necessário para a sincronização bidirecional com o Google Calendário?

Premium ou superior. Confira os limites atuais dos níveis na página de preços.

Whiter
Software Engineer