Raphael Serafim· Publicado em 17 de setembro de 2026· 7 min de leitura

Como simular "digitando..." no WhatsApp pela API

Tutorial: como enviar presença de "digitando..." e "gravando áudio..." no WhatsApp pela API, para dar tempo de reação natural a respostas automáticas.

Ver como Markdown

O endpoint de presença da API do WhatsApp manda o indicador de "digitando..." ou "gravando áudio..." para o contato antes da resposta chegar — um detalhe pequeno que muda como uma resposta automática é percebida. Este tutorial mostra como usar esse endpoint e quando o atraso deliberado vale a pena.

Por que simular presença importa

Uma resposta automática que chega em milissegundos, para uma pergunta que uma pessoa levaria alguns segundos para responder, tem um efeito sutil: sinaliza "isto é um robô" de um jeito que uma resposta com um pequeno atraso natural não sinaliza. Isso não é sobre enganar o cliente — é sobre não quebrar o ritmo esperado de uma conversa.

Esse cuidado combina com o que já vale para quando a IA deve parar de responder no WhatsApp: parte de fazer a automação funcionar bem é fazer ela se comportar de um jeito que não atrapalhe a experiência, e o ritmo da resposta é parte disso tanto quanto o conteúdo dela.

Vale notar que presença é um detalhe de percepção, não uma garantia de entrega — a mensagem real ainda depende do envio funcionar normalmente, com todo o tratamento de erro que uma automação de produção já deveria ter. Presença não substitui isso; ela só melhora a experiência de quem está do outro lado esperando.

Pré-requisitos

  • Uma instância conectada com webhook recebendo mensagens.
  • Uma automação de resposta já funcionando — presença é um complemento ao envio, não substitui a mensagem em si.

Passo a passo

1. Envie o estado de "digitando"

sh
curl -X POST https://us.api-wa.me/{KEY}/message/presence \
  -H "Content-Type: application/json" \
  -d '{"to": "5511999999999", "presence": "composing"}'

O contato vê o indicador de "digitando..." aparecer na conversa, do mesmo jeito que veria se uma pessoa estivesse escrevendo.

2. Espere um tempo proporcional à resposta

Depois de mandar o presence, aguarde antes de enviar a mensagem real. Um cálculo simples: 1 segundo de base mais um pequeno acréscimo por tamanho do texto, com um teto para não atrasar demais.

javascript
function tempoDigitando(texto) {
  const base = 1000; // 1s mínimo
  const porCaractere = 20; // 20ms por caractere
  const teto = 4000; // nunca mais que 4s
  return Math.min(base + texto.length * porCaractere, teto);
}

3. Envie a mensagem depois do atraso

javascript
async function responderComDigitando(to, texto) {
  await fetch(`https://us.api-wa.me/${KEY}/message/presence`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ to, presence: 'composing' }),
  });

  await new Promise((r) => setTimeout(r, tempoDigitando(texto)));

  await fetch(`https://us.api-wa.me/${KEY}/message/text`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ to, text: texto }),
  });
}

4. Use "gravando áudio" para respostas em voz

Se a automação responde com nota de voz — como uma automação de transcrição que responde também em áudio — o mesmo endpoint aceita o estado equivalente antes de enviar o arquivo de áudio, sinalizando que uma gravação está a caminho em vez de um texto.

Mantendo o indicador visível em respostas mais longas

Para uma resposta que realmente demora — uma consulta a um sistema externo, uma chamada a um modelo de IA que leva alguns segundos — o indicador de "digitando" pode sumir antes da mensagem chegar, se o processamento passar do tempo padrão que o WhatsApp mantém o indicador ativo. Reenviar o presence periodicamente resolve isso:

javascript
async function manterDigitando(to, promessaDeResposta) {
  const intervalo = setInterval(() => {
    fetch(`https://us.api-wa.me/${KEY}/message/presence`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ to, presence: 'composing' }),
    });
  }, 4000);

  try {
    const texto = await promessaDeResposta;
    return texto;
  } finally {
    clearInterval(intervalo);
  }
}

Esse padrão é especialmente relevante para automação que depende de uma transcrição de áudio com IA ou de uma consulta a um sistema externo antes de responder — processos que raramente terminam nos 2-3 segundos de uma resposta simples.

Diferença entre "composing" e outros estados de presença

O valor composing cobre tanto texto digitando quanto o estado equivalente de gravação, dependendo do contexto da automação — o parâmetro é o mesmo campo, e o que muda é o tipo de conteúdo que a sua aplicação pretende enviar em seguida. Vale manter consistência: se a automação vai responder em texto, dispare presence antes do envio de texto; se vai responder em áudio, o mesmo aviso prepara o usuário para o tipo certo de conteúdo que está por vir.

Quando não vale a pena atrasar

Presença simulada ajuda em conversa de atendimento, onde um pequeno atraso humaniza. Ela não ajuda em:

  • Notificação transacional urgente — confirmação de pedido, alerta de segurança. Nesses casos, atraso deliberado só irrita quem está esperando uma informação objetiva.
  • Resposta a comando explícito — se o cliente pediu "manda o cardápio", a expectativa é receber rápido, não esperar um "digitando" artificial.
  • Alto volume automatizado — atraso multiplicado por milhares de conversas simultâneas soma tempo de processamento sem necessidade, sem ganho perceptível de naturalidade em escala.

Medindo o efeito antes de generalizar

Antes de aplicar presença simulada em toda a automação, vale testar num subconjunto de conversas e comparar CSAT ou taxa de resposta positiva entre quem recebeu com o indicador e quem recebeu sem. Times que pulam essa validação e aplicam globalmente correm o risco de adicionar atraso sem confirmar que o ganho de naturalidade realmente existe para o público específico deles — em alguns contextos B2B, por exemplo, o cliente pode preferir a resposta mais rápida possível a qualquer simulação de comportamento humano.

Um jeito simples de medir sem infraestrutura extra: alternar o comportamento por dia da semana ou por faixa de horário, e comparar o mesmo tipo de métrica usada em métricas de campanha no WhatsApp — taxa de resposta é o sinal mais direto de que o ritmo da conversa está funcionando bem.

Erros comuns

Atraso longo demais. Mais de 8-10 segundos de "digitando" sem a mensagem chegar tende a gerar ansiedade, não naturalidade — o efeito contrário do pretendido.

Mandar presence e esquecer de enviar a mensagem. Se o passo seguinte falhar (erro de rede, exceção não tratada), o indicador de digitando aparece e nada chega depois — pior do que não ter mandado presence nenhuma.

Aplicar em toda automação sem critério. Como qualquer detalhe de UX, presença simulada vale para conversa que parece humana; em fluxo claramente identificado como automação (menu numerado, bot institucional), o efeito de naturalidade se perde e vira só atraso sem propósito.

Calcular o atraso com um valor fixo para qualquer resposta. Uma resposta de uma palavra e uma resposta de três parágrafos não deveriam ter o mesmo tempo de "digitando" — um atraso fixo de 3 segundos para tudo soa artificial de um jeito diferente, mas ainda artificial. O cálculo proporcional ao tamanho do texto, mostrado no passo 2, evita esse problema com pouco código a mais.

Aplicando em diferentes canais

Como a WAME API atende WhatsApp, Instagram e Messenger na mesma instância, vale verificar se o indicador de presença está disponível no canal específico antes de aplicar a mesma lógica de atraso em todos — cada plataforma trata esse tipo de sinal de forma um pouco diferente do lado do usuário final, mesmo quando o endpoint de envio é compartilhado entre os três.

Próximos passos

Presença combina bem com responder mensagem citada pela API, no mesmo fluxo de automação de resposta. Para o restante do ciclo de vida de uma mensagem automática, veja também editar, apagar e encaminhar mensagem pela API.

Pronto para automatizar seu WhatsApp?

Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.

Começar grátis

Perguntas frequentes

O que é o endpoint de presença da API do WhatsApp?+

É o endpoint que envia o indicador visual de "digitando..." ou "gravando áudio..." para o contato, antes da mensagem de fato chegar — o mesmo indicador que aparece quando uma pessoa está escrevendo no app.

Por que um bot precisaria simular que está digitando?+

Resposta instantânea demais, para uma pergunta que parece exigir pensar, soa artificial e denuncia automação de um jeito que incomoda parte dos usuários. Um pequeno atraso com o indicador de digitando aproxima o ritmo da resposta automática do ritmo de uma conversa humana.

Quanto tempo devo esperar entre mandar 'digitando' e a mensagem real?+

Não há um valor fixo certo, mas 1 a 3 segundos para uma resposta curta e proporcional ao tamanho da resposta para textos mais longos costuma soar natural. Atraso maior que 8-10 segundos tende a frustrar quem está esperando, mesmo que pareça mais "humano".

Preciso mandar 'parar de digitar' antes de enviar a mensagem?+

Não é obrigatório — o indicador some sozinho quando a mensagem chega ou depois de alguns segundos de inatividade. Mas, se a resposta for demorar mais do que o esperado, reenviar o presence periodicamente mantém o indicador visível em vez de sumir no meio da espera.

Presença funciona para chamada de áudio (gravando) também?+

Sim, o mesmo endpoint aceita o estado de "gravando áudio", útil quando a resposta automática vai enviar uma nota de voz — por exemplo, numa automação de transcrição e resposta em áudio.

Continue lendo