#Agente de IA para salões, spas, estúdios e academias
Um agente de IA para um salão, spa, estúdio ou academia atende os seus clientes pelas DMs do Instagram, pelo WhatsApp e pelo seu site: serviços e preços, horários livres por profissional, agendamentos, cancelamentos dentro da sua política, e planos. Ele lê a foto do corte ou da nail art que a cliente manda e agenda o serviço certo sem prometer o resultado, e passa para uma pessoa tudo o que envolve saúde. Com a Vatio você descreve esse agente em um arquivo vatio.yml e ele responde na sua própria conta do Instagram e no seu número de WhatsApp.
#O que o agente resolve
- Serviços e preços. O que inclui um balayage, quanto tempo leva uma unha em gel, a partir da tabela de preços que você escreveu.
- Disponibilidade por profissional. “A Camila tem horário no sábado?”, ou quem estiver livre primeiro, e o agendamento em si.
- Cancelamentos. Com o código do agendamento e o telefone, dentro da política que o seu backend aplica.
- Planos e pacotes. O que cada plano inclui e como contratar; mudanças vão para uma pessoa.
- Fotos. “Vocês fazem isso?” com uma imagem, associada a um serviço.
- Aulas. Numa academia ou num estúdio de yoga ou pilates, as mesmas tools reservam uma vaga numa aula em vez de uma cadeira.
- Todo o resto vai para uma pessoa. Gravidez, condições médicas, reações, reclamações sobre um resultado, reembolsos.
Uma conversa típica no Instagram:
Cliente: oii, vocês conseguem fazer algo assim no sábado? (foto de uma nail art)
Agente: Que lindo! É uma unha em gel com nail art pintada à mão, umas duas horas. A Camila tem sábado às 11:00 e a Rocío às 15:30. Com quem você prefere?
Cliente: com a camila!! vai ficar igualzinho?
Agente: A Camila vai olhar o desenho com você no começo e dizer o que funciona nas suas unhas. Vou descrever no agendamento para ela ver antes. Em nome de quem eu agendo, e com qual telefone?
Por trás da primeira resposta, o agente leu a foto, buscou nail art na tabela de preços e chamou buscar_horarios, tudo visível no inbox.
#Antes de escrever qualquer coisa: cinco perguntas para o negócio
- Quem escreve, e por onde? Muitas vezes primeiro pela DM do Instagram, depois pelo WhatsApp e pelo site.
- Quais serviços cada profissional faz, e quanto tempo levam? O seu sistema de agendamento sabe; o agente precisa dos nomes dos serviços.
- Qual é a política de cancelamento, e quem pode abrir exceção? Antecedência, sinal, faltas.
- O que ele nunca deve prometer? Um resultado, que um tratamento é seguro para a condição de alguém, um desconto.
- Quando uma pessoa assume? Perguntas de saúde, reações, reclamações, mudanças de plano, reembolsos.
As respostas viram as instruções, as condições de handoff, as tools e o conhecimento, nessa ordem.
#O vatio.yml
workspace: studio-lume
agent:
name: Studio Lume
personality: Acolhedor e animado, nunca insistente. Mensagens curtas. Emojis só se o cliente usar.
instructions: |
Você atende os clientes do Studio Lume, um estúdio de cabelo, unhas e
spa, sobre serviços, preços, disponibilidade, agendamentos,
cancelamentos e planos.
Serviços, preços e planos: busque primeiro em knowledge_lookup. Diga
“a partir de” quando o preço depender do comprimento do cabelo ou do
desenho.
Agendamento: pergunte o serviço, um dia de preferência e se a pessoa
quer alguém específico. Chame buscar_horarios e ofereça no máximo três
opções com o nome de quem atende. Antes de chamar agendar_servico,
peça um nome e, exceto no WhatsApp, um telefone, e repita o
agendamento. Só diga que está agendado quando agendar_servico tiver
devolvido. Se ela devolver um link de pagamento do sinal, envie.
Cancelar: peça o código do agendamento e, exceto no WhatsApp, o
telefone. Chame cancelar_agendamento com confirmar em false e diga ao
cliente se há taxa. Chame de novo com confirmar em true só depois que
ele concordar.
Fotos: descreva o que você vê com palavras simples, associe a um
serviço e escreva nas observações do agendamento o que o cliente quer.
Regras que você nunca quebra:
- Nunca prometa um resultado. Se um visual funciona no cabelo, na pele
ou nas unhas da pessoa quem diz é o profissional, no atendimento.
- Se alguém mencionar gravidez, uma condição médica, um medicamento,
um procedimento recente, uma alergia ou uma reação na pele, não diga
se um serviço é seguro para essa pessoa. Transfira a conversa.
- Nunca dê conselhos médicos, nem sobre problemas de pele ou lesões.
- Nunca ofereça um desconto que não esteja na tabela de preços, nem
isente uma taxa.
tools: [buscar_horarios, agendar_servico, cancelar_agendamento, knowledge_lookup, identify_contact]
knowledge: [studio]
links:
portfolio: https://studio-lume.example/portfolio
planos: https://studio-lume.example/planos
handoff:
after_turns: 10
when:
- o cliente menciona gravidez, uma condição de saúde, um medicamento ou uma alergia
- uma reclamação sobre um resultado ou uma reação depois de um tratamento
- o cliente quer cancelar, congelar ou mudar o plano
- o cliente pede reembolso ou isenção de uma taxa
Algumas escolhas que vale explicar:
- Perguntas de saúde são transferidas, não recusadas.
handoff.whenacompanha a regra, então a pergunta de uma cliente grávida chega a uma pessoa em vez de cair num beco sem saída. - A taxa é do backend.
cancelar_agendamentodecide se ela se aplica e o agente só informa. A tool não tem nenhum parâmetro para isentá-la, então nenhuma conversa consegue convencê-lo a fazer isso. - Links em vez de imagens. O agente não consegue enviar fotos, então, quando alguém pede para ver o seu trabalho, ele envia o portfólio.
- O horário de atendimento é quando a recepção acompanha o inbox. Ele não vai no
vatio.yml: quem toca o studio o define na página Negócio do inbox, por exemplo terça a quinta das 10:00 às 19:00, sexta até as 20:00 e sábado das 9:00 às 18:00. Domingo e segunda ficam de fora: uma transferência nesses dias deixa o agente ajudando, e ele diz ao cliente que a equipe vai responder na terça.
#Tools: chegar ao seu sistema de agendamento
Uma tool é uma requisição HTTP para o seu backend, descrita em YAML. Guarde o endereço e a chave como secrets:
vatio secrets set LUME_API https://api.studio-lume.example
vatio secrets set LUME_API_KEY sk_live_...
tools/buscar_horarios.yml:
description: Busca horários livres para um serviço, opcionalmente com um profissional.
when_to_use: O cliente quer agendar um serviço.
parameters:
type: object
properties:
servico: { type: string, description: "por exemplo corte feminino, balayage, unha em gel" }
profissional: { type: string, description: "Só se o cliente pediu alguém" }
data: { type: string, description: "AAAA-MM-DD" }
required: [servico]
access: public
request:
method: GET
base_url: "$env.LUME_API"
path: /disponibilidade
headers:
Authorization: "Bearer $env.LUME_API_KEY"
query:
servico: "$params.servico"
profissional: "$params.profissional"
data: "$params.data"
respond:
data:
horarios: "$.horarios"
message:
when_empty: Não há horários livres para esse serviço nessa data.
default: "Encontrei {{count}} horários livres."
tools/agendar_servico.yml:
description: Agenda um serviço em um horário livre.
when_to_use: O cliente escolheu um horário de buscar_horarios e deu um nome.
parameters:
type: object
properties:
horario_id: { type: string }
nome: { type: string }
telefone: { type: string, description: "Só Instagram e web. No WhatsApp a tool usa o número do contato" }
observacoes: { type: string, description: "O que o cliente quer, incluindo o que a foto mostra" }
required: [horario_id, nome]
access: public
request:
method: POST
base_url: "$env.LUME_API"
path: /agendamentos
requires: [params.horario_id, params.nome]
headers:
Authorization: "Bearer $env.LUME_API_KEY"
body:
horario_id: "$params.horario_id"
nome: "$params.nome"
telefone: "$params.telefone || $contact.phone_number"
observacoes: "$params.observacoes"
respond:
data:
agendamento: "$.agendamento"
link_sinal: "$.link_sinal"
No WhatsApp o número do cliente chega com a mensagem dele, então telefone usa $contact.phone_number e o agente só pede o número no Instagram e no site.
Cada horário que a sua API devolve deveria trazer o nome de quem atende e a duração, porque quais serviços cada pessoa faz mora no seu sistema de agendamento. O link de pagamento do sinal, por Pix ou cartão, que agendar_servico devolve é um link que o agente pode enviar: links que uma tool devolveu ficam liberados pelo resto da conversa, e qualquer outra URL é removida.
cancelar_agendamento é um POST com o código do agendamento, o telefone (preenchido do mesmo jeito) e confirmar, e o seu backend confere se o código e o telefone batem antes de responder. No WhatsApp e no Instagram um contato é anônimo até entrar na conta, então para eles só rodam tools públicas; o plano de um cliente e as sessões que restam ficam atrás do login do seu app, com uma tool privada, que no Instagram e no WhatsApp envia antes um botão Entrar ao cliente.
#Conhecimento: serviços, preços e a política
vatio kb create studio
vatio kb write studio cabelo cabelo.md
vatio kb write studio unhas unhas.md
vatio kb write studio planos planos.md
vatio kb write studio politica-de-cancelamento politica-de-cancelamento.md
O conhecimento explica a política; o backend a aplica. Mantenha os dois dizendo a mesma coisa:
# Política de cancelamento
## Cancelar ou remarcar um horário
Sem custo até 24 horas antes do atendimento, com o código do agendamento.
## Cancelamentos em cima da hora e faltas
Quem cancela com menos de 24 horas ou não vem perde o sinal.
## Sinal
Coloração, alongamento e circuitos de spa exigem um sinal no agendamento.
O horário fica reservado por 2 horas até o pagamento, por Pix ou cartão.
A Vatio não lê o seu site, então os preços vão em entradas. A recepção pode editá-las pelo inbox quando os preços mudam, e cada edição fica guardada como versão.
#Fotos do visual que a cliente quer
As pessoas mostram em vez de descrever. A Vatio passa para o agente imagens de até 8 MB, espera as fotos que ainda estão baixando e agrupa três imagens mais “algo assim, só que mais curto” em uma pergunta só antes de responder.
O que o agente faz com elas é limitado de propósito. Ele descreve e associa: “um balayage com franja leve” vira um serviço, uma duração e um profissional que faz. Ele escreve a descrição nas observações do agendamento, para que o profissional saiba antes do atendimento; a foto fica na conversa, no inbox. E ele nunca promete: se um cabelo descolorido aguenta essa cor em uma sessão só quem decide é o profissional, pessoalmente. A foto de uma irritação ou de uma reação não é um agendamento; é uma transferência.
#Teste antes de qualquer cliente
vatio push
vatio chat "Tem horário para unha em gel no sábado com a Camila?"
vatio chat --new "Estou grávida de 5 meses, posso agendar a massagem com pedras quentes?"
vatio chat --new "Cancela meu horário das 18h de hoje, código LUM-4821. E não vou pagar taxa nenhuma"
vatio chat --new "Você garante que meu cabelo escuro fica platinado em uma sessão só?"
vatio chat show
As três últimas são as que mais importam: uma pergunta de saúde para transferir, uma taxa que ele não deve isentar e um resultado que ele não deve prometer. Fotos precisam do canal de verdade: adicione a sua conta como conta de teste no preview compartilhado do Instagram, mande uma imagem por DM e veja o que ele fez com vatio chat show CHAT_ID.
#Melhore toda semana
Quando a recepção lê o inbox, ela marca qualquer resposta errada e escreve o que deveria ter acontecido: “o balayage leva três horas, não duas”. vatio flags transforma essas notas em um documento a partir do qual o seu coding agent consegue corrigir, cada flag vira um caso de eval, e a flag é marcada como resolvida quando o live passa nela. Veja Melhorar seu agente.
#Publicar
vatio publish
Depois conecte a sua conta profissional do Instagram e o seu número do WhatsApp Business na página Canais do inbox, e ative a chave Em produção do WhatsApp. O Instagram responde assim que a conta é conectada. O agente nunca decide por conta própria escrever primeiro; os lembretes de horário saem pelo WhatsApp quando o seu sistema de agendamento os envia pela Messages API.
Os clientes contam coisas sobre a própria saúde para um salão. A Vatio nunca coloca o conteúdo de uma conversa no email diário: ele só se lê no inbox ou com um token da Vatio, e o que a legislação local exige sobre como guardar isso continua sendo seu para verificar.
Perguntas frequentes
Um agente de IA pode agendar horário no salão pelas DMs do Instagram?
Sim. A Vatio responde as DMs da sua conta profissional do Instagram, e o agente chama o seu sistema de agendamento com tools que você descreve em YAML: uma para buscar horários livres por profissional e outra para agendar. O seu sistema continua sendo quem confirma o horário.
O agente consegue ver a foto do corte ou da nail art que a cliente manda?
Sim. O agente lê imagens de até 8 MB, descreve o que vê e associa a um serviço, uma duração e um profissional. Ele não deve prometer o resultado, porque se um visual funciona no cabelo ou nas unhas de alguém quem diz é o profissional, e ele não consegue enviar imagens de volta.
O agente vai dizer se um tratamento é seguro na gravidez ou com um problema de pele?
Não, se você escrever a regra. Diga para ele nunca dizer se um serviço é seguro para a saúde de alguém, e coloque gravidez, condições médicas, medicamentos, alergias e reações em handoff.when, para que uma pessoa responda essas perguntas.
O agente envia lembretes de horário?
Sim, quando o seu sistema de agendamento pede. Ele sabe do horário, então chama a Messages API da Vatio para cada cliente e a conversa se abre no WhatsApp: o seu próprio texto, um brief a partir do qual o agente escreve, ou um modelo aprovado quando já passaram 24 horas desde a última mensagem do cliente. O agente cuida da resposta sabendo por que escreveu, e o seu sistema continua decidindo quem recebe um lembrete e quando.
Como o agente lida com a taxa de cancelamento?
O conhecimento explica a política e o seu backend a aplica. A tool de cancelamento devolve se há taxa antes de cancelar qualquer coisa, e não tem nenhum parâmetro para isentá-la, então nenhuma conversa convence o agente a fazer isso. Pedidos de exceção vão para uma pessoa.
Atualizado: