---
title: "Add participants to flow"
method: POST
path: "/moments/1/flows/{campaignId}/participants"
tags: ["customer-engagement", "moments", "flow"]
---

# Add participants to flow

`POST /moments/1/flows/{campaignId}/participants`

## Request

- Base URL: `https://api.infobip.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.infobip.com/moments/1/flows/{campaignId}/participants`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.infobip.com/auth/1/oauth2/token`
  - API key in header `Authorization`
  - API key in header `Authorization`
  - HTTP basic

Use this endpoint to add participants to a flow, accommodating anywhere from 1 to 1000 persons.
                When participants are added, their profiles in People are automatically created, updated or merged based on the identifiers provided.<br>
                If identifiers are unique, a new profile is created.<br>
                If identifiers match an existing profile, then that profile is updated.<br>
                If identifiers refer to multiple existing profiles or are not unique within the request, profiles are merged.<br>
                To prevent unwanted merges, ensure each participant's identifiers
                (<code>identifyBy</code>, <code>externalId</code> and <code>contactInformation</code>) are unique.<br>
                Optional parameter <code>skipMergeDuplicates</code> might be used to prevent merging to single person. Participant won't be added to campaign in this case.

## Path parameters

- `campaignId` integer, required

## Request body

- 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0AddFlowParticipantsRequest: Request to add given participants to the Flow campaign.
  - `participants` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0FlowParticipant[], required: Array of participants to add.
    - `identifyBy` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0WebhookPersonUniqueField, required: Unique identifier of the participant.
      - `identifier` string, required: Unique ID for a person
      - `type` 'EMAIL' | 'PHONE' | 'FACEBOOK' | 'LINE' | 'APPLE_BUSINESS_CHAT' | 'EXTERNAL_ID' | 'WHATSAPP', required: Type of unique ID
      - `sender` string, nullable: Sender or application ID.`sender` is required for all identifier types except `PHONE`, `EMAIL`, `EXTERNAL_ID`
    - `variables` object, nullable: Flow variables to assign to the participant when it is added to the flow.
    - `person` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamPersonV2: Person attributes. In case a person with either the specified <code>externalId</code> or <code>contactInformation</code> already exists in the People, the persons will be automatically merged. See <a href="https://www.infobip.com/docs/api/customer-engagement/moments/add-flow-participants" target="_blank">endpoint description</a> for more info.
      - `createdAt` string: Date and time of creation. Has the following format: yyyy-MM-dd'T'HH:mm:ss.
      - `modifiedAt` string: Date and time of last modification. Has the following format: yyyy-MM-dd'T'HH:mm:ss.
      - `id` integer: Unique id of the entity.
      - `externalId` string: Unique ID for a person from your or another external system, 256 characters max.
      - `firstName` string: Person's first name, 255 characters max.
      - `lastName` string: Person's last name, 255 characters max.
      - `type` 'CUSTOMER' | 'LEAD': Person's type, default type is CUSTOMER.
      - `address` string: Person's title, 50 characters max.
      - `city` string: Person's city, 50 characters max.
      - `country` string: Person's country, 50 characters max.
      - `gender` 'MALE' | 'FEMALE': Person's gender.
      - `birthDate` string: Person's date of birth, format `YYYY-MM-DD`.
      - `middleName` string: Person's middle name, 50 characters max.
      - `preferredLanguage` string: Person's preferred language. Must be in two letter ISO (xx) or language-region BCP-47 (xx-YY) format.
      - `profilePicture` string: URL for the person's profile picture, 2083 characters max.
      - `origin` 'API' | 'PORTAL' | 'WEB_SDK' | 'INTEGRATION' | 'PUSH' | 'FACEBOOK' | 'LINE' | 'TELEGRAM' | 'SALESFORCE' | 'DYNAMICS' | 'ZAPIER' | 'FORMS' | 'COMPUTED' | 'ANSWERS' | 'CONVERSATIONS': The information which describes the source of the last modification of record.
      - `modifiedFrom` 'API' | 'PORTAL' | 'WEB_SDK' | 'INTEGRATION' | 'PUSH' | 'FACEBOOK' | 'LINE' | 'TELEGRAM' | 'SALESFORCE' | 'DYNAMICS' | 'ZAPIER' | 'FORMS' | 'COMPUTED' | 'ANSWERS' | 'CONVERSATIONS': The information which describes the source of the last modification of record.
      - `tags` string[]: List of tags that this person has.
      - `customAttributes` object: List of custom attributes for the person, 4096 characters max per value.
      - `contactInformation` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamPersonContactsV2: List of phones, emails and other information how a person can be contacted.
        - `phone` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamPhoneContactV2[]: A list of person's phone numbers. Max 100 numbers per person.
          - `number` string: Person's phone number. Must be in [international format](https://en.wikipedia.org/wiki/E.164) and cannot exceed 50 characters. One person can have up to 100 phone numbers.
        - `email` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamEmailContactV2[]: A list of person's email addresses. Max 100 emails per person.
          - `address` string: Person's email address. Must comply with the [email format](https://tools.ietf.org/html/rfc2822) and cannot exceed 255 characters. One person can have up to 100 email addresses.
        - `push` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamPushContactV2[]: List of person's push registrations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `registrationId` string: Push registration ID.
          - `additionalData` object: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
          - `isPrimary` boolean: Set to true if this device is a primary device of a user among other devices.
        - `facebook` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Messenger destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `line` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Line destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `viberBots` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Viber Bots destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `liveChat` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Live Chat destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `instagram` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Instagram destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `telegram` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Telegram destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `appleBusinessChat` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Apple Business Chat destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `webpush` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonPushContact[]: A list of person's web push destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `registrationId` string: Push registration ID.
          - `additionalData` object: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `instagramDm` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Instagram DM destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `kakaoSangdam` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Kakao Sangdam destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `openChannel` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Open Channel destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `zaloFollower` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's Zalo Follower destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `tiktokBm` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's TikTok Business Messaging destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `whatsapp` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's WhatsApp destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
        - `kakaoTalk` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0CommonOttContact[]: A list of person's KakaoTalk destinations.
          - `applicationId` string: Application Id on which the user is subscribed.
          - `userId` string: Unique user ID for a person.
          - `systemData` object: System data collected from the user's profile.
      - `integrations` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamIntegrationsV2: Integrations.
        - `salesforce` 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0IamSalesforceV2: Salesforce integration.
          - `leadId` string: Salesforce lead id.
          - `contactId` string: Salesforce contact id.
      - `computedAttributes` object: Person's computed attributes grouped by type.
  - `notifyUrl` string, nullable: The URL on your callback server on which a report of operation results will be sent.
  - `callbackData` string, nullable: Additional data will be passed in the request to your callback server along with the operation results report.
  - `skipMergeDuplicates` boolean, nullable: If identifier refer to multiple existing profiles - set to true to prevent merging to single person. Participant won't be added to campaign.

## Response `200`

OK

- 900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0AddFlowParticipantsResponse
  - `operationId` string, required: Unique identifier of the operation.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/infobip/apis/infobip-openapi-specification.md) - [All operations](https://skmtc.dev/infobip/apis/infobip-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/infobip/apis/infobip-openapi-specification/revisions/9dcbbaf902de?raw)
