---
title: "Create activation"
method: POST
path: "/api/cdp/settings/v1/app/{app_id}/activation"
tags: ["Data Activation"]
---

# Create activation

`POST /api/cdp/settings/v1/app/{app_id}/activation`

Create new activation. Requires edit permission.

## Path parameters

- `app_id` string, uuid, required — ID of the app.

## Request body

- union
  - object — Common parts of all type of activation update objects
    - `name` string, required — Activation name
    - `description` string, required — Activation description
    - `status` 'active' | 'inactive', required — Activation status. `active` enables profiles activation, `inactive` disables profile activation. If activation has no audience associated with it, Activation API will always return `inactive`.
    - `trigger` 'onjoin' | 'onleave', required — Signal that triggers an activation. `onjoin` makes joining an audience trigger activation. `onleave` makes leaving an audience trigger activation.
    - `audience_id` string, uuid, required — ID of an audience to be activated
    - `required_consents` string[], required — Consent types a profile must contain to be activated
    - `multiple` boolean, required — Whether one profile can be activated multiple times
    - `multiple_user_ids` boolean, required — Whether a profile containing more than one user ID can be activated
    - `type` 'webhook', required — Type of activation
    - `webhook_url` string, required — Webhook URL pointing at some external system
    - `webhook_body_attributes` object[] — Profile's attributes used in a simple webhook request. Used for constructing body template on front-end.
      - `key` string, required — Key (parameter) name used to pass an attribute to a webhook
      - `value` string, required — Name (column_id) of profile attribute used as a source for this attribute's value
      - `column_meta` object — Column metadata (readonly).
        - `column_name` string — Name of the column.
        - `column_type` 'number' | 'string' | 'ipv4' | 'ipv6' | 'bool' | 'int' | 'uuid' | 'hex' | 'datetime' — Type of the column.
        - `column_unit` 'currency' | 'url' | 'days' | 'pixels' | 'none' | 'millisecond' | '' — Unit of the column.
        - `column_category` string[] — Categories of the column.
        - `analytics_column_id` string — Name of the column in Analytics module. Used to calculate audience count.
        - `analytics_transformation_id` 'sum' — Transformation name used in Analytics module to calculate audience count. Currently one option available.
        - `value_selectors` string[] — List of value selectors possible for given column.
        - `extractions` string[] — List of extractions possible for given column.
        - `aggregation` 'first' | 'last' | 'first_last' | 'list' | 'list_unique' | 'min' | 'max' | 'sum' — Aggregation for attribute values.
        - `scope` 'event' | 'profile' — Defines the scope of dimension.
      - `extraction` 'all' | 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `custom_value` string — Custom value that can be provided manually for given attribute
    - `webhook_body_template` string, required — Template of a webhook request body with attribute placeholders. Backend fills this template with profile attributes and sends it to webhook_url.
  - object — Common parts of all type of activation update objects
    - `name` string, required — Activation name
    - `description` string, required — Activation description
    - `status` 'active' | 'inactive', required — Activation status. `active` enables profiles activation, `inactive` disables profile activation. If activation has no audience associated with it, Activation API will always return `inactive`.
    - `trigger` 'onjoin' | 'onleave', required — Signal that triggers an activation. `onjoin` makes joining an audience trigger activation. `onleave` makes leaving an audience trigger activation.
    - `audience_id` string, uuid, required — ID of an audience to be activated
    - `required_consents` string[], required — Consent types a profile must contain to be activated
    - `multiple` boolean, required — Whether one profile can be activated multiple times
    - `multiple_user_ids` boolean, required — Whether a profile containing more than one user ID can be activated
    - `type` 'gads_customer_match', required — Type of activation
    - `gads_customer_id` string, required — Google Ads customer ID
    - `gads_customer_name` string — Google Ads customer name
    - `gads_manager_id` string — Google Ads customer's manager ID (login customer ID)
    - `gads_manager_name` string — Google Ads customer's manager name (login customer name)
    - `gads_user_list_id` string, required — Google Ads user list ID
    - `gads_user_list_name` string — Google Ads user list name
    - `gads_user_list_action` 'add' | 'remove', required — What to do with the profile. `add` adds profile to the user list, `remove` removes profile from the user list.
    - `gads_identifier_sources` object, required — Object describing source of identifiers sent to Google Ads. At last one of email, phone, complete address (first name, last name, country code, zip code) must be provided.
      - `email_address_attribute` object — Attribute from which email will be taken and its extraction
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `phone_number_attribute` object — Attribute from which phone number will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `first_name_attribute` object — Attribute from which first name will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `last_name_attribute` object — Attribute from which last name will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `country_code_attribute` object — Attribute from which country code will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `zip_code_attribute` object — Attribute from which zip code will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
  - object — Common parts of all type of activation update objects
    - `name` string, required — Activation name
    - `description` string, required — Activation description
    - `status` 'active' | 'inactive', required — Activation status. `active` enables profiles activation, `inactive` disables profile activation. If activation has no audience associated with it, Activation API will always return `inactive`.
    - `trigger` 'onjoin' | 'onleave', required — Signal that triggers an activation. `onjoin` makes joining an audience trigger activation. `onleave` makes leaving an audience trigger activation.
    - `audience_id` string, uuid, required — ID of an audience to be activated
    - `required_consents` string[], required — Consent types a profile must contain to be activated
    - `multiple` boolean, required — Whether one profile can be activated multiple times
    - `multiple_user_ids` boolean, required — Whether a profile containing more than one user ID can be activated
    - `type` 'gads_click_conversion', required — Type of activation
    - `gads_customer_id` string, required — Google Ads customer ID
    - `gads_customer_name` string — Google Ads customer name
    - `gads_manager_id` string — Google Ads customer's manager ID (login customer ID)
    - `gads_manager_name` string — Google Ads customer's manager name (login customer name)
    - `gads_conversion_action_id` string, required — Google Ads conversion action ID
    - `gads_conversion_action_name` string — Google Ads conversion action name
    - `gads_identifier_sources` object, required — Object describing source of click conversion identifiers sent to Google Ads.
      - `gclid_attribute` object, required — Attribute from which gclid will be taken and its extraction
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
    - `gads_timestamp_source` object, required — Source of conversion timestamp. Must be a datetime attribute.
      - `column_id` string, required — Attribute from which given identifier will be taken
      - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
    - `gads_conversion_value` number, required — Google Ads monetary conversion value
    - `gads_conversion_currency_code` string, required — ISO 4217 three-letter currency code

## Response `201`

Created activation object

- union — Activation with all type-specific data
  - object — Common parts of all types of activation
    - `id` string, uuid, required — Activation ID
    - `name` string, required — Activation name
    - `description` string, required — Activation description
    - `status` 'active' | 'inactive', required — Activation status. `active` enables profiles activation, `inactive` disables profile activation. If activation has no audience associated with it, Activation API will always return `inactive`.
    - `trigger` 'onjoin' | 'onleave', required — Signal that triggers an activation. `onjoin` makes joining an audience trigger activation. `onleave` makes leaving an audience trigger activation.
    - `audience` object — Audience to be activated. Might be missing if the related `audience` gets removed.
      - `id` string, uuid, required — ID of an audience that is activated
      - `name` string, required — Name of an audience that is activated
    - `required_consents` string[], required — Consent types a profile must contain to be activated
    - `multiple` boolean, required — Whether one profile can be activated multiple times
    - `multiple_user_ids` boolean, required — Whether a profile containing more than one user ID can be activated
    - `created_at` string, date-time, required — Activation creation time
    - `updated_at` string, date-time, required — Activation last update time
    - `author` object, required — Author of an activation
      - `email` string, email, required — Email (login) of an author
    - `is_author` boolean, required — Whether the current user is the author of this activation
    - `type` 'webhook', required — Type of activation
    - `webhook_url` string, required — Webhook URL pointing at some external system
    - `webhook_body_attributes` object[] — Profile's attributes used in a simple webhook request. Used for constructing body template on front-end.
      - `key` string, required — Key (parameter) name used to pass an attribute to a webhook
      - `value` string, required — Name (column_id) of profile attribute used as a source for this attribute's value
      - `column_meta` object — Column metadata (readonly).
        - `column_name` string — Name of the column.
        - `column_type` 'number' | 'string' | 'ipv4' | 'ipv6' | 'bool' | 'int' | 'uuid' | 'hex' | 'datetime' — Type of the column.
        - `column_unit` 'currency' | 'url' | 'days' | 'pixels' | 'none' | 'millisecond' | '' — Unit of the column.
        - `column_category` string[] — Categories of the column.
        - `analytics_column_id` string — Name of the column in Analytics module. Used to calculate audience count.
        - `analytics_transformation_id` 'sum' — Transformation name used in Analytics module to calculate audience count. Currently one option available.
        - `value_selectors` string[] — List of value selectors possible for given column.
        - `extractions` string[] — List of extractions possible for given column.
        - `aggregation` 'first' | 'last' | 'first_last' | 'list' | 'list_unique' | 'min' | 'max' | 'sum' — Aggregation for attribute values.
        - `scope` 'event' | 'profile' — Defines the scope of dimension.
      - `extraction` 'all' | 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `custom_value` string — Custom value that can be provided manually for given attribute
    - `webhook_body_template` string, required — Template of a webhook request body with attribute placeholders. Backend fills this template with profile attributes and sends it to webhook_url.
  - object — Common parts of all types of activation
    - `id` string, uuid, required — Activation ID
    - `name` string, required — Activation name
    - `description` string, required — Activation description
    - `status` 'active' | 'inactive', required — Activation status. `active` enables profiles activation, `inactive` disables profile activation. If activation has no audience associated with it, Activation API will always return `inactive`.
    - `trigger` 'onjoin' | 'onleave', required — Signal that triggers an activation. `onjoin` makes joining an audience trigger activation. `onleave` makes leaving an audience trigger activation.
    - `audience` object — Audience to be activated. Might be missing if the related `audience` gets removed.
      - `id` string, uuid, required — ID of an audience that is activated
      - `name` string, required — Name of an audience that is activated
    - `required_consents` string[], required — Consent types a profile must contain to be activated
    - `multiple` boolean, required — Whether one profile can be activated multiple times
    - `multiple_user_ids` boolean, required — Whether a profile containing more than one user ID can be activated
    - `created_at` string, date-time, required — Activation creation time
    - `updated_at` string, date-time, required — Activation last update time
    - `author` object, required — Author of an activation
      - `email` string, email, required — Email (login) of an author
    - `is_author` boolean, required — Whether the current user is the author of this activation
    - `type` 'gads_customer_match', required — Type of activation
    - `gads_customer_id` string, required — Google Ads customer ID
    - `gads_customer_name` string — Google Ads customer name
    - `gads_manager_id` string — Google Ads customer's manager ID (login customer ID)
    - `gads_manager_name` string — Google Ads customer's manager name (login customer name)
    - `gads_user_list_id` string, required — Google Ads user list ID
    - `gads_user_list_name` string — Google Ads user list name
    - `gads_user_list_action` 'add' | 'remove', required — What to do with the profile. `add` adds profile to the user list, `remove` removes profile from the user list.
    - `gads_identifier_sources` object, required — Object describing source of identifiers sent to Google Ads. At last one of email, phone, complete address (first name, last name, country code, zip code) must be provided.
      - `email_address_attribute` object — Attribute from which email will be taken and its extraction
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `phone_number_attribute` object — Attribute from which phone number will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `first_name_attribute` object — Attribute from which first name will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `last_name_attribute` object — Attribute from which last name will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `country_code_attribute` object — Attribute from which country code will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
      - `zip_code_attribute` object — Attribute from which zip code will be taken
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
  - object — Common parts of all types of activation
    - `id` string, uuid, required — Activation ID
    - `name` string, required — Activation name
    - `description` string, required — Activation description
    - `status` 'active' | 'inactive', required — Activation status. `active` enables profiles activation, `inactive` disables profile activation. If activation has no audience associated with it, Activation API will always return `inactive`.
    - `trigger` 'onjoin' | 'onleave', required — Signal that triggers an activation. `onjoin` makes joining an audience trigger activation. `onleave` makes leaving an audience trigger activation.
    - `audience` object — Audience to be activated. Might be missing if the related `audience` gets removed.
      - `id` string, uuid, required — ID of an audience that is activated
      - `name` string, required — Name of an audience that is activated
    - `required_consents` string[], required — Consent types a profile must contain to be activated
    - `multiple` boolean, required — Whether one profile can be activated multiple times
    - `multiple_user_ids` boolean, required — Whether a profile containing more than one user ID can be activated
    - `created_at` string, date-time, required — Activation creation time
    - `updated_at` string, date-time, required — Activation last update time
    - `author` object, required — Author of an activation
      - `email` string, email, required — Email (login) of an author
    - `is_author` boolean, required — Whether the current user is the author of this activation
    - `type` 'gads_click_conversion', required — Type of activation
    - `gads_customer_id` string, required — Google Ads customer ID
    - `gads_customer_name` string — Google Ads customer name
    - `gads_manager_id` string — Google Ads customer's manager ID (login customer ID)
    - `gads_manager_name` string — Google Ads customer's manager name (login customer name)
    - `gads_conversion_action_id` string, required — Google Ads conversion action ID
    - `gads_conversion_action_name` string — Google Ads conversion action name
    - `gads_identifier_sources` object, required — Object describing source of click conversion identifiers sent to Google Ads.
      - `gclid_attribute` object, required — Attribute from which gclid will be taken and its extraction
        - `column_id` string, required — Attribute from which given identifier will be taken
        - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
    - `gads_timestamp_source` object, required — Source of conversion timestamp. Must be a datetime attribute.
      - `column_id` string, required — Attribute from which given identifier will be taken
      - `extraction` 'first' | 'last' — How to extract value from source attribute. Should be skipped when profile attribute stores only one value.
    - `gads_conversion_value` number, required — Google Ads monetary conversion value
    - `gads_conversion_currency_code` string, required — ISO 4217 three-letter currency code

## Other responses

- `400` — Bad request response (e.g. missing GET parameter, parameter value out of bounds)
- `401` — Access token is missing or invalid
- `404` — Resource not found (bad ID or resource deleted)
- `422` — Data in body does not meet requirements (e.g. missing field)
- `500` — Internal application error response (some service encountered unexpected error)

---

[API](https://skmtc.dev/piwik/apis/web-api.md) · [All operations](https://skmtc.dev/piwik/apis/web-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/piwik/web-api/revisions/f63416a36168/schema)
