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

# Google Sheets

> Sincronize eventos personalizados do Google Sheets para o OneSignal para acionar Jornadas automatizadas e campanhas de mensagens personalizadas baseadas no comportamento do usuário.

export const PLATFORM_0 = "Google Sheets"

export const DATA_TYPE_0 = "columns"

export const COLUMN_HEADER_0 = "Sheets Column Examples"

export const PROPERTIES_DESCRIPTION_0 = "Multiple columns combined into JSON"

## Visão Geral

A integração OneSignal + Google Sheets permite a sincronização automática de eventos personalizados das suas Google Sheets para o OneSignal. Isso permite que você acione Jornadas automatizadas e campanhas de mensagens personalizadas baseadas em dados comportamentais de usuários armazenados em suas planilhas, perfeito para equipes que gerenciam dados de eventos colaborativamente.

***

## Requisitos

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

### Google Sheets

* **Conta Google** com acesso à planilha contendo dados de eventos
* **Planilha de eventos** com estrutura de colunas adequada para dados de eventos
* **Permissões de compartilhamento de planilha** para o OneSignal acessar os dados
* **Formato de dados consistente** em sua planilha de rastreamento de eventos

***

## Configuração

<Steps>
  <Step title="Preparar sua planilha de dados de eventos">
    Estruture sua Google Sheet com as colunas necessárias para dados de eventos:

    **Colunas obrigatórias:**

    * `event_name` ou `event_type`: O nome do evento (String)
    * `user_id` ou `email`: Identificador do usuário (String)
    * `timestamp` ou `created_at`: Timestamp do evento (Date/DateTime)
    * `properties`: Propriedades do evento como JSON ou colunas separadas (Opcional)

    **Exemplo de estrutura de planilha:**

    ```
    | event_name | user_id | timestamp           | product_id | amount |
    |------------|---------|---------------------|------------|--------|
    | purchase   | user123 | 2024-01-15 10:30:00 | prod_abc   | 29.99  |
    | signup     | user456 | 2024-01-15 11:45:00 |            |        |
    ```
  </Step>

  <Step title="Configurar permissões da planilha">
    Compartilhe sua Google Sheet com a conta de serviço do OneSignal:

    1. Abra sua Google Sheet
    2. Clique no botão **Share** no canto superior direito
    3. Adicione o email da conta de serviço do OneSignal (fornecido durante a configuração)
    4. Defina as permissões como **Viewer** (acesso somente leitura)
    5. Clique em **Send** para conceder acesso

    <Info>
      O OneSignal fornecerá o email específico da conta de serviço durante o processo de configuração da integração.
    </Info>
  </Step>

  <Step title="Adicionar integração no OneSignal">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

    Selecione **Google Sheets** e forneça:

    * **Sheet URL**: A URL completa da sua Google Sheet
    * **Sheet Name**: O nome específico da aba/planilha contendo dados de eventos
    * **Header Row**: Número da linha contendo cabeçalhos de coluna (geralmente 1)
    * **Data Range**: Intervalo de células contendo seus dados de eventos (ex: `A2:F1000`)
  </Step>

  <Step title="Configurar mapeamento de colunas">
    Mapeie suas colunas do Google Sheets para campos de eventos do OneSignal:

    * **Event Name Column**: Selecione a coluna contendo nomes de eventos
    * **User ID Column**: Selecione a coluna com identificadores de usuários
    * **Timestamp Column**: Selecione a coluna com timestamps de eventos
    * **Properties Columns**: Selecione colunas adicionais para incluir como propriedades de eventos

    <Info>
      Você pode mapear múltiplas colunas como propriedades de eventos. O OneSignal as combinará em um único payload de evento.
    </Info>
  </Step>

  <Step title="Definir programação de sincronização">
    Configure com que frequência o OneSignal deve verificar novos dados de eventos:

    * **Sync Frequency**: Escolha entre 15 minutos, a cada hora ou diariamente
    * **Incremental Sync**: Habilite para sincronizar apenas novas linhas desde a última atualização
    * **Timestamp Filter**: Sincronize apenas eventos dentro de um intervalo de tempo específico

    <Warning>
      O Google Sheets tem limites de taxa de API. Sincronizações mais frequentes podem ser limitadas para planilhas com grandes conjuntos de dados.
    </Warning>
  </Step>

  <Step title="Testar a conexão">
    Clique em **Test Connection** para verificar se o OneSignal pode acessar sua Google Sheet e ler os dados de eventos corretamente.
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

***

## Configuração Avançada

### Configuração de Sincronização Incremental

Configure a sincronização incremental para processar apenas novos eventos:

1. **Coluna de Timestamp**: Certifique-se de que sua planilha tem uma coluna de timestamp consistente
2. **Ordem de Classificação**: Mantenha os eventos ordenados por timestamp (mais recente por último)
3. **Somente Adição**: Adicione novos eventos na parte inferior da sua planilha
4. **Evite Edições**: Não modifique linhas de eventos históricos após serem sincronizadas

### Validação de Dados

Implemente validação de dados em sua Google Sheet:

```
Data > Data validation
- Event Name: List from range (predefined event types)
- User ID: Custom formula to check format
- Timestamp: Date/Time format validation
- Amount: Number validation for numeric properties
```

### Fluxos de Trabalho Colaborativos

Melhores práticas para colaboração em equipe:

* **Intervalos Nomeados**: Use intervalos nomeados para seções de dados de eventos
* **Intervalos Protegidos**: Proteja linhas de cabeçalho de alterações acidentais
* **Comentários**: Adicione comentários para explicar definições de eventos
* **Histórico de Versões**: Use o histórico de versões do Google Sheets para rastrear alterações
* **Controles de Acesso**: Limite o acesso de edição aos membros da equipe de entrada de dados

### Otimização de Desempenho

Otimize para grandes conjuntos de dados:

* **Limites de Planilha**: Mantenha planilhas individuais com menos de 10.000 linhas para melhor desempenho
* **Múltiplas Planilhas**: Use planilhas separadas para diferentes tipos de eventos
* **Arquivamento de Dados**: Arquive dados antigos em planilhas separadas mensalmente
* **Fórmulas**: Minimize fórmulas complexas em intervalos de dados de eventos

<Warning>
  O Google Sheets tem melhor desempenho com menos de 50.000 células no total. Para rastreamento de eventos de alto volume, considere usar uma fonte de banco de dados.
</Warning>

***

## Perguntas Frequentes

### Com que frequência o OneSignal sincroniza eventos do Google Sheets?

O OneSignal pode sincronizar com frequência de até 15 minutos, mas recomendamos sincronização a cada hora ou diariamente para a maioria dos casos de uso para respeitar os limites de API do Google.

### Múltiplos membros da equipe podem adicionar eventos à mesma planilha?

Sim, o Google Sheets suporta colaboração em tempo real. No entanto, certifique-se de que os membros da equipe entendam o formato de dados necessário e a estrutura de colunas.

### O que acontece se alguém editar dados de eventos históricos?

O OneSignal sincroniza com base em timestamps e posições de linhas. Editar dados históricos pode causar eventos duplicados ou inconsistências de dados. Recomendamos fluxos de trabalho de somente adição.
