> ## Documentation Index
> Fetch the complete documentation index at: https://docs.octasend.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Tray

> Conecte sua loja Tray para disparar comunicações a partir de pedidos, recuperar carrinhos abandonados e manter clientes, produtos e pedidos sincronizados

A integração com a **Tray** conecta sua loja à OctaSend e faz três coisas:

* **Dispara comunicações sozinha** a partir dos eventos da loja: pagamento aprovado, pedido enviado, carrinho abandonado e outros.
* **Sincroniza clientes, produtos e pedidos** com o menu [E-commerce](https://docs.octasend.com.br/plataforma/ecommerce.md).
* **Alimenta as [automações](https://docs.octasend.com.br/plataforma/automacoes.md)** que começam por um evento da loja ou pela chegada de um pedido.

A integração é **somente leitura**: a OctaSend nunca altera nada na Tray.

> [!NOTE]
>
> A integração com a Tray está disponível sob liberação. Se o card **Tray** não aparece em **Configurações → Integrações**, fale com o suporte.

## Onde fica

Em **Configurações → Integrações**, o card **Tray** mostra o status, o nome da loja, o **Último evento** e, em caso de erro, o motivo. Os status são os de [Integrações](https://docs.octasend.com.br/integracoes/visao-geral.md#onde-fica). Cada conta conecta uma loja Tray, e uma loja fica conectada a uma conta só.

## 1. Conectar

Há dois caminhos:

* **Pela OctaSend:** em **Configurações → Integrações → Tray**, informe o **Endereço da sua loja** (por exemplo, `minhaloja.com.br`, o que aparece no navegador quando você abre a loja) e clique em **Conectar com a Tray**. Você autoriza o acesso na Tray e volta para a tela **Confirmar conexão**. Confira o nome da loja e clique em **Conectar**.
* **Pela Tray:** em **Meus aplicativos**, instale o aplicativo OctaSend. A Tray leva você à OctaSend e a autorização segue como acima.

Se a loja já estiver em outra conta OctaSend, desconecte por lá antes.

> [!TIP]
>
> **Domínio próprio:** por segurança, a OctaSend só envia as chaves do aplicativo para endereços da Tray (`*.commercesuite.com.br` e `*.tray.com.br`). Se a loja usa domínio próprio, informe o endereço da Tray para o qual o domínio aponta (o alvo do CNAME, algo como `minhaloja.commercesuite.com.br`). Endereço fora da Tray é recusado.

## 2. O que chega da Tray

* **Pedidos:** a Tray avisa a cada pedido novo ou alterado, e a OctaSend busca o pedido completo, com itens.
* **Clientes e produtos:** a OctaSend busca os alterados **a cada 30 minutos**. O aviso imediato desses itens depende de a Tray liberá-lo para a OctaSend; até lá, vale a busca periódica.
* **Conciliação diária:** uma vez por dia a OctaSend revisa os pedidos e recupera o que um aviso possa ter perdido.
* **Importação ao conectar:** os **pedidos dos últimos 90 dias**, depois todos os **clientes** e **produtos**. A importação **não envia mensagem**. Em loja grande ela leva mais de um dia, porque respeita a cota diária da Tray, e retoma de onde parou.

## 3. Mapear os eventos

Clique em **Configurar eventos**. Na aba **Mapeamento de eventos**, cada evento recebe uma comunicação; evento sem comunicação não dispara nada. Crie suas comunicações antes em [Comunicações](https://docs.octasend.com.br/plataforma/comunicacoes.md).

| Evento | Quando dispara |
| - | - |
| Pedido criado | Pedido novo, feito depois da conexão |
| Pagamento aprovado | O pedido passou a ter pagamento confirmado. A data de pagamento sozinha não vale: o boleto emitido já vem com ela |
| Pedido enviado | O pedido ganhou código ou link de rastreio, ou foi marcado como enviado na Tray |
| Pedido entregue | O nome do status do pedido passou a conter "ENTREGUE" |
| Pedido cancelado | O nome do status do pedido passou a conter "CANCELAD" |
| Pedido mudou para *status* | Uma linha para cada status da sua loja, com o nome que você deu |
| Carrinho abandonado | Veja [Carrinho abandonado](#carrinho-abandonado) |
| Cliente cadastrado | Cliente criado depois da conexão, há no máximo 48 horas |

Como a Tray não tem um campo de entrega nem de cancelamento, **Pedido entregue** e **Pedido cancelado** dependem do nome que você deu ao status na loja.

**Regras**

* **Uma mensagem por transição:** pago, enviado, entregue, cancelado, mudança de status e boas-vindas saem uma vez por pedido (ou cliente), mesmo que a Tray repita o aviso.
* **Pedido anterior à conexão:** pedido, cliente e carrinho de antes da conexão nunca recebem mensagem pela importação. Uma mudança que acontece depois da conexão gera mensagem mesmo em pedido antigo (um pedido importado que é enviado amanhã recebe "enviado").
* **Marketplace não recebe mensagem:** pedidos de marketplace (Mercado Livre e outros que a Tray agrega) são sincronizados, mas não geram mensagem. Pedidos da loja virtual e pedidos criados pelo painel, pela API ou por um ERP recebem.
* Pedido alterado, produto alterado e produto excluído só atualizam os dados na OctaSend.
* A comunicação precisa de um canal ativo compatível com o contato do pedido. Sem e-mail nem telefone, o evento fica como **Ignorado**. O telefone é o celular do cliente e, se não houver, o fixo.

## 4. Variáveis do template

O painel **Variáveis disponíveis** mostra as variáveis do evento, com botão para copiar.

**Todos os eventos**

| Variável | Conteúdo |
| - | - |
| `{{loja_nome}}` | Nome da loja |
| `{{loja_url}}` | Endereço da loja |
| `{{cliente_nome}}` | Nome do cliente |
| `{{cliente_primeiro_nome}}` | Primeiro nome do cliente |
| `{{cliente_email}}` | E-mail do cliente |
| `{{cliente_telefone}}` | Telefone do cliente |

**Eventos de pedido** (criado, pago, enviado, entregue, cancelado e mudança de status), além das acima

| Variável | Conteúdo |
| - | - |
| `{{pedido_numero}}` | Número do pedido |
| `{{pedido_total}}` | Valor total |
| `{{pedido_status}}` | Status, com o nome usado pela loja |
| `{{pedido_itens}}` | Itens, um por linha, como `2x Camiseta Preta` |
| `{{pedido_pagamento}}` | Forma de pagamento |
| `{{link_pagamento}}` | Link de pagamento (pode vir vazio) |
| `{{pedido_data}}` | Data do pedido (dd/mm/aaaa) |

Em **enviado**, **entregue** e **mudança de status** existem ainda `{{codigo_rastreio}}` e `{{link_rastreio}}`. O link pode vir vazio: monte o texto de modo que faça sentido só com o código.

**Carrinho abandonado**, além das de todos os eventos: `{{carrinho_itens}}`, `{{carrinho_total}}`, `{{link_retomada}}`, `{{primeiro_item_nome}}` e `{{primeiro_item_imagem}}`.

Uma variável que não existe no evento não é substituída; uma que existe e a Tray não preencheu chega vazia.

## Carrinho abandonado

A Tray não avisa abandono: a OctaSend detecta.

* Só carrinho com **cliente identificado**.
* O carrinho precisa estar parado há mais que o tempo de abandono: padrão 60 minutos, ajustável de **30 minutos a 24 horas** no campo **Considerar abandonado depois de**, na aba **Rotinas** (clique em **Salvar alterações**). O interruptor **Ativa** da mesma seção liga e desliga o envio: desligado, nenhum carrinho é enviado.
* A OctaSend consulta os carrinhos **a cada 5 minutos**.
* **Uma mensagem por carrinho.**
* **Carrinho convertido não recebe:** antes de enviar, a OctaSend confere se o cliente fez um pedido depois da última atividade do carrinho. Na dúvida, não envia, e o evento fica como **Ignorado** ("Carrinho convertido").
* `{{link_retomada}}` leva o cliente de volta ao carrinho na loja.

## 5. Rotinas e Executar agora

Na aba **Rotinas**:

| Rotina | Como roda |
| - | - |
| **Carrinho abandonado** | A cada 5 minutos; tem o interruptor **Ativa** e o campo do tempo de abandono |
| **Clientes** e **Produtos** | Buscam os alterados a cada 30 minutos; têm **Executar agora** |
| **Conciliação de pedidos** | Diária; tem **Executar agora** |
| **Importação inicial** | Mostra a fase (pedidos, clientes, produtos); não tem botão |

**Executar agora** atualiza os dados guardados e não reenvia mensagens. Se a execução parar no limite de tempo ou de cota, a aba avisa e a próxima execução continua de onde parou. Cada execução aparece na aba **Logs**; a aba **Eventos recebidos** mostra o resultado de cada evento (**Enviado**, **Ignorado**, **Falhou**).

## 6. Limites da Tray

* A Tray permite **180 requisições por minuto** e **10 mil por dia** por loja, divididas com outros aplicativos instalados. A OctaSend reserva **7 mil por dia**.
* Quando a cota aperta, a ordem de prioridade é: pedidos que chegam por aviso, carrinho abandonado, clientes e produtos e, por último, a importação inicial.
* Quando a cota do dia acaba, as rotinas voltam no dia seguinte; um aviso de pedido espera até a meia-noite (horário de São Paulo) e é processado então, sem virar falha.

## 7. Erros e reconexão

| Mensagem | O que fazer |
| - | - |
| A autorização da Tray expirou. Reconecte a loja Tray. | Reconectar |
| A loja está bloqueada na Tray. Resolva o bloqueio com a Tray e reconecte a loja. | Resolver o bloqueio com a Tray e reconectar |
| A loja está inativa na Tray. Reative a loja na Tray e reconecte. | Reativar a loja na Tray e reconectar |
| A loja foi cancelada na Tray. O OctaSend não consegue mais ler os dados dela. | Sem ação possível na OctaSend |
| A Tray recusou o acesso sem dizer o motivo. Tente de novo em alguns minutos; se continuar, reconecte a loja. | Tentar de novo em alguns minutos; se continuar, reconectar |

Nos quatro primeiros casos a integração fica **Com erro** até a reconexão. Para reconectar, clique em **Reconectar a Tray**, informe o endereço da loja e conecte de novo.

## Desconectar

Ao desconectar, a OctaSend para de ler a loja. Os pedidos, clientes e produtos já importados **continuam** na OctaSend. Para voltar, conecte de novo.

## Veja também

> [card] [Integrações](https://docs.octasend.com.br/integracoes/visao-geral.md)
>
> As plataformas disponíveis e o que muda entre elas

> [card] [Nuvem Shop](https://docs.octasend.com.br/integracoes/nuvemshop.md)
>
> Telas de eventos, logs e rotinas, iguais às da Tray

> [card] [E-commerce](https://docs.octasend.com.br/plataforma/ecommerce.md)
>
> Clientes, pedidos e produtos sincronizados da loja

> [card] [Automações](https://docs.octasend.com.br/plataforma/automacoes.md)
>
> Sequências de mensagens a partir de eventos da loja


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.