Google OAuth: 4 fluxos diferentes
O FIRO suporta autenticação Google em quatro contextos distintos, cada um com o seu controlador dedicado:
- User (gestor de tenant) — login no backoffice via
GoogleUserAuthController. - Staff (profissional) — login no painel de staff via fluxo OAuth com selecção de tenant.
- Customer (cliente final) — login no portal
/minha-contaviaGoogleCustomerAuthController. - Platform Admin — fluxo restrito para administradores da plataforma.
Em todos os casos, o login Google é alternativo ao magic link — o utilizador escolhe o que prefere. Não há password em nenhum fluxo.
Google Calendar bidireccional
Cada profissional pode ligar a sua conta Google Calendar. O sync funciona nos dois sentidos:
FIRO → Google
Cada marcação criada/alterada gera ou actualiza um evento no Calendar. O profissional vê tudo numa só agenda.
Google → FIRO
Eventos criados manualmente no Calendar bloqueiam disponibilidade nos slots públicos do FIRO. Tentativa de criar marcação a partir de eventos relevantes.
Detalhe técnico
- Tokens OAuth (
refresh_token,access_token) cifrados na base viaprotected $casts = ['... ' => 'encrypted']. - Conector em
GoogleCalendarOAuthController; despachante de sync emGoogleCalendarSyncDispatcher. - Eventos rastreados via
BookingItemGoogleCalendarEvent. - Feature controlada por plano:
external_calendar_sync(Pro+).
Google Maps na página pública
A localização do tenant aparece em mapa interactivo na página pública usando Google Maps. A API key é gerida centralmente pela administração da plataforma e os tenants beneficiam dela sem terem de pedir conta Google própria.
- Latitude/longitude guardadas no tenant.
- Marcador na localização exacta.
- Link directo para abrir no Google Maps do telemóvel.
SMS via BulkGate
O canal SMS usa BulkGate, provedor europeu profissional. O FIRO abstrai a integração — o tenant só configura template e antecedência.
- Credenciais centralizadas (gestão pela administração da plataforma).
- Endpoint de envio via
BulkGateSmsService. - Faturação mensal por tenant ligada ao limite mensal definido.
- Test send disponível para validação antes de produção.
Confirmações de entrega são tratadas quando suportadas pela API e ficam em NotificationLog.
Cloudflare SaaS: domínios próprios com SSL
Domínios personalizados são gerenciados via Cloudflare SaaS. O fluxo é:
- Tenant aponta CNAME do seu domínio para o destino do FIRO.
- O FIRO chama a API Cloudflare para registar o hostname.
- Cloudflare emite o certificado SSL automaticamente.
- Estado é trackeado em
cloudflare_hostname_idecloudflare_ssl_status.
Renovação do SSL é automática para sempre. O tenant não precisa de ferramentas como Let's Encrypt nem de tocar em servidores.
CSV import e export
Para tenants que migram de outras ferramentas:
Importação
CsvImportService+ UI dedicada (ContactImportController).- Mapeamento de colunas configurável no upload.
- Cada lote regista origem em
CsvSource.
Exportação
CsvExportServicepara clientes, marcações, transações.- Útil para análise externa ou migração de saída (sem lock-in).
Email via Gmail SMTP
O envio de emails usa Gmail SMTP através de GmailMailer. As credenciais são geridas centralmente. O tenant não tem de configurar SMTP próprio nem manter servidor de email.
- Compatível com HTML rico.
- Templates renderizados por
EmailTemplateRenderer. - Logs em
NotificationLog.
Custom SMTP por tenant (envio com domínio próprio) está no roadmap.
API pública e webhooks
API pública aberta a integradores externos está prevista no plano Business e está no roadmap de implementação. Hoje, integrações fora do scope listado acima exigem desenvolvimento à medida via contacto comercial.
Webhooks para eventos (marcação criada, confirmada, cancelada) também estão no roadmap. Casos de uso típico: integração com Zapier, ferramentas de marketing, ERPs.
O que dizer ao lead
O argumento "integrações" é onde se separa software profissional de toy projects. Lista o que já está pronto e enquadra o que falta como roadmap activo.
- "Já liga ao Google Calendar do teu profissional" — bidireccional, sem dor. Quem já tentou fazer isto noutra ferramenta sabe que normalmente é doloroso.
- "O domínio próprio fica com SSL automático" — Cloudflare por trás, sem o tenant ter de saber o que é Let's Encrypt.
- "SMS profissional, não SMS de telemóvel" — BulkGate é uma operadora europeia. Entrega rápida e fiável, com log do que saiu.
- "Importas o que tens, exportas o que quiseres" — CSV nos dois sentidos. Sem lock-in.
Âmbito atual & roadmap
O produto evolui semana a semana. Aqui está o que existe hoje e o que está confirmado para chegar.
Hoje no produto
- Google OAuth (user, staff, customer, admin)
- Google Calendar bidireccional (Pro+) com tokens cifrados
- Google Maps na página pública
- BulkGate SMS profissional
- Cloudflare SaaS para custom domain + SSL
- CSV import/export (clientes, bookings, transações)
- Gmail SMTP com templates
A caminho
- API REST pública para integradores externos
- Webhooks para eventos de booking
- Pagamentos online (Stripe / MB Way / Multibanco)
- Faturação electrónica (Vendus / Moloni / InvoiceXpress)
- WhatsApp Business como canal de comunicação
- SMTP custom por tenant (envio com domínio próprio)
Perguntas frequentes
Que integrações vêm "out of the box"?
Google OAuth, Google Calendar (Pro+), Google Maps, BulkGate SMS, Cloudflare SaaS, Gmail SMTP, CSV import/export. Tudo configurável sem desenvolvimento.
Posso ligar a um Zapier?
Hoje não há webhooks/API públicos. Está no roadmap. Em entretanto, casos específicos podem ser tratados via integração à medida — falar com [email protected].
O Google Calendar funciona em todos os planos?
A funcionalidade está disponível a partir do plano Pro. Starter inclui marcações + página pública sem sync externo.
Posso enviar SMS com remetente alfanumérico?
BulkGate suporta sender ID alfanumérico em mercados que o permitem (Portugal incluído). É configurável.
O domínio próprio com SSL tem custo extra?
Não. Está incluído nos planos que oferecem custom domain. O Cloudflare é gerido pelo FIRO; o tenant só aponta o CNAME.
Continua à conversa com a equipa comercial
Mostramos o produto a funcionar, respondemos a dúvidas específicas do teu negócio e ajudamos-te a escolher o plano certo.