Product Hacks

Como atualizar responsáveis de campos em massa?

Como atualizar responsáveis de campos em massa?
Userlevel 7
Badge +10

Você sabia que existe uma maneira fácil e prática de atualizar os responsáveis de vários campos  de uma única vez ;)

 

Vamos supor que alguém da sua empresa não está mais trabalhando naquele setor e, portanto, não faça mais parte de um  pipe. No entanto, essa pessoa tinha muitos cards atribuídos a ela que agora essas tarefas estão sem responsável. O que você pode fazer? Atribuir manualmente, editando um a um? Muito trabalhoso, né? 

 

Você pode atribuir a responsabilidade desses cards de maneira bem fácil e rápida utilizando a nossa API, caso a sua empresa esteja nos planos business ou enterprise (https://www.pipefy.com/pricing/) e você tenha permissão de administrador nesse pipe. 

 

Obs.:Se não estiver em um desses planos e deseje fazer um upgrade de sua conta, você pode entrar em contato com a equipe de suporte ou com o seu CSM, caso possua. ;) 

 

Vou ensinar como fazer isso hoje e não se preocupe, é muito mais fácil do que parece, eu prometo! :) 

 

Vamos lá!

1. Primeiro você precisa criar um relatório para extrair os IDs dos cards que deseja atualizar.. Então, o que precisamos fazer aqui é ir aos relatórios de pipe e, com o auxílio do filtro, extrair apenas os cards que queremos atualizar o responsável. 

 

A sua busca vai depender do seu processo. Seriam os cards criados em determinado tempo? Cards em determinada fase? Cards atribuídos a alguém e que você deseja passar a outra pessoa? Basta filtrar esses cards e fazer o download desse relatório com seus IDs. 

 

2. Agora vamos para a parte divertida, que é em nossa página de GraphiQL (https://app.pipefy.com/graphiql). Você vai abrí-la e será exatamente assim: 

eqy1v12zOTMJ9B9ACBMhonBWrgRCK-UyUmYLOJsNQYlLp4XGhdyQEdMjuFhYPjSo6juAtowb1rGcQHYCp-WO2wXxN0oT_ghoHSxJavV72IZQ0zuELZfPJXqoX7AtL9_YHHccO9kJ

3. Agora precisamos consultar os IDs dos usuários  para quem deseja atribuir esses cards. Você pode conseguir esses IDs de duas formas. 

  1. Consultando pela API;

  2. Consultando com o próprio usuário. Cada pessoa consegue ver seu próprio ID indo às suas configurações e obtendo seu ID na URL da página, por exemplo: 

9Xd5X71yNakw9gIoS7dxUoODbs_qMHKwnRUheO1-aS6qkFosVNy7_ZGwpQKCdNGPvP8NnfnRoM6tyrsx08-c-yEOvCHrApCZ0bvvD_Q1nMbPe4Aom5m69e8wfkgEiEnHpo3acN_Z
 

No meu caso, o número 758355 é o ID. 

 

4. Agora que você tem os IDs dos cards e dos usuários, precisamos apenas executar a mutation para alterar os campos dos cards. ;)

 

Novamente, basta colar a mutation abaixo no lado esquerdo da página:

mutation {

a1 :updateCard(input: {id: aqui você coloca o ID do card , assignee_ids: aqui coloca o id do usuário que será o novo responsável  }){card{id}}

}

 

Exemplo:

XdSOhHI_DglEr4YzGJZ5DjZUrgXG4Ld_LT32-51Vpd4PvsbJRs7c6ecAZmOmqMa48oRIliv2z2V4eQdnXDn3O4bqCmzkPAq4C-F3-jUGh6XVxUpjzY1si8Yi0yRobGrom7HzByNX
 

E agora pronto, só apertar o play! P7NDGacRybe9cXuV_dtwDhRGWRp7sqYgIt5vbIFkKygckEskH_VK_b1uwSFtYnHFM2U7DMeYB246wi3itPiohkUw8BppBLBf9VyWoVuiR0n7Mi1W5zCKbtbBU6lcBBC1Szy7BsIi


Voilà! Viu? É fácil do que parece. 

 

Obs.:Você apenas pode alterar 30 campos por vez, não mais do que isso, okay? Mas você atribuir esses cards a mais de um responsável, se desejar. 

 

Então, o que achou?  Existem outras dicas que gostaria de aprender utilizando a nossa API? Conta pra gente ;)


18 replies

Userlevel 7
Badge +10

@Janaina_Barreto

Olha que legal!

Apesar da necessidade de “escrever” a alteração para cada card, dá pra pra preparar esses dados em uma planilha Excel com todos os IDs e alterações e depois concatenar as linhas pra colar no GraphQL.

A função updateCard pra alterações com um volume maior vale a pena.

Userlevel 7
Badge +10

Perfeito! Eu sempre faço assim também, @ivan.novofoco. Aí é só copiar e colar no GraphQL e vai rapidinho e bem fácil :) 

Userlevel 7
Badge +8

ótima dica, @Nicole Chiroli 
Obrigada pelo artigo! 

Bom dia! Obrigada pela dica. Estou explorando esta dica, e queria usar para outros tipos de campos. Tentei para o tipo Label mas não consegui. Quais os tipos de campos são possíveis? Obrigada

Userlevel 7
Badge +10

Olá @angela-miya, tudo bem?

Com o “updateCard” não é possível. Mas você pode utilizar o “UpdateCardField” e colocar o valor do campo que deseja com o “new_value”:
 

No caso da label você precisa achar quais são os labels:
query{
  pipe(id:xxx){
    labels {
      id
      color
      name
    }
    name
    }
}

E aí depois você atualiza, por exemplo, assim:
mutation{
a1: updateCardField(input:{ card_id: xxx field_id: "label" new_value: [id do label]})
a2: updateCardField(input:{ card_id:  xxxx field_id: "label" new_value: [id do label]})   
 }

Qualquer dúvida, estou à disposição! :) 

Userlevel 4

@Nicole Chiroli  eu tenho um campo e-mail2, e gostaria de gravar nele o e-mail do card quando o card for criado.

 

Consigo fazer isso na api com uma linha de comando apenas?

Oi, gente! Tudo bem?

 

Preciso fazer a alteração de algumas propriedades em massa, mas estão vinculadas as questões que respondem para fazer a solicitação. É possível fazer isso utilizando esse código?

 

Por exemplo, que atribuir alguns cards a um novo “tipo de necessidade” pois está em branco atualmente. Será que consigo dessa forma? 

 

Agradeço imensamente o conteúdo.

Userlevel 4

Olá @Moacir Souza 

Você precisaria de dois comando, um de leitura do card que foi criado para saber o endereço de email dele 

Ex:

{
    card(id:123){
    emailMessagingAddress
  }
}

E outro para fazer um update no card onde você gostaria de gravar esse email

Um campo de email por exemplo:

mutation {
updateCardField(input: {card_id: 123, field_id: "campo_email", new_value: "email_card@mail.pipefy.com"}) {
success
}
}

PS: se o card for criado via API, você pode pedir no retorno da criação o email

Ex:

mutation {
createCard(input: {pipe_id: 456, fields_attributes: [{field_id: "t_tulo_card", field_value: "Card 1"}]}) {
card {
id
emailMessagingAddress
}
}
}

 

Userlevel 4

Oi @Larissa Cruz ,

Sim, é possível fazer alteração em massa, você precisará do ID do campo e dos IDs dos cards

A query é de mutation updateCardField

Ex:

mutation {
n1: updateCardField(input: {card_id: 123, field_id: "tipo_de_necessidade", new_value: "Novo tipo de necessidade"}) {
success
}
n2: updateCardField(input: {card_id: 123, field_id: "tipo_de_necessidade", new_value: "Novo tipo de necessidade"}) {
success
}
n3: updateCardField(input: {card_id: 123, field_id: "tipo_de_necessidade", new_value: "Novo tipo de necessidade"}) {
success
}
n4: updateCardField(input: {card_id: 123, field_id: "tipo_de_necessidade", new_value: "Novo tipo de necessidade"}) {
success
}
n5: updateCardField(input: {card_id: 123, field_id: "tipo_de_necessidade", new_value: "Novo tipo de necessidade"}) {
success
}
}

 

Userlevel 2

Nossa muito bom mesmo esse recurso! 

Userlevel 5
Badge

Nossa! Muito bom mesmo esse recurso!

oie gente, tudo bem? 

 

fiz a inclusão de alguns negocios, porém ficou faltando o campo (data) e eu gostaria de atualizar via ids. 

 

é possivél? 

Userlevel 4

Prezados,

 

Como faço a alteração de responsáveis para mais de uma pessoa?

 

Gostaria de adicionar mais de um responsável em vários cards seguindo o exemplo acima.

Userlevel 7
Badge +6

Muito massa esse recurso! 

Userlevel 4

Prezados,

 

Como faço a alteração de responsáveis para mais de uma pessoa?

 

Gostaria de adicionar mais de um responsável em vários cards seguindo o exemplo acima.

Para alterar em massa, nomeando mais de uma pessoa como responsável, faço dessa maneira:

mutation{
  a1 :updateCard(input: {id: ID DO CARD, assignee_ids: [ID DO RESPONSÁVEL 1, ID DO RESPONSÁVEL 2]}) {card{id}}
}

 

Ola Pessoal, tudo bem? :)

 

Temos um database com 1900 registros/cards e precisamos alterar 6 campos em cada card. Pelos exemplos acima teria que criar um script com 11.400 linhas, uma para cada ID x 6 campos e executar de 30 em 30 😩

Tentei “adaptar” o script colocando todos os campos de um ID. mas quando executa só atualiza a ultima Label 

 

mutation
{
n1 :setTableRecordFieldValue(input:{
table_record_id: 519092347


field_id: "nome_completo_do_paciente"
value: "NOME COMPLETO TESTE API"


field_id: "primeiro_nome_do_paciente"
value: "PRMEIRO 1"


field_id: "sobrenome_do_paciente"
value: "SOBRENOME 1"


field_id: "email"
value: "email@testes.com.br"

}) {
clientMutationId
}
}

 

Please.. digam que existe uma alternativa! 

Userlevel 4

Ola Pessoal, tudo bem? :)

 

Temos um database com 1900 registros/cards e precisamos alterar 6 campos em cada card. Pelos exemplos acima teria que criar um script com 11.400 linhas, uma para cada ID x 6 campos e executar de 30 em 30 😩

Tentei “adaptar” o script colocando todos os campos de um ID. mas quando executa só atualiza a ultima Label 

 

mutation
{
n1 :setTableRecordFieldValue(input:{
table_record_id: 519092347


field_id: "nome_completo_do_paciente"
value: "NOME COMPLETO TESTE API"


field_id: "primeiro_nome_do_paciente"
value: "PRMEIRO 1"


field_id: "sobrenome_do_paciente"
value: "SOBRENOME 1"


field_id: "email"
value: "email@testes.com.br"

}) {
clientMutationId
}
}

 

Please.. digam que existe uma alternativa! 

Boa tarde, Bruno.

Eu tentaria gerar um relatório no pipe, com as informações de todos os ids dos cards a serem modificados. Também incluiria nesse relatório os dados atuais que você quer alterar.

 

Depois pegaria esse script base que você comentou acima e colocaria no excel. Então usaria a função concatenar no excel para fazer o preenchimento do script:

Depois é só copiar para as outras linhas que ele já aplica a função nas linhas abaixo.

 

Então eu copiaria tudo, colaria num bloco de notas e colaria de 30 em 30 no GraphiQL.

 

Espero ter ajudado.

Grande Pedro. muito obrigado pelo retorno. 

Não consegui captar como ficaria a sintase do script apos concatenar os campos! Poderia me enviar uma linha de exemplo/modelo de como ficaria com todos os campos? (podem ser fictícios mesmo )

As tentativas que fiz usando mais de um campo por id a execução só alterou o ultimo campo no script. 

(no modelo que passei no post acima so alterou o campo EMAIL, que era o ultimo campo da sintase) 

Reply