Copie a receita.Do zero.
Especificação, pré-requisitos, tabelas de regras e referência completa de API — tudo pronto para reproduzir.
Nome, gatilhos, parâmetros e regras
woba-room-booking-agent| Campo | Formato | Obrigatório | Observação |
|---|---|---|---|
cidade ou nome_do_espaco | string | Sim (um dos dois) | Cidade usa place_id; nome usa term |
capacidade | inteiro | Sim | Nº de pessoas |
data | YYYY-MM-DD | Sim | Uma ou várias datas |
check_in | HH:MM | Sim* | *Ignorado se is_daily |
check_out | HH:MM | Sim* | *Ignorado se is_daily |
email_solicitante | Recomendado | Domínio identifica a empresa |
capacidade informada é usada em DOIS lugares — filtro de busca (seats) e participantes no booking (users_quantity). Sempre o mesmo número.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 houver401.
Planos, motivos e place_ids conhecidos
Reserva sala e gasta crédito.
NÃO reserva sala. Requer sandwich.
NÃO reserva sala. Requer sandwich.
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.
| ID | Motivo |
|---|---|
| 12348 | Check-in Semanal |
| 12351 | Mesa Redonda ou Feedback |
| 12396 | Onboarding/Treinamentos |
| 4545 | Reunião de equipe |
place_ids (exemplos)Usados para acelerar a busca por cidade. Bairros não mapeados caem em latitude/longitude.
Blocos copiáveis para reproduzir cada chamada
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 401GET 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/borc só funcionam digitados no composer do Slack, nunca via API.