06Blueprint da skill

Copie a receita.Do zero.

Especificação, pré-requisitos, tabelas de regras e referência completa de API — tudo pronto para reproduzir.

A. Especificação da skill

Nome, gatilhos, parâmetros e regras

Nome
woba-room-booking-agent
Frases-gatilho
reservar sala
buscar sala
sala para X pessoas
sala em [cidade/bairro]
reserva no [coworking]
ajustar/mudar plano
setsubscription
opções de coworking próximo a…
localização + capacidade + data/horário + cliente
Parâmetros mínimos (schema)
CampoFormatoObrigatórioObservação
cidade ou nome_do_espacostringSim (um dos dois)Cidade usa place_id; nome usa term
capacidadeinteiroSimNº de pessoas
dataYYYY-MM-DDSimUma ou várias datas
check_inHH:MMSim**Ignorado se is_daily
check_outHH:MMSim**Ignorado se is_daily
email_solicitantee-mailRecomendadoDomínio identifica a empresa
Regra-chave: a capacidade informada é usada em DOIS lugares — filtro de busca (seats) e participantes no booking (users_quantity). Sempre o mesmo número.
B. Setup & pré-requisitos

O que precisa estar disponível antes do primeiro run

  • Arquivo de config (sem segredos), com as chaves: agent_email, agent_password, env, log_webhook_url, log_webhook_secret, operator_email.
  • Acesso ao Slack (canal #borc-portal-live) via navegador — usado para o ajuste de plano (sandwich).
  • Webhook de uma planilha Google para o log das reservas.
  • Ambiente com shell (curl / python) para chamar as APIs.
  • Token JWT: obtido 1x via POST /auth, cacheado por ~23h, renovado sempre que houver 401.
C. Tabelas de regras e caches

Planos, motivos e place_ids conhecidos

Planos
70
Acesso total

Reserva sala e gasta crédito.

71
Só compartilhados

NÃO reserva sala. Requer sandwich.

72
Só exclusivos

NÃO reserva sala. Requer sandwich.

Motivos de reserva (booking reason)

Cada empresa pode ter uma lista própria de motivos configurados. O motivo pode ser: (a) escolhido manualmente pelo operador no momento da reserva, ou (b) aplicado automaticamente por uma regra por empresa/horário. As regras automáticas são específicas de cada carteira de clientes e serão cadastradas gradualmente pelo time — nesta versão o padrão é o operador escolher o motivo manualmente.

As regras automáticas por empresa serão adicionadas por cada operador conforme sua carteira. Comece pelo fluxo geral (motivo manual).
Dicionário de motivos (exemplos)
IDMotivo
12348Check-in Semanal
12351Mesa Redonda ou Feedback
12396Onboarding/Treinamentos
4545Reunião de equipe
Cache de place_ids (exemplos)
São Paulo
Rio de Janeiro
Brasília
Curitiba
Belo Horizonte
Recife
Porto Alegre

Usados para acelerar a busca por cidade. Bairros não mapeados caem em latitude/longitude.

D. Referência de API

Blocos copiáveis para reproduzir cada chamada

POST /api/v0/auth
POST https://backoffice-api.production.woba.com.br/api/v0/auth
Content-Type: application/json

{
  "email": "{agent_email}",
  "password": "{agent_password}"
}

→ 200 { "auth_token": "..." }   // cachear ~23h, renovar em 401

GET /api/meetingrooms
GET https://search-ms.production.woba.com.br/api/meetingrooms
    ?place_id={id}
    &seats={n}
    &target_date={YYYY-MM-DD}
    &check_in={HH:MM}
    &check_out={HH:MM}
    &limit=20

// ou, no lugar de place_id:
    ?term={nome_do_coworking}

Campos úteis da resposta:
_embedded.spaces[].meetingroom.id
_embedded.spaces[].meetingroom.label
_embedded.spaces[].meetingroom.capacity
_embedded.spaces[].meetingroom.hourly_credits
_embedded.spaces[].meetingroom.daily_credits
_embedded.spaces[].space_url
_embedded.spaces[].fast_approval
_embedded.spaces[].work_hours

Segurança: Nunca expor credenciais ou o segredo do webhook. Slash commands /borc só funcionam digitados no composer do Slack, nunca via API.