Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mivicall.com/llms.txt

Use this file to discover all available pages before exploring further.

Estado: planeado. Schema na DB suporta (provider='google', refresh_token_encrypted, webhook_resource_id). UI OAuth + worker sync em construção. ETA: 2-3 semanas.

O que sincroniza

  • Mivicall → Google: cada marcação criada (qualquer source) aparece no Google Calendar do médico
  • Google → Mivicall: eventos criados directamente no Google (ex: bloqueios manuais, reuniões internas) bloqueiam o slot — a AI não marca por cima

Setup (preview)

  1. Dashboard → Settings → Integrações → Google Calendar
  2. Click “Conectar Google Calendar”
  3. Browser redirect → consent screen Google (scopes: calendar.events, calendar.readonly)
  4. Callback OAuth → tokens guardados cifrados na DB
  5. Mivicall lista os calendários do médico → seleccionar qual usar (normalmente “Primary”)
  6. Sync inicial: 30 dias para trás + 90 dias para a frente

Detalhes técnicos

  • OAuth 2.0: authorization code flow, refresh tokens
  • Tokens: cifrados AES-256-GCM antes de DB
  • Sync engine: delta sync via syncToken da Google API (não polling completo)
  • Push notifications: subscriçao webhook do Google → eventos chegam em menos de 1 min
  • Renovação automática: webhook subscription dura 7 dias, cron renova a 6 dias

Conflitos

Se há conflito (slot que aparece em ambos), aplicamos esta ordem de prioridade:
  1. Evento manual no Google Calendar (mais recente) → ganha
  2. Marcação Mivicall confirmada → mantém
  3. Slot livre → AI pode oferecer
Ambos os lados são notificados via webhook quando há conflito detectado.

RGPD

  • Tokens encriptados (AES-256-GCM, key separada da DB)
  • Revogação instantânea via dashboard → tokens apagados imediatamente
  • Mivicall lê apenas start, end, summary (título) — não lê descrições nem participantes
  • DPA cobre Google como subprocessador
Lista completa: legal/subprocessors