<!-- https://vatio.ai/pt/guias/agente-ia-para-beleza-e-bem-estar · Atualizado: 2026-10-11 -->

> Construa um agente de IA que responde as DMs do Instagram e o WhatsApp do seu salão, spa ou academia: serviços, preços, horários por profissional e planos.

# 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

1. **Quem escreve, e por onde?** Muitas vezes primeiro pela DM do Instagram, depois pelo WhatsApp e pelo site.
2. **Quais serviços cada profissional faz, e quanto tempo levam?** O seu sistema de agendamento sabe; o agente precisa dos nomes dos serviços.
3. **Qual é a política de cancelamento, e quem pode abrir exceção?** Antecedência, sinal, faltas.
4. **O que ele nunca deve prometer?** Um resultado, que um tratamento é seguro para a condição de alguém, um desconto.
5. **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`

```yaml
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.when` acompanha 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_agendamento` decide 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:

```bash
vatio secrets set LUME_API https://api.studio-lume.example
vatio secrets set LUME_API_KEY sk_live_...
```

`tools/buscar_horarios.yml`:

```yaml
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`:

```yaml
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](https://vatio.ai/docs/links) 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](https://vatio.ai/docs/authentication/sessions#on-whatsapp).

## Conhecimento: serviços, preços e a política

```bash
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:

```markdown
# 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

```bash
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](https://vatio.ai/docs/channels/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](/pt/guias/melhorar-seu-agente-de-ia).

## Publicar

```bash
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](https://vatio.ai/docs/api/messages).

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.
