Principal Recursos avançados explicados
🖥️

Recursos avançados explicados

Recursos avançados explicados
JereSantos
Por JereSantos
• 3 artigos

Como usar a automação?

Como usar a automação? O recurso de automação do Plataforma PortoMicro otimiza o fluxo de trabalho da equipe, automatizando tarefas repetitivas e economizando tempo. Ele permite diversas ações, como atribuir etiquetas e equipes, além de encaminhar conversas para o agente mais adequado, possibilitando que a equipe se concentre em suas principais responsabilidades e gaste menos tempo em tarefas manuais. Como funciona a automação? Uma regra de automação é composta por três elementos: um Evento ,  Condições e  Ações . O Evento é o gatilho que inicia a automação. As Condições são os critérios que devem ser atendidos antes que as Ações sejam executadas. As Ações são as tarefas que serão executadas quando as Condições forem atendidas. Eventos de Automação Os eventos de automação são gatilhos que iniciam a execução da automação. Atualmente, o Plataforma PortoMicro oferece três tipos de eventos. 1. Conversa criada: Um gatilho/evento iniciado quando uma nova conversa é criada. Isso inclui conversas criadas em todos os canais. 2. Conversa atualizada: Um gatilho/evento iniciado quando uma conversa é atualizada. 3. Mensagem criada: Um gatilho/evento iniciado quando uma nova mensagem é criada em uma conversa. 4. Conversa aberta: Um gatilho/evento iniciado quando uma conversa previamente adiada, resolvida ou pendente é aberta novamente. Condições de Automação As condições são os critérios que devem ser atendidos antes que as ações sejam realizadas. Elas são avaliadas na ordem em que são definidas. As condições dependem do tipo de evento que você selecionar. Aqui está uma lista completa: Ações de automação Ações são tarefas/processos que são executados sempre que as respectivas condições são atendidas. O Plataforma PortoMicro atualmente suporta as seguintes ações: - Atribuir ao agente - Atribua uma equipe - Adicionar uma etiqueta - Enviar um e-mail para a equipe - Enviar transcrição por e-mail - Conversa silenciosa - Conversa para dormir - Resolver conversa - Enviar evento Webhook - Cancelar - Enviar anexo - Enviar mensagem Essas ações estão disponíveis independentemente dos Eventos ou Condições que você escolher. Como criar uma regra de automação? Passo 1. Acesse Configurações → Automação. Clique no botão “Adicionar regra de automação”. Passo 2. Uma janela modal para criação de regras de automação será aberta. Comece a preencher os campos conforme listado abaixo. 1. Dê um nome à sua automação para que você possa se referir a ela facilmente mais tarde. 2. Adicione uma descrição (opcional). 3. Selecione um evento no menu suspenso. 4. Adicione condições. Use os operadores equal toor **not equal to**para definir as condições. 5. Adicionar ações. Você também pode adicionar várias condições e ações. Use os operadores **AND**, **OR** para isso. Exemplo Você deseja atribuir todas as novas conversas à equipe de vendas da França sempre que o idioma do navegador for francês. Veja como criar uma regra de automação para isso: 1. Adicione um nome e uma descrição. 2. Selecione o evento como  Conversation Created. 3. Adicione duas condições e combine-as com o  AND operador. Condição 1:  Conversation Status é  Open, e Condição 2:  Browser Language é  Francais (fr) da lista suspensa. 4. Adicione uma ação  Assign a team e selecione a equipe  France sales no menu suspenso. (Você precisa criar sua equipe primeiro). Como pausar, editar, clonar e excluir regras de automação? Sua lista de regras de Automação aparece em “Automações”. Você pode visualizar esta página acessando Configurações → Automação. Você encontrará um conjunto de ações rápidas aqui: Para pausar uma regra de automação: Desative a chave na coluna “Ativo”. Para editar uma regra: Clique no ícone do lápis. Para clonar uma regra: Clique no ícone de copiar. Para excluir uma regra: Clique no ícone da cruz vermelha.

Última atualização em Jan 14, 2026

Como configurar uma conexão WebSocket?

Como configurar uma conexão WebSocket? Os WebSockets estabelecem uma conexão contínua entre o cliente e o servidor, permitindo a comunicação bidirecional. O PortoMicro utiliza essa conexão para fornecer atualizações em tempo real sobre eventos da plataforma. Para se conectar ao WebSocket do PortoMicro, basta fornecer um token e seguir as instruções de configuração descritas neste guia. Observação : Este recurso é experimental e a documentação pode ser alterada a cada versão. Além disso, a compatibilidade com versões anteriores não pode ser garantida, portanto, é importante certificar-se de que está usando a versão mais recente da implementação. Por que devo usar uma conexão WebSocket? Uma conexão WebSocket permite atualizações de dados em tempo real, sendo ideal para clientes como o SDK do PortoMicro para Android ou iOS. Isso ajuda a atualizar o painel sem a necessidade de recarregar a página. Consequentemente, pode melhorar a experiência do usuário e aumentar a produtividade do agente. Como configurar uma conexão WebSocket com o PortoMicro? Para configurar uma conexão WebSocket com o PortoMicro, você precisa iniciar uma conexão com o token de autenticação PubSub fornecido pelo PortoMicro. A URL para a conexão é  wss://<your-installation-url>/cable. Se você estiver usando o PortoMicro Cloud, pode usar **wss://app.chatwoot.com/cable**como URL. Um token PubSub é um token usado para autenticar um cliente ao se conectar a um serviço PubSub (publicação e assinatura). O cliente deve apresentar esse token ao serviço para estabelecer uma conexão e começar a publicar ou assinar mensagens. Existem dois tipos de tokens PubSub disponíveis no PortoMicro, conforme listado abaixo. 1. Token PubSub do usuário : Este token possui os privilégios de um agente/administrador e receberá todos os eventos listados posteriormente nesta página. Você pode obter o token PubSub chamando a  API de Perfil . 2. Token PubSub de Contato : O PortoMicro gera um token PubSub exclusivo para cada sessão de um contato. Esse token pode ser usado para conectar-se ao WebSocket e receber atualizações em tempo real para a mesma sessão. Quando um contato é criado por meio das APIs públicas, o token **pubsub_token**é incluído na resposta. Esse token concede acesso apenas a eventos relacionados à sessão atual, como conversation.createdupdate   conversation.status_changed,  message.createdupdate,  message.updatedupdate,   **conversation_typing_on**update e  **conversation_typing_off** update  presence.update. Consulte  as APIs do cliente  para criar integrações em tempo real voltadas para o cliente usando o PortoMicro. Observação : Este token pode ser alterado periodicamente dependendo do seu tipo de instalação. Certifique-se de estar usando o token mais recente. Como conectar-se ao WebSocket do PortoMicro? Para se conectar ao WebSocket do PortoMicro, use o comando **subscribe**e inclua seu pubSubToken, **accountId**e userId(se estiver usando um token de usuário) na solicitação de conexão. Aqui está um exemplo de como você pode se conectar ao PortoMicro. // Add a helper method to convert JSON to a string const stringify = (payload = {}) => JSON.stringify(payload); const pubSubToken = "<contact/user-pub-sub-token>"; const accountId = "<your-account-id-in-integer>"; const userId = "<user-id-in-integer-if-using-user-token>"; const connection = new WebSocket( "wss://app.chatwoot.com/cable" ); connection.send( stringify({ command: "subscribe", identifier: stringify({ channel: "RoomChannel", pubsub_token: pubSubToken, account_id: accountId, user_id: userId, }), }) ); // The expected string in connection.send is of the format: // {"command":"subscribe","identifier":"{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"your-pubsub-token\\",\\"account_id\\": account_id_integer,\\"user_id\\":user_id_integer }"} Publicando presença no servidor WebSocket Para manter o status dos seus usuários online no PortoMicro, você pode enviar um evento de atualização de presença para o PortoMicro a cada 30 segundos. Essa ação manterá o status do agente/contato online. Como atualizar a presença de um agente/administrador? Para atualizar a presença de um agente ou administrador, envie a seguinte carga útil para o servidor: const userPayload = stringify({ command: "message", identifier: stringify({ channel: "RoomChannel", pubsub_token: "<user-pubsub-token>", account_id: accountId, user_id: userId, }), data: stringify({ action: "update_presence" }), }); connection.send(userPayload); // The expected string in connection.send is of the format: // {"command":"message","identifier":"{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"your-pubsub-token\\",\\"account_id\\": account_id_integer,\\"user_id\\":user_id_integer ","data":"{\\"action\\":\\"update_presence\\"}"} Como atualizar a presença de um contato? Para atualizar a presença de um contato, envie a seguinte carga útil para o servidor: const agentPayload = stringify({ command: "message", identifier: stringify({ channel: "RoomChannel", pubsub_token: "<user-pubsub-token>", }), data: stringify({ action: "update_presence" }), }); connection.send(agentPayload); // The expected string in connection.send is of the format: // {"command":"message","identifier":"{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"your-pubsub-token\\","data":"{\\"action\\":\\"update_presence\\"}"} Carga útil do WebSocket Objetos Um evento pode conter qualquer um dos seguintes objetos como carga útil. Os diferentes tipos de objetos suportados no PortoMicro são os seguintes. Conversa A seguinte carga útil será retornada para uma conversa. { "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "iso-datetime" } }, "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "contact_inbox": { "id": "integer", "contact_id": "integer", "inbox_id": "integer", "source_id": "string", "created_at": "datetime", "updated_at": "datetime", "hmac_verified": "boolean" }, "messages": ["Array of message objects"], "meta": { "sender": { // Contact Object }, "assignee": { // User Object } }, "status": "string", "unread_count": "integer", "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", "account_id": "integer" } Contato A seguinte carga útil será retornada para um contato. { "additional_attributes": "object", "custom_attributes": "object", "email": "string", "id": "integer", "identifier": "string or null", "name": "string", "phone_number": "string or null", "thumbnail": "string" } Usuário A seguinte carga útil será retornada para um agente/administrador. { "id": "integer", "name": "string", "available_name": "string", "avatar_url": "string", "availability_status": "string", "thumbnail": "string" } Mensagem A seguinte carga útil será retornada para uma mensagem. { "id": "integer", "content": "string", "account_id": "integer", "inbox_id": "integer", "message_type": "integer", "created_at": "unix-timestamp", "updated_at": "datetime", "private": "boolean", "status": "string", "source_id": "string / null", "content_type": "string", "content_attributes": "object", "sender_type": "string", "sender_id": "integer", "external_source_ids": "object", "sender": { "type": "string - contact/user" // User or Contact Object } } Notificação A seguinte carga útil será retornada para uma notificação. { "id": "integer", "notification_type": "string", "primary_actor_type": "string", "primary_actor_id": "integer", "primary_actor": { "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "meta": { "assignee": { "id": "integer", "name": "string", "available_name": "string", "avatar_url": "string", "type": "user", "availability_status": "string", "thumbnail": "string" }, "hmac_verified": "boolean" }, "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", }, "read_at": "unix-timestamp", "secondary_actor": "object/null", "created_at":"unix-timestamp", "account_id": "integer", "push_message_title": "string" } Identificador Cada evento terá um  identifier atributo no seguinte formato. { "identifier": "{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"token\\",\\"account_id\\":id,\\"user_id\\":user_id}" } Mensagem Cada evento incluirá um  message atributo que retornará o nome do evento, bem como os dados associados a ele. Para ver a lista de eventos, consulte a documentação abaixo. Tipos de Eventos conversa.criada Este evento é acionado quando uma nova conversa é iniciada. Se você estiver inscrito no token PubSub do contato, este evento incluirá apenas dados relacionados à sessão específica associada ao token PubSub. Disponível para : agente/administrador, contato { "message": { "event": "conversation.created", "data": { // Conversation object will be available here } } } conversa.ler Este evento é acionado e enviado aos agentes/administradores que têm acesso à caixa de entrada quando um contato lê uma mensagem. Disponível para : agente/administrador { "message": { "event": "conversation.read", "data": { // Conversation object will be available here } } } mensagem.criada Este evento é acionado e enviado aos agentes, administradores e contatos quando uma nova mensagem é criada em uma conversa à qual eles têm acesso. Disponível para : agente/administrador, contato { "message": { "event": "message.created", "data": { // Message object will be available here } } } mensagem.atualizada Este evento é acionado e enviado aos agentes, administradores e contatos quando uma mensagem é atualizada em uma conversa à qual eles têm acesso. Disponível para : agente/administrador, contato { "message": { "event": "message.updated", "data": { // Message object will be available here } } } conversa.status_alterado Este evento é enviado aos agentes, administradores e contatos quando o status de uma conversa é atualizado. Disponível para : agente/administrador, contato { "message": { "event": "conversation.status_changed", "data": { // Conversation object will be available here } } } conversa.digitando_ligado Este evento é enviado aos agentes, administradores e contatos quando um contato ou um agente começa a digitar uma resposta. Disponível para : agente/administrador, contato { "message": { "event": "conversation.typing_on", "data": { "conversation": { // Conversation object will be available here }, "user": { // Contact / Agent,Admin User object will be available here. }, "is_private": "boolean", // Shows whether the agent is typing a private note or not. "account_id": "integer" } } } conversa.digitando_desligado Este evento é enviado aos agentes, administradores e contatos quando um contato ou um agente termina de digitar uma resposta. Disponível para : agente/administrador, contato { "message": { "event": "conversation.typing_off", "data": { "conversation": { // Conversation object will be available here }, "user": { // Contact / User object will be available here. }, "account_id": "integer" } } } atribuído.alterado Este evento é enviado aos agentes/administradores com acesso a uma caixa de entrada quando o agente atribuído é alterado. Disponível para : agente/administrador { "message": { "event": "assignee.changed", "data": { // Conversation object will be available here } } } equipe.mudou Este evento é enviado aos agentes/administradores com acesso a uma caixa de entrada quando a equipe atribuída é alterada. Disponível para : agente/administrador { "message": { "event": "team.changed", "data": { // Conversation object will be available here } } } conversa.contato_alterado Este evento é enviado aos agentes/administradores quando dois contatos são mesclados e todas as suas conversas são consolidadas em um único contato. Disponível para : agente/administrador { "message": { "event": "conversation.contact_changed", "data": { // Conversation object will be available here } } } contato.criado Este evento é enviado aos agentes/administradores quando um contato é criado. Disponível para : agente/administrador { "message": { "event": "contact.created", "data": { // Contact object will be available here } } } contato.atualizado Este evento é enviado aos agentes/administradores quando um contato é atualizado. Disponível para : agente/administrador { "message": { "event": "contact.updated", "data": { // Contact object will be available here } } } atualização de presença Disponível tanto para o agente quanto para o contato, este evento fornece atualizações em tempo real sobre o status de disponibilidade dos usuários no sistema. O evento enviado aos contatos não incluirá informações sobre o status de disponibilidade de outros contatos. Disponível para : agente/administrador { "message": { "event": "presence.update", "data": { "account_id": "integer", "users": { "user-id": "string" }, "contacts": { "contact-id": "string" } } } } notificação_criada Este evento é enviado aos agentes/administradores quando uma notificação é criada. Disponível para : agente/administrador

Última atualização em Jan 14, 2026

Formulário de pré-atendimento + Automações = 🚀

Formulário de pré-atendimento + Automações = 🚀 Leitura de 2 minutos Quando você já tem contexto sobre o problema que está enfrentando, consegue resolvê-lo com mais rapidez e eficiência. Os agentes de suporte por chat ao vivo entendem isso muito bem. Mas se você for obrigado a fazer as mesmas perguntas repetidamente — "Poderia me informar seu endereço de e-mail cadastrado?", "Como posso ajudá-lo hoje?", "Deixe-me transferir seu chat para a equipe responsável" — a ineficiência aumenta para todos. A boa notícia: você pode evitar essas perguntas coletando informações sobre seus clientes assim que eles acessarem a janela do chat ao vivo, com a ajuda de nossos formulários de pré-chat. Você também pode configurar regras específicas para determinar a quem atribuir essas conversas, quais etiquetas adicionar ou o que mais fazer com elas. Isso cria um fluxo de trabalho adequado para sua equipe, economizando muito tempo. Funciona assim. ⬇️ Etapa 1. Coletar informações do usuário com formulários de pré-atendimento Um formulário de pré-bate-papo é algo que seus visitantes preenchem antes de iniciar um bate-papo ao vivo com você. Eis um exemplo de como fica: Por que os formulários de pré-atendimento são úteis? Qualquer empresa e setor pode se beneficiar de formulários de pré-atendimento. No entanto, existem algumas vantagens comuns a todos os casos: - Um primeiro ponto de contato melhor para os clientes. - Interação mais significativa entre o cliente e o agente. - Melhor colaboração entre equipes e processo de atendimento ao cliente mais eficiente. - Redução do tempo de resolução da conversa - Redução da carga de trabalho do agente - Clientes mais satisfeitos - Agentes de suporte ao cliente mais felizes 😁 Recomendado** : **Guia passo a passo para ativar formulários de pré-chat no Chatwoot. Etapa II. Adicione regras de automação para fluxos de trabalho mais simples. Após receber informações através do formulário de pré-atendimento, você pode atribuir automaticamente clientes a equipes específicas, acionar respostas específicas, adicionar etiquetas, silenciar conversas e muito mais. Basta adicionar regras de automação na aba Configurações do seu painel do Chatwoot. Aqui está um exemplo em que uma conversa é automaticamente atribuída à equipe de vendas da França sempre que uma conversa é criada e o idioma do navegador é detectado como francês: **PS:   **Aqui está um guia detalhado sobre como usar automações no Chatwoot. Power Play com Automações Formulários de pré-atendimento, juntamente com regras de automação, podem fazer maravilhas pelos seus fluxos de trabalho de suporte ao cliente. Você pode configurar várias regras para encantar seus usuários e economizar o tempo da sua equipe. Digamos que você administre uma loja virtual. Você pode habilitar um formulário de pré-atendimento para o seu widget de chat ao vivo com campos como: - Nome [ tipo de texto ] - Endereço de e-mail [ tipo de e-mail ] - Tipo de problema [ lista de opções: rastreamento, pagamento, cancelamento, etc. ] - Descrição do problema [ mensagem] Para complementar, você pode criar uma Regra de Automação. Assim, sempre que uma conversa for iniciada e uma mensagem contendo a palavra "pagamento" for recebida, ela será atribuída à equipe financeira e receberá uma etiqueta com o nome "problema_de_pagamento". Você pode adicionar outra regra que acione uma mensagem informando que "Alguém entrará em contato com você em breve". Assim, sempre que os agentes abrirem o chat, terão todas as informações relevantes à sua disposição. Como você pretende usar as automações? Conte para nós nos comentários.

Última atualização em Jan 14, 2026