Skip to main content
Solved

Python Mutation - Create Card

  • January 29, 2021
  • 2 replies
  • 1428 views

Diego Anselmo Saiotti

olá pessoal!

Estou tentando criar um script em Python, para criar cards no Pipefy, porém, não estou tendo sucesso. Com o método atual, consigo apenas erros 404 ou 400. Se utilizo requests.get, obtenho 200, mas o card não é criado.

 

Há algum erro no código abaixo?

 

1import requests
2import json
3
4
5url = 'https://app.pipefy.com/graphiql'
6
7query = '''{"query": "mutation{createCard(input:{pipe_id: \"301493880\" fields_attributes: [{field_id: \"colaborador_libraport_ou_externo_terceirizado\", field_value: \"Colaborador Libraport\"} {field_id: \"solicitante\", field_value: \"404475106\"} {field_id: \"por_favor_informe_seu_nome\", field_value: \"Dinobot\"} {field_id: \"contato\", field_value: \"+55 19 1234-5678\"} {field_id: \"selecione_um_servi_o\", field_value: \"Telefonia\"} {field_id: \"equipamento_de_telefonia\", field_value: \"Contact Center – Call\"} {field_id: \"op_es_telefonia\", field_value: \"Configuração\"}]})}"}'''
8
9headers = {
10 'Content-Type': 'application/json',
11 'Authorization': 'Mytoken123'
12}
13
14r = requests.post(url, data=query, headers=headers)
15
16print (r.status_code)
17print (r.text)
18
19
20

 

Se eu utilizo a query, na API do GraphiQL, consigo criar um card com sucesso.

1mutation{
2createCard(
3input: {
4pipe_id: "301493880"
5fields_attributes: [
6 {field_id: "colaborador_libraport_ou_externo_terceirizado", field_value: "Colaborador Libraport"}
7 {field_id: "solicitante", field_value: "404475106"}
8 {field_id: "por_favor_informe_seu_nome", field_value: "Dinobot"}
9 {field_id: "contato", field_value: "+55 19 1234-5678"}
10 {field_id: "selecione_um_servi_o", field_value: "Telefonia"}
11 {field_id: "equipamento_de_telefonia", field_value: "Contact Center – Call"}
12 {field_id: "op_es_telefonia", field_value: "Configuração"}
13 {field_id: "descreva_sua_solicita_o", field_value: "Dinobot criar sabe"}
14]
15}
16)
17}

 

Desde já agradeço a ajuda!

 

 

Best answer by Roberto Chavarria

Olá Diego, tudo bem? Segue o código correto:

 

1import requests
2
3url = "https://api.pipefy.com/graphql"
4
5payload = {"query": "mutation{ createCard( input: { pipe_id: \"301493880\" fields_attributes: [ {field_id: \"colaborador_libraport_ou_externo_terceirizado\", field_value: \"Colaborador Libraport\"} {field_id: \"solicitante\", field_value: \"404475106\"} {field_id: \"por_favor_informe_seu_nome\", field_value: \"Dinobot\"} {field_id: \"contato\", field_value: \"+55 19 1234-5678\"} {field_id: \"selecione_um_servi_o\", field_value: \"Telefonia\"} {field_id: \"equipamento_de_telefonia\", field_value: \"Contact Center – Call\"} {field_id: \"op_es_telefonia\", field_value: \"Configuração\"} {field_id: \"descreva_sua_solicita_o\", field_value: \"Dinobot criar sabe\"} ] } ) }"}
6headers = {
7 "Authorization": "Bearer abc123456",
8 "Content-Type": "application/json"
9}
10
11response = requests.request("POST", url, json=payload, headers=headers)
12
13print(response.text)

 

View original
Did this topic help you find an answer to your question?

2 replies

Roberto Chavarria
Pipefy Staff
Forum|alt.badge.img+5

Olá Diego, tudo bem? Segue o código correto:

 

1import requests
2
3url = "https://api.pipefy.com/graphql"
4
5payload = {"query": "mutation{ createCard( input: { pipe_id: \"301493880\" fields_attributes: [ {field_id: \"colaborador_libraport_ou_externo_terceirizado\", field_value: \"Colaborador Libraport\"} {field_id: \"solicitante\", field_value: \"404475106\"} {field_id: \"por_favor_informe_seu_nome\", field_value: \"Dinobot\"} {field_id: \"contato\", field_value: \"+55 19 1234-5678\"} {field_id: \"selecione_um_servi_o\", field_value: \"Telefonia\"} {field_id: \"equipamento_de_telefonia\", field_value: \"Contact Center – Call\"} {field_id: \"op_es_telefonia\", field_value: \"Configuração\"} {field_id: \"descreva_sua_solicita_o\", field_value: \"Dinobot criar sabe\"} ] } ) }"}
6headers = {
7 "Authorization": "Bearer abc123456",
8 "Content-Type": "application/json"
9}
10
11response = requests.request("POST", url, json=payload, headers=headers)
12
13print(response.text)

 


Diego Anselmo Saiotti

@Roberto Chavarria 

 

Obrigado pelo apoio! Apenas um adendo, utilizar apenas esta faixa do código gerava o seguinte erro:

{"errors":[{"message":"Field must have selections (field 'createCard' returns CreateCardPayload but has no selections. Did you mean 'createCard { ... }'?)","locations":[{"line":1,"column":11}],"path":["mutation","createCard"],"extensions":{"code":"selectionMismatch","nodeName":"field 'createCard'","typeName":"CreateCardPayload"}}]}

 

Porém, como é uma mutation, basta trazer esta parte ao final da query para criar um card com sucesso:

 

{clientMutationId card {id title }}}"}

 

Ao final, a Query ficou assim:

payload = {"query": "mutation{ createCard( input: { pipe_id: \"301493880\" fields_attributes: [     {field_id: \"colaborador_libraport_ou_externo_terceirizado\", field_value: \"Colaborador Libraport\"}   {field_id: \"solicitante\", field_value: \"404475106\"}   {field_id: \"por_favor_informe_seu_nome\", field_value: \"Dinobot\"}   {field_id: \"contato\", field_value: \"+55 19 1234-5678\"}   {field_id: \"selecione_um_servi_o\", field_value: \"Telefonia\"}   {field_id: \"equipamento_de_telefonia\", field_value: \"Contact Center – Calabrio\"}   {field_id: \"op_es_telefonia\", field_value: \"Configuração\"}   {field_id: \"descreva_sua_solicita_o\", field_value: \"Dinobot criar sabe\"} ] } ) {clientMutationId card {id title }}}"}

 

Obrigado!


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings