Talon.One Segment API

[Segment](https://segment.com/) is a customer data platform that collects events from your web & mobile apps. Use these endpoints to integrate with Talon.One.

Operations 13

PUT /segment/customer_profile/{customerProfileId} Upsert customer profile v1 (Segment) #
PUT /segment/customer_profile_v2/{customerProfileId} Upsert customer profile v2 (Segment) #
PUT /segment/v2/customer_profiles/{customerProfileId} Update customer profile (Segment) #
PUT /segment/customer_profiles/{customerProfileId}/audiences Update customer profile audiences using external ID (Segment) #
PUT /segment/customer_profiles/audiences Update audiences in multiple customer profiles (Segment) #
PUT /segment/v2/customer_profiles/audiences Update audiences in multiple customer profiles using external ID (Segment) #
PUT /segment/event Track event v1 (Segment) #
PUT /segment/v2/events Track event v2 (Segment) #
POST /segment/audiences Create audience (Segment) #
PUT /segment/audiences/{audienceId} Update audience (Segment) #
DELETE /segment/audiences/{audienceId} Delete audience (Segment) #
PUT /segment/customer_sessions/{customerSessionId} Update customer session v1 (Segment) #
PUT /segment/v2/customer_sessions/{customerSessionId} Update customer session v2 (Segment) #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/talon-one-segment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

talon-one-segment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: ''
  title: Third-party Segment API
  description: "Use the Third-party API to exchange data between Talon.One and one of the supported [technology partners](https://docs.talon.one/docs/dev/technology-partners/overview).\n\nFor example, use the Braze-specific endpoints from your Braze campaigns to interact with Talon.One.\n\nIf the CDP or CEP you are using isn't listed here, use the generic\n[Customer Data Platforms](#tag/Customer-data-platforms) and [Customer Engagement Platform](#tag/Customer-engagement-platforms) endpoints.\n\n> [!note] \n> All endpoints of this API start with `https://integration.talon.one`.\n> You must specify the base URL of your deployment in the headers or parameters.\n\n> [!note] **Are you looking for a different API?**\n> - To implement use cases that aren't covered by the Third-party API, see the [Integration API](https://docs.talon.one/management-api).\n> - To interact with the Campaign Manager for back-office operations, see the [Management API](https://docs.talon.one/management-api).\n"
servers:
- url: https://integration.talon.one
security:
- ApiKeyAuth: []
tags:
- name: Segment
  description: '[Segment](https://segment.com/) is a customer data platform that collects events from your web & mobile apps.


    Use these endpoints to integrate with Talon.One.

    '
paths:
  /segment/customer_profile/{customerProfileId}:
    put:
      tags:
      - Segment
      parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - name: customerProfileId
        in: path
        description: The integration ID of the customer profile. If the customer profile does not exist, it will be created.
        example: customer1
        required: true
        schema:
          type: string
      summary: Upsert customer profile v1 (Segment)
      operationId: segment/updateCustomerProfile
      deprecated: true
      description: '> [!warning] **This endpoint is deprecated.**

        > We recommend you use the current [Update customer profile](#tag/Segment/operation/segment/v2/updateCustomerProfile) endpoint.


        Create or update the given customer profile, and creates or set the specified attributes. You can also

        use this endpoint to specify which audiences this customer has joined or left.


        > [!note] **Note**

        > The audiences must be created first using [Create audience](#tag/Segment/operation/segment/createAudience).

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentCustomerProfileRequest'
            examples:
              default:
                $ref: '#/components/examples/SegmentCustomerProfileRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProfileResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/customer_profile_v2/{customerProfileId}:
    put:
      tags:
      - Segment
      parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - name: customerProfileId
        in: path
        description: The integration ID of the customer profile.
        example: customer1
        required: true
        schema:
          type: string
      summary: Upsert customer profile v2 (Segment)
      operationId: segment/updateCustomerProfileV2
      deprecated: true
      description: '> [!warning] **This endpoint is deprecated.**

        > We recommend you use the current [Update customer profile](#tag/Segment/operation/segment/v2/updateCustomerProfile) endpoint.


        Create or update the given customer profile, and also creates or set the specified attributes and audiences.


        You **do not** have to create attributes or audiences before using this endpoint.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentCustomerProfileRequestV2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProfileResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/v2/customer_profiles/{customerProfileId}:
    put:
      tags:
      - Segment
      parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - $ref: '#/components/parameters/skipNonExistingAttributes'
      - name: customerProfileId
        in: path
        description: The integration ID of the customer profile. If the customer profile does not exist, it will be created.
        example: customer1
        required: true
        schema:
          type: string
      summary: Update customer profile (Segment)
      operationId: segment/v2/updateCustomerProfile
      description: 'Update or create a [customer profile](https://docs.talon.one/docs/dev/concepts/entities/customer-profiles). This endpoint triggers the Rule Builder.


        You can use this endpoint for the following tasks:

        - Set attributes for the given customer profile. Ensure you create the attributes in the Campaign Manager first.

        - Add the customer profile to audiences or remove it from audiences.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentCustomerProfileV2Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProfileIntegrationResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/customer_profiles/{customerProfileId}/audiences:
    put:
      tags:
      - Segment
      parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - name: customerProfileId
        in: path
        description: The integration ID of the customer profile. If the customer profile does not exist, it will be created.
        required: true
        example: customer1
        schema:
          type: string
      summary: Update customer profile audiences using external ID (Segment)
      operationId: segment/updateCustomerProfileAudiences
      description: 'Add a [customer profile](https://docs.talon.one/docs/dev/concepts/entities/customer-profiles) to or remove it from a list of audiences. This endpoint triggers the Rule Builder.


        To identify the audience, you can use its ID in Segment.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleCustomerProfileIntegrationAudiencesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /segment/customer_profiles/audiences:
    parameters:
    - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
      - Segment
      summary: Update audiences in multiple customer profiles (Segment)
      operationId: segment/updateCustomerProfilesAudiences
      description: 'Update the specified audiences for the specified profiles.


        If a provided customer profile doesn''t exist, it will be created.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerProfilesAudiencesRequest'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
  /segment/v2/customer_profiles/audiences:
    parameters:
    - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
      - Segment
      summary: Update audiences in multiple customer profiles using external ID (Segment)
      operationId: segment/v2/updateCustomerProfilesAudiences
      description: 'Update the specified audiences for the specified profiles. To identify the audience, you can use its ID in the third-party integration.


        If a provided customer profile doesn''t exist, it will be created.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerProfilesIntegrationAudiencesRequest'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /segment/event:
    parameters:
    - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
      - Segment
      summary: Track event v1 (Segment)
      operationId: segment/trackEvent
      deprecated: true
      description: '**Important:** This endpoint is deprecated. We recommend you use the current [Track Event](#tag/Segment/operation/segment/trackEventV2) endpoint.


        <blockquote>Triggers a custom event inside Talon.One. You can then trigger rules when this event is received.


        An event is a type of custom attribute, you must create it first in the Campaign Manager. See [creating custom events](https://docs.talon.one/docs/dev/concepts/entities/events#custom-events).

        To see the events received by your Application in Talon.One, open the Application and click **Events**.


        If the specified session already exists, it must belong to the same `profileId` or an error will be returned.</blockquote>

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentTrackEventRequest'
            examples:
              default:
                $ref: '#/components/examples/SegmentTrackEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/v2/events:
    parameters:
    - $ref: '#/components/parameters/destinationHostname'
    - $ref: '#/components/parameters/skipNonExistingAttributes'
    put:
      tags:
      - Segment
      summary: Track event v2 (Segment)
      operationId: segment/trackEventV2
      description: 'Trigger a custom event inside Talon.One. You can then trigger rules when this event is received.


        An event is a type of custom attribute, you must create it first in the Campaign Manager. See [creating custom events](https://docs.talon.one/docs/dev/concepts/entities/events#custom-events).

        To see the events received by your Application in Talon.One, open the Application and click **Events**.


        If the specified session already exists, it must belong to the same `profileId`, or else an error is returned.


        > [!note] **Note**

        > - Create the event and all the required attributes before using this endpoint.

        > - This `v2` version replaces the previous `v1` version of this endpoint.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentTrackEventV2Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/audiences:
    parameters:
    - $ref: '#/components/parameters/destinationHostname'
    post:
      tags:
      - Segment
      summary: Create audience (Segment)
      operationId: segment/createAudience
      description: 'Create an audience. The audience can be created directly from scratch or can come from Segment.


        Once you create your first audience, audience-specific rule conditions are enabled in the Rule Builder

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAndUpdateAudienceRequest'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAndUpdateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/AudienceAlreadyExist'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
  /segment/audiences/{audienceId}:
    parameters:
    - $ref: '#/components/parameters/audienceId'
    - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
      - Segment
      summary: Update audience (Segment)
      operationId: segment/updateAudience
      description: 'Update an audience.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAndUpdateAudienceRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAndUpdateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
    delete:
      tags:
      - Segment
      summary: Delete audience (Segment)
      operationId: segment/deleteAudience
      description: 'Delete the audience.


        **Warning:** This endpoint also removes any associations recorded between a customer profile and this audience.

        '
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
  /segment/customer_sessions/{customerSessionId}:
    put:
      tags:
      - Segment
      summary: Update customer session v1 (Segment)
      operationId: segment/updateCustomerSession
      deprecated: true
      description: '**Important:** This endpoint is deprecated. We recommend you use the current [Update customer session](#tag/Segment/operation/segment/v2/updateCustomerSession) endpoint.


        <blockquote>Update the given customer session, or creates it if it doesn''t exist.


        Customer sessions are a key concept in Talon.One, see the [documentation](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions).


        This endpoint also allows you to define a callback where the response will be sent. See the **Header parameters** section below.</blockquote>

        '
      parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - $ref: '#/components/parameters/callbackDestinationURI'
      - $ref: '#/components/parameters/callbackAPIKey'
      - $ref: '#/components/parameters/contentFields'
      - $ref: '#/components/parameters/correlationID'
      - name: customerSessionId
        in: path
        description: 'The `integration ID` of the customer session. You set this ID when you create a customer session.


          You can see existing customer session integration IDs in the Campaign Manager''s **Sessions** menu, or via the

          [List Application session endpoint](https://docs.talon.one/management-api#operation/getApplicationSessions).

          '
        example: session1
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerSessionRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/v2/customer_sessions/{customerSessionId}:
    put:
      tags:
      - Segment
      summary: Update customer session v2 (Segment)
      operationId: segment/v2/updateCustomerSession
      description: 'Update the given customer session, or create a customer session if it doesn''t exist.


        Customer sessions are a key concept in Talon.One, see the [documentation](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions).


        This endpoint also allows you to define a callback where the response will be sent. See the **Header parameters** section below.


        > [!note] **Note**

        > - Create the all the required attributes before using this endpoint.

        > - This `v2` version replaces the previous `v1` version of this endpoint.

        '
      parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - $ref: '#/components/parameters/callbackDestinationURI'
      - $ref: '#/components/parameters/callbackAPIKey'
      - $ref: '#/components/parameters/contentFields'
      - $ref: '#/components/parameters/correlationID'
      - $ref: '#/components/parameters/skipNonExistingAttributes'
      - name: customerSessionId
        in: path
        description: 'The `integration ID` of the customer session. You set this ID when you create a customer session.


          You can see the existing customer session integration IDs in the Campaign Manager''s **Sessions** menu, or via the

          [List Application session](https://docs.talon.one/management-api#operation/getApplicationSessions) endpoint.

          '
        example: session1
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newCustomerSessionV2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
components:
  parameters:
    correlationID:
      name: X-Correlation-ID
      in: header
      description: 'An arbitrary ID assigned to the callback request. You can use it to track the callbacks you receive from Talon.One.

        If omitted, the callback request does not include `X-Correlation-ID`.

        '
      schema:
        type: string
      example: abc123
    audienceId:
      name: audienceId
      in: path
      description: The integration ID of the audience.
      required: true
      schema:
        type: string
      example: audience1
    contentFields:
      name: X-Content-Fields
      in: header
      description: 'A comma-separated list of field names from the Update customer endpoint''s response that you want to receive.


        If omitted, all the fields will be sent to the callback destination URI.

        '
      example: customerProfile
      schema:
        type: string
        enum:
        - customerSession
        - customerProfile
        - coupons
        - triggeredCampaigns
        - referral
        - loyalty
        - event
        - awardedGiveaways
        - ruleFailureReasons
        - previousReturns
        - createdAttributes
        - createdCoupons
        - createdReferrals
        - effects
    skipNonExistingAttributes:
      name: skipNonExistingAttributes
      in: query
      schema:
        type: boolean
        default: false
      example: true
      description: 'Indicates whether to skip non-existing attributes.


        If `true`, the non-existing attributes are skipped and a 400 error is not returned.


        If `false`, a 400 error is returned in case of non-existing attributes.

        '
    destinationHostname:
      name: destination-hostname
      in: header
      description: The base URL of your Talon.One deployment.
      required: true
      schema:
        type: string
        format: hostname
      example: mycompany.europe-west1.talon.one
    callbackAPIKey:
      name: X-Callback-API-Key
      in: header
      description: 'The header and the API key, separated by a space. The first space marks the header.


        For example:

        - To set `Authorization: 3aa74d582bd94`, use `Authorization 3aa74d582bd94`.

        - To set `Authorization: ApiKey-v1 3aa74d582bd94`, use `Authorization ApiKey-v1 3aa74d582bd94`.


        The minimal length of the API key is 32 characters.

        '
      example: Authorization 3aa74d582bd9479c59e16f970fe13bf3
      schema:
        type: string
    callbackDestinationURI:
      name: X-Callback-Destination-URI
      in: header
      description: 'The **full** URI where Talon.One sends the response content. The callback is a `POST` request.

        '
      schema:
        type: string
        format: hostname
      example: http://mydomain.com/api/callbacks
  schemas:
    limitConfig:
      type: object
      required:
      - action
      - limit
      - entities
      properties:
        action:
          type: string
          description: "The limitable action to which this limit applies. For example:\n - `setDiscount`\n - `setDiscountEffect`\n - `redeemCoupon`\n - `createCoupon`\n"
          example: createCoupon
        limit:
          type: number
          minimum: 0
          example: 1000
          description: The value to set for the limit.
        period:
          description: The period on which the budget limit recurs.
          type: string
          enum:
          - daily
          - weekly
          - monthly
          - yearly
          example: yearly
        entities:
          type: array
          description: The entity that this limit applies to.
          example:
          - Coupon
          items:
            type: string
            enum:
            - Coupon
            - Referral
            - Profile
            - Identifier
    SegmentCustomerProfileV2Request:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/attributeValuePairs'
        runRuleEngine:
          type: boolean
          default: false
          description: 'Indicates whether to run the Rule Engine.


            If `true`, the rules are run and their effects are applied, and audience changes are applied.


            If `false`:

            - The rules are not executed.

            - The response time improves.

            - Audience changes are not applied.

            '
          example: false
        audiencesChanges:
          $ref: '#/components/schemas/audienceChange'
    newCampaign:
      type: object
      properties:
        name:
          type: string
          title: Campaign Name
          description: A user-facing name for this campaign.
          minLength: 1
          example: Summer promotions
        description:
          type: string
          title: Campaign Description
          description: A detailed description of the campaign.
          example: Campaign for all summer 2021 promotions
        startTime:
          type: string
          format: date-time
          description: Timestamp when the campaign will become active.
          example: '2021-07-20T22:00:00Z'
        endTime:
          type: string
          format: date-time
          description: Timestamp the campaign will become inactive.
          example: '2021-09-22T22:00:00Z'
        attributes:
          type: object
          description: Arbitrary properties associated with this campaign.
          additionalProperties: true
        state:
          type: string
          enum:
          - enabled
          - disabled
          - archived
          default: enabled
          description: 'A disabled or archived campaign is not evaluated for rules or coupons.

            '
        activeRulesetId:
          type: integer
          description: '[ID of Ruleset](https://docs.talon.one/management-api#operation/getRulesets) this

            campaign applies on customer session evaluation.

            '
        tags:
          type: array
          description: A list of tags for the campaign.
          example:
          - summer
          maxItems: 50
          items:
            type: string
            minLength: 1
            maxLength: 50
        features:
          type: array
          description: The features enabled in this campaign.
          example:
          - coupons
          - referrals
          items:
            type: string
            enum:
            - coupons
            - referrals
            - loyalty
            - giveaways
        couponSettings:
          $ref: '#/components/schemas/codeGeneratorSettings'
        referralSettings:
          $ref: '#/components/schemas/codeGeneratorSettings'
        limits:
          type: array
          description: 'The set of [budget limits](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets) for this campaign.

            '
          items:
            $ref: '#/components/schemas/limitConfig'
        campaignGroups:
          type: array
          description: 'The IDs of the [campaign groups](https://docs.talon.one/docs/product/account/managing-campaign-groups) this campaign belongs to.

            '
          example:
          - 1
          - 3
          items:
            type: integer
      required:
      - name
      - state
      - tags
      - limits
      - features
    effectProps:
      type: object
      oneOf:
      - $ref: '#/components/schemas/acceptCouponEffectProps'
      - $ref: '#/components/schemas/acceptReferralEffectProps'
      - $ref: '#/components/schemas/redeemReferralEffectProps'
      - $ref: '#/components/schemas/rejectCouponEffectProps'
      - $ref: '#/components/schemas/rejectReferralEffectProps'
      - $ref: '#/components/schemas/couponCreatedEffectProps'
      - $ref: '#/components/schemas/referralCreatedEffectProps'
      - $ref: '#/components/schemas/setDiscountEffectProps'
      - $ref: '#/components/schemas/setDiscountPerItemEffectProps'
      - $ref: '#/components/schemas/setDiscountPerAdditionalCostEffectProps'
      - $ref: '#/components/schemas/triggerWebhookEffectProps'
      - $ref: '#/components/schemas/addLoyaltyPointsEffectProps'
      - $ref: '#/components/schemas/deductLoyaltyPointsEffectProps'
      - $ref: '#/components/schemas/addFreeItemEffectProps'
      - $ref: '#/components/schemas/showNotificationEffectProps'
      - $ref: '#/components/schemas/updateAttributeEffectProps'
      - $ref: '#/components/schemas/rollbackCouponEffectProps'
      - $ref: '#/components/schemas/rollbackReferralEffectProps'
      - $ref: '#/components/schemas/rollbackDiscountEffectProps'
      - $ref: '#/components/schemas/rollbackAddedLoyaltyPointsEffectProps'
      - $ref: '#/components/schemas/rollbackDeductedLoyaltyPointsEffectProps'
      - $ref: '#/components/schemas/showBundleMetadataEffectProps'
      - $ref: '#/components/schemas/awardGiveawayEffectProps'
      - $ref: '#/components/schemas/willAwardGiveawayEffectProps'
      - $ref: '#/components/schemas/errorEffectProps'
      - $ref: '#/components/schemas/customEffectProps'
      - $ref: '#/components/schemas/setDiscountPerAdditionalCostPerItemEffectProps'
    referral:
      allOf:
      - $ref: '#/components/schemas/entity'
      - $ref: '#/components/schemas/newReferral'
      - $ref: '#/components/schemas/importEntity'
      - type: object
        x-attributable: true
        required:
        - code
        - usageCounter
        - usageLimit
        properties:
          code:
            type: string
            title: Referral code
            description: The referral code.
            minLength: 4
            example: 27G47Y54VH9L
          usageCounter:
            type: integer
            title: Referral code Usages
            description: The number of times this referral code has been successfully used.
            example: 1
          batchId:
            type: string
            title: Batch ID
            description: The ID of the batch the referrals belong to.
            example: tqyrgahe
    customerProfile:
      allOf:
      - $ref: '#/components/schemas/entity'
      - $ref: '#/components/schemas/accountEntity'
      - properties:
          attributes:
            $ref: '#/components/schemas/attributeValuePairs'
          integrationId:
            type: string
            format: string
            example: URNGV8294NV
            maxLength: 1000
            description: The integration ID for this entity sent to and used in the Talon.One system.
          closedSessions:
            type: integer
            title: Closed sessions
            description: The total amount of closed sessions by a customer. A closed session is a successful purchase.
            example: 3
          totalSales:
            type: number
            description: Sum of all purchases made by this customer
            example: 299.99
            title: Total Sales
          audienceMemberships:
            type: array
            description: A list of audiences the customer belongs to
            items:
              type: object
              required:
              - id
              - name
              properties:
                id:
                  $ref: '#/components/schemas/id'
                name:
                  type: string
                  title: Audience Name
                  description: The Name of the audience belonging to this entity.
                  example: audience1
            title: Audience memberships
          lastActivity:
            type: string
            format: date-time
            description: 'Timestamp of the most recent event received from this customer.

              This field is updated on calls that trigger the rule-engine and that are

              not [dry requests](https://docs.talon.one/docs/dev/integration-api/dry-requests#overlay).


              For example, [reserving a coupon](https://docs.talon.one/integration-api#operation/createCouponReservation)

              for a customer doesn''t impact this field.

              '
            example: '2020-02-08T14:15:20Z'
    

# --- truncated at 32 KB (123 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/talon-one/refs/heads/main/openapi/talon-one-segment-api-openapi.yml