# Integração com o Marketo

<Aside type="caution" icon="setting" title="Assistência de desenvolvedor necessária">
 Você precisará da ajuda da sua equipe de desenvolvimento para configurar a integração. Por favor, compartilhe este guia com eles.
</Aside>

Este guia explica como integrar o [Marketo](https://login.marketo.com/) com a Pushwoosh. Você poderá usar o canal de comunicação de Notificações Push Web como parte de suas campanhas de marketing com o Marketo.

Como exemplo, imagine que um usuário visitou sua landing page do Marketo, mas não realizou nenhuma ação. Você poderá alcançar esse usuário com uma notificação push web como um lembrete. Esta notificação push web também pode ser personalizada com os dados do Marketo registrados para este usuário para o máximo engajamento!

<Aside type="note">
#### HTTPS ("Landing Pages Seguras") deve estar ativado na sua instância do Marketo.

Embora seja possível executar notificações push web com sites HTTP não seguros, recomendamos fortemente o uso de páginas web seguras com HTTPS.
A partir de outubro de 2017, com o lançamento do Chrome 62, o Google Chrome marca todas as páginas web não seguras que contêm formulários com o aviso "Não seguro".

Leia mais aqui:
[https://nation.marketo.com/docs/DOC-3891-faq-ssl-landing-pages-and-tracking-links](https://nation.marketo.com/docs/DOC-3891-faq-ssl-landing-pages-and-tracking-links)
[https://nation.marketo.com/docs/DOC-4742-ssl-certificates-and-marketo-faq](https://nation.marketo.com/docs/DOC-4742-ssl-certificates-and-marketo-faq)

Se você ainda quiser usar um site HTTP não seguro, siga o guia [Web Push para Chrome/Firefox para sites HTTP](/pt/developer/pushwoosh-sdk/web-push-notifications/chrome-firefox-web-push-for-http-websites).

Você pode obter um certificado SSL GRATUITO aqui:
[https://letsencrypt.org/](https://letsencrypt.org/)
</Aside>

## 1. Criando o Service Worker

Siga este [guia](/pt/developer/pushwoosh-sdk/web-push-notifications/web-push-sdk-30) e execute os **passos de pré-requisito** e os passos **1 - 2.2.**

Após completar os passos acima, você deve ter os arquivos _manifest.json_ e _pushwoosh-service-worker.js_ prontos.

Vá para o **Marketo Design Studio**.
O Marketo só pode fazer upload de arquivos para a pasta de recursos, a pasta chamada "Images and Files".
Faça o upload de _manifest.json_ e _pushwoosh-service-worker.js_ para esta pasta.

<img src="/integrations-marketo-integration-1.webp" alt="Fazendo upload dos arquivos manifest.json e service worker para o Marketo"/>

## 2. Criando a página de inscrição para push

Como mencionado acima, o Marketo só pode fazer upload de arquivos para a pasta de recursos, que é diferente do escopo das landing pages.
Por exemplo, se você clicar em qualquer arquivo enviado acima e verificar sua URL, verá algo como "[https://your-host-name.com/rs/765-IWA-819/images/pushwoosh-service-worker.js](https://your-host-name.com/rs/765-IWA-819/images/pushwoosh-service-worker.js)".
No entanto, se você clicar na landing page e verificar sua URL, será algo como: "[https://your-host-name.com/lp/765-IWA-819/pushwoosh-landing.html](https://your-host-name.com/lp/765-IWA-819/pushwoosh-landing.html)".
Note a parte **"lp"** nas URLs das landing pages e **"rs"** nas URLs dos scripts.

Isso significa que precisamos registrar nosso script _Service Worker_ em um escopo diferente das landing pages.

Para conseguir isso, faremos o upload de uma página especial de inscrição para push na pasta de recursos do Marketo e, em seguida, a abriremos a partir da landing page. Vamos criar esta página de inscrição.

Obtenha o arquivo _push-subscription.html_ do seguinte gist:
[https://gist.github.com/shaders/2b518e3acaf9b4712d5260205243343d#file-push-subscription-html](https://gist.github.com/shaders/2b518e3acaf9b4712d5260205243343d#file-push-subscription-html)

Abra o arquivo e altere as seguintes linhas:

* Linha 8 - altere o link para a URL do arquivo _manifest.json_ enviado no passo anterior.
* Linha 24 - altere o valor do parâmetro _scope_ para a URL da sua pasta de recursos (esta é a pasta onde _manifest.json_ está).
* Linha 20 - altere o valor do parâmetro _applicationCode_ para o seu App Id da Pushwoosh.

Note que o script também mapeia as notificações push centradas no usuário da Pushwoosh com o Identificador de Lead do Marketo: _userId:leadId_ (linha 26)

Faça o upload do arquivo resultante para a pasta "Images and Files". Agora você deve ter estes arquivos na pasta:

<img src="/integrations-marketo-integration-2.webp" alt="Arquivos enviados para a pasta Images and Files do Marketo"/>

## 3. Criando uma landing page com inscrição para push

Obtenha o arquivo _pushwoosh-template.html_ do seguinte gist:
[https://gist.github.com/shaders/2b518e3acaf9b4712d5260205243343d#file-pushwoosh-template-html](https://gist.github.com/shaders/2b518e3acaf9b4712d5260205243343d#file-pushwoosh-template-html)

Abra o arquivo e altere as seguintes linhas:

* Linha 47 - altere o valor do parâmetro _scope_ para a URL da sua pasta de recursos.
* Linha 65 - altere o link para a URL do arquivo _push-subscription.html_ enviado no passo anterior.
* Linha 43 - altere o valor do parâmetro _applicationCode_ para o seu App Id da Pushwoosh.

Este script, como o anterior, também mapeia as notificações push centradas no usuário da Pushwoosh com o Identificador de Lead do Marketo: _userId:leadId_ (linha 49)

Agora vá para a seção "**Templates**" das suas **landing pages do Marketo**, crie o template (chamado "pushwoosh-template" na captura de tela abaixo) e copie e cole o conteúdo do arquivo resultante lá.

<img src="/integrations-marketo-integration-3.webp" alt="Criando o pushwoosh-template na seção de Templates do Marketo"/>

Agora vamos criar uma nova landing page baseada neste template.

<img src="/integrations-marketo-integration-4.webp" alt="Criando uma nova landing page baseada no template pushwoosh"/>

Em nosso exemplo, para mostrar as capacidades da integração da Pushwoosh com a automação de campanhas do Marketo, por simplicidade, adicionaremos um link simples à landing page. Vamos criar uma campanha que irá disparar uma notificação push pessoal quando o usuário clicar neste link.

Vamos usar a mesma URL da landing page.

```txt
<a href="https://na-ab24.marketo.com/lp/765-IWA-819/pushwoosh-landing.html">Send me an Offer!</a>
```

<img src="/integrations-marketo-integration-5.webp" alt="Landing page com link para oferta de notificação push"/>

## 4. Criando o Webhook da Pushwoosh

Vá para a seção **"Admin" do Marketo** e crie um novo Webhook com os seguintes parâmetros:

* URL - [https://go.pushwoosh.com/json/1.3/createMessage](https://go.pushwoosh.com/json/1.3/createMessage)
* Tipo de Requisição: POST

Cole o seguinte código como um template.

```
{
        "request": {
            "application": "ENTER_YOUR_PUSHWOOSH_APP_ID",
            "auth": "ENTER_YOUR_PUSHWOOSH_API_TOKEN_HERE",
            "notifications": [{
                "send_date": "now",
                "ignore_user_timezone": true,
                "content": "Temos uma nova oferta para você!",
                "users" : ["{{lead.Id:default="ABCD-EFGH"}}"]
            }]
        }
    }
```

Note que usamos o ID de Lead do Marketo para referenciar o usuário na Pushwoosh. Veja mais sobre notificações push centradas no usuário [aqui](/pt/product/messaging-channels/push-notifications/send-push-notifications/push-by-user-id).

<img src="/integrations-marketo-integration-6.webp" alt="Configuração do Webhook na seção Admin do Marketo"/>

Em nosso exemplo muito simples, usamos uma mensagem push estática. No entanto, você pode usar toda a funcionalidade de [`createMessage`](/pt/developer/api-reference/messages-api/#createmessage)

Para personalizar a notificação push, você pode usar um **Preset** da Pushwoosh e passar os valores do Marketo nos parâmetros **"dynamic_content_placeholders"** da chamada `/createMessage` para personalização do push.

## 5. Integrando com a campanha de automação do Marketo

Vá para a seção "**Marketing Activities**" do Marketo e crie uma Campanha.

Para o nosso exemplo, vamos disparar a campanha quando o usuário clicar em um link (aquele que criamos apenas dois passos acima) em nossa landing page.

<img src="/integrations-marketo-integration-7.webp" alt="Configuração do gatilho para evento de clique do usuário na campanha do Marketo"/>

b. Selecione o Webhook "send_push" na seção "Flow"

<img src="/integrations-marketo-integration-8.webp" alt="Selecionando o Webhook send_push na seção de fluxo da campanha"/>

* Agora abra a URL da landing page
* Clique no botão **"Sim, eu quero"** para abrir o diálogo de inscrição para push
* Inscreva-se para receber as notificações push
* Clique no link **"Envie-me uma oferta!"**

Você recebeu sua notificação push automatizada do Marketo!

<img src="/integrations-marketo-integration-9.webp" alt="Notificação push automatizada do Marketo enviada com sucesso"/>