POST/crm/card/bulk/move

Mover em massa

Veja como mover em massa, com parâmetros e exemplos de requisição e resposta na API do iHelp.

POSThttps://apiv3.ihelpchat.com/api/v2/crm/card/bulk/move

Move vários cards de uma vez para a mesma etapa de destino.

POST

https://apiv3.ihelpchat.com/api/v2/crm/card/bulk/move

Body (JSON):

{
  "cardIds": [8821, 8822, 8823],
  "targetStageId": 102,
  "force": false
}
CampoTipoObrigatórioDescrição
cardIdsint[]simDe 1 a 2000 IDs. Duplicados são ignorados.
targetStageIdintsimEtapa de destino.
forceboolnãotrue confirma mesmo com pendências obrigatórias. Padrão false.

Resposta 200 OK:

{
  "movedCards": [ { "id": 8821, "title": "Proposta ACME", "stageId": 102 } ],
  "skippedCardIds": [8822],
  "failedCardIds": [],
  "stages": [
    { "id": 101, "totalItems": 9,  "totalCardValue": 21000.00 },
    { "id": 102, "totalItems": 10, "totalCardValue": 46500.00 }
  ]
}
CampoSignificado
movedCardsCards efetivamente movidos, já atualizados
skippedCardIdsIgnorados de propósito: card fechado, já no destino, de outro funil, ou fora da sua empresa. Não vale repetir.
failedCardIdsFalharam na gravação: vale repetir a chamada apenas com estes IDs
stagesTotais atualizados de cada etapa de origem envolvida, mais a de destino

Skipped não é o mesmo que failed

skippedCardIds é decisão de negócio, failedCardIds é falha técnica e admite retry.

409 - pendências obrigatórias

Com force: false e ao menos um card com pendências, nada é movido:

{
  "blockedCards": [
    {
      "cardId": 8821,
      "title": "Proposta ACME",
      "missingFields": [ { "key": "email", "label": "E-mail" } ],
      "pendingTasks":  [ { "id": 55, "title": "Ligar para o cliente" } ]
    }
  ],
  "validCardIds": [8822, 8823]
}

Dois caminhos a partir daqui:

  1. Repetir com "force": true, que move todos, inclusive os pendentes.
  2. Repetir enviando apenas os validCardIds, que move só os completos.

Demais erros

HTTPerrorQuando
400-cardIds vazio ou acima de 2000 itens; targetStageId ausente ou menor/igual a zero
401-Token ausente, inválido ou expirado
403-Permissão apenas de visualização no funil de destino
409stage_inactiveEtapa de destino excluída, bloqueia o lote inteiro

Obter os IDs de uma etapa inteira

Para o equivalente a "selecionar tudo" em uma coluna, sem paginar o board:

POST

https://apiv3.ihelpchat.com/api/v2/crm/card/stage/{stageId}/ids

Aceita no corpo o mesmo filtro usado na listagem do funil e retorna até 2000 IDs de cards abertos daquela etapa. Alimente o resultado direto em cardIds.

Boas práticas

  • Cards que estejam em um funil diferente do da etapa de destino saem como skipped. Para mudar de funil, use Trocar de funil, um card por vez.
  • Para volumes grandes, prefira blocos de algumas centenas de IDs em vez de usar o limite máximo de uma só vez.