> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/docs/pt/acoes/workflow-concepts/workflow-steps/memory-steps/write-to-grid.md).

# Adicionar linhas no Grid

Adicione ou atualize linhas num Grid a partir do seu workflow

O passo Adicionar Linha(s) no Grid permite-lhe criar novas linhas ou atualizar linhas existentes em qualquer Grid a partir do seu fluxo de trabalho. Use este passo quando precisar de escrever dados para um Grid diferente ou adicionar novas linhas para além da linha atual onde o seu fluxo de trabalho está a ser executado.

{% hint style="info" %}
Se quiser mapear as saídas do fluxo de trabalho para colunas na mesma linha onde o seu fluxo de trabalho está a correr, não precisa deste passo. Use um passo JSON no final do seu fluxo de trabalho e mapeie as saídas como colunas na interface do Grid.
{% endhint %}

## Como Configurar

### 1. Selecione o Grid e a Sheet

Escolha o Grid e a Sheet de destino onde pretende escrever os dados. Ambos os campos suportam seleção Estática ou Dinâmica:

* **Estático**: Selecione num menu pendente de Grids/Sheets disponíveis
* **Dinâmico**: Faça referência a uma variável que contenha o ID do Grid ou da Sheet

### 2. Escolha um tipo de ação

Selecione um dos quatro tipos de ação com base nas suas necessidades:

| Tipo de ação                  | Descrição                                                       |
| ----------------------------- | --------------------------------------------------------------- |
| **Adicionar uma única linha** | Criar uma nova linha a partir de um único objeto JSON           |
| **Adicionar várias linhas**   | Criar várias novas linhas a partir de um array de objetos       |
| **Atualizar uma única linha** | Atualize uma linha existente usando o seu `__id`                |
| **Atualizar várias linhas**   | Atualize várias linhas existentes usando os seus `__id` valores |

### 3. Forneça a variável de dados

Selecione uma variável que contenha os dados da sua linha:

**Para ações de linha única**, forneça um objeto:

```json
{
  "title": "Guia Definitivo para Construção de Links",
  "backlinks": "150"
}
```

**Para ações de várias linhas**, forneça um array de objetos:

```json
[
  {
    "title": "Guia Definitivo para Construção de Links",
    "backlinks": "150"
  },
  {
    "title": "Melhores Práticas de SEO",
    "backlinks": "89"
  }
]
```

### 4. Mapeie as chaves do objeto para colunas do Grid

Use a interface de mapeamento de colunas para ligar as suas chaves JSON às colunas existentes do Grid. Clique **Adicionar mapeamento de colunas** e especifique:

* **Chave**: O nome da chave do seu objeto JSON
* **Coluna**: A coluna de destino no seu Grid

### 5. Defina o comportamento em caso de falha

Escolha o que acontece se o passo falhar:

* **Terminar Workflow**: Parar a execução do fluxo de trabalho
* **Continuar**: Prosseguir para o passo seguinte apesar do erro

## Atualização de linhas existentes

Ao usar **Atualizar uma única linha** ou **Atualizar várias linhas**, os seus dados devem incluir o `__id` campo para identificar quais linhas atualizar. Este campo é incluído automaticamente quando lê linhas usando o passo Ler do Grid.

### Exemplo: Ler, modificar e atualizar

**Passo 1**: Use Ler do Grid para obter linhas existentes com os seus `__id` valores:

```json
[
  {
    "__id": "123",
    "title": "Rascunho de Publicação de Blog",
    "status": "Rascunho"
  },
  {
    "__id": "456",
    "title": "Guia de SEO",
    "status": "Em revisão"
  }
]
```

**Passo 2**: Transforme os dados num passo de Código preservando o `__id`:

```javascript
const rows = steps.read_grid.output;
return rows.map(row => ({
  __id: row.__id,
  status: "Publicado",
  published_date: new Date().toISOString()
}));
```

**Passo 3**: Use Adicionar Linha(s) no Grid com **Atualizar várias linhas** para gravar as alterações de volta.

### Comportamento da atualização

* Cada objeto deve incluir um `__id` que corresponda a uma linha existente
* Apenas as colunas que incluir serão atualizadas; as outras colunas permanecerão inalteradas
* Linhas com valores não correspondentes `__id` serão ignoradas
* Não precisa de mapear `__id` na secção de mapeamento de colunas

## Quando usar este passo

**Use Adicionar Linha(s) no Grid quando:**

* Criar novas linhas num Grid separado
* Adicionar várias linhas geradas a partir de uma única execução do fluxo de trabalho
* Atualizar linhas existentes em qualquer Grid

**Use um passo JSON em vez disso quando:**

* Mapear saídas para colunas na linha atual do Grid
* Organizar várias saídas num formato estruturado para a mesma linha


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/docs/pt/acoes/workflow-concepts/workflow-steps/memory-steps/write-to-grid.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
