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.
  • API de troca de plano (PATCH) para o sanduíche automático. O Slack (#borc-portal-live) via navegador fica só como fallback.
  • 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. Painel faz o sanduíche automático (via API).

72
Só exclusivos

NÃO reserva sala. Painel faz o sanduíche automático (via API).

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.