Knowledge Base · 03

Equipa, papéis, horários e Google Calendar

Como o FIRO suporta equipas: três níveis de acesso (owner / manager / staff), horários por dia da semana, ausências, login sem password e sincronização Google Calendar.

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

  • Roles: owner, manager e staff com permissões diferentes
  • Horários por dia da semana e ausências em períodos
  • Login com magic link ou Google OAuth — sem passwords
  • Sincronização bidireccional com Google Calendar (Pro+)
01

Staff vs. User: dois conceitos diferentes

O FIRO separa propositadamente duas entidades:

  • Staff — a pessoa visível no calendário e na página pública (nome, foto, serviços que faz). É o que o cliente vê quando escolhe "marcar com a Joana".
  • User — a conta de login que acede ao backoffice. Tem email, eventualmente Google OAuth, e pertence a um ou mais tenants.

A relação entre os dois é via user_tenant. Isto suporta cenários como:

  • O owner que não atende clientes (não é staff visível) mas tem login.
  • A profissional que tem login no seu tenant mas não no de uma associação onde também trabalha.
  • Profissional sem conta — visível como staff no calendário, sem entrar no sistema.
02

Os três papéis: owner, manager, staff

Cada user num tenant tem um papel (user_tenant.role):

  • Owner — proprietário do tenant. Acesso total: gestão de planos, equipa, configurações, todos os módulos.
  • Manager — gestor administrativo. Acesso a operação corrente: marcações, clientes, serviços, relatórios. Tipicamente sem acesso a billing.
  • Staff — colaborador com vista limitada à sua agenda e marcações. Não vê o financeiro nem altera configurações.

Permissões dos colaboradores

O dono (ou um gestor com acesso à conta) escolhe, na ficha de cada colaborador, o que ele pode fazer (user_tenant.permissions):

  • ver as marcações de toda a equipa;
  • confirmar, recusar e alterar marcações;
  • criar marcações para outros colaboradores;
  • editar os dados dos clientes;
  • registar pagamentos (ligado por omissão).

Por omissão o colaborador vê e trata só as suas marcações. A coluna antiga can_approve_bookings deixou de contar.

03

Horários por dia da semana

StaffSchedule guarda blocos de trabalho para cada profissional, por dia da semana (0–6) com hora de início e fim. Permite:

  • Horários repetitivos: terça a sexta, 9h-13h e 14h-19h.
  • Múltiplos blocos no mesmo dia (intervalo de almoço fica fora dos slots automaticamente).
  • Cada profissional com a sua escala individual.

Horários padrão do tenant

Para arranque rápido, há default_schedules_json ao nível do tenant — um esqueleto que se aplica a novos profissionais.

04

Ausências e bloqueios

StaffTimeoff regista períodos em que o profissional não está disponível:

  • Férias (uma semana ou um mês inteiros).
  • Baixa médica.
  • Formações ou eventos pontuais.

Cada registo tem start_at, end_at e um reason opcional para registo. Os slots públicos durante o período desaparecem automaticamente.

Bloqueios em modo class

Alternativamente, criam-se marcações em modo class com preço zero para bloquear apenas algumas horas (uma reunião interna, formação curta) sem mexer no horário base.

05

Login do staff: magic link e Google

O FIRO não usa passwords no fluxo principal — opta por mecanismos mais seguros e sem fricção:

  • Magic link por email — o staff insere o email em /staff/login, recebe um link, clica e está autenticado. Tokens com expiração e log de IP/user agent.
  • Google OAuth — login com a conta Google profissional/pessoal.

O login centralizado em staff.firo.pt permite que um profissional que trabalha em mais do que um tenant escolha qual abrir após autenticação.

06

Sincronização Google Calendar (Pro+)

Cada profissional pode ligar a sua conta Google Calendar pessoal. A integração é bidireccional:

  • FIRO → Google — todas as marcações criadas aparecem como eventos no Calendar do staff.
  • Google → FIRO — eventos criados no Calendar bloqueiam disponibilidade. Tentativas de criar marcação com base nesses eventos são feitas quando relevante.

Detalhes técnicos

  • Tokens OAuth (refresh_token, access_token) ficam cifrados em base de dados.
  • O staff conecta/desconecta em /profile/google-calendar.
  • A funcionalidade pertence ao plano Pro e superiores.
07

Limites de equipa por plano

O número de profissionais incluídos depende do plano:

  • Starter — 1 profissional. Extras avulso a 4,99 €/mês cada.
  • Pro — 3 profissionais. Extras avulso a 4,99 €/mês cada.
  • Business — profissionais ilimitados.

O método Tenant::maxStaffCount() calcula o limite efectivo somando o plano + extra_user_seats activos.

08

Vista de calendário individual

Cada user pode personalizar a sua vista de calendário (preferências guardadas em User::calendar_preferences). Suporta:

  • Vista por dia, semana ou mês.
  • Vista por profissional (uma coluna por staff) ou consolidada.
  • Filtros por estado da marcação.
  • Drag-and-drop para reagendar.
Para a equipa comercial

O que dizer ao lead

A pergunta "tens equipa?" é o ponto onde vendes ou perdes a venda. O modelo do FIRO é mais flexível do que parece à primeira vista.

  • "Cada profissional tem a sua agenda real" — não é só ter nome no sistema; tem horários, ausências, serviços que faz e preferências de calendário próprias.
  • "Login sem password é uma feature" — para quem usa Excel + WhatsApp, ouvir "magic link, igual ao Notion ou Linear" tira a barreira do "vou esquecer-me da senha".
  • "O Google Calendar continua a funcionar" — o profissional não tem de abrir mão das ferramentas dele. A sincronização é bidireccional.
  • "Pagas só o que precisas" — Starter para solo, Pro até 3, Business ilimitado. Extras avulso evitam upgrade prematuro de plano.

Â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

  • Roles owner / manager / staff
  • Horários por dia da semana, múltiplos blocos
  • Ausências (StaffTimeoff) com motivo
  • Magic link + Google OAuth
  • Google Calendar bidireccional (Pro+)
  • Limites por plano + seats extra
  • Vista de calendário personalizável

A caminho

  • Comissões por profissional e relatório de performance
  • Permissões granulares (ler-só, editar-só serviços, etc.)
  • Folgas/troca de turnos com workflow
  • App mobile dedicada para staff

Perguntas frequentes

Posso ter um profissional que não acede ao sistema?

Sim. Crias o staff sem associar user. Ele aparece no calendário e na página pública mas nunca faz login.

Como controlo o que cada role pode ver?

Hoje há três níveis (owner / manager / staff) + flag de aprovação de marcações. Permissões mais granulares estão no roadmap.

O login funciona em vários tenants ao mesmo tempo?

Sim. Um profissional que trabalhe em dois tenants entra em staff.firo.pt e escolhe qual abrir depois de autenticar.

Posso desligar o Google Calendar quando quiser?

Sim, em /profile/google-calendar. Os tokens são removidos da base imediatamente; eventos já criados ficam no Calendar mas a sincronização pára.

Como funciona a comissão de cada profissional?

Não há módulo de comissões nativo hoje — está no roadmap. Entretanto, os relatórios de marcações por staff dão a base para cálculo manual.

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