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.

A página pública de booking (Calendly-style) pode ser embebida em qualquer site da clínica com uma linha de HTML. Funciona em WordPress, Wix, Squarespace, sites custom — qualquer página que aceite <script>.

Inline (na própria página)

<div data-mivicall-booking="r-i-t"></div>
<script src="https://mivicall.com/embed.js" async></script>
Substitui r-i-t pelo slug da clínica (configurado em Settings → Integrações → URL pública). O resultado é um iframe responsivo que ocupa a largura disponível e ajusta a altura automaticamente conforme o utilizador avança pelos steps (escolher serviço → médico → dia/hora → dados).
<button data-mivicall-booking-trigger="r-i-t">
  Marcar consulta
</button>
<script src="https://mivicall.com/embed.js" async></script>
O botão pode ter o styling do site da clínica — o script só intercepta o click e abre o modal.

Múltiplos no mesmo site

<!-- Página de cardiologia -->
<div data-mivicall-booking="r-i-t?service=consulta-cardiologia"></div>

<!-- Página de dermatologia -->
<div data-mivicall-booking="r-i-t?service=consulta-derma"></div>

<script src="https://mivicall.com/embed.js" async></script>
Pre-selecciona o serviço no flow, poupando 1 step ao paciente.

Estilo / customização

O iframe herda automaticamente as cores do Design System Mivicall, alinhadas com a brand da clínica. Não há CSS para customizar — o objectivo é consistência. Para clínicas que precisam de branding totalmente custom (plano Enterprise), contactem hello@mivicall.com.

Eventos JavaScript

O widget emite eventos no window ao longo do flow — útil para tracking analytics:
window.addEventListener('mivicall:booking:opened', (e) => {
  console.log('Modal opened for tenant', e.detail.slug)
  // gtag('event', 'booking_started', { ... })
})

window.addEventListener('mivicall:booking:completed', (e) => {
  console.log('Booking completed', e.detail.appointmentId)
  // gtag('event', 'conversion', { ... })
})

window.addEventListener('mivicall:booking:closed', (e) => {
  console.log('Modal closed, step:', e.detail.lastStep)
})

Segurança e privacidade

  • O iframe usa origem mivicall.com — cookies isolados do site da clínica
  • CSP frame-ancestors * permite embed em qualquer domínio (intencional)
  • Não há acesso ao DOM do site host — não conseguimos nem queremos ler cookies/inputs
  • RGPD: o paciente preenche os dados directamente em mivicall.com, sob a nossa Privacy Policy. O site host nunca toca em PII.

Verificação rápida

Depois de colares o snippet, podes confirmar funcionamento via:
curl -I https://mivicall.com/embed.js
# HTTP/2 200
# cache-control: public, max-age=300, s-maxage=3600
# access-control-allow-origin: *
Se o ficheiro carrega mas o widget não aparece: abre DevTools → Console, procura mivicall para ver mensagens de erro (ex: slug inexistente ou public booking desactivado).