# Conteúdo conectado

Conteúdo conectado é um recurso nos [modelos Liquid](/pt/product/personalization/liquid-templates/) que permite recuperar e usar dinamicamente dados de uma fonte externa, como um serviço da web, diretamente em suas mensagens de e-mail ou notificação push. Este recurso permite a personalização em tempo real, buscando dados JSON de uma URL especificada e salvando-os em uma variável que pode ser utilizada em seu conteúdo.

## Principais casos de uso

- **Recomendações de produtos**: Exiba listas de produtos personalizadas e adaptadas a cada usuário.

- **Códigos promocionais**: Insira códigos promocionais exclusivos gerados por um serviço de backend.

## Pré-requisitos

* Para usar o Conteúdo Conectado, você deve ter seu próprio serviço de backend que gera e fornece os dados necessários (por exemplo, códigos promocionais, recomendações de produtos) com base no **User ID, HWID ou tags personalizadas**. O Pushwoosh então busca esses dados antes de enviar uma mensagem.

## Guia de implementação passo a passo

<Aside type="caution" icon="setting" title="É necessária a ajuda de um desenvolvedor">
Você precisará da ajuda da sua equipe de desenvolvedores para usar o Conteúdo conectado. Compartilhe este guia com eles para começar.
</Aside>

### Passo 1. Configure o serviço de backend

O serviço de backend deve:

* Aceitar uma solicitação contendo parâmetros específicos do usuário (por exemplo, `userId`). O Conteúdo Conectado suporta `UserID`, `HWID` ou quaisquer tags personalizadas que você tenha configurado em seu projeto.
* Retornar uma resposta JSON com os dados necessários. Este conteúdo pode então ser inserido dinamicamente nas mensagens.

<Aside type="note" title="Como funciona"> 

O serviço de backend atua como um provedor de dados, respondendo a solicitações HTTP com informações específicas do usuário.

1. O Pushwoosh envia uma solicitação para o seu backend, passando identificadores específicos do usuário como parâmetros de consulta.
2. Seu backend processa a solicitação e recupera os dados solicitados.
3. Seu backend retorna uma resposta JSON.
4. Antes de enviar uma mensagem, o Pushwoosh busca a resposta JSON do serviço de backend e usa os valores retornados (por exemplo, o `code`) no conteúdo da mensagem dinamicamente.

**Exemplo de resposta**

```
{ "code": "SPECIALOFFERFORUSER12345" }
```
</Aside>



### Passo 2. Crie uma predefinição com Conteúdo conectado no Pushwoosh
 
1. No [editor de conteúdo Push](/pt/product/content/push-presets/) ou [editor de conteúdo de E-mail](/pt/product/content/email-content/drag-and-drop-email-editor/), insira a sintaxe do Conteúdo Conectado no campo da mensagem.

**Exemplo** 

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :save result %}  
```
**Detalhamento da sintaxe**
|  |  |
| ----- | ----- |
| `connected_content` | Busca dados JSON da URL de backend especificada. |
|    `http://your-backend-url.com` | O endpoint do backend que retorna os dados necessários no formato JSON. |
| `userId={{ ${userid} }}` | Um parâmetro de consulta dinâmico que passa o ID do usuário para o backend. Dentro de `connected_content`, envolva uma variável em `${}`. No texto da mensagem, escreva `{{userid}}` sem ele. |
| `:save result` | Armazena a resposta JSON buscada na variável `result` para uso em modelos Liquid. |

![Insira a sintaxe do Conteúdo Conectado](/connectedcontent.webp)

**Autenticação (opcional)**

Se o seu serviço de backend exigir autenticação, você pode incluir uma chave de API ou token na solicitação de Conteúdo Conectado para garantir o acesso seguro.

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&auth=YOUR_API_KEY :save result %}  
```

Você também pode enviar dados de autenticação (ou quaisquer outros) como cabeçalhos HTTP usando o parâmetro opcional `:headers` — um objeto JSON de nomes e valores de cabeçalho.

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :headers {"Authorization": "Bearer YOUR_TOKEN", "X-Api-Key": "YOUR_API_KEY"} :save result %}  
```
|  |  |
| ----- | ----- |
| `:headers {...}` | Um objeto JSON de cabeçalhos HTTP enviados com a solicitação, por exemplo, `Authorization: Bearer <token>`. |

<Aside type="caution" title="Apenas valores estáticos">
As variáveis de personalização `${}` funcionam apenas dentro da URL. Os valores dentro de `:headers` são estáticos e não são interpolados.
</Aside>

<Aside type="danger" title="Mantenha as credenciais fora da URL">
Prefira `:headers` em vez de um parâmetro de consulta de URL (por exemplo, `&auth=YOUR_API_KEY`) para chaves de API e tokens: se a busca falhar, a URL da solicitação é escrita nos logs, expondo uma chave colocada lá. Os valores dentro de `:headers` nunca são registrados.

O conteúdo conectado também requer que os modelos de conteúdo Liquid estejam habilitados para sua conta. Se não estiverem, toda a tag `connected_content` — incluindo qualquer chave dentro dela — é enviada para cada destinatário como texto literal em vez de ser renderizada. Entre em contato com o [Suporte do Pushwoosh](https://help.pushwoosh.com/hc/en-us/requests/new) se não tiver certeza se sua conta tem isso habilitado.
</Aside>

**Usando tags em Conteúdo conectado**

Para incluir o valor de uma tag, adicione-o à URL como parâmetro de consulta na mesma forma `{{ ${tag_name} }}`. Se for escrito como `{{ tag_name }}` dentro da tag `connected_content`, o valor é enviado vazio.

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&lang={{ ${Language} }} :save result %} 
```

2. Em seguida, adicione o texto da mensagem incorporando os **dados recuperados**, assim:

```

Ei, {{userid}}, pegue seu código promocional pessoal - {{result.code}} 
```

![Adicione o texto da mensagem com os **dados recuperados**](/connectedcontent-1.webp)

3. Após finalizar o conteúdo da mensagem e configurar as definições da predefinição, salve-a para reutilização em campanhas.

<video src="/connectedcontent-2.webm" title="Envie uma mensagem com conteúdo conectado" autoplay loop muted playsinline />

### Passo 3. Envie uma mensagem usando a predefinição configurada

Envie uma mensagem com esta predefinição usando o formulário de [push único](/pt/product/messaging-channels/push-notifications/send-push-notifications/one-time-push/#how-to-send-a-push-notification-using-the-one-time-push-form) ou [e-mail](/pt/product/messaging-channels/emails/sending-emails/send-one-time-emails/) ou [customer journey](/pt/product/customer-journey/pushwoosh-journey-overview/).

<Aside type="caution" title="Importante">
Se o serviço retornar um status diferente de HTTP 200 OK, o e-mail ou a notificação push não será enviado. Isso garante que sua comunicação só seja enviada se os dados necessários forem recuperados com sucesso.
</Aside>