Knowledge Base · 01

Marcações no FIRO — tipos, modos, estados e fluxos

Tudo o que precisas de saber sobre o coração do produto: como uma marcação nasce, que tipos de booking existem, que estados pode atravessar e como funcionam slots, recorrência e cancelamentos.

Leitura de 7 min · Conteúdo factual extraído do produto

  • 5 modos de marcação para casos de uso muito diferentes
  • 8 estados que cobrem todo o ciclo de vida da marcação
  • Múltiplos serviços e profissionais por marcação
  • Bloqueios, folgas e horários fixos recorrentes
01

Os 5 modos de marcação

Uma marcação no FIRO não é uma estrutura rígida. O motor suporta cinco modos de booking, escolhidos por serviço, para cobrir realidades muito diferentes:

Atendimento individual appointment

O modo padrão. Um cliente reserva um slot com um profissional para um serviço. É o caso típico de cabeleireiros, esteticistas, tatuadores, terapeutas, consultores.

Aula / grupo class

Várias pessoas reservam o mesmo slot até ao limite de participantes. Aulas de yoga, pilates, formações, workshops. Cada participante é uma marcação distinta no mesmo horário.

Recurso resource

A marcação prende-se a um recurso — sala, cabine, equipamento — e não obrigatoriamente a um profissional. Útil para ginásios, clínicas com salas partilhadas, espaços de coworking.

Horário fixo fixed_schedule

Sessões recorrentes geradas a partir de uma regra (regra iCal armazenada em recurrence_rule_json) com limite de participantes por sessão. Aulas semanais, séries de tratamentos, programas de várias sessões.

Encomenda de produto product_order

Reservar/comprar produtos sem horário (ex.: um produto a levantar). Cobre casos onde a "marcação" não tem slot temporal mas precisa de existir no fluxo de transações.

02

Os 8 estados de uma marcação

Cada marcação atravessa um ciclo de vida controlado. Os estados são:

  • Pendente pending — aguarda confirmação manual ou automática.
  • Confirmada confirmed — aceite pelo negócio. Bloqueia agenda e dispara lembretes.
  • Parcialmente confirmada partially_confirmed — multi-serviço onde alguns itens estão aceites e outros pendentes.
  • Check-in checked_in — cliente chegou; pode ser usado em fluxos de recepção.
  • Cancelada pelo cliente cancelled_by_customer — distingue auto-cancelamento de cancelamento por iniciativa do negócio.
  • Cancelada pelo negócio cancelled_by_business — registada quando a equipa cancela.
  • Concluída completed — serviço prestado e fechado.
  • Não compareceu no_show — cliente faltou; registo separado para métricas de no-show.

A distinção entre cancelamento por cliente vs. por negócio importa para relatórios, comunicação e políticas de fidelização.

03

Multi-serviço e multi-profissional na mesma marcação

Uma marcação é composta por linhas (BookingItem). Cada linha representa um serviço com início, fim, profissional e preço próprios. Isto permite cenários como:

  • Cliente que faz corte com a Joana + brushing com a Maria em sequência.
  • Tratamento facial seguido de massagem na mesma marca de tempo.
  • Consulta + exame realizados por profissionais diferentes em janelas distintas.

Cada linha tem o seu próprio estado (presente / faltou) e as suas próprias transações de pagamento.

Acompanhantes e participantes

Para serviços em grupo, o motor suporta participant_count (quantos lugares ocupa) e guest_count (acompanhantes que não reservam slot). O cálculo de capacidade respeita ambos.

04

Slots, disponibilidade e regras de antecipação

O motor de disponibilidade calcula slots livres em tempo real a partir de:

  • Horário do profissional (por dia da semana).
  • Ausências e bloqueios do profissional.
  • Marcações existentes nos estados que ocupam agenda.
  • Eventos sincronizados do Google Calendar (quando ligado).

Configurações por tenant

  • Buffer entre marcações — minutos de margem que ficam reservados depois de cada serviço.
  • Antecedência mínima (min_advance_hours) — quanto tempo antes uma reserva pode ser feita. Default 24h, configurável.
  • Antecedência máxima (max_advance_days) — quão para a frente o cliente pode reservar.

Endpoints públicos

Há endpoints dedicados (/availability e /booking/availability) que devolvem slots. São consumidos pela página pública de marcação e podem alimentar widgets externos.

05

Aulas e séries recorrentes

Para sessões que repetem com regra (todas as segundas e quartas às 19h, durante 8 semanas, etc.) o FIRO tem FixedSchedule — uma série recorrente com regra iCal.

  • Cada série tem um número máximo de participantes por sessão.
  • As sessões são geradas a partir da regra em recurrence_rule_json.
  • As inscrições ficam ligadas via FixedScheduleBooking.
  • Os participantes contam por sessão — desinscrição numa não afecta as outras.

Casos típicos: aulas de pilates por turma, programas de tratamento de 6 sessões, série de aulas privadas com presença obrigatória.

06

Add-ons e extras por linha

Cada linha de marcação aceita add-ons (BookingItemAddon) — extras com:

  • Duração extra (extra_duration_min) que estica o slot reservado.
  • Preço próprio que entra no cálculo do total.

Isto permite upsell: tratamento capilar adicional num corte, máscara extra numa estética, sessão estendida numa massagem.

07

Política de cancelamento configurável

Cada negócio define a sua política. As variáveis relevantes:

  • Horas mínimas para cancelar (cancel_min_hours) — abaixo deste limite, o cliente já não consegue cancelar pelo portal.
  • Texto da política (cancel_policy_text) — apresentado ao cliente no fluxo de marcação e no portal pessoal.

O cancelamento pode partir do cliente (auto-serviço em /minha-conta) ou do backoffice. Ambos os caminhos registam o estado correcto e disparam comunicação.

08

Walk-ins e marcações manuais

Nem tudo entra pela página pública. O backoffice cria marcações manuais com a flag is_manual_booking:

  • Walk-in — cliente que apareceu sem marcar; regista-se em segundos para alimentar histórico e relatórios.
  • Marcação por telefone — a recepção aceita a chamada e cria a entrada no calendário.
  • Bloqueios — marcações em modo class com preço zero servem para bloquear agenda do staff (formações internas, reuniões).

Importação de contactos

A flag is_contact_import distingue marcações criadas em massa via importação, útil em onboarding de tenants que vinham de outra ferramenta.

09

Auditoria e log de mudanças

Todas as alterações relevantes a uma marcação são registadas em BookingChangeLog — quem, o quê e quando. Isto cobre reschedules, mudanças de profissional, alterações de itens e mudanças de estado.

É a base para resolver litígios ("eu não cancelei isso", "esta marcação foi alterada por quem?") e para auditoria interna em equipas grandes.

Para a equipa comercial

O que dizer ao lead

O argumento "marcações online" é commodity. O que diferencia o FIRO é a profundidade: o motor lida com casos que outras ferramentas obrigam a contornar.

  • "Não tens só marcações individuais" — aulas em grupo, séries recorrentes, recursos partilhados, encomendas. Não precisas de comprar outro software para casos avançados.
  • "Multi-serviço numa só marcação" — corte + brushing com profissionais diferentes, na mesma reserva. Isto resolve o problema clássico de salões com pacotes.
  • "Política de cancelamento à tua medida" — defines as regras e o sistema impõe-nas no portal do cliente automaticamente.
  • "Auditoria completa" — para clientes que vêm de cadernos ou Excel, mostrar o log de mudanças tira o medo de "perder informação".

Â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

  • 5 modos de booking + 8 estados
  • Multi-serviço com profissionais diferentes
  • Recorrência iCal para séries
  • Add-ons, buffers e advance windows configuráveis
  • Walk-ins, manuais e bloqueios de agenda
  • Auditoria completa de mudanças

A caminho

  • Reagendamento drag-and-drop com sugestão automática
  • Lista de espera por slot ocupado
  • Pacotes e cartões de sessões pré-pagas
  • Confirmação de marcação por SMS bidireccional

Perguntas frequentes

Posso ter pacotes de várias sessões?

Para séries recorrentes (mesmo serviço, vários slots), o modo "horário fixo" resolve. Pacotes pré-pagos com saldo contável de sessões ainda não estão como módulo dedicado — está no roadmap.

Como funciona uma aula com 12 lugares?

Crias o serviço com modo "class" e defines max_participants = 12. Cada inscrição é uma marcação distinta no mesmo slot. Quando a capacidade enche, o slot deixa de aparecer no público.

Os slots têm em conta o Google Calendar do profissional?

Sim, se o staff ligou Google Calendar (Pro+). Eventos externos bloqueiam disponibilidade automaticamente.

Posso impedir que um cliente marque com menos de 24h de antecedência?

Sim. A configuração min_advance_hours é por tenant — define o mínimo e o portal público respeita-o.

Marcação multi-serviço cobra automaticamente o total?

O sistema calcula o total somando linhas e add-ons. O registo do pagamento é manual hoje (cash, cartão presencial, transferência) — gateway online está no roadmap.

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.

Continua a explorar a Knowledge Base