{"section":"tutorials","requestedLocale":"pt","requestedSlug":"call-webhook-como-fazer-chamadas-para-sistemas-externos","locale":"pt","slug":"call-webhook-como-fazer-chamadas-para-sistemas-externos","path":"docs/pt/tutorials/weni-by-vtex/fluxos/call-webhook-como-fazer-chamadas-para-sistemas-externos.md","branch":"main","content":"A sigla **API** corresponde às palavras em inglês **Application Programming **Interface**. No português “Interface de Programação de Aplicações”. Elas são uma forma de **integrar sistemas,\\*\\* possibilitando benefícios como a segurança dos dados e facilidade no intercâmbio entre informações.\n\n![](https://cdn.statically.io/gh/vtexdocs/help-center-content/refs/heads/main/docs/pt/tutorials/weni-by-vtex/fluxos/call-webhook-como-fazer-chamadas-para-sistemas-externos_1.png)\n\nAtualmente, a capacidade de poder se conectar e integrar com outros sistemas é uma funcionalidade essencial para a maioria das soluções hoje em dia. Por isso, temos uma carta de ação para utilizar nos fluxos justamente para essa função: _**Call Webhook**_\n\n## Call webhook\n\nA carta de **_Call Webhook_** é a responsável pela conexão entre a Weni Plataforma e outros sistemas externos, abaixo, temos um pouco sobre a anatomia dela:\n\n![](https://cdn.statically.io/gh/vtexdocs/help-center-content/refs/heads/main/docs/pt/tutorials/weni-by-vtex/fluxos/call-webhook-como-fazer-chamadas-para-sistemas-externos_2.png)\n\n1. Método da requisição: Onde você define qual vai ser o método para a sua requisição de API (GET, POST, PUT ou DELETE);\n2. URL da requisição: Onde você coloca a URL da requisição para a API;\n3. Cabeçalho da requisição: Onde você coloca o cabeçalho da requisição junto com informações como tokens de autorização e tipos de conteúdo;\n4. Corpo da requisição: Onde você adiciona um corpo para sua requisição (usado para POST e PUT);\n\n## Como formatar o corpo da requisição corretamente\n\nNormalmente, para o corpo de requisições POST e PUT utilizamos a notação JSON para enviar as informações solicitadas pela API. Abaixo, segue o exemplo de um corpo em JSON:\n`{ \"\"platform\"\":\"\"weni\"\", \"\"author\"\":\"\"john\"\" }`\n\nComo podemos reproduzir essa notação utilizando a carta _Call Webhook_? Na plataforma, utilizamos as funções `@json e @object` para esta construção, sendo a primeira para sinalizar qual notação iremos traduzir os valores, e a segunda para sinalizar o começo e fim das nossas chaves. Traduzindo o exemplo acima para a notação utilizada na plataforma, temos:\n`@(json(object(\"\"platform\"\",\"\"weni\"\",\"\"author\"\",\"\"john\"\")))`\n\nCaso você queira usar alguma variável como, por exemplo, `@contact.name` para o campo \"\"author\"\" do nosso exemplo, temos:\n`@(json(object(\"\"platform\"\",\"\"weni\"\",\"\"author\"\",contact.name)))`\n\nO corpo da requisição aceita todas as variáveis e expressões suportadas na plataforma.\n\n## Navegando em um webhook\n\nApós fazer a requisição você pode utilizar algumas expressões para consultar informações do retorno.\n\n![](https://cdn.statically.io/gh/vtexdocs/help-center-content/refs/heads/main/docs/pt/tutorials/weni-by-vtex/fluxos/call-webhook-como-fazer-chamadas-para-sistemas-externos_3.png)\n\n#### `@Results`\n\n`@results.[nome do result do card Chamar Webhook]`: para consultar o status da requisição, como por exemplo: 200, 400, 500.\n\n#### `@Webhook`\n\nEssa expressão é usada para resgatar valores retornados da última chamada webhook feita no fluxo, por exemplo:\n\n- `@webhook` O valor dessa variável é todo o retorno da última requisição feita.\n- `@webhook.results.cliente:`Nome do cliente retornado da API, caso retorne somente 1 objeto\n- `@webhook.results.0.cliente:`Nome do cliente retornado da API. Caso retorne em array é necessário dizer a posição do array que deseja na expressão, usando 0, 1, 2 e assim por diante.\n\nPara armazenar os valores em outras variáveis você pode salvar como [campo de contato](https://help.vtex.com/pt/docs/tutorials/campos-de-contato) ou [resultado do fluxo](https://help.vtex.com/pt/docs/tutorials/glossario-de-variaveis)."}