Skip to main content
Solved

Python Mutation - Create Card

  • January 29, 2021
  • 2 replies
  • 1395 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?

 

import requests
import json


url = 'https://app.pipefy.com/graphiql'

query = '''{"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\"}]})}"}'''

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Mytoken123'
}

r = requests.post(url, data=query, headers=headers)

print (r.status_code)
print (r.text)


 

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

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"}
]
}
) 
}

 

Desde já agradeço a ajuda!

 

 

Best answer by Roberto Chavarria

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

 

import requests

url = "https://api.pipefy.com/graphql"

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 – Call\"}   {field_id: \"op_es_telefonia\", field_value: \"Configuração\"}   {field_id: \"descreva_sua_solicita_o\", field_value: \"Dinobot criar sabe\"} ] } )  }"}
headers = {
    "Authorization": "Bearer abc123456",
    "Content-Type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(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:

 

import requests

url = "https://api.pipefy.com/graphql"

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 – Call\"}   {field_id: \"op_es_telefonia\", field_value: \"Configuração\"}   {field_id: \"descreva_sua_solicita_o\", field_value: \"Dinobot criar sabe\"} ] } )  }"}
headers = {
    "Authorization": "Bearer abc123456",
    "Content-Type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(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!


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