---
title: "Salvar em massa"
method: POST
path: "/v2/contact/batch"
tags: ["Contatos"]
---

# Salvar em massa

`POST /v2/contact/batch`

Permite salvar até 100 contatos em uma única requisição.<br />Se um contato com o mesmo número de telefone, Instagram ou endereço de email já existir, este apenas será atualizado.

## Request body

- PublicReqBatchCreateContactV2DTO
  - `items` PublicReqCreateContactDTO[], required — Dados para criação dos contatos.
    - `name` string, nullable — Nome do contato.
    - `phoneNumber` string, nullable — Número no WhatsApp.
    - `email` string, nullable — Endereço de email.
    - `instagram` string, nullable — Nome de usuário no Instagram.
    - `annotation` string, nullable — Notas internas da equipe.
    - `tagIds` string[], nullable — IDs das etiquetas atribuídas.
    - `tagNames` string[], nullable — Nomes das etiquetas atribuídas. Este campo será ignorado caso `TagIds` seja definido.
    - `portfolioIds` string[], nullable — IDs das carteiras atribuídas.
    - `portfolioNames` string[], nullable — Nomes das carteiras atribuídas. Este campo será ignorado caso `PortfolioIds` seja definido.
    - `sequenceIds` string[], nullable — IDs das sequências atribuídas.
    - `customFields` object, nullable — Objeto chave-valor para definir valores de campos personalizados no contato. Cada item do objeto deverá ter como nome a chave do campo personalizado. Caso a chave não corresponda a algum campo personalizado ou o tipo de dados do valor seja incompatível, o item será ignorado.
    - `metadata` object, nullable — Metadados relevantes para o contato. Neste campo, pode ser salvo qualquer propriedade adicional para o contato, na estrutura chave-valor. - Para adicionar um metadado: utilize uma chave não utilizada anteriormente neste contato, atribuindo o novo valor; - Para atualizar um metadado: utilize a chave salva anteriormente neste contato, atribuindo o novo valor; - Para remover um metadado: utilize a chave salva anteriormente, atribuindo valor nulo.
  - `options` PublicReqCreateContactOptionsDTO
    - `upsert` boolean — Com esta opção habilitada, se o contato já existir na base de dados, ele será atualizado com os novos dados e retornado.
    - `upsertFields` string[], nullable — Defina quais campos deverão ser motificados em caso de upsert (quando o contato já existe), se não for informado todos os campos serão afetados
    - `upsertTagOperation` 'INSERTIFNOTEXISTS' | 'DELETEIFEXISTS' | 'REPLACEALL', nullable — Defina como deve ser a alteração no campo Etiquetas em caso de upsert(quando o contato já existe) InsertIfNotExists - Insere as etiquetas que já não estiverem relacionadas ao contato; DeleteIfExists - Remove as etiquetas que já estiverem relacionadas no contato; ReplaceAll - Remove todas as etiquetas do contato e inclui as que estão sendo informadas. (Opção padrão)
    - `getIfExists` boolean — Com esta opção habilitada, se o contato já existir na base de dados, ele será retornado e nenhum dado será atualizado;

## Response `200`

Success

- PublicContactDTO[]
  - `id` string, uuid
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `companyId` string, uuid
  - `name` string, nullable
  - `nameWhatsapp` string, nullable
  - `nameInstagram` string, nullable
  - `nameMessenger` string, nullable
  - `phoneNumber` string, nullable
  - `phoneNumberFormatted` string, nullable
  - `email` string, nullable
  - `instagram` string, nullable
  - `messengerId` string, nullable
  - `annotation` string, nullable
  - `tagIds` string[], nullable
  - `tagNames` string[], nullable
  - `status` 'ACTIVE' | 'ARCHIVED' | 'BLOCKED'
  - `origin` 'CREATED_BY_USER' | 'CREATED_FROM_HUB' | 'IMPORTED'
  - `importedAt` string, date-time, nullable
  - `utm` PublicUtmDTO
    - `sourceId` string, nullable
    - `source` string, nullable
    - `clid` string, nullable
    - `medium` string, nullable
    - `campaign` string, nullable
    - `content` string, nullable
    - `headline` string, nullable
    - `term` string, nullable
    - `referralUrl` string, nullable
  - `customFields` object, nullable
  - `portfolioIds` string[], nullable
  - `portfolioNames` string[], nullable
  - `metadata` object, nullable

## Other responses

- `500` — Server Error

---

[API](https://skmtc.net/helena/apis/core.md) · [All operations](https://skmtc.net/helena/apis/core/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/helena/core/versions/811b2cdd2ec2/schema)
