---
description: Configurar aplicativos de mensagens de terceiros em respond.io.
title: Início Rápido do Canal Personalizado
image: https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F3f43c48b21b24f4e8b02b100c0c8fab0
---

[Novo🤖 Os Agentes de IA já estão disponíveis no respond.io! Conheça sua nova recepcionista de IA, agente de vendas ou de suporte. Mais informações.![arrow-icon](https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2Fe43213a7a9314673bd8d2060c25f9b87)](/pt/whatsapp-business-calling-api)

Me ajude com... ⌘ 

1. [All Collections >](/pt/help)
2. [ Canais. >](/pt/help/channels)
3. [ Canal Personalizado >](/pt/help/custom-channel)
4. Início Rápido do Canal Personalizado

# Início Rápido do Canal Personalizado

![Avatar](https://assets2-proxy.respond.io/ph8r57dk1q9w/7tin8k9c1emscQGOhIuNbC/0ed3f91c8580c4e5dfa90f035355122e/Petrina_Jo_avatar.svg)

JQ Lee

· 28 Aug 2025

5 minutos de leitura

Esta integração permite que a sua equipa converse com os seus clientes através de qualquer canal de mensagens através de uma implementação personalizada.

## Ligar um canal personalizado

**Passo 1:** Vá para **Definições > Canais**

**Passo 2:** Clique em **Adicionar canal > Canal personalizado > Ligar**

![](https://assets2-proxy.respond.io/ph8r57dk1q9w/4Ngm6NXCOz4gdixXZyR3EY/58eac41e317cfaa53669c45c18fb7309/kapture-2023-09-26-at-11-22-34-1.gif?w=480) 

**Passo 3**: Introduza o URL do Webhook de destino para onde as mensagens de saída serão enviadas.

**Passo 4**: Selecione o tipo de ID para o canal > clique em **Seguinte**

Os tipos de ID são utilizados para a identificação do utilizador e para a comunicação com o seu servidor de integração personalizado.

Existem dois tipos de IDs disponíveis:

1. **Número de telefone**: utilize isto se o fornecedor de serviços de mensagens reconhecer contactos com base no número de telefone.  
   1. Formato de amostra: `+60177872890`
2. **ID personalizado**: utilize isto se o fornecedor de serviços de mensagens reconhecer os contactos com base num ID gerado personalizado.  
   1. O comprimento máximo dos caracteres é de 50.  
   2. `AZ`,`az`,`0-9`,`_`,`=`,`+`,`/`e`@`são permitidos.
![](https://assets2-proxy.respond.io/ph8r57dk1q9w/7zOohUoI98nqrhvZ9Ck7ly/bc08a17a90635c51044014d935699fdb/image.png?fm=jpg&q=80&w=640) 

**Passo 5**: A seguinte caixa de diálogo fornecerá o**ID do canal**,**Token da API**e**URL do Webhook**por exemplo

1. ID do canal:`gfd8g7fd89dgfd`
2. API Token:`aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd`
3. URL do webhook:`https://app.respond.io/custom/channel/webhook/`  
> A utilização de um tipo de ID de número de telefone permite iniciar uma conversa e enviar a primeira mensagem para um contacto.
![](https://assets2-proxy.respond.io/ph8r57dk1q9w/6ezA1CnR0IMjORBaOJ4Kgs/675f8c80bd18ace9ec343ec41d4d18c6/image.png?fm=jpg&q=80&w=640) 

### Passar mensagens para respond.io

**URL do Webhook**é utilizado para publicar as**Mensagens**,**Ecos de Mensagens**e**Recibos de Mensagens**na plataforma respond.io.

O código fornecido irá desencadear o webhook no respond.io, criando um contacto, se necessário, e guardando a mensagem nesse contacto.

**Exemplo de mensagens**

```shell
curl -X POST \\  
  https://app.respond.io/custom/channel/webhook/ \\  
  -H 'autorização: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "message": {  
        "type": "text",  
        "text": "Olá, Mundo"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "countryCode": "MY",  
    "email": "john@respond.io",  
    "phone": "+60177872890",  
    "language": "en"  
  }  
}'
```

**Amostra para ecos de mensagens**

```shell
curl -X POST \\  
  https://app.respond.io/custom/channel/webhook/ \\  
  -H 'autorização: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message_echo",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "message": {  
        "type": "text",  
        "text": "Olá, Mundo"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "countryCode": "MY",  
    "email": "john@respond.io",  
    "phone": "+60177872890",  
    "language": "en"  
  }  
}'
```

**Exemplo de recibos de mensagens**

```shell
curl -X POST \\  
  https://app.respond.io/custom/channel/webhook/ \\  
  -H 'autorização: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message_status",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "status": {  
        "value": "enviado|entregue|lido|falhou",  
        "message": "Erro: Falha no envio devido a um token inválido"  
      }  
    }  
  \],  
}'
```

| Campo                        | Descrição                           | Validação                                                                                                                                                               |
| ---------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ID do canal                  | ID de canal exclusivo               | Obrigatório. Campo único. É gerado pelo respond.io.                                                                                                                     |
| ID de contacto               | ID de contacto exclusivo            | Obrigatório. ID de contacto exclusivo do respond.io. Máximo de 50 caracteres.                                                                                           |
| eventos.tipo                 | Tipo de evento                      | Obrigatório. Tipos disponíveis: message, message\_echo e message\_status.                                                                                               |
| eventos.mld                  | ID da mensagem                      | Obrigatório. ID de mensagem exclusivo. Máximo de 50 caracteres.                                                                                                         |
| eventos.carimbo de data/hora | Tempo de época UNIX (milissegundos) | Obrigatório. Hora do evento que despoletou o retorno de chamada.                                                                                                        |
| eventos.mensagem.tipo        | Tipo de mensagem                    | Obrigatório. Tipos de mensagens disponíveis: texto, anexo, localização e resposta rápida. Consulte a secção Tipo de mensagem para outros exemplos de tipos de mensagem. |
| eventos.mensagem.texto       | Texto da mensagem                   | Obrigatório. Comprimento máximo de 7.000 caracteres.                                                                                                                    |
| eventos.status.valor         | Texto                               | Obrigatório se event.type for message\_status. Valores de estado disponíveis: enviado, entregue, lido e com falha.                                                      |
| eventos.status.mensagem      | Texto                               | Obrigatório se o events.status.value falhar.                                                                                                                            |
| contacto.primeiroNome        | Nome próprio                        | Opcional. Máximo de 50 caracteres.                                                                                                                                      |
| contacto.apelido             | Último nome                         | Opcional. Máximo de 50 caracteres.                                                                                                                                      |
| contacto.perfilPic           | URL da fotografia de perfil         | Opcional. O tamanho do avatar não deve ser superior a 100 kb. Recomendado 720x720.                                                                                      |
| contacto.localidade          | Código de localidade                | Opcional. Consulte aqui a lista de valores.                                                                                                                             |
| contato.codigoPais           | Código do país                      | Opcional. Código de país de 2 letras - Código ISO ALPHA-2.                                                                                                              |
| contato.fusoHorario          | Fuso horário                        | Opcional. (min.: -24) (máx.: 24).                                                                                                                                       |
| contato.email                | Endereço de e-mail                  | Opcional. Máximo de 50 caracteres.                                                                                                                                      |
| contato.telefone             | Número de telefone                  | Opcional. Máximo de 18 caracteres.                                                                                                                                      |
| contato.idioma               | Idioma                              | Opcional. ISO 639-1.                                                                                                                                                    |

**Resposta - Sucesso (estado HTTP → 200)**

```shell
"OK"
```

### Gerir mensagens de saída do respond.io

respond.io irá chamar o endpoint`<API Base URL>/message`

> Certifique-se de que aplica o código**Mensagem de saída**na rota`/message`do seu servidor web.

Eis o exemplo cURL de respond.io a chamar o endpoint:

```shell
curl -X POST \\  
  /mensagem \\  
  -H 'autorização: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
	"channelId": "gfd8g7fd89dgfd",  
	"contactId": "+60177872890",  
	"mensagem": {  
		"tipo": "texto",  
		"texto": "Olá, Mundo"  
	}  
}'
```

**Resposta - Sucesso (estado HTTP → 200)**

```json
{  
	"mId": "1640141607842"  
}
```

A autenticação necessita de ocorrer no ponto final antes de enviar a mensagem para o fornecedor de serviços de mensagens.

Aqui está um exemplo de uso de um middleware express para esse propósito:

```shell
const {validationResult} = require('express-validator');

const validateToken = (req, res, next) => {
    const apiToken = <>;
    const bearerToken = req.headers.authorization;

    if (!bearerToken) {
        return res.send(401);
    }

    const token = bearerToken.substring(7, bearerToken.length);

    if (apiToken !== token) {
        return res.send(401);
    }
    next();
};

module.exports = {
    validateToken
};
```

> Incluímos um exemplo de um Canal Personalizado que você pode testar no seu servidor. Vê o nosso projeto no GitHub [aqui](https://github.com/respond-io/custom-channel-integration-example).

#### Tipo de mensagens

**Exemplo de texto**

```json
{  
  "tipo": "texto",  
  "texto": "Bem-vindo ao respond.io",  
}
```

| Campo | Descrição         | Validação                                            |
| ----- | ----------------- | ---------------------------------------------------- |
| tipo  | Tipo de mensagem  | Obrigatório. texto                                   |
| texto | Texto da mensagem | Obrigatório. Comprimento máximo de 7.000 caracteres. |

**Amostra para arquivo de média**

```json
{  
  "tipo": "anexo",  
  "anexo": {  
    "tipo": "imagem|vídeo|áudio|arquivo",  
    "url": "https://abc/japan.png",  
    "mimeType": "imagem/png",  
    "fileName":"company logo.png",  
    "descrição": "último logotipo da empresa"  
  }  
}
```

| Campo                | Descrição             | Validação                                                                                                                                                                                                                                             |
| -------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tipo                 | Tipo de mensagem      | Obrigatório. apego.                                                                                                                                                                                                                                   |
| anexo.tipo           | Tipo de anexo         | Obrigatório. Tipos de anexo disponíveis: imagem, vídeo, áudio e ficheiro.                                                                                                                                                                             |
| anexo.url            | URL                   | Obrigatório. Máximo de 2.000 caracteres. Certifique-se de que é um link público para que os utilizadores ou contactos possam ver o conteúdo.                                                                                                          |
| anexo.mimeType       | Tipo MIME do anexo    | Opcional                                                                                                                                                                                                                                              |
| anexo.nomedoficheiro | Nome do ficheiro      | Opcional. O nome do ficheiro deve incluir uma extensão. Máximo de 256 caracteres (incluindo extensão de ficheiro). Enviar um ficheiro sem extensão ou com a extensão errada pode fazer com que o contacto ou utilizador não consiga abrir o ficheiro. |
| anexo. descrição     | Descrição do ficheiro | Opcional. Máximo de 256 caracteres. Aplicável apenas para attachment.type = image.                                                                                                                                                                    |

Certifique-se de que a URL do anexo não seja baixada forçadamente pelo navegador. O cabeçalho de resposta HTTP's `Content-Disposition` deve ter o valor por defeito, que é `inline`.

**Amostra para localização**

```json
{  
  "tipo": "localização",  
  "latitude": 0,123456,  
  "longitude": -0.1234,  
  "endereço": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"  
}
```

| Campo     | Descrição            | Validação                                                    |
| --------- | -------------------- | ------------------------------------------------------------ |
| tipo      | Tipo de mensagem     | Obrigatório. localização.                                    |
| latitude  | Coordenadas          | Obrigatório. Latitude (±90°) dentro de intervalos válidos.   |
| longitude | Coordenadas          | Obrigatório. Longitude (±180°) dentro de intervalos válidos. |
| morada    | Localização Endereço | Opcional. Máximo de 256 caracteres.                          |

**Exemplo de resposta rápida**

```json
{  
  "tipo": "resposta rápida",  
  "título": "Selecione o seu idioma preferido",    
  "respostas": \[  
    "Malaio",  
    "Inglês"  
  \]  
}
```

| Campo     | Descrição                 | Validação                                                                               |
| --------- | ------------------------- | --------------------------------------------------------------------------------------- |
| tipo      | Tipo de mensagem          | Obrigatório. resposta\_rápida.                                                          |
| título    | Título da resposta rápida | Obrigatório. Máximo de 256 caracteres.                                                  |
| respostas | Texto de resposta         | Obrigatório. Máximo de 10 respostas com um máximo de 256 caracteres para cada resposta. |

## Códigos de erro

**Erro (Estado HTTP → 4xx)**

## Configuração de canal

**Passo 1:** Clique em **Definições** \> **Canais**

**Passo 2:** Localizar Canal Personalizado > clicar em **Gerir**

![](https://assets2-proxy.respond.io/ph8r57dk1q9w/4kDQEgwtMPJYGiBRudv3Mf/50b3202703bc2c33326468a63ff9d65d/kapture-2023-09-26-at-11-25-44.gif?w=480) 

**Passo 3:** Na página **Configuração de canal personalizado** verá as seguintes definições:

* **Ícone do canal** \- Carregue uma imagem que sirva de ícone para o seu canal personalizado.
* **Nome do canal** \- O nome do canal pode ser alterado e é utilizado internamente para identificar o canal.
* **URL do webhook para mensagens de saída** — O URL do webhook para mensagens de saída para este canal.
* **URL do webhook para mensagens recebidas** — O URL do webhook para mensagens recebidas neste canal.
* **Tipo de ID** — São utilizados para a identificação do utilizador e para comunicar com o seu servidor de integração personalizado.
* **ID do canal** — ID de canal exclusivo para identificar o seu canal personalizado.
* **API Token** — Um identificador único utilizado para autenticar um utilizador para aceder a uma API.
![](https://assets2-proxy.respond.io/ph8r57dk1q9w/TTu5k2W6sXHms2Ma6RTGV/852cfb865595c8763511d1cbc72a16f4/image.png?fm=jpg&q=80&w=640) 

**Passo 4**: Clique em **Guardar alterações** para atualizar a configuração do canal personalizado.

## Perguntas frequentes e resolução de problemas

### 

Posso ligar chats de outras plataformas utilizando um Canal Personalizado?

Sim, pode. Aqui estão três passos a seguir:

1. No respond.io, introduza o **URL do webhook de destino** da outra plataforma no campo **URL do webhook para a mensagem recebida** .
2. Na outra plataforma, configure um URL de webhook  apontando para respond.io, permitindo que os Contactos lhe enviem mensagens de volta.
3. Irá'necessitar de um **Servidor de Integração Personalizado** para interpretar APIs do respond.io e da outra plataforma, permitindo a troca de mensagens entre elas.

Certifique-se de que confirma com a outra plataforma se os dois primeiros passos são viáveis.

## **Perguntas frequentes sobre webhooks de canais personalizados**

### Porque é que o webhook devolve um estado 200 mesmo que a mensagem não seja entregue ao respond.io?

Ao ligar um Canal Personalizado, as mensagens enviadas para o respond.io através de webhooks devolverão sempre um código de estado 200 imediatamente, independentemente de a mensagem ter sido passada com sucesso para o respond.io. Isto deve-se à natureza dos webhooks, que são concebidos para devolver uma resposta imediata sem verificar o sucesso da entrega da mensagem.

Compartilhar este artigo

[![Telegram](https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F44daca77a4844f0c8fd29040ddeba057?width=22)](https://api.whatsapp.com/send?text=https://respond.io/help/custom-channel/custom-channel)[![Facebook](https://assets1-proxy.respond.io/api/v1/image/assets/11f7a662b80a4675973850b067c01fa5/fff57eeb01160bc604392f519b4f3461ca16f0fa1b6a587b20b142cdf1ad0ba7?placeholderIfAbsent=true&width=22)](https://www.facebook.com/sharer/sharer.php?u=https://respond.io/help/custom-channel/custom-channel)[![Linkedin](https://assets1-proxy.respond.io/api/v1/image/assets/11f7a662b80a4675973850b067c01fa5/7aaf8d87b5410844d83e06a4ed663e4f551b8c5ef51dbb20a8ff064a1eed9a0f?placeholderIfAbsent=true&width=22)](https://www.linkedin.com/sharing/share-offsite/?url=https://respond.io/help/custom-channel/custom-channel)[![Twitter](https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F4e03e02422a94e8eab9b8b41457c2371?width=22)](http://twitter.com/share?url=https://respond.io/help/custom-channel/custom-channel)

## 

Artigos relacionados 👩‍💻

* [Visão Geral do Canal PersonalizadoObtenha uma visão geral do Canal Personalizado e das suas funcionalidades. ](/pt/help/custom-channel/custom-channel-overview)

Não consegue encontrar o que você está procurando? 🔎

[Contate o suporte](/pt/contact-us)

2025-12-05T04:01:42.943Z

help

```json
[{"@context":"https://schema.org","@type":"TechArticle","articleBody":"Configurar aplicativos de mensagens de terceiros em respond.io.","author":{"@type":"Person","image":"https://assets2-proxy.respond.io/ph8r57dk1q9w/7tin8k9c1emscQGOhIuNbC/0ed3f91c8580c4e5dfa90f035355122e/Petrina_Jo_avatar.svg","name":"JQ Lee","url":"https://respond.io/pt/author"},"dateCreated":"2024-11-05T08:13:58.000Z","dateModified":"2025-08-28T08:42:13.911Z","datePublished":"2024-11-05T08:13:58.000Z","headline":"Início Rápido do Canal Personalizado","image":"https://assets2-proxy.respond.io/ph8r57dk1q9w/4Ngm6NXCOz4gdixXZyR3EY/58eac41e317cfaa53669c45c18fb7309/kapture-2023-09-26-at-11-22-34-1.gif","mainEntityOfPage":"https://respond.io/pt/help/custom-channel","publisher":{"@type":"Organization","logo":"https://respond.io/favicon/favicon.svg","name":"respondio"},"thumbnailUrl":"https://assets2-proxy.respond.io/ph8r57dk1q9w/4Ngm6NXCOz4gdixXZyR3EY/58eac41e317cfaa53669c45c18fb7309/kapture-2023-09-26-at-11-22-34-1.gif","url":"https://respond.io/pt/help/custom-channel/custom-channel"},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","name":"Help","item":"https://respond.io/pt/help","position":1},{"@type":"ListItem","name":"Canais.","item":"https://respond.io/pt/help/channels","position":2},{"@type":"ListItem","name":"Canal Personalizado","item":"https://respond.io/pt/help/custom-channel","position":3},{"@type":"ListItem","name":"Início Rápido do Canal Personalizado","item":"https://respond.io/pt/help/custom-channel/custom-channel","position":4}]}]
{
  "@context": "http://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Can I connect chats from other platforms using a Custom Channel?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Yes, you can. Here are three steps to follow:</p><ol><li><p>In respond.io, input the <b>destination webhook URL</b> from the other platform into the <b>Webhook URL for Incoming message</b> field.</p></li><li><p>In the other platform, set up a <b>webhook URL</b> pointing to respond.io, allowing Contacts to send messages back to you.</p></li><li><p>You'll require a <b>Custom Integration Server</b> to interpret APIs from both respond.io and the other platform, enabling message exchange between them.</p></li></ol><p>Make sure to confirm with the other platform that the first two steps are feasible.</p>"
      }
    }
  ]
}
```
