# \[Exemplo] Recuperando dados do Airtable (GET)

Bots são frequentemente usados para mostrar dados de fontes externas ao seu usuário. Uma maneira fácil de gerenciar esses dados é usando [Airtable](https://airtable.com). Airtable é uma ferramenta que permite criar uma planilha com a qual você pode se comunicar via API.

Neste tutorial configuraremos uma integração com o Airtable. Por causa de todo o código parece bastante técnico, mas na verdade é bem fácil.

{% hint style="info" %}
Se você é novo no uso de variáveis no Chatlayer.ai, siga [este](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/integrateandcode/code-action/broken-reference) o tutorial primeiro.
{% endhint %}

Como exemplo, vamos construir um bot que mostra informações sobre encontros de chatbots.

* A primeira coisa que precisamos fazer é criar alguns dados de encontros. Neste exemplo, usaremos [este Airtable](https://airtable.com/shrJGHyo1RZuJf72Z). Fique à vontade para reutilizá-lo!

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iYS1yddyb6GvruKyh%2Fimage.png?alt=media\&token=43fa9709-4f25-4957-bca1-57b61f1b9705)

* Comece construindo um fluxo curto que explique o propósito do bot e que pergunte em que mês o usuário quer saber informações sobre encontros.

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iUmp-dFIzPFwS76ls%2Fimage.png?alt=media\&token=c18fcfbb-baa6-41fb-a012-90df5ea9ebd9)

* Para a pergunta sobre o mês, certifique-se de que está usando um [validador de entrada](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/buildabot/flow-logic/dialog-state/user-input-bot-dialog) que salva a resposta como a`variável mês` e que continua para o próximo passo: um bloco de Ação.

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iV7PiFbZCHx2Agq4i%2Fimage.png?alt=media\&token=e43ccd08-dcd5-49d4-9b9a-9889e373dcfd)

* Configure o bloco de Ação que é acionado após a validação de entrada com um plug-in de código. Adicione a variável "month" como argumento, conforme mostrado na captura de tela:

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iWAybXbHUownei3ZB%2Fimage.png?alt=media\&token=416cd477-07b0-4fda-a677-5157cced0a91)

{% hint style="info" %}
Quer aprender mais sobre as possibilidades do plug-in de Código? Você pode encontrá-lo [aqui](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/integrateandcode/code-action).
{% endhint %}

* Em seguida, adicione este trecho de código:

```javascript
const { month } = args;

const { records = [] } = await fetch(
  "https://api.airtable.com/v0/(yourAppId)/(yourTableName)",
  {
    method: "GET",
    headers: {
      Authorization: "Bearer (insert token here)",
    },
  }
).then((res) => res.json());

const found = records.filter((rec) => rec.fields.Month === month.toLowerCase());

const builder = ChatlayerResponseBuilder();

if (found.length) {
  builder.addSessionVariable("meetups", found);
} else {
  builder.addSessionVariable("nomeetups", found);
}

builder.send();
```

{% hint style="warning" %}
Lembre-se de obter o id do app, o nome da tabela e o token bearer corretos para o seu Airtable. Você pode encontrá-los [aqui](https://airtable.com/api).
{% endhint %}

* Este bloco de código procura na tabela um encontro no mês que o usuário informou e, se encontrar, retorna essa informação para o Chatlayer.ai. Se nenhum encontro for encontrado, a `nomeetups` variável é salva na sessão do usuário.
* Se você seguir o fluxo até este ponto, ele ficará algo assim:

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iZVpvk5v2JYKQe3UO%2Fimage.png?alt=media\&token=cdaa9aa9-3f4b-41ea-b965-904c12ed14ae)

* E os seguintes dados são salvos na sessão:

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iZcCw9kdzu8EwD6bs%2Fimage.png?alt=media\&token=041134bd-ea30-4d19-998d-efdd980deac3)

* Agora tudo o que precisamos fazer é mostrar esses dados! Adicione um Ir Para ao final do bloco de Ação onde você adicionou o bloco de código.
* Configure este Ir Para da seguinte forma:

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6iZpm-3YxUmBUWP77r%2Fimage.png?alt=media\&token=ef5df791-ae66-4c68-b622-c2fb9d590bdb)

* Dessa maneira, o usuário receberá uma resposta diferente se não houver encontros no mês sobre o qual perguntou.
* Finalmente, configure as mensagens em "mostrar informações do encontro" para exibir as informações recuperadas da planilha do Airtable.

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6i_G-ak1RY6SgzazJQ%2Fimage.png?alt=media\&token=b30cfc5b-7b3c-477e-90b1-71e651405eea)

* Tudo pronto! Agora você pode testar o fluxo completo.

![](https://181262846-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLTwFwbOqJj4dDhg8Ju%2F-M6i87c4FjA0_WKtwGBL%2F-M6i_LrF1VLt29jHLWEZ%2Fimage.png?alt=media\&token=da9b6b68-f2ab-4bad-a4a4-2da0f40243da)
