{"openapi":"3.0.3","info":{"description":"For any questions, reach out to your Attentive point of contact (if applicable) or [api@attentivemobile.com](mailto:api@attentivemobile.com).","title":"Attentive API","version":""},"servers":[{"url":"https://api.attentivemobile.com/v1","description":"Attentive API"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Test Authentication","description":"Use the Test Authentication endpoint to test your unique token that you received from Attentive. Make sure to save your token because all API requests are authenticated using bearer tokens. The response should include information specific to your company.\n"},{"name":"Access Token","description":"Public applications must authenticate using the OAuth 2.0 specification to use Attentive’s API resources. Attentive uses OAuth 2.0’s authorization code grant flow to issue access tokens on behalf of users. When an application is installed on our platform, an authorization code is generated automatically. This authorization code must be exchanged for an access token to authenticate grant and control permissions for your application.\n"},{"name":"Webhooks","description":"Create and manage webhooks"},{"name":"eCommerce","description":"Use the eCommerce API to trigger an event when a user views a product, adds a product to their shopping cart, or makes a purchase.","x-beta":false},{"name":"Offers","description":"You can use the Offers API to add discount codes to an existing offer. <br> <h2> Create an offer </h2>  <ol> <li> Navigate to the [Offers](https://ui.attentivemobile.com/offers) page. </li> <li> Click **+ Create offer** in the top-right corner. </li> <li> On the **Choose an offer type** window, select **Unique discount codes** </li> <li> Enter a unique name for your offer in the **Discount name** field. </li> <li> Choose the **Distribution window**. <br> **Note**: If you include start and end dates in your API call, the distribution window automatically updates to **Custom time period**. </li> <li> **Click Create.** </li> <li> Click back into the offer and retrieve the numeric ID at the end of the URL string. This is the ID you will need for the POST </li> </ol>","x-beta":true},{"name":"Custom Events","description":"Use the Custom Events API to send user actions to use in the Attentive Segment Builder and Journey Builder for both email and text messages. This data cannot contain any sensitive or special categories of information as defined in applicable data protection and privacy laws, including the California Consumer Privacy Act (CCPA) and California Privacy Rights Act (CPRA). See a list of specific categories of data you cannot share with Attentive [here](https://docs.attentivemobile.com/pages/legal-docs/pi-disclaimer/).","x-beta":false},{"name":"Custom Attributes","description":"Use the Custom Attributes API to apply customizable data or characteristics to each of your subscribers. This API will either create a new custom attribute if it doesn't already exist or update an existing one with the new value provided. You can then build segments based on that information to send targeted campaigns and journeys. This data cannot contain any sensitive or special categories of information as defined in applicable data protection and privacy laws, including the California Consumer Privacy Act (CCPA) and California Privacy Rights Act (CPRA). See a list of specific categories of data you cannot share with Attentive [here](https://docs.attentivemobile.com/pages/legal-docs/pi-disclaimer/).\n","x-beta":false},{"name":"Subscribers","description":"Use the Subscribers API to manage subscriptions. With this API, you can programmatically subscribe and unsubscribe users from subscriptions.\n","x-beta":false},{"name":"Product Catalog","description":"Our product catalog API unlocks the ability to send high-performing journeys such as back in stock, low inventory, and price drop. It also lets you segment your customers and branch journeys using product data.\n- **Create high performing journeys**, such as back in stock, low inventory, and price drop.\n- **Segment customers** based on their past browsing, add to cart, and purchasing activity using product data such as name, category, tag, price, and other attributes.\n- **Branch journeys** based on product attributes or inventory, such as only sending a message if the product is in stock.\n\nAttentive also has several integrations with popular e-commerce platforms that sync product data to Attentive.  These are available in the Integrations tab.\n\n## Important note for testing/QA\n\nWhen you're testing journeys that use product catalog data (like price drop, back in stock, or low inventory), *we strongly recommend adding a **[Wait step](https://help.attentivemobile.com/hc/en-us/articles/360056415972-Add-steps-to-a-journey#h_01EY4TST8MRRG9GDZP2AT0EV9E)** of at least one hour as the very first step in the journey.* This initial wait step allows sufficient time for our system to process changes to your product catalog. \n\nAn initial wait step is generally *not* necessary for your actual live journeys. In most non-testing scenarios, subscribers will enter the journey after catalog updates have already been processed.\n\nWhen testing back in stock journeys specifically, keep in mind that back in stock journeys are triggered when `availableForPurchase` is `false`, not when `inventoryQuantity` is `0` (or less than the threshold amount if you're using [inventory thresholds](https://help.attentivemobile.com/hc/en-us/articles/4404286271380-Create-a-back-in-stock-journey)).\n\n## How to Get Started\n1. [Create an Attentive app to get an api key](https://docs.attentivemobile.com/pages/create-and-manage-custom-apps/)\n2. [Review the authentication workflow](https://docs.attentivemobile.com/pages/authentication/)\n3. Read through the product catalog file format you'll need to generate to send us your product catalog.\n4. Either use the sample script below to send us the file(s) you've generated, or implement something similar.\n5. By default, `validateOnly` will be set to `true` when initiating the upload, in order for you to develop without \nsaving the catalog Attentive side. Once you're ready for production, go ahead and set `validateOnly` to `false`.\n6. Once the file has been uploaded, contact your CSM to confirm that the data quality is high enough for the Attentive product data features to be enabled.\n\n### Sample CLI Utility Script\nFeel free to reuse and adapt this Python3 script to send Attentive the catalog files you've generated.\n```python\nimport argparse\nimport requests  # you may need to install this https://docs.python-requests.org/en/latest/user/install/\nimport json\nimport time\n\nfrom distutils.util import strtobool\n\n\nAPI_KEY = ''  # Set this\nAPI_BASE_URL = 'https://api.attentivemobile.com'\nSTATUS_INTERVAL = 10\n\n\ndef initiate_catalog_upload(validate_only, api_key):\n    post_url = API_BASE_URL + '/v1/product-catalog/uploads'\n    r = requests.post(\n        post_url,\n        json={'validateOnly': validate_only},\n        headers={'Authorization': 'Bearer ' + api_key},\n    )\n    assert r.status_code == 200, \"Are you sure your api key is correct?\"\n    resp = r.json()\n    return resp['uploadId'], resp['uploadUrl']\n\n\ndef print_errors(errors):\n    print(\"Validation Errors:\")\n    for error in errors:\n        print(json.dumps(error))\n\n\ndef wait_for_validation(upload_id, validate_only, api_key, counter):\n    \"\"\"\n    The file at this point should now be queued up and we are awaiting validation. If there are any\n    validation errors, we'll print them out from here. You may want to integrate your own more\n    advanced monitoring.\n    \"\"\"\n    time.sleep(STATUS_INTERVAL)\n    get_url = API_BASE_URL + '/v1/product-catalog/uploads/' + upload_id\n    r = requests.get(get_url, headers={'Authorization': 'Bearer ' + api_key}).json()\n    if r['errors']:\n        # Consider implementing alerting over here\n        print_errors(r['errors'])\n    if r['status'] == 'validated':\n        return\n    # waiting approximately an hour before giving up. Totally up to you how long, but Attentive should\n    # rarely be behind an hour behind in processing\n    if counter == 360:\n        print(\"Giving up on waiting for validation for \" + upload_id)\n        return\n\n    wait_for_validation(upload_id, validate_only, api_key, counter + 1)\n\n\ndef upload_catalog(filepath, validate_only, api_key):\n    upload_id, upload_url = initiate_catalog_upload(validate_only, api_key)\n    with open(filepath, 'rb') as f:\n        r = requests.put(upload_url, data=f)\n        assert r.status_code == 200, 'Unexpected issue uploading'\n    wait_for_validation(upload_id, validate_only, api_key, 0)\n    return upload_id\n\n\nif __name__ == '__main__':\n    parser = argparse.ArgumentParser(\n        description='CLI utility script to demonstrate and assist in sending your generated product catalog to Attentive via its API'\n    )\n    parser.add_argument('filepath', help='Path to your catalog file')\n    parser.add_argument(\n        '--validateOnly',\n        default=True,\n        dest='validate_only',\n        type=lambda x: bool(strtobool(x)),\n        help='Boolean flag to choose whether or not Attentive should only validate the file for correctness only or not. '\n        'Defaults to True to prevent saving invalid data during development. Set to False when everything passes without errors.',\n    )\n    parser.add_argument(\n        '--apiKey',\n        dest='api_key',\n        help='You can pass the API Key in here as an argument or set it in the API_KEY variable at the top of this file',\n    )\n    args = parser.parse_args()\n\n    key = args.api_key or API_KEY\n    assert key, (\n        'Please either pass in the apiKey argument to this script, or '\n        'update the API_KEY variable at the top of this file to authenticate to Attentive'\n    )\n    id = upload_catalog(args.filepath, args.validate_only, key)\n```\n## Product catalog file format\nYou can use the Product Catalog API to provide Attentive with your entire product catalog\nprogrammatically in order to segment or branch on different product attributes to send more\ntargeted SMS messages. It also unlocks other unique product features (e.g. Back In-Stock Journeys).\n\nIn order to use the Product Catalog API, you must first provide Attentive with your full or\npartial product catalog as a **ndjson format file** to be HTTP file uploaded to a specified URL. *Each\nline in the file represents a full product, as described in the sample below*. This article\noutlines the structure of each product/row, as well as the definitions of each object and field.\n\n```\nTop-level product\n{\n   \"name\": string, *\n   \"id\": string, *\n   \"description\": string,\n   \"brand\": string,\n   \"link\": string, *\n   \"lastUpdated\": timestamp, *\n   \"categories\": Array<string>,\n   \"tags\": Array<string>,\n   \"productOptions\": Array<ProductOption>,\n   \"images\": Array<Image>,\n   \"attributes\": Array<Attribute>\n   \"variants\": Array<Variant> *,\n   \"collections\": Array<String>\n}\n\nProduct Option\n{\n   \"name\": string, *\n   \"position\": int, *\n   \"values\": Array<string> *\n}\n\nImage\n{\n   \"position\": int,\n   \"alt\": string,\n   \"src\": string, *\n   \"width\": int,\n   \"height\": int,\n   \"variantIds\": Array<string>\n}\n\nAttribute\n{\n   \"name\": string, *\n   \"value\": string *\n}\n\nVariant\n{\n   \"name\": string, * full name\n   \"id\": string, *\n   \"position\": int,\n   \"prices\": Array<Price>,\n   \"availableForPurchase\": boolean, *\n   \"inventoryQuantity\": int,\n   \"productOptionValues\": Array<ProductOptionValue>,\n   \"link\": string, *\n   \"lastUpdated\": timestamp, *\n   \"attributes\": Array<Attribute>\n}\n\nProduct Option Value\n{\n   \"productOptionName\": string, *\n   \"value\": string *\n}\n\nPrice\n{\n   \"currencyCode\": string, *\n   \"amount\": string, *\n   \"compareAtPrice\": string,\n}\n```\n\n### Definition of terms\n\n#### Product\nProducts are the goods that you are selling on your website. For example, it can be a t-shirt\nor a pair of shoes. This is the root JSON object on each line and is inherently required.\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| id | This is your product ID and the field we key off of. It must be unique across your catalog. You need this unique ID to make any updates to the product by uploading your product with the same id. The maximum length of the ID is 256 characters. | string | Required |\n| name | The name of your product. Note that this is how it appears in messages. The maximum length of the name is 256 characters. | string | Required |\n| description | A short description of your product. The maximum length of the description is 1024 characters. | string | Optional |\n| brand | Brand for your product. Maximum length of brand is 256 characters. | string | Optional |\n| link | The link to your product's detail page online. Maximum length of link is 2048 characters. (http(s) required) | string | Required |\n| lastUpdated | The date and time (in UTC) of when your product was last updated. | [timestamp](https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC) | Required |\n| categories | One or more categories in your taxonomy associated with this product. You can specify up to ten categories per product and each category can be up to 64 characters long. | Array&lt;string&gt; | Optional |\n| tags | One or more tags that are associated with and used to categorize this product. You can specify up to 50 tags per product and each tag can be up to 64 characters long. | Array&lt;string&gt; | Optional |\n| productOptions | See [Product Option](#product-option). Up to 10 ProductOptions are allowed per product and up to 100 values are allowed per option. | Array&lt;ProductOption&gt; | Optional |\n| images | See [Image](#image). Up to 250 images are allowed per product. | Array&lt;Image&gt; | Optional |\n| attributes | See [Attribute](#attribute). Up to 100 attributes are allowed per product. | Array&lt;Attribute&gt; | Optional |\n| variants | See [Variant](#variant). Up to 100 variants are allowed per product. | Array&lt;Variant&gt; | Required |\n| collections | The grouping of products that this product belongs to. Up to 20 collections per product are allowed. | Array&lt;string&gt; | Optional |\n\n\n#### Variant\nA variant can be added to a Product to represent one version of a product with several options.\nThe Product has a variant for every possible combination of its options. Following the example\nin [Product](#product), a variant is a size small and color black. An order can begin fulfillment once a\nvariant is selected. Each product must have at least one variant\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| id | This is your variant ID and the field we key off of. It must be unique across your catalog. You need this unique ID to make any updates to the product by uploading your variant with the same id. The maximum length of the ID is 256 characters. | string | Required |\n| name | The name of this variant. Note that this is how it appears in messages to your subscribers. The maximum length of the name is 256 characters. | string | Required |\n| position | The order in which this variant appears among all the other variants that belong to this product. The variant with the lowest number is the default variant. This value must be greater than or equal to 0.  | int | Optional |\n| link | The link to your variant's detail page online. If there is no link for your variant, you can use your product link. The maximum length of the link is 2048 characters. (http(s) required) | string | Required |\n| prices | See [Price](#price) | Array&lt;Price&gt; | Required\n| availableForPurchase | Is this variant still being sold? | boolean | Required |\n| inventoryQuantity | The amount of the variant available before the variant is out of stock. | int | Optional |\n| productOptionValues | The combination of options that this variant represents for the product. See [Product Options](#product-option) section for details. | Array&lt;ProductOption&gt; | Optional |\n| attributes | See [Attribute](#attribute). Up to 100 Variants allowed. | Array&lt;Attribute&gt; | Optional |\n| lastUpdated | The date and time (in UTC) of when your product or variant was last updated. | [timestamp](https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC) | Required |\n\n\n#### Product Option\nProduct options are the dimensions or choices that a customer has to select to add a variant\nto their cart. Following our previous [Product](#product) example above with the t-shirt, the\ncustomer needs to select the size and color they want. In this example, size and color are the\nproduct options.\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| name | The name/title of this product option. Up to 256 characters long | string | Required |\n| position | The order in which this option appears among all the other options. The option with the lowest number is first in the order. This value must be greater than or equal to 0. | int | Required |\n| values | The different possible values for this product option. Up to 256 characters long for each value. | Array&lt;string&gt; | Required |\n\n\n#### Product Option Value\nProduct option values are the unique product option selections associated with a given variant.\nThese are contextualized within the Variant object.\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| productOptionName | The product option name | string | Required |\n| value | The selection or value for this variant | string | Required |\n\n\n#### Attribute\nGeneric key/value data for products/variants that can be used for categorizing.\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| name | The attribute name. Up to 64 characters long. | string | Required |\n| value | The attribute value.  Up to 256 characters long. | string | Required |\n\n\n#### Image\nData for the images associated with your products and variants that can be used for Attentive product\nmessaging and experiences.\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| src | The URL to the image (http(s) required). | string | Required |\n| alt | The alt text for the image. This is used as a back up in case an image can't be displayed and standard on the web. Up to 512 characters allowed. | string | Optional |\n| width | The width of the image in pixels | int | Optional |\n| height | The height of the image in pixels | int | Optional |\n| variantIds | The list of variant IDs this image applies to. Each id must match the ID of the field of one of the variants. | Array&lt;string&gt; | Optional |\n| position | The order in which images are considered for a product or variant. The image with the lowest position will be the default image. In other words, ascending order. Defaults to 0. | int | Optional |\n\n\n#### Price\nA price associated with the variant. You may have more than one price and currency associated\nwith a variant. In those cases, Attentive will likely choose the lowest available price in\nmessaging experiences.\n\n| Field | Description | Type | Required |\n| ----- | ----- | -------- | ---- |\n| currencyCode | This follows the three letter currency codes (e.g. USD). For more info, see [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html). | string | Required |\n| amount | The price amount | string | Required |\n| compareAtPrice | This is another price field, and use of this field implies the variant is on sale. This is the price buyers compare against to evaluate how good a sale is. Example: \"The price was <compareAtPrice> but now is <amount>! Get it while it lasts\" | string | Optional |\n\n\n### Formatted example of one product\nThe below example is formatted in json to clearly show the object schema.  The file you pass to the API should be in **ndjson format**.\n```\n{\n  \"name\": \"Nasa T-Shirt\",\n  \"id\": \"PD-123\",\n  \"description\": \"A very popular T-Shirt\",\n  \"brand\": \"NASA\",\n  \"link\": \"https://www.google.com\",\n  \"lastUpdated\": \"2021-10-05T18:08:28+00:00\",\n  \"categories\": [\"Shirts\"],\n  \"tags\": [\"Summer Sale\", \"Space\"],\n  \"productOptions\": [\n    {\"name\": \"Color\", \"position\": 0, \"values\": [\"Blue\", \"Black\"]},\n    {\"name\": \"Size\", \"position\": 1, \"values\": [\"Small\", \"Medium\", \"Large\"]}\n  ],\n  \"images\": [\n    {\"src\": \"https://www.google.com\", \"alt\": \"Picture of Nasa T-Shirt in Blue\", \"position\": 0, \"height\": 250, \"width\": 400, \"variantIds\": [\"VD-234\"]},\n    {\"src\": \"https://www.google.com\", \"alt\": \"Another Picture of Nasa T-Shirt in Black\", \"position\": 0, \"height\": 250, \"width\": 400, \"variantIds\": [\"VD-235\", \"VD-236\"]}\n  ],\n  \"attributes\": [{\"name\": \"Fabric\", \"value\": \"Cotton\"}],\n  \"variants\": [\n    {\n      \"name\": \"Nasa T-Shirt - Blue - Small\",\n      \"id\": \"VD-234\",\n      \"position\": 0,\n      \"prices\": [\n        {\"currencyCode\": \"USD\", \"amount\": \"10.00\"}\n      ],\n      \"availableForPurchase\": true,\n      \"productOptionValues\": [\n        {\"productOptionName\": \"Color\", \"value\": \"Blue\"},\n        {\"productOptionName\": \"Size\", \"value\": \"Small\"}\n      ],\n      \"link\": \"https://www.google.com\",\n      \"lastUpdated\": \"2021-10-05T18:08:28+00:00\"\n    },\n    {\n      \"name\": \"Nasa T-Shirt - Black - Medium\",\n      \"id\": \"VD-235\",\n      \"position\": 1,\n      \"prices\": [\n        {\"currencyCode\": \"USD\", \"amount\": \"10.00\"}\n      ],\n      \"availableForPurchase\": true,\n      \"productOptionValues\": [\n        {\"productOptionName\": \"Color\", \"value\": \"Black\"},\n        {\"productOptionName\": \"Size\", \"value\": \"Medium\"}\n      ],\n      \"link\": \"https://www.google.com\",\n      \"lastUpdated\": \"2021-10-05T18:08:28+00:00\"\n    },\n    {\n      \"name\": \"Nasa T-Shirt - Black - Large\",\n      \"id\": \"VD-236\",\n      \"position\": 2,\n      \"prices\": [\n        {\"currencyCode\": \"USD\", \"amount\": \"10.00\"}\n      ],\n      \"availableForPurchase\": true,\n      \"productOptionValues\": [\n        {\"productOptionName\": \"Color\", \"value\": \"Black\"},\n        {\"productOptionName\": \"Size\", \"value\": \"Large\"}\n      ],\n      \"link\": \"https://www.google.com\",\n      \"lastUpdated\": \"2021-10-05T18:08:28+00:00\"\n    }\n  ]\n}\n  ```\n### Development Workflow Tips\n- As you're developing your code to generate this catalog file for Attentive, it's helpful to\nvalidate your generated files without any side effects on Attentive. To do that, please set\nthe `validateOnly` boolean to `true` when calling `/product-catalog/uploads`. Please note\nyour file is not immediately processed once the upload compeletes, but you can check the\nstatus of your upload with the same endpoint.\n- The cadence of uploading your catalog to Attentive is up to you. A daily job works great for most\nof our users, but we'd prefer we limit it to no more than every few hours if you're sending us\nyour entire catalog on every upload. However, if you would like to send us \"delta uploads\"\n(only products/variants which have changed since your last upload), please feel free to be more\nliberal with your cadence. If we find there are upload frequency issues, we'll be sure to reach\nout.\n-  If you have any questions as to how to map your catalog to the Attentive format above,\nplease reach out to your client strategy partner at Attentive.\n\n### File Upload Limits\n- All files need to be UTF-8 encoded.\n- 2GB maximum file size\n- 4mb maximum line/product size\n- 500k line/product limit per file","x-beta":false},{"name":"Privacy Request","description":"You can use the Privacy Request API in order to comply with [California Consumer Privacy Act](https://epic.org/california-consumer-privacy-act-ccpa/)\ndeletion requests through Attentive. For more information, you can review [Attentive’s FAQs for CCPA](https://attentivemobile.atlassian.net/wiki/download/attachments/629309474/Attentive%20FAQs%20for%20CCPA.pdf?version=4&modificationDate=1585845052142&cacheVersion=1&api=v2)\nor the [Important Notice Regarding the CCPA of 2018](https://attentivemobile.atlassian.net/wiki/download/attachments/629309474/Important%20Notice%20Regarding%20the%20California%20Consumer%20Privacy%20Act%20of%202018%20(CCPA).pdf?version=1&modificationDate=1579115568586&cacheVersion=1&api=v2).\n\nIf you submit an email address or phone number that matches a user for the identified Company or Brand, Attentive will process your deletion request for the matching user(s) only. A user's data may not be deleted if it does not match at least one of the data elements you submitted in the request (email address or phone number). Attentive may reach out to you if we require additional instructions to process your request.\n","x-beta":false},{"name":"Identity","description":"Use the Identity API to manage user identifiers. With this API, you can programmatically add a client user identifier or custom identifier(s) to a user.\nYou should only use clientUserId and customIdentifiers to send Attentive your system-assigned unique identifiers (even when testing).\n\nNotes:\n  - Sending duplicate values could lead to unintentionally bridging users together.\n  - Don't use customIdentifiers to send attributes (e.g., first name, last name). To send those types of attributes,\n    use our [Custom Attributes API](https://docs.attentivemobile.com/openapi/reference/tag/Custom-Attributes/).\n  - Avoid sending null values or empty strings. If you don't have a valid identifier, you should omit the field\n    from the payload.\n","x-beta":true}],"paths":{"/me":{"x-external":true,"get":{"x-external":true,"x-emits-event":true,"summary":"Me","description":"Make a call to this endpoint to test your unique token that you generate in the Attentive product.","operationId":"getMe","tags":["Test Authentication"],"responses":{"200":{"description":"Get information about the authenticated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMeResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/webhooks":{"x-external":true,"get":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["webhooks:write"]}],"summary":"List webhooks","description":"Make an API call to this endpoint to list existing webhooks.","operationId":"getWebhooks","tags":["Webhooks"],"responses":{"200":{"description":"existing webhooks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWebhooksResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["webhooks:write"]}],"summary":"Create webhook","description":"Make an API call to this endpoint to subscribe to a webhook.\n\nEvents are a collection of strings of the following types:\n* `sms.subscribed`\n* `sms.sent`\n* `sms.message_link_click`\n* `email.subscribed`\n* `email.unsubscribed`\n* `email.message_link_click`\n* `email.opened`\n* `custom_attribute.set`\n\nEvent types are case sensitive.\n\nAll events included will be sent to the URL.\n","operationId":"createWebhook","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequestDto"}}}},"responses":{"201":{"description":"Webhook has been created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/webhooks/{webhookId}":{"delete":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["webhooks:write"]}],"summary":"Delete webhook","description":"Make an API call to this endpoint to remove a webhook.","operationId":"deleteWebhook","parameters":[{"name":"webhookId","in":"path","description":"id of the webhook to delete","required":true,"schema":{"type":"string"}}],"tags":["Webhooks"],"responses":{"204":{"description":"Webhook has been deleted"},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["webhooks:write"]}],"summary":"Update webhook","description":"Make an API call to this endpoint to update a webhook","operationId":"updateWebhook","parameters":[{"name":"webhookId","in":"path","description":"The id of the webhook to update","required":true,"schema":{"type":"string"}}],"tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequestDto"}}}},"responses":{"200":{"description":"Webhook has been updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/authorization-codes/tokens":{"x-external":true,"x-requires-auth":false,"x-sensitive":true,"post":{"x-external":true,"summary":"Access Token","description":"Make a call to this endpoint to exchange a temporary authorization code for an access token.","operationId":"createTokenViaAuthorizationCode","tags":["Access Token"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string","description":"Type of grant. Currently, authorization_code is the only accepted type.","example":"authorization_code"},"code":{"type":"string","description":"Authorization code provided after the user authorizes the scopes during the application install process.","example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"redirect_uri":{"type":"string","description":"The same redirect URI that was used when requesting the authorization code.","example":"https://test.com"},"client_id":{"type":"string","description":"The application’s client ID which can be found on the Manage Distribution tab for the application.","example":"9f7a2f11a4f849f59268869ec766111c"},"client_secret":{"type":"string","description":"The application’s client secret which can be found on the Manage Distribution tab for the application.","example":"0FvaRpPi5KBC4Izj9ALA0AG8J2WdcBhU"}}}}}},"responses":{"200":{"description":"Token generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTokenResponseDto"}}}}}}},"/events/ecommerce/product-view":{"x-external":true,"post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["ecommerce:write"]}],"summary":"Product view","description":"Make a call to this endpoint when a user views a product.","operationId":"postProductViewEvents","tags":["eCommerce"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductViewRequest"}}}},"responses":{"200":{"description":"Ok"},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/events/ecommerce/add-to-cart":{"x-external":true,"post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["ecommerce:write"]}],"summary":"Add to cart","description":"Make a call to this endpoint when a user adds a product to their shopping cart.","operationId":"postAddToCartEvents","tags":["eCommerce"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddToCartRequest"}}}},"responses":{"200":{"description":"Ok"},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/events/ecommerce/purchase":{"x-external":true,"post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["ecommerce:write"]}],"summary":"Purchase","description":"Make a call to this endpoint when a user generates an order or purchase.","operationId":"postPurchaseEvents","tags":["eCommerce"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseRequest"}}}},"responses":{"200":{"description":"Ok"},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/coupons/coupon-pool/{coupon-pool-id}/create":{"post":{"tags":["Offers"],"summary":"Add discount codes","description":"Note: Once the offer(s) has been created, please reach out to an Attentive team member to enable this API feature for you\n\nMake a call to this asynchronous endpoint to create new discount codes in an existing offer.\n<h2>Validation rules</h2>\n<ul>\n<li>Maximum of 200,000 discount codes per request.</li>\n<li><code>distributionStart</code> must be before <code>distributionStop</code>, in UTC ISO format (e.g., <code>2023-02-14T21:29:25Z</code>).</li>\n<li>Date ranges must not overlap with ranges from previous uploads to the same offer. Uploading to an existing range is allowed.</li>\n<li>All uploads in an offer must use the same distribution type. If previous uploads include expiration dates, new uploads must also include them, and vice versa.</li>\n<li>The offer (coupon pool) must exist and belong to your account.</li>\n</ul>\n<h2>Sync behavior</h2>\nCheck the status on the offer to monitor progress. If it still says <strong>SYNCING</strong>, the uploads may not be ready yet.","operationId":"createCoupons","x-external":true,"security":[{"OAuthFlow":["offers:write"]}],"parameters":[{"in":"path","name":"coupon-pool-id","description":"The ID created under \"Create an Offer\"","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCouponsDto"}}},"required":true},"responses":{"202":{"description":"Accepted. Check the Attentive [Offers](https://ui.attentivemobile.com/offers) page to make sure that there are no errors and the remaining code count is accurate."},"400":{"$ref":"#/components/responses/InvalidParameter1"},"403":{"$ref":"#/components/responses/AccessDenied1"},"404":{"$ref":"#/components/responses/DetailedBadRequest"},"500":{"$ref":"#/components/responses/InternalError1"}}}},"/events/custom":{"x-external":true,"description":"Custom Events\n","post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["events:write"]}],"summary":"Custom Events","description":"Make a call to this endpoint for any event-based data representing user actions.","operationId":"postCustomEvents","tags":["Custom Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomEventsRequest"}}}},"responses":{"200":{"description":"Ok"},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/attributes/custom":{"description":"Custom Attributes\n","post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["attributes:write"]}],"summary":"Custom Attributes","description":"Make a call to this endpoint for any attribute-based data. There are no limits to the amount of custom attributes that can be created. Note that you can create net-new properties with this API, however, it cannot be used to create new values for an existing UI-created property name. If a property name is created through the Attentive platform, all possible property values must also be defined in the platform. For example, if a property has possible values of \"Adult, Teen, Children's\", those are the only values that will be accepted through the API. This does not apply for properties with the type \"Custom input\", for example: Full Name. Also, please note that the API does not support arrays. For example, attempting to pass an array such as '[\"chicago\", \"new york\"]' for an attribute like 'favorite_city' will result in a 400 error.\n\n**Note : The maximum length for an attribute name is 200 characters.**\n","operationId":"postCustomAttributes","tags":["Custom Attributes"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomAttributesRequest"}}}},"responses":{"200":{"description":"Ok"},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"summary":"Get Custom Attributes for a User","description":"Make a call to this endpoint to retrieve all custom attribute data associated with a user. You can query this endpoint by either phone or email.\n\n**Note: You must include a single query parameter, phone or email. Including both will result in a 400 error.**\n","operationId":"getCustomAttributes","x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["attributes:write"]}],"tags":["Custom Attributes"],"parameters":[{"in":"query","name":"phone","schema":{"type":"string","example":"+13115552368"},"description":"A user’s phone number in E.164 format. The '+' sign in the phone number must be encoded in the URL query parameter as '%2B'\n"},{"in":"query","name":"email","schema":{"type":"string","example":"test@gmail.com"},"description":"A user's email\n"}],"responses":{"200":{"description":"Successfully accepted get custom attributes request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomAttributesResponse"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/subscriptions":{"post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["subscriptions:write"]}],"summary":"Subscribe user","description":"Make a call to this endpoint to opt-in a user to a subscription. \n\nNotes:\n- A legal disclosure is required when a user is opted-in programmatically.\n    - For marketing messages, required [legal language](https://docs.attentivemobile.com/pages/legal-docs/legal-disclosure-language/) must be included.\n\n    - For transactional messages, you must include a [transactional opt-in unit](https://docs.attentivemobile.com/pages/legal-docs/legal-transactional/).\n  \n- By default, if a subscription already exists, it will try and record the attempt to create the subscription again. For TEXT subscriptions, this will result in a message being sent to the person indicating that they are already subscribed.\n- Requests to opt-in subscribers must either contain a) a sign-up source id or b) both a locale and a subscription type.\n    - The unique identifier of a sign-up source can be found in the Sign-up Units tab of the Attentive platform in the ID column. \n    If this value is provided in the request, then this sign-up unit will be used for opting in the user in the request.\n\n    - Callers of this endpoint have the option to omit `signUpSourceId` and, instead, provide both a `locale` and a `subscriptionType` (see below for field details). \n    Given the locale and subscription type, Attentive will resolve any matching API opt-in units. To opt-in a user to a subscription without a `signUpSourceId` and exclusively based on locale and subscription type,\n    there must be exactly one API sign-up unit that matches the provided locale and subscription type. Conversely, requests that contain a locale and a subscription type\n    that do not have a corresponding sign-up unit or that have multiple matching sign-up units will receive a `400` response and will not opt a user into a subscription.\n\n- Phone numbers must be submitted in [e164 format](https://en.wikipedia.org/wiki/E.164).\n    - valid examples: `+19148440001`, `+442071838750`, `+551155256325`\n    - invalid examples: `19148440001`, `+1---914---844---0001`, `1 () 914 844 0001`\n","operationId":"addSubscriptions","tags":["Subscribers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSubscriptionsRequestDto"}}}},"responses":{"202":{"description":"Accepted a create subscription(s) request. The response body will contain info about which subscription(s) already exist, and which subscription(s) will be created (asynchronously).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSubscriptionsResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["subscriptions:read"]}],"summary":"Get subscription eligibility for a user","description":"Make a call to this endpoint to list all subscription types and channels a user is subscribed to. You can query for a subscriber using either their phone number or email. One of the query parameters is required in order to look up a subscriber. As an example, you can use this endpoint to check if a subscriber is eligible to receive SMS or email campaigns, and then send them a message based on that eligibility.\n","operationId":"getSubscriptions","tags":["Subscribers"],"parameters":[{"in":"query","name":"phone","schema":{"type":"string","example":"%2B13115552368"},"description":"A user's phone number we use to fetch subscription eligibility."},{"in":"query","name":"email","schema":{"type":"string","example":"test@gmail.com"},"description":"A user's email we use to fetch subscription eligibility."}],"responses":{"200":{"description":"Successfully accepted get subscriptions request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSubscriptionsResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/subscriptions/unsubscribe":{"post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["subscriptions:write"]}],"summary":"Unsubscribe subscriptions for a user","description":"Make a call to this endpoint to unsubscribe a user from a subscription type or channel. If no subscriptions\nare present in the request, the user is unsubscribed from all subscriptions. If subscriptions are present\nin the request, the user is unsubscribed from the requested type or channel combination. By default, if a\nsubscription exists, but the user is already unsubscribed, it records the attempt to unsubscribe the\nsubscription again. For TEXT subscriptions, a message is sent to the person indicating that they are\nunsubscribed.\n\nFor the user object, the email data point determines which email subscriptions a user has and the phone data point \ndetermines which text (or sms) subscriptions a user has. Passing in an email does not locate, nor unsubscribe, \na user from any sms subscriptions. Similarly, passing in a phone does not locate, nor unsubscribe, a user from any email subscriptions.\n","operationId":"unsubscribeSubscriptions","tags":["Subscribers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeSubscriptionsRequestDto"}}}},"responses":{"202":{"description":"Accepted an unsubscribe subscription(s) request. The response body will contain info about which subscription(s) are already unsubscribed, and which subscription(s) will be unsubscribed (asynchronously).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeSubscriptionsResponseDto"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/product-catalog/uploads":{"x-external":true,"description":"Upload Product Catalog\n","post":{"x-external":true,"x-emits-event":true,"security":[{"OAuthFlow":["product_catalogs:write"]}],"summary":"Upload Product Catalog","description":"Make a call to this endpoint to start sending Attentive your full or partial product catalog.\nThe process starts with a POST to this endpoint, where you will receive a pre-signed AWS S3 URL. You can\nuse any language's http request libraries for uploading a file via HTTP. Here's how to do it with `curl` as an example\n\n\n```\ncurl --upload-file ${fileNameLocally} ${presignedURL}\n```\n\n\nand here's an example in Python\n```python\nimport requests\nwith open(filepath, 'rb') as f:\n    r = requests.put(upload_url, data=f)\n```\n\n[Here are examples from AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PresignedUrlUploadObject.html) on how to send the file over in popular programming languages. Note that you aren't interested in\nthe portion of these examples where they are generating the pre-signed URL, but simply the http call to upload the file to the URL.\n\nOnce your full or partial product catalog begins to upload, the status is updated to\n`validating` while it's processing and the file is checked for errors. After the upload is\nvalidated, the status is updated to `validated`. Once the catalog is saved, \nthe status is updated to `completed`. In cases where there are errors saving\nthe data, Attentive Engineering is notified and will contact you.\n\n\nTo ensure there are no validation errors in the file, you can set `validateOnly` parameter\nto `true` to avoid saving any data. We highly recommend this during your development to get a\nfaster feedback loop on any validation errors as you generate files.\n\n\nIf there are no errors returned in the upload response, your product catalog uploaded\nsuccessfully.\n","operationId":"postUpload","tags":["Product Catalog"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogUploadRequest"}}}},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogUploadResponse"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"x-external":true,"security":[{"OAuthFlow":["product_catalogs:read"]}],"tags":["Product Catalog"],"summary":"View Recent Catalog Uploads","description":"Make a call to this endpoint to list recent catalog uploads with their statuses to gain visibility into the ingestion workflow in order of creation. See the POST of this endpoint for details.\n`Expires` indicates how long you can wait before uploading the product catalog file. If the catalog upload expires, then we will no longer process the file that you upload and you will need to initiate  a new catalog upload.\n","operationId":"getUploads","responses":{"200":{"description":"returns the list of uploads","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalogUploadResponse"}}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/product-catalog/uploads/{uploadId}":{"x-external":true,"description":"Making a GET request with the uploadID from your original catalog upload POST will give you the updated information on how the upload is progressing. You can also use the list endpoint as well to retrieve the same data. Please see the POST of `/product-catalog/uploads` for more detail.\n","get":{"security":[{"OAuthFlow":["product_catalogs:read"]}],"summary":"Lookup Product Catalog Ingestion","tags":["Product Catalog"],"operationId":"lookupUpload","parameters":[{"name":"uploadId","in":"path","description":"The upload ID returned from a previous call","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Returns the provided upload status update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogUploadResponse"}}}},"400":{"$ref":"#/components/responses/InvalidParameter"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/privacy/delete-request":{"post":{"x-external":true,"x-emits-event":true,"summary":"Add a deletion request","description":"Make a call to this endpoint to create a new privacy deletion request. This will delete a subscriber within thirty days, provided the call was successful. Use the GET endpoint with the id returned to confirm deletion.\n","security":[{"OAuthFlow":["privacy_requests:write"]}],"tags":["Privacy Request"],"operationId":"addDeleteRequest","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyRequestAddDeleteEventDto"}}}},"responses":{"200":{"description":"Delete request added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyRequestDto"},"example":{"id":"123abc"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyRequestErrorDto"},"example":{"error":"Must either specify subscriberPhone or subscriberEmail"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/privacy/delete-request/{id}":{"get":{"x-external":true,"x-emits-event":true,"summary":"Get a CCPA delete request by Id","security":[{"OAuthFlow":["privacy_requests:read"]}],"tags":["Privacy Request"],"operationId":"getDeleteRequest","parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Alphanumeric ID of the request to get"}],"responses":{"200":{"description":"Delete request fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyRequestDto"},"example":{"id":"123abc","processed":true,"type":"DELETE","subjectPhone":"+*****5555","subjectEmail":"a**@website.com","requestMsg":"The subscriber requested to be removed","requestDateTime":"2020-09-02T17:44:23.875+0000","processingStartDateTime":"2020-09-02T17:45:23.875+0000","processingEndDateTime":"2020-09-02T17:46:23.875+0000"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/identity-resolution/user-identifiers":{"post":{"x-external":true,"x-emits-event":false,"security":[{"OAuthFlow":["identity:write"]}],"summary":"Add a client user identifier or custom identifier(s) to a user","description":"Make a call to this endpoint to associate a client user identifier or custom identifier(s) with other identifiers. A client user or custom identifier needs to be accompanied by at least one other identifier of the following types: phone, email, shopify id, klaviyo id, client user identifier, or custom identifier.\n","operationId":"identify","tags":["Identity"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifyRequestDto"}}}},"responses":{"202":{"description":"Request processed."},"400":{"$ref":"#/components/responses/InvalidParameter"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"OAuthFlow":{"type":"oauth2","description":"This API uses OAuth 2 with the authorization code grant flow. [More info](https://docs.attentivemobile.com/pages/authentication/)","flows":{"authorizationCode":{"authorizationUrl":"https://ui-devel.attentivemobile.com/integrations/oauth-install?client_id={clientId}&redirect_uri={redirectUri}&scope={scope}","tokenUrl":"https://api.attentivemobile.com/v1/authorization-codes/tokens","scopes":{"subscriptions:write":"write subscription events","events:write":"write custom events","ecommerce:write":"write ecommerce events"}}}}},"schemas":{"CreateTokenRequestDto":{"type":"object","properties":{"applicationName":{"type":"string","description":"an application name","example":"Pillow Api"},"contactEmail":{"type":"string","description":"an email address for a person at the company","example":"name@company.com"}}},"CreateTokenResponseDto":{"type":"object","properties":{"access_token":{"type":"string","description":"a provisioned token associated with the company application","example":"riSm9jz2Tq2XKO8ZqS1+CJg8tOJ8cALn19zRlQc9s1"},"id_token":{"type":"string","description":"a provisioned id token associated with the company application","example":"riSm9jz2Tq2XKO8ZqS1+CJg8tOJ8cALn19zRlQc9s1"},"token_type":{"type":"string","description":"a type of the token","example":"Bearer"}}},"LegacyCreateTokenDto":{"type":"object","properties":{"token":{"type":"string","description":"a provisioned token associated with the company application","example":"riSm9jz2Tq2XKO8ZqS1+CJg8tOJ8cALn19zRlQc9s1"}}},"RegenerateTokenResponseDto":{"type":"object","properties":{"token":{"type":"string","description":"a provisioned token associated with the company application","example":"riSm9jz2Tq2XKO8ZqS1+CJg8tOJ8cALn19zRlQc9s1"}}},"GetCompanyApplicationsResponse":{"type":"object","properties":{"companyApplications":{"type":"array","items":{"$ref":"#/components/schemas/InstalledCompanyApplicationDto"}}}},"CreateApplicationRequest":{"type":"object","properties":{"name":{"type":"string","description":"an application name","example":"Pillow Api"},"contactEmail":{"type":"string","description":"an email address for a person at the company","example":"name@company.com"},"scopes":{"type":"array","items":{"type":"string"},"description":"scopes required for this application","example":["ecommerce:all","events:all"]},"supportsWildcardRedirect":{"type":"boolean","description":"Are wildcards allowed in redirect URLs for this application?"},"ssoTokenType":{"type":"string","description":"whether application is allowed to grant 'IDENTITY' or 'API' sso tokens"}}},"CreateTokenRequest":{"type":"object","properties":{"grantType":{"type":"string","description":"Type of grant. Currently, authorization_code is the only accepted type.","example":"authorization_code"},"code":{"type":"string","description":"Authorization code provided after the user authorizes the scopes during the application install process.","example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"redirectUri":{"type":"string","description":"The same redirect URI that was used when requesting the authorization code.","example":"https://test.com"},"clientId":{"type":"string","description":"The application’s client ID which can be found on the Manage Distribution tab for the application.","example":"9f7a2f11a4f849f59268869ec766111c"},"clientSecret":{"type":"string","description":"The application’s client secret which can be found on the Manage Distribution tab for the application.","example":"0FvaRpPi5KBC4Izj9ALA0AG8J2WdcBhU"},"codeVerifier":{"type":"string","description":"A random string compared to the codeChallenge to verify the token exchange is completed by initiator."}},"required":["grantType","clientSecret","clientId","redirectUri","code"]},"CreateApplicationResponse":{"type":"object","properties":{"name":{"type":"string","description":"name of application","example":"Pillow Api"},"id":{"type":"integer","format":"int64","description":"id of application that was created","example":17},"contactEmail":{"type":"string","description":"an email address for the application owner","example":"name@company.com"},"token":{"type":"string","description":"a provisioned token associated with the company application","example":"riSm9jz2Tq2XKO8ZqS1+CJg8tOJ8cALn19zRlQc9s1"}}},"GetConnectionTypeResponse":{"type":"object","properties":{"connectionType":{"type":"string","description":"connection type","example":"GOOGLE"},"connectionId":{"type":"string","description":"connection id","example":"googleSso1"},"connectionName":{"type":"string","description":"connection name","example":"googleSSO"}}},"CreateAuthorizationCodeRequest":{"type":"object","properties":{"responseType":{"type":"string","description":"Type of OAuth flow request. Currently, code is the only accepted type.","example":"code"},"clientId":{"type":"string","description":"client id for an application","example":"2a7f236c11d146b6a82464c66a1bee5c"},"redirectUri":{"type":"string","description":"uri to redirect to with authorization code","example":"https://example.com"},"scopes":{"type":"array","items":{"type":"string"},"description":"scopes required for this application","example":["events:all","ecommerce:all"]},"state":{"type":"string","description":"random string from application caller","example":"xcoiv98y2kd22vusuye3kch"},"entityType":{"type":"string","description":"type of entity for which auth code would be genereated; either 'company_application' or 'user'"},"codeChallenge":{"type":"string","description":"transformed codeVerifier stored to verify during the token exchange that the exchange occurs by the initiator"},"challengeMethod":{"type":"string","description":"encoding applied to the codeVerifier to create the codeChallenge","example":"sha256 or plain"}},"required":["clientId","redirectUri","scopes","responseType","entityType"]},"CreateAuthorizationCodeResponse":{"type":"object","properties":{"code":{"type":"string","description":"short lived authorization code","example":"g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3"},"state":{"type":"string","description":"random string from application caller","example":"xcoiv98y2kd22vusuye3kch"}}},"UpdateApplicationRequest":{"type":"object","properties":{"name":{"type":"string","description":"an application name","example":"Pillow Api"},"contactEmail":{"type":"string","description":"an email address for a person at the company","example":"name@company.com"},"status":{"type":"string","description":"status of the application","example":"private"},"scopes":{"type":"array","items":{"type":"string"},"description":"scopes required for this application","example":["ecommerce:all","events:all"]},"supportsWildcardRedirect":{"type":"boolean","description":"Are wildcards allowed in redirect URLs for this application?"},"ssoTokenType":{"type":"string","description":"whether application is allowed to grant 'IDENTITY' or 'API' sso tokens"}}},"UpdateApplicationResponse":{"type":"object","properties":{"name":{"type":"string","description":"name of application","example":"Pillow Api"},"id":{"type":"integer","format":"int64","description":"id of application that was updated","example":17}}},"UpdateRedirectUrlsRequest":{"type":"object","properties":{"redirectUrls":{"type":"array","items":{"type":"string"},"description":"redirect urls for oAuth flow","example":["https://www.test.com","localhost:1234","https://testredirect.com/test1/test2"]}}},"UpdateRedirectUrlsResponse":{"type":"object","properties":{"validRedirectUrls":{"type":"array","items":{"type":"string"},"description":"redirect urls for oAuth flow","example":["https://www.test.com","localhost:1234","https://testredirect.com/test1/test2"]}}},"GetMeResponseDto":{"type":"object","properties":{"applicationName":{"type":"string","description":"The application name.","example":"Pillow Api"},"attentiveDomainName":{"type":"string","description":"The Attentive domain name.","example":"hudsonivy.attn.tv"},"companyName":{"type":"string","description":"The company name in the Attentive platform.","example":"Hudson & Ivy"},"contactEmail":{"type":"string","description":"The contact email associated with the application.","example":"name@company.com"},"companyId":{"type":"string","description":"The installer company ID","example":"MDc6Q29tcGFueTI"}}},"CreateWebhookRequestDto":{"type":"object","properties":{"url":{"type":"string","description":"The destination url of the webhook","example":"https://example.com/webhooks"},"events":{"type":"array","items":{"type":"string"},"description":"The list of events this webhook is subscribed to","example":["sms.sent","phone.subscribed"]}}},"CreateWebhookResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"The id of the installed webhook","example":"MjU6Q29tcGFueUFwcGxpY2F0aW9uV2ViaG9vazIy"},"url":{"type":"string","description":"The destination url of the webhook","example":"https://example.com/webhooks"},"events":{"type":"array","items":{"type":"string"},"description":"The list of events this webhook is subscribed to","example":["sms.sent","phone.subscribed"]},"type":{"type":"string","description":"The type of webhook; can be either `INSTALLED` or `CREATOR`"},"disabledAt":{"type":"string","description":"(optional) Date (YYYY-MM-DD hh:mm:ss) of when the webhook was deleted if it was deleted"}}},"UpdateWebhookRequestDto":{"type":"object","properties":{"url":{"type":"string","description":"The destination url of the webhook","example":"https://example.com/webhooks"},"events":{"type":"array","items":{"type":"string"},"description":"The list of events this webhook is subscribed to","example":["sms.sent","phone.subscribed"]},"disabled":{"type":"boolean","description":"(optional) Disable the webhook endpoint if set to true."}}},"UpdateWebhookResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"The id of the installed webhook","example":"MjU6Q29tcGFueUFwcGxpY2F0aW9uV2ViaG9vazIy"},"url":{"type":"string","description":"The destination url of the webhook","example":"https://example.com/webhooks"},"events":{"type":"array","items":{"type":"string"},"description":"The list of events this webhook is subscribed to","example":["sms.sent","phone.subscribed"]},"type":{"type":"string","description":"The type of webhook; can be either `INSTALLED` or `CREATOR`"},"disabledAt":{"type":"string","description":"(optional) Date (YYYY-MM-DD hh:mm:ss) of when the webhook was deleted if it was deleted"}}},"GetWebhooksResponseDto":{"type":"object","properties":{"webhooks":{"type":"array","items":{"$ref":"#/components/schemas/GetWebhookResponseDto"}}}},"GetWebhookResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"The id of the installed webhook","example":"MjU6Q29tcGFueUFwcGxpY2F0aW9uV2ViaG9vazIy"},"url":{"type":"string","description":"The destination url of the webhook","example":"https://example.com/webhooks"},"type":{"type":"string","description":"The type of webhook; can be either `SUBSCRIPTION` or `STATIC`"},"events":{"type":"array","items":{"type":"string"},"description":"The list of events this webhook is subscribed to","example":["sms.sent","phone.subscribed"]},"companyId":{"type":"string","description":"The installer company ID","example":"MDc6Q29tcGFueTI"},"disabledAt":{"type":"string","description":"(optional) Date (YYYY-MM-DD hh:mm:ss) of when the webhook was deleted if it was deleted"}}},"RevokeTokenRequestDto":{"type":"object","properties":{"companyId":{"type":"string","description":"a company id","example":33},"companyApplicationId":{"type":"string","description":"a company application id","example":22}}},"RevokeTokenResponseDto":{"type":"object","properties":{"errors":{"type":"string","description":"errors when attempting to revoke token"}}},"UpdateTokenRequestDto":{"type":"object","properties":{"applicationName":{"type":"string","description":"an application name","example":"Pillow Api"},"contactEmail":{"type":"string","description":"an email address for a person at the company","example":"name@company.com"}}},"GetApplicationsResponse":{"type":"object","properties":{"applications":{"type":"array","items":{"$ref":"#/components/schemas/GetApplicationResponse"}}}},"GetApplicationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"id of application"},"name":{"type":"string","description":"an application name","example":"Pillow API"},"contactEmail":{"type":"string","description":"an email address for a person at the company","example":"name@company.com"},"scopes":{"type":"array","items":{"type":"string"},"description":"scopes required for this application","example":["ecommerce:all","events:all"]},"redirectUrls":{"type":"array","items":{"type":"string"},"description":"where users will be redirected after successful authorization.","example":["https:test.com","https://localhost:1234","https:test.com/redirect-flow"]},"supportsWildcardRedirect":{"type":"boolean","description":"Are wildcards allowed in redirect URLs for this application?"},"hint":{"type":"string","description":"a substring of the company application token","example":"asdfas3j3m"},"tags":{"type":"array","default":[],"items":{"type":"string"},"description":"List of tags associated with an application","example":["FREE_TRIAL","PROMOTIONAL"]},"distributionStatus":{"type":"string","description":"status of application","example":"private"},"imageUrl":{"type":"string","description":"the url of the uploaded brand image","example":"https://attentive-files.s3.amazonaws.com/6f8d195f.png"},"clientId":{"type":"string","description":"client id"},"clientSecret":{"type":"string","description":"client secret"},"creatorCompanyApplicationId":{"type":"integer","format":"int64","description":"(optional) id of the company application for this application's creators"},"applicationWebhook":{"$ref":"#/components/schemas/ApplicationWebhookDto"},"description":{"type":"string","description":"description of the application"},"jointValueProp":{"type":"string","description":"description of the value add between Attentive and the application"},"salesEmail":{"type":"string","description":"sales email to contact for partnership information"},"documentationFormUrl":{"type":"string","description":"link to completed documentation form needed to publish application"},"installUrl":{"type":"string","description":"URL the user is taken to after selecting install"},"supportEmail":{"type":"string","description":"support email shown on the beta module and learn page"},"categories":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationCategories"}},"companyUrl":{"type":"string","description":"company URL shown on application learn page"},"tier":{"type":"string","description":"partnership tier of the application."},"attentiveFeatures":{"type":"array","items":{"$ref":"#/components/schemas/attentiveFeature"}},"prerequisites":{"type":"array","items":{"type":"string","description":"prerequisites to use the application"}},"documentationLinks":{"type":"array","items":{"$ref":"#/components/schemas/documentationLink"}},"submittedForApproval":{"type":"boolean","description":"has this application been submitted for beta status approval"},"createdAt":{"type":"string","description":"date (YYYY-MM-DD) of when the application was created, in the time zone of the creator company."},"companyTimeZone":{"type":"string","description":"time zone of the application creator's company","example":"America/New_York"},"ssoTokenType":{"type":"string","description":"whether application is allowed to grant 'IDENTITY' or 'API' sso tokens"}}},"ApplicationCategories":{"type":"object","description":"an application category","properties":{"applicationId":{"type":"integer","format":"int64","description":"id of the application category"},"name":{"type":"string","description":"category name"},"primary":{"type":"boolean","default":true,"description":"boolean flag to notify when a category is or is not a primary category"}}},"FeaturedApplicationRequestDto":{"type":"object","description":"A featured application","properties":{"applicationId":{"type":"integer","format":"int64","description":"id of the application"},"applicationType":{"type":"string","description":"application type - either PUBLIC_API or INTEGRATION"},"featuredImageUrl":{"type":"string","description":"URL for featured app image"}}},"FeaturedApplicationResponseDto":{"type":"object","description":"A featured application","properties":{"applicationId":{"type":"integer","format":"int64","description":"id of the application"},"applicationType":{"type":"string","description":"application type - either PUBLIC_API or INTEGRATION"},"position":{"type":"integer","description":"order of the featured application in the list"},"featuredImageUrl":{"type":"string","description":"URL for featured app image"},"lastUpdated":{"type":"string","description":"(YYYY-MM-DD hh:mm:ss) when this featured app was last updated."}}},"GetAppStoreFeaturedApplicationsResponse":{"type":"array","description":"An array of featured application objects ordered by position","items":{"$ref":"#/components/schemas/FeaturedApplicationResponseDto"}},"UpdateAppStoreFeaturedApplicationsRequest":{"type":"array","description":"An array of featured application objects ordered by position","items":{"$ref":"#/components/schemas/FeaturedApplicationRequestDto"}},"ContactFormSubmissionRequest":{"type":"object","description":"A contact form submission","properties":{"applicationId":{"type":"string","description":"the id of the application"},"applicationType":{"type":"string","description":"type of application; either 'INTEGRATION' or 'PUBLIC_API'"},"toAddress":{"type":"string","description":"Optional to email address for non partners"},"fullName":{"type":"string","description":"Full Name"},"businessName":{"type":"string","description":"Business name"},"businessEmail":{"type":"string","format":"email","description":"Business email address"},"businessPhone":{"type":"string","description":"Business phone number"},"websiteUrl":{"type":"string","description":"Business Url"},"country":{"type":"string","description":"Country"},"annualRevenueVolume":{"type":"string","description":"Annual Revenue Volume"},"message":{"type":"string","description":"Optional message for the company"}}},"GetAppStoreApplicationResponse":{"type":"object","description":"This response is to display a publicly available application to installers","properties":{"applicationId":{"type":"integer","format":"int64","description":"id of application"},"name":{"type":"string","description":"an application name","example":"Pillow API"},"scopes":{"type":"array","items":{"type":"string"},"description":"scopes required for this application","example":["ecommerce:all","events:all"]},"tags":{"type":"array","default":[],"items":{"type":"string"},"description":"List of tags associated with an application","example":["FREE_TRIAL","PROMOTIONAL"]},"status":{"type":"string","description":"application status","example":"beta"},"companyApplicationId":{"type":"integer","format":"int64","description":"(optional) id of the company application installed"},"supportEmail":{"type":"string","description":"support email listed on learn page and beta module"},"imageUrl":{"type":"string","description":"URL for application thumbnail"},"creatorCompany":{"type":"string","description":"company name of application creator"},"description":{"type":"string","description":"application description"},"tier":{"type":"string","description":"partnership tier of the application."},"jointValueProp":{"type":"string","description":"description of the value add between Attentive and the application"},"salesEmail":{"type":"string","description":"sales email to contact for partnership information"},"prerequisites":{"type":"array","items":{"type":"string"},"description":"prerequisites for using this application"},"companyUrl":{"type":"string","description":"URL for application creator's company website"},"installUrl":{"type":"string","description":"URL the installer is taken to"},"attentiveFeatures":{"type":"array","items":{"$ref":"#/components/schemas/attentiveFeature"}},"documentationLinks":{"type":"array","items":{"$ref":"#/components/schemas/documentationLink"}},"clientId":{"type":"string","description":"client id"},"redirectUrls":{"type":"array","items":{"type":"string"},"description":"redirect urls for oAuth flow"},"hasApplicationWebhook":{"type":"boolean","default":false,"description":"boolean flag whether or not the application as an ApplicationWebhook enabled"},"needsUpdate":{"type":"boolean","default":false,"description":"boolean flag to notify if CompanyApplication needs to be reinstalled bc of scopes or webhooks"},"totalInstalls":{"type":"number","format":"double","description":"Normalized total number of installs for this application"},"totalRecentInstalls":{"type":"number","format":"double","description":"Normalized number of installs for this application in the last 90 days"},"appPublishedDate":{"type":"string","description":"The date the app was published"},"categories":{"type":"array","description":"an array of an application's categories","items":{"$ref":"#/components/schemas/ApplicationCategories"}}}},"UpdateAppStoreDistributionDto":{"type":"object","properties":{"distributionStatus":{"type":"string","description":"status of application","example":"private"},"tier":{"type":"string","description":"Application tier; can be either `ELITE` or `PREMIER`","example":"ELITE"}}},"GetAppStoreApplicationsResponse":{"type":"object","properties":{"applications":{"type":"array","items":{"$ref":"#/components/schemas/GetAppStoreApplicationResponse"}}}},"UpdateAppStoreApplicationRequest":{"type":"object","properties":{"imageUrl":{"type":"string","description":"image url for the thumbnail of the application"},"description":{"type":"string","description":"application description to be found on the application's learn page."},"jointValueProp":{"type":"string","description":"description of the value add between Attentive and the application"},"salesEmail":{"type":"string","description":"sales email to contact for partnership information"},"documentationFormUrl":{"type":"string","description":"link to completed documentation form needed to publish application"},"supportEmail":{"type":"string","description":"support email to be found on the application's learn page."},"tags":{"type":"array","default":[],"items":{"type":"string"},"description":"List of tags associated with an application","example":["FREE_TRIAL","PROMOTIONAL"]},"prerequisites":{"type":"array","items":{"type":"string","description":"the What You'll Need items shown on the learn page."}},"companyUrl":{"type":"string","description":"company url found on the application's learn page."},"installUrl":{"type":"string","description":"url the user is taken to after selecting install on the learn page."},"attentiveFeatures":{"type":"array","description":"attentive features this application integrates with and their respective descriptions.","items":{"$ref":"#/components/schemas/attentiveFeature"}},"documentationLinks":{"type":"array","description":"documentation urls and their associated message displayed on the learn page.","items":{"$ref":"#/components/schemas/documentationLink"}},"categories":{"type":"array","description":"an array of an application's categories","items":{"$ref":"#/components/schemas/ApplicationCategories"}}}},"UpdateAppStoreApplicationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"SubmitApplicationForApprovalRequest":{"type":"object","properties":{"applicationLink":{"type":"string","example":"https://ui-devel.attentivemobile.com/integrations/marketplace/9999/preview"}}},"SubmitApplicationForApprovalResponse":{"properties":{"id":{"type":"integer","format":"int64"},"applicationLink":{"type":"string"}}},"GetApplicationInstallersResponse":{"type":"object","properties":{"installers":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationInstaller"}}}},"ApplicationInstaller":{"type":"object","properties":{"companyApplicationId":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string","description":"company associated with the company_application"},"installDate":{"type":"string","description":"last date (YYYY-MM-DD) the installing company installed the company_application","example":"2000/12/31"},"uninstallDate":{"type":"string","description":"either a date (string) in YYYY-MM-DD format if the app has been uninstalled, or null for an active company_application."},"needsUpdate":{"type":"boolean","description":"flag for whether this company_application needs an update or not"}}},"GetApplicationInstallStatsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationInstallStats"}}}},"ApplicationInstallStats":{"type":"object","properties":{"startDateTime":{"type":"string","description":"the start date & time of the app metrics presented \"(YYYY-MM-DD HH:MM:SS)\"","example":"2021-12-31 23:59:59"},"endDateTime":{"type":"string","description":"the end date & time of the app metrics presented \"(YYYY-MM-DD HH:MM:SS)\"","example":"2021-12-31 23:59:59"},"installs":{"type":"integer","format":"int64","description":"the number of installs that occurred within this window of time"},"uninstalls":{"type":"integer","format":"int64","description":"the number of uninstalls that occurred within this window of time"}}},"GetApplicationRequestersResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationRequester"}}}},"ApplicationRequester":{"type":"object","properties":{"companyApplicationId":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string"},"requests":{"type":"integer","format":"int64","description":"number of requests this installer has made during the requested time window"}}},"GetApplicationRequestStatsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationRequestStats"}}}},"ApplicationRequestStats":{"type":"object","properties":{"startDateTime":{"type":"string","description":"the start date & time of the app metrics presented \"(YYYY-MM-DD HH:MM:SS)\"","example":"2021-12-31 23:59:59"},"endDateTime":{"type":"string","description":"the end date & time of the app metrics presented \"(YYYY-MM-DD HH:MM:SS)\"","example":"2021-12-31 23:59:59"},"requests":{"type":"integer","format":"int64","description":"the number of requests that occurred within this window of time"}}},"GetContactCardResponse":{"type":"object","description":"contact card info","properties":{"displayName":{"type":"string"},"mediaUrl":{"type":"string"},"imageUrl":{"type":"string"},"active":{"type":"boolean"},"id":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"isDeleted":{"type":"boolean"},"title":{"type":"string"},"companyUrl":{"type":"string"},"secondaryUrl":{"type":"string"},"email":{"type":"string"},"companyLegalName":{"type":"string"},"useAddressFromSettingsUI":{"type":"boolean"},"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"city":{"type":"string"},"addressCountry":{"type":"string"},"state":{"type":"string"},"zipcode":{"type":"string"},"phones":{"type":"array","items":{"type":"string"}}}},"UpdateContactCardRequest":{"type":"object","description":"contact card info","properties":{"displayName":{"type":"string"},"mediaUrl":{"type":"string"},"imageUrl":{"type":"string"},"active":{"type":"boolean"},"id":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"isDeleted":{"type":"boolean"},"title":{"type":"string"},"companyUrl":{"type":"string"},"secondaryUrl":{"type":"string"},"email":{"type":"string"},"companyLegalName":{"type":"string"},"useAddressFromSettingsUI":{"type":"boolean"},"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"city":{"type":"string"},"addressCountry":{"type":"string"},"state":{"type":"string"},"zipcode":{"type":"string"},"phones":{"type":"array","items":{"type":"string"}}}},"TestTokenRequestDto":{"type":"object","properties":{"companyId":{"type":"integer","format":"int64","description":"Get a user tied to this company id"},"duration":{"type":"string","format":"duration","description":"How long the JWT should last (using [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) duration syntax)","example":"PT15M"},"purpose":{"type":"string","description":"use this to namespace so that we don't create new users every testrun","example":"E2E_load_testing"},"testRole":{"type":"string","description":"replaced with purpose","deprecated":true},"roles":{"type":"array","items":{"type":"string"},"description":"Grant some list of roles to the user. See [auth.proto](https://github.com/attentive-mobile/code/blob/master/protobuf-common/src/main/proto/com/attentivemobile/protobuf/common/auth/auth.proto#L13) for a list of all valid roles.\n","example":["ROLE_SUPER_USER","ROLE_MESSAGING_OPS"]}}},"GoogleLoginRequestDto":{"type":"object","properties":{"token":{"type":"string","description":"a JWT returned by Google SSO","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"},"companyId":{"type":"integer","format":"int64","description":"The (optional) id of a specific company to sign in to"}}},"InstalledCompanyApplicationDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"The id of the company application","example":64},"applicationName":{"type":"string","description":"name of the application","example":"Rudderstack"},"distributionStatus":{"type":"string","description":"status of application","example":"private"}}},"ScopeDto":{"type":"object","properties":{"name":{"type":"string","description":"scope name","example":"write:ecommerce"},"description":{"type":"string","description":"scope description","example":"scope to write ecommerce events"},"endpointTag":{"type":"string","description":"the tag that this scope is related to"},"documentationLink":{"type":"string","description":"link to relevant documentation","example":"https://docs.attentivemobile.com/openapi/reference/tag/eCommerce/"},"accessDescription":{"type":"string","description":"the detailed descrition of the access for the scope. Used in install page tool tip."}}},"GetScopesResponse":{"type":"object","properties":{"scopes":{"type":"array","items":{"$ref":"#/components/schemas/ScopeDto"}}}},"ClientCredentialsResponse":{"type":"object","properties":{"applicationId":{"type":"integer","format":"int64","description":"id of application"},"clientId":{"type":"string","description":"Id of the client"},"clientSecret":{"type":"string","description":"secret for the client"}}},"ApplicationWebhookDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"id of applicationWebhook"},"applicationId":{"type":"integer","format":"int64","description":"id of application"},"destination":{"type":"string","description":"destination endpoint of webhook"},"clientSecret":{"type":"string","description":"client secret provided to the client to verify webhooks"},"webhookStatus":{"type":"string","description":"status of webhook, defaults to INACTIVE"},"webhookType":{"type":"string","description":"status of webhook, defaults to UNIVERSAL"},"eventTypeIds":{"type":"array","items":{"type":"integer","format":"int64"},"description":"list of event type ids"}}},"EventTypeDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"id of event type"},"name":{"type":"string","description":"name"},"type":{"type":"string","description":"specific type of event"},"displayName":{"type":"string","description":"event name to be displayed"}}},"SsoConnectionDto":{"type":"object","properties":{"connectionName":{"type":"string","description":"connection name"},"connectionType":{"type":"string","description":"connection type"},"domain":{"type":"string","description":"domain"},"configurationJson":{"type":"object","description":"sso configuration for connection type"},"configurationJsonBak":{"type":"object","description":"sso back up configuration to be used for sso testing etc."},"status":{"type":"string","description":"whether or not this sso configuration is active"}}},"ProfileDto":{"type":"object","properties":{"sub":{"type":"string","description":"unique user identifier","example":"abc123"},"email":{"type":"string","description":"the email of the user","example":"test@test.com"}}},"GetOpenIdMetadataResponse":{"type":"object","properties":{"issuer":{"type":"string","format":"uri","description":"issuer of the auth token"},"authorization_endpoint":{"type":"string","format":"uri","description":"authorization endpoint to send auth request"},"token_endpoint":{"type":"string","format":"uri","description":"endpoint to request access token"},"jwks_uri":{"type":"string","format":"uri","description":"endpoint to get public jwks"},"userinfo_endpoint":{"type":"string","format":"uri","description":"endpoint to get user info for the token"},"scopes_supported":{"type":"array","items":{"type":"string"},"description":"scopes supported","example":"openid email profile"},"response_types_supported":{"type":"array","items":{"type":"string"},"description":"response types supported for authorization endpoint","example":"code"},"grant_types_supported":{"type":"array","items":{"type":"string"},"description":"grant types supported for token endpoint","example":"authorization_code"},"claims_supported":{"type":"array","items":{"type":"string"},"description":"claims supported in the token","example":"iss, email and so on"}}},"ImageUploadResponseDto":{"type":"object","properties":{"externalUrl":{"type":"string","description":"Url for image storage location","example":"company.attn.tv/appThumbnailImage/1.png"}}},"attentiveFeature":{"type":"object","properties":{"type":{"type":"string","description":"attentive feature that the application integrates with","example":"JOURNEYS"},"description":{"type":"string","description":"description of how this application integrates with the relevant feature"}}},"documentationLink":{"type":"object","properties":{"text":{"type":"string","description":"the text displayed for the embedded url"},"url":{"type":"string"}}},"ApplicationGid":{"type":"object","properties":{"id":{"type":"string","description":"external graphQL id of the corresponding application"}}},"ForgotPasswordRequest":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email to send the forgot password"}}},"OnboardingWelcomeEmailRequest":{"type":"object","required":["email","cc","bcc","externalId","boomerang"],"properties":{"email":{"type":"string","description":"Email to send the onboarding welcome"},"cc":{"type":"array","items":{"type":"string"},"description":"CC this user, typically the account exec, on the onboarding welcome e-mail"},"bcc":{"type":"array","items":{"type":"string"},"description":"BCC this user, typically the engineering team, on the onboarding welcome e-mail"},"externalId":{"type":"string","description":"External Company ID"},"boomerang":{"type":"boolean","description":"If true, use the e-mail template for a boomerang customer returning to Attentive"}}},"VerifyEmailTokenResponse":{"type":"object","properties":{"email":{"type":"string"}}},"VerifyCreatePasswordResponse":{"type":"object","properties":{"userEmail":{"type":"string"},"redirectToSignin":{"type":"boolean"},"hasExpiredToken":{"type":"boolean"},"companyId":{"type":"integer","format":"int64"}}},"ChangePasswordRequest":{"type":"object","required":["password"],"properties":{"password":{"type":"string","description":"New password"}}},"LoginRequestDto":{"type":"object","properties":{"email":{"type":"string","description":"email id","example":"test@test.com"},"password":{"type":"string","format":"password","description":"password associated with the email id","example":"password"}}},"LoginResponseDto":{"type":"object","properties":{"token":{"type":"string","description":"JWT token"}}},"RefreshSessionDto":{"type":"object","properties":{"token":{"type":"string","description":"JWT token"},"companyId":{"description":"An internal company id","type":"integer","format":"int64"},"companyGqlId":{"description":"A company id in a GraphQL-compatible format","type":"string"}}},"RefreshSessionRequest":{"type":"object","description":"Optional request body for a session refresh","properties":{"companyExternalId":{"type":"integer","format":"int64","description":"The (optional) external_id of a specific company to sign in to. If the user cannot access this company, they will use a different company instead.\n"},"companyGqlId":{"type":"string","description":"The (optional) GraphQL-formatted ID of a specific company to sign in to. If the user cannot access this company, they will use a different company instead.\n"},"companyId":{"type":"integer","format":"int64","description":"The (optional) internal id of a specific company to sign in to. If the user cannot access this company, they will use a different company instead.\n","example":64}}},"UserDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"companies":{"type":"array","items":{"$ref":"#/components/schemas/UserCompanyDto"}},"company":{"$ref":"#/components/schemas/CompanyDto"},"department":{"type":"string"},"phone":{"type":"string"},"created":{"type":"string"},"deleted":{"type":"string"},"hasSignature":{"type":"boolean"},"signature":{"type":"string"},"superUser":{"type":"boolean"},"role":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}}},"UserCompanyDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"displayName":{"type":"string"}}},"CompanyDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"displayName":{"type":"string"},"externalId":{"type":"integer","format":"int64"},"domain":{"type":"string"},"attentiveDomain":{"type":"string"},"status":{"type":"string"},"country":{"type":"string"},"confirmOptIn":{"type":"string"},"timezone":{"type":"string"},"businessHours":{"$ref":"#/components/schemas/BusinessHoursDto"},"nonAttentiveMessageLinksAllowed":{"type":"boolean"},"viewThroughAttributionWindow":{"type":"integer","format":"int64"},"clickThroughAttributionWindow":{"type":"integer","format":"int64"},"rateLimit":{"type":"integer","format":"double"},"mmsRateLimit":{"type":"integer","format":"double"},"replyWhenOptedOut":{"type":"boolean"},"csTier":{"type":"string"},"goLiveDate":{"type":"string","format":"offset-date-time"},"vertical":{"type":"string"},"launchStatus":{"type":"string"},"lostType":{"type":"string"},"freeTrialEndDate":{"type":"string","format":"offset-date-time"},"inFreeTrial":{"type":"boolean"},"isLive":{"type":"boolean"},"isAccountSuspended":{"type":"boolean"},"companyType":{"type":"string"},"upcomingRenewalDate":{"type":"string","format":"offset-date-time"},"managingAgencyId":{"type":"string"},"managingAgencyName":{"type":"string"}}},"BusinessHoursDto":{"type":"object","properties":{"open":{"type":"string","format":"localtime"},"close":{"type":"string","format":"localtime"},"timezone":{"type":"string"}}},"ScimUserDto":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"externalId":{"type":"string"},"locale":{"type":"string"},"userName":{"type":"string"},"name":{"$ref":"#/components/schemas/NameDto"},"emails":{"type":"array","items":{"$ref":"#/components/schemas/EmailDto"}},"displayName":{"type":"string"},"userType":{"type":"string"},"phoneNumber":{"type":"string"},"password":{"type":"string"},"active":{"type":"boolean"},"meta":{"$ref":"#/components/schemas/MetaDto"}}},"NameDto":{"type":"object","properties":{"givenName":{"type":"string"},"middleName":{"type":"string"},"familyName":{"type":"string"}}},"EmailDto":{"type":"object","properties":{"primary":{"type":"boolean"},"value":{"type":"string"},"type":{"type":"string"},"display":{"type":"string"}}},"ScimGroupDto":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"displayName":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/MemberDto"}},"meta":{"$ref":"#/components/schemas/MetaDto"}}},"MemberDto":{"type":"object","properties":{"value":{"type":"string","description":"id field of the account member of the group"},"display":{"type":"string","description":"display name (email) of the account member of the group"}}},"MetaDto":{"type":"object","properties":{"resourceType":{"type":"string"},"created":{"type":"string"},"lastModified":{"type":"string"},"location":{"type":"string"}}},"PatchOpDto":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"Operations":{"type":"array","items":{"$ref":"#/components/schemas/OperationDto"}}}},"OperationDto":{"type":"object","properties":{"op":{"type":"string"},"path":{"type":"string","description":"(Optional) path to the field being replaced (e.g. member of id 123 on the list of members)\n"},"value":{"type":"object","description":"Key-value dictionary with field names and their new values\n"}}},"ScimUsersResponseDto":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"totalResults":{"type":"integer","format":"int64"},"startIndex":{"type":"integer","format":"int64"},"itemsPerPage":{"type":"integer","format":"int64"},"Resources":{"type":"array","items":{"$ref":"#/components/schemas/ScimUserDto"}}}},"ScimUserResponseDto":{"type":"object","$ref":"#/components/schemas/ScimUserDto"},"ScimGroupsResponseDto":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"totalResults":{"type":"integer","format":"int64"},"startIndex":{"type":"integer","format":"int64"},"itemsPerPage":{"type":"integer","format":"int64"},"Resources":{"type":"array","items":{"$ref":"#/components/schemas/ScimGroupDto"}}}},"ScimErrorResponse":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"detail":{"type":"string"},"status":{"type":"integer","format":"int64"}}},"Price":{"type":"object","properties":{"value":{"type":"number","description":"The price of the product.","example":19.99},"currency":{"type":"string","description":"The currency used for the price in [ISO 4217 format](https://www.iso.org/iso-4217-currency-codes.html).","example":"USD","default":"USD"}},"required":["value"]},"ProductRequest":{"type":"object","properties":{"productId":{"type":"string","description":"A unique identifier for the product (i.e. \"T-Shirt\"). If you are providing a [Google Shopping Feed](https://support.google.com/merchants/answer/7052112?hl=en), this should be [item_group_id](https://support.google.com/merchants/answer/6324507). If you don't have an [item_group_id](https://support.google.com/merchants/answer/6324507) in your feed, use [id](https://support.google.com/merchants/answer/6324405). If you are using [Shopify](https://help.shopify.com/en/manual/products), this should be Shopify product ID.\n","example":"AB12345"},"productVariantId":{"type":"string","description":"A unique identifier for the product variant (i.e. \"Medium Blue T-Shirt\"). If you are providing a [Google Shopping Feed](https://support.google.com/merchants/answer/7052112?hl=en), this should be [id](https://support.google.com/merchants/answer/6324405). If you are using Shopify, this should be Shopify product Variant ID.\n","example":"CD12345"},"productImage":{"type":"string","description":"A link to the image of the product. The image should not be larger than 500kb. This image will be used when sending MMS text messages.\n","example":"http://my.cdn.com/products/new-product.png"},"productUrl":{"type":"string","description":"The URL for the product.","example":"http://my-store.com/products/shirts/my-shirt"},"name":{"type":"string","description":"The name of the product. This should be in a format that could be used directly in a message.","example":"T-Shirt"},"price":{"type":"array","minItems":1,"description":"The price and currency of the product.","items":{"$ref":"#/components/schemas/Price"}},"quantity":{"type":"integer","description":"The number of products.","format":"int64","example":1}},"required":["productId","productVariantId","price"]},"OrderRequest":{"type":"object","properties":{"orderId":{"type":"string"},"orderStatusLink":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/OrderRequestItems"}},"deliveryDate":{"type":"string","format":"date-time","description":"An iso8601 datetime of the delivery date"},"occurredAt":{"type":"string","format":"date-time"},"user":{"$ref":"#/components/schemas/EventUser"}}},"OrderRequestItems":{"type":"object","properties":{"name":{"type":"string"}}},"FulfillmentRequest":{"type":"object","properties":{"orderId":{"type":"string"},"fulfillmentId":{"type":"string"},"orderStatusLink":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/OrderRequestItems"}},"deliveryDate":{"type":"string","format":"date-time","description":"An iso8601 datetime of the delivery date"},"tracking":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequestTracking"}},"occurredAt":{"type":"string","format":"date-time"},"user":{"$ref":"#/components/schemas/EventUser"}},"required":["tracking"]},"FulfillmentRequestTracking":{"type":"object","properties":{"trackingLink":{"type":"string"},"trackingNumber":{"type":"string"}},"required":["trackingNumber"]},"ProductViewRequest":{"type":"object","properties":{"items":{"type":"array","description":"List of items viewed.","items":{"$ref":"#/components/schemas/ProductRequest"}},"occurredAt":{"type":"string","format":"date-time","description":"Timestamp of when the action occurred in [ISO 8601 format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#date.and.time.format.examples). If the timestamp is older than 12 hours, it will not trigger any relevant journeys. If no timestamp is provided, it is assumed the event occurred when the endpoint is called.\n","example":"2021-03-30T14:38:29+0000"},"user":{"$ref":"#/components/schemas/EventUser"}},"required":["items","user"]},"AddToCartRequest":{"type":"object","properties":{"items":{"type":"array","description":"List of items added to cart.","items":{"$ref":"#/components/schemas/ProductRequest"}},"occurredAt":{"type":"string","format":"date-time","description":"Timestamp of when the action occurred in [ISO 8601 format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#date.and.time.format.examples). If the timestamp is older than 12 hours, it will not trigger any relevant journeys. If no timestamp is provided, it is assumed the event occurred when the endpoint is called.\n","example":"2021-03-30T14:38:29+0000"},"user":{"$ref":"#/components/schemas/EventUser"}},"required":["items","user"]},"PurchaseRequest":{"type":"object","properties":{"items":{"type":"array","description":"List of items purchased.","items":{"$ref":"#/components/schemas/ProductRequest"}},"orderId":{"type":"string"},"salesChannel":{"$ref":"#/components/schemas/SalesChannel"},"occurredAt":{"type":"string","format":"date-time","description":"Timestamp of when the action occurred in [ISO 8601 format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#date.and.time.format.examples). If the timestamp is older than 12 hours, it will not trigger any relevant journeys. If no timestamp is provided, it is assumed the event occurred when the endpoint is called.\n","example":"2021-03-30T14:38:29+0000"},"user":{"$ref":"#/components/schemas/EventUser"}},"required":["items","user"]},"SalesChannel":{"type":"object","properties":{"channelType":{"type":"string","enum":["WEB","IOS_APP","ANDROID_APP","IN_STORE","PHONE","OTHER",""],"description":"The type of sales channel."}}},"AnalyticsPresetDto":{"type":"object","properties":{"id":{"type":"string","description":"id of the analytics preset configuration","example":"shopify","readOnly":true},"display_name":{"type":"string","minLength":3,"description":"A short name for the preset","example":"Shopify preset"},"description":{"type":"string","description":"a description of the preset","example":"Use the Shopify preset for standard/simple Shopify-based sites."},"tag_version":{"type":"string","description":"the associated tag version with which this preset is compatible","example":"1.0.3"},"analytics_configuration":{"type":"string","description":"an opaque, base64-encoded, stringified json blob of the actual preset configuration"},"created":{"type":"string","format":"date-time","readOnly":true},"updated":{"type":"string","format":"date-time","readOnly":true}}},"TagDebugChannel":{"type":"object","properties":{"channel":{"type":"string","description":"the channel ID to be used to authenticate against the websocket handshake endpoint"}}},"TagDebugEventRequest":{"type":"object"},"TagStatDto":{"type":"object","properties":{"purchase_count":{"type":"integer","format":"int32"},"add_to_cart_count":{"type":"integer","format":"int32"},"product_view_count":{"type":"integer","format":"int32"}}},"MergeTagConfigRequestDto":{"type":"object","properties":{"enrichments":{"type":"array","items":{"type":"string","description":"a json string representing an enrichment used by the tag"}},"transformers":{"type":"array","items":{"type":"string","description":"a json string representing a transformer used by the tag"}},"triggers":{"type":"array","items":{"type":"string","description":"a json string representing a trigger used by the tag"}},"analytics_configuration":{"type":"string","description":"a stringified json object representing a custom configuration used by the tag","example":"{}"}}},"MergeTagConfigResponseDto":{"properties":{"preset":{"type":"string"},"merged_analytics_configuration":{"type":"string"}}},"ProductMatchRequestDto":{"type":"object","properties":{"productId":{"type":"string"},"subProductId":{"type":"string"}}},"MatchType":{"type":"string","enum":["MISMATCH","NO_CATALOG","MATCH","UNKNOWN"]},"ProductMatchResponseDto":{"type":"object","properties":{"productIdMatchType":{"$ref":"#/components/schemas/MatchType"},"subProductIdMatchType":{"$ref":"#/components/schemas/MatchType"}}},"ErrorResponseDto":{"type":"object","required":["error"],"properties":{"error":{"$ref":"#/components/schemas/ErrorDto"}}},"ErrorDto":{"type":"object","required":["id","message"],"properties":{"id":{"type":"integer","format":"int64","description":"Unique error id, mapping to service logs"},"message":{"type":"string","description":"API response error message"}}},"CouponPoolListDto":{"type":"array","items":{"$ref":"#/components/schemas/CouponPoolDto"}},"CouponPoolDto":{"type":"object","required":["name"],"properties":{"id":{"type":"integer","format":"int64","description":"Id of pool","example":1234},"name":{"type":"string","description":"Descriptive name for this pool","example":"25% off for Black Friday"},"description":{"type":"string","description":"Ad-hoc notes for this pool"},"status":{"$ref":"#/components/schemas/CouponPoolStatus","description":"State of coupon pool itself. Active/Inactive","example":"ACTIVE"},"type":{"$ref":"#/components/schemas/CouponPoolType","description":"Type of Coupon Pool. Dynamic/Static","example":"DYNAMIC"},"auto_refresh":{"type":"boolean","description":"If coupon pool should be auto-replenished.","example":true},"upload_status":{"type":"string","description":"Aggregate state of coupon_uploads.","enum":["ACTIVE","PENDING","ERROR","SYNCING"],"example":"SYNCING"},"coupon_url_template":{"type":"string","example":"https://myshopify.com/coupon/{coupon}"},"code_template":{"type":"string","example":"SUMMER-{RAND}-2"},"external_id":{"type":"integer","format":"int64","description":"ID specific to integration","example":123456789},"count_assignable":{"type":"integer","description":"The number of coupons assignable","example":10000},"total_count":{"type":"integer","description":"The total number of coupons, assigned and unassigned","example":10000},"created":{"type":"string","format":"date-time","example":"2020-01-12T00:00:00.000Z"},"updated":{"type":"string","format":"date-time","example":"2020-01-12T00:00:00.000Z"},"static_code":{"type":"string","description":"A static code for a static coupon pool. Required if type is STATIC","maxLength":64},"associated_entities":{"type":"array","description":"List of associated entities","items":{"$ref":"#/components/schemas/CouponSetAssociationDto"}}}},"CouponPoolStatus":{"type":"string","enum":["ACTIVE","INACTIVE"]},"CouponPoolType":{"type":"string","enum":["DYNAMIC","STATIC"]},"CouponSetAssociationDto":{"type":"object","required":["associationType","associatedId"],"properties":{"associationType":{"type":"string","description":"Type of entity with which this coupon set is associated","enum":["CREATIVE","JOURNEY","CAMPAIGN"],"example":"CAMPAIGN"},"associationId":{"type":"integer","format":"int64"}}},"CreateCouponUploadsDto":{"type":"object","required":["files","validRanges"],"properties":{"files":{"type":"array","items":{"type":"string","format":"multipartFile"}},"validRanges":{"type":"string"}}},"CreateCouponsDto":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","items":{"type":"string"},"description":"List of the discount code values. Number of discount codes must be between 0 and 200,000.","example":["code1","code2","code3","code4","code5"]},"distributionStart":{"type":"string","description":"Timestamp at which point the discount codes become valid for distribution within Attentive messages. Must be in valid UTC ISO format e.g. 2023-03-04T21:29:25Z. If null, the discount codes never expire.","example":"2023-02-14T21:29:25Z"},"distributionStop":{"type":"string","description":"Timestamp at which point the discount codes become invalid for distribution within Attentive messages. Must be in valid UTC ISO format.","example":"2023-02-15T21:29:25Z"}}},"RunRequestDto":{"type":"object","properties":{"run_id":{"type":"integer","format":"int64","description":"The run identifier for a previous failed run. Specify this if you want to resume a previous failed run."},"company_id":{"type":"integer","format":"int64","description":"The Attentive company_id for which the pruning process should be run."},"dry_run":{"type":"boolean","description":"Execute this run without actually deactivating any phone numbers; log the ones that would have been deactivated instead."}},"required":["company_id"]},"RegistryRequestDto":{"type":"object","properties":{"company_id":{"type":"integer","format":"int64","description":"Attentive's id for this company."},"rnd_company_id":{"type":"string","description":"The RND's id for this company. This is returned in the RND UI after the company is set up there."}},"required":["company_id","rnd_company_id"]},"RunResponseDto":{"type":"object","properties":{"run_id":{"type":"integer","format":"int64","description":"A run identifier associated with the run that was just triggered. This can be used to resume this run if it fails later."},"error_message":{"type":"string","description":"In the case of an error, this string is populated with a message describing the error."}}},"CustomEventsRequest":{"type":"object","properties":{"type":{"type":"string","description":"The type of event. This name is case sensitive.\n\"Order shipped\" and \"Order Shipped\" would be considered different event types.\n\nThe Custom Event type cannot any of the following special characters:\n* double quote \"\n* single quote '\n* parentheses ( )\n* curly braces { }\n* square brackets [ ]\n* backslash \\\n* vertical bar |\n* commas ,\n","example":"Order Shipped"},"properties":{"type":"object","description":"Any metadata associated with the event.\n\nObject keys are expected to be strings, and cannot contain any of the following special characters:\n* double quote \"\n* curly braces { }\n* square brackets [ ]\n* backslash \\\n* vertical bar |\n\nObject values can be any type. Note that both object keys and object values are case sensitive. For example, \"deliverydate\" and\n\"DeliveryDate\" would be considered different event properties.\n\nNotes:\n* When you’re creating journeys that use custom events data, you can only use lists and nested objects can only be used with email messages. Lists and nested objects are not currently supported for SMS.\n* For URLs that are provided as a value, Attentive will automatically shorten the link with your brand's link shortener. For example, https://mysite.com/. Note that Attentive can only shorten URLs that are 1,024 characters or fewer.\n* Custom events must be triggered using the same custom app that originally created them.\n* There is a maximum of 200 object keys per custom event type. While payloads larger than this will be saved, not all keys will be available for use in Journeys and macros.\n","example":{"mediaUrl":"https://cdn.example.com/images/sample-image.jpg","orderStatusURL":"https://example.com/orderstatus/54321","delivery_date":"May 10","Order Id":"54321","products":["productId1","productId2"],"shipment":{"carrier":"fedex","trackingNumber":"12345"}},"properties":{"mediaUrl":{"type":"string","description":"URL of the image that accompanies MMS. Be sure to add a dynamic product image in the message composer in the Attentive UI when adding a text message step to a journey triggered by the custom event."}},"additionalProperties":true},"externalEventId":{"type":"string","description":"A unique identifier representing this specific event. A UUID is recommended.","example":"37fb97a9-6cfd-4983-bd65-68d104d53b70"},"occurredAt":{"type":"string","format":"date-time","description":"Timestamp of when the action occurred in [RFC 3339 format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) with required UTC offset. If the timestamp is older than 12 hours, it will not trigger any relevant Journeys. If no timestamp is provided, it is assumed the event occurred when the endpoint is called.\n","example":"2021-03-30T14:38:29.000Z"},"user":{"$ref":"#/components/schemas/EventUser"}},"required":["type","user"]},"CustomAttributesRequest":{"type":"object","properties":{"properties":{"type":"object","description":"Any metadata associated with the attribute. Object keys are expected to be strings. Object values can be any type. The key will be assigned a type corresponding to the type seen of the first value. For example, if 'Age' is passed with the first value of '24', 'Age' will be typed as a 'Number'. There is no need to pass strings in double quotes. Both object keys and object values are case sensitive. \"Favorite color\" and \"Favorite Color\" would be considered different custom attributes.\n","example":{"age":"24","birthday":"1986-11-16","sign up":"2021-04-23T16:04:33Z","favorite team":"Minnesota Vikings","Gift card balance":"50.89","VIP":"TRUE"}},"user":{"$ref":"#/components/schemas/EventUser"}},"required":["properties","user"]},"GetCustomAttributesResponse":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute","example":"favoriteColor"},"value":{"anyOf":[{"type":"string"}],"description":"Value of the custom attribute","example":"blue"}},"required":["attribute","value"]}},"GetUsersResponse":{"type":"object","properties":{"nextCursor":{"type":"string","description":"the cursor string that can be used to fetch the next page (null if there is none)"},"hasNextPage":{"type":"boolean","description":"Does it have next page?"},"users":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","description":"the time at which the User first received a Subscription\n","example":"2025-07-08T16:25:46.000Z"},"cursor":{"type":"string","description":"cursor pointing to this user\n"},"updatedAt":{"type":"string","description":"when was the user updated their subscription last at\n"},"subscriptions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The Subscription Type","example":"MARKETING"},"channel":{"type":"string","description":"The Subscription Channel","example":"EMAIL"},"destination":{"type":"string","description":"The destination of Subscription messages","example":"my-email@attentive.com"},"status":{"type":"string","description":"The status of the subscription. 'ACTIVE' is the only value that means subscriber has an active subscription"}}}}}}}}},"GetSubscriberByExternalIdentifierResponseDto":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/UserDto1"}}}},"AddSubscriptionsRequestDto":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserDto1"},"signUpSourceId":{"type":"string","description":"The unique identifier of the sign-up source. This can be found in the Sign-up Units tab of the Attentive platform in the ID column for any API sign-up method.\nThis field is required if locale is not present. \n\nOr, you can contact our White Glove team (whiteglove@attentivemobile.com)\nor your Client Strategy Manager at Attentive to request a sign-up source for either marketing or\ntransactional opt-ins. Our team will review API opt-in units with\n[compliance in mind](https://docs.attentivemobile.com/pages/legal-docs/legal-disclosure-language/).\n"},"externalIdentifiers":{"$ref":"#/components/schemas/NewExternalIdentifierDto"},"locale":{"$ref":"#/components/schemas/LocaleDto"},"subscriptionType":{"type":"string","enum":["MARKETING","TRANSACTIONAL"]},"singleOptIn":{"type":"boolean","description":"Opt in subscriber silently (do not send a Reply Y to subscribe text).\n\nNOTE: This property is disabled (set to false) by default. We strongly recommend maintaining the standard \ndouble opt-in flow, as it serves important legal and compliance purposes. If you want to enable single opt-in, \nwe encourage you to speak with your dedicated Client Strategy Manager (CSM) or our White Glove team \n(whiteglove@attentivemobile.com) before you enable it. If this property is set to true, subscribers will be \nadded without receiving the initial “Reply Y” confirmation text message. This setting bypasses only the \n“Reply Y” message. The mandatory legal message will still be sent.\n"}},"required":["user"]},"AddSubscriptionsResponseDto":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserDto1"},"externalIdentifiers":{"$ref":"#/components/schemas/NewExternalIdentifierDto"},"subscriptionResponses":{"type":"array","items":{"$ref":"#/components/schemas/AddSubscriptionResponseDto"}}}},"UnsubscribeSubscriptionsRequestDto":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserDto1"},"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionDto"}},"notification":{"$ref":"#/components/schemas/NotificationConfigDto"}},"required":["user"]},"UnsubscribeSubscriptionsResponseDto":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserDto1"},"subscriptionResponses":{"type":"array","items":{"$ref":"#/components/schemas/UnsubscribeSubscriptionResponseDto"}}}},"UserDto1":{"type":"object","description":"User associated with the action. Note that this is a visitor to the site and does not need to be actively subscribed to Attentive.","properties":{"phone":{"type":"string","description":"Phone number of the user associated with the action. [E.164 format](https://en.wikipedia.org/wiki/E.164) is required. This field is required if email is not provided.","example":"+13115552368"},"email":{"type":"string","description":"Email of the user associated with the action. This field is required if phone is not provided.","example":"test@gmail.com"}}},"LocaleDto":{"type":"object","properties":{"language":{"type":"string","description":"Two-letter language code of the locale. [ISO 639-1 alpha 2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) is required. Values are case sensitive and must match exactly.","example":"en"},"country":{"type":"string","description":"Two-letter country code of the locale. [ISO-3166-1 alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) is required. Values are case sensitive and must match exactly.","example":"US"}}},"SubscriptionDto":{"type":"object","description":"A type and channel combination.","properties":{"type":{"type":"string","enum":["MARKETING","TRANSACTIONAL","CHECKOUT_ABANDONED"]},"channel":{"type":"string","enum":["TEXT","EMAIL"]}}},"CustomIdentifierDto":{"type":"object","description":"Namespaced custom identifier and value","properties":{"name":{"type":"string"},"value":{"type":"string"}}},"NotificationConfigDto":{"type":"object","description":"Optional notification properties to override","properties":{"language":{"type":"string","description":"Standard language tags as defined by the ISO. Currently only supports en-US and fr-CA. Case sensitive, must match exactly."},"disabled":{"type":"boolean","description":"A boolean representing if a user should not receive a confirmation message upon unsubscribing. Assumed false by default."}}},"EligibilityDto":{"type":"object","description":"A user's eligibility to receive messages for a subscription.","properties":{"isEligible":{"type":"boolean","description":"A boolean representing a user's eligibility to receive messages for a subscription."}}},"SubscriptionCreationStatus":{"type":"string","enum":["NEWLY_CREATED","PREVIOUSLY_CREATED"]},"SubscriptionUnsubscribeStatus":{"type":"string","enum":["NEWLY_UNSUBSCRIBED","PREVIOUSLY_UNSUBSCRIBED"]},"AddSubscriptionResponseDto":{"type":"object","description":"A subscription and a status indicating whether the subscription for this particular user was newly created or was previously created (i.e. already existed)","properties":{"subscription":{"$ref":"#/components/schemas/SubscriptionDto"},"subscriptionCreationStatus":{"$ref":"#/components/schemas/SubscriptionCreationStatus"}}},"UnsubscribeSubscriptionResponseDto":{"type":"object","description":"A subscription and a status indicating whether the subscription for this particular user was newly unsubscribed or was previously unsubscribed (i.e. already opted-out)","properties":{"subscription":{"$ref":"#/components/schemas/SubscriptionDto"},"subscriptionUnsubscribeStatus":{"$ref":"#/components/schemas/SubscriptionUnsubscribeStatus"}}},"GetSubscriptionsResponseDto":{"type":"object","description":"A list of the subscriptions that a subscriber is eligible to receive messages for.","properties":{"subscriptionEligibilities":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionEligibilityDto"}}}},"SubscriptionEligibilityDto":{"type":"object","description":"A subscription and a boolean indicating whether the user is eligible to receive messages for that subscription.","properties":{"subscription":{"$ref":"#/components/schemas/SubscriptionDto"},"eligibility":{"$ref":"#/components/schemas/EligibilityDto"}}},"NewExternalIdentifierDto":{"type":"object","description":"External Identifiers for a user","properties":{"clientUserId":{"type":"string","description":"Notes:\nSending duplicate values could lead to unintentionally bridging users together.\nDon't use customIdentifiers to send attributes (e.g., first name, last name). To send those types of attributes, use our Custom Attributes API.\nAvoid sending null values or empty strings. If you don't have a valid identifier, you should omit the field from the payload.\n"},"shopifyId":{"type":"string","description":"Notes:\nSending duplicate values could lead to unintentionally bridging users together.\nDon't use customIdentifiers to send attributes (e.g., first name, last name). To send those types of attributes, use our Custom Attributes API.\nAvoid sending null values or empty strings. If you don't have a valid identifier, you should omit the field from the payload.\n"},"klaviyoId":{"type":"string","description":"Notes:\nSending duplicate values could lead to unintentionally bridging users together.\nDon't use customIdentifiers to send attributes (e.g., first name, last name). To send those types of attributes, use our Custom Attributes API.\nAvoid sending null values or empty strings. If you don't have a valid identifier, you should omit the field from the payload.\n"},"customIdentifiers":{"type":"array","items":{"$ref":"#/components/schemas/CustomIdentifierDto"}}}},"SubscriberCouponDto":{"type":"object","properties":{"phone":{"type":"string","deprecated":true},"coupon":{"type":"string"},"url":{"type":"string"},"coupons":{"type":"array","items":{"type":"string"}},"externalId":{"type":"string","deprecated":true},"destination":{"type":"string","nullable":true}}},"ActionFilterSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"family":{"type":"string","description":"Identifier for SchemaPropertiesDto classes","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","SEGMENT","DEVICE_TYPE","OPERATING_SYSTEM","PRODUCT_AVAILABILITY","SUBSCRIPTION_TYPE","MAX_INVENTORY_COUNT","PRICE_DROP_THRESHOLD","FIRST_TIME_SUBSCRIBER","CHANNEL_SUBSCRIPTION_TYPE","PRODUCT_TYPE","NUMBER_OF_PRODUCTS","CAMPAIGN","JOURNEY"]},"type":{"type":"string","enum":["ACTION_FILTER_IN_LIST"]},"values":{"type":"array","items":{"$ref":"#/components/schemas/SelectOption"}}}}]},"ActivateJourneyRequest":{"type":"object","properties":{"doEvictSubscribers":{"type":"boolean"},"isActive":{"type":"boolean"}}},"AddJourneyNodeRequest":{"type":"object","properties":{"nodeType":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]},"parentNodeId":{"type":"string"}}},"AdderNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"allowedTypes":{"type":"array","items":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}}}}]},"ApiCallResultNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"result":{"type":"string","enum":["SUCCESS","FAILURE"]},"sortOrder":{"type":"integer","format":"int32"}}}]},"AttachedCouponDto":{"type":"object","properties":{"couponPoolSource":{"type":"string","enum":["TRIGGER_COUPON","MESSAGE_COUPON"]}}},"AutoResponseJourneyDetailsDto":{"type":"object","properties":{"journeyHasCxnode":{"type":"boolean","description":"boolean flag that denotes if journey has a Create Support Ticket Node"},"journeyId":{"type":"integer","format":"int64","description":"the ID of the Auto-Response Journey"},"name":{"type":"string","description":"the name of the Auto-Response Journey"}}},"BranchElseNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"displayText":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"}}}]},"BranchExpressionNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"selections":{"type":"array","items":{"$ref":"#/components/schemas/Selection"}},"sortOrder":{"type":"integer","format":"int32"}}}]},"BranchingDimensionDto":{"type":"object","properties":{"branchMax":{"type":"integer","format":"int32"},"branchMin":{"type":"integer","format":"int32"},"channels":{"type":"array","items":{"type":"string","enum":["COMPOSE_MESSAGE_CHANNEL_UNKNOWN","COMPOSE_MESSAGE_CHANNEL_TEXT","COMPOSE_MESSAGE_CHANNEL_EMAIL","UNRECOGNIZED"]}},"dimensionDisplayName":{"type":"string","example":"Has added to cart"},"dimensionGroup":{"type":"string","enum":["PRODUCT_PROPERTY","CART_VALUE","PROPERTY","BEHAVIOR","SUBSCRIPTION_TYPE","SEGMENT","CHANNEL_SUBSCRIPTION_TYPE"],"example":"BEHAVIOR"},"dimensionValue":{"type":"string","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","PRODUCT_AVAILABILITY","VIEWED_BACK_IN_STOCK","CART_VALUE","DEVICE_TYPE","OPERATING_SYSTEM","VIEWED_PRODUCT","ADDED_TO_CART","ABANDONED_CHECKOUT","PURCHASED","REDEEMED_COUPON","SAVED_EMAIL","RECEIVED_A_TEXT_MESSAGE","FIRST_TIME_SUBSCRIBER","CLICKED_A_TEXT_MESSAGE","KLAVIYO_RECEIVED_AN_EMAIL","KLAVIYO_OPENED_AN_EMAIL","KLAVIYO_CLICKED_AN_EMAIL","RECEIVED_AN_EMAIL","OPENED_AN_EMAIL","CLICKED_AN_EMAIL","SUBSCRIPTION_TYPE","SEGMENT","CHANNEL_SUBSCRIPTION_TYPE"],"example":"ADDED_TO_CART"},"displayGroupName":{"type":"string","example":"E-Commerce Actions"},"schemas":{"type":"array","items":{"$ref":"#/components/schemas/BranchingSchemaDto"}}}},"BranchingDimensionGroupDetailsDto":{"type":"object","properties":{"dimensionGroup":{"type":"string","enum":["PRODUCT_PROPERTY","CART_VALUE","PROPERTY","BEHAVIOR","SUBSCRIPTION_TYPE","SEGMENT","CHANNEL_SUBSCRIPTION_TYPE"]},"dimensionGroupDisplayName":{"type":"string","example":"What product was added to cart"},"dimensionSelectPlaceholder":{"type":"string","example":"Choose product properties"},"displayGroupNames":{"type":"array","items":{"type":"string"}}}},"BranchingRootNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"branchExpressionParametersId":{"type":"integer","format":"int64"},"dimension":{"type":"string","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","PRODUCT_AVAILABILITY","VIEWED_BACK_IN_STOCK","CART_VALUE","DEVICE_TYPE","OPERATING_SYSTEM","VIEWED_PRODUCT","ADDED_TO_CART","ABANDONED_CHECKOUT","PURCHASED","REDEEMED_COUPON","SAVED_EMAIL","RECEIVED_A_TEXT_MESSAGE","FIRST_TIME_SUBSCRIBER","CLICKED_A_TEXT_MESSAGE","KLAVIYO_RECEIVED_AN_EMAIL","KLAVIYO_OPENED_AN_EMAIL","KLAVIYO_CLICKED_AN_EMAIL","RECEIVED_AN_EMAIL","OPENED_AN_EMAIL","CLICKED_AN_EMAIL","SUBSCRIPTION_TYPE","SEGMENT","CHANNEL_SUBSCRIPTION_TYPE"]}}}]},"BranchingRootOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"branchMax":{"type":"integer","format":"int32"},"branchMin":{"type":"integer","format":"int32"},"dimensionGroupDetails":{"type":"array","items":{"$ref":"#/components/schemas/BranchingDimensionGroupDetailsDto"}},"dimensions":{"type":"array","items":{"$ref":"#/components/schemas/BranchingDimensionDto"}}}}]},"BranchingSchemaDto":{"type":"object","description":"List of schemas to gather selections from the front-end","properties":{"schemaProperties":{"$ref":"#/components/schemas/SchemaPropertiesDto"},"schemaType":{"type":"string","enum":["MULTI_SELECT","DYNAMIC_MULTI_SELECT","FREQUENCY_COMPARATOR","TIME_COMPARATOR","SINGLE_SELECT","DYNAMIC_SINGLE_SELECT","NUMBER_INPUT","ACTION_FILTER","MONEY_COMPARATOR"]}}},"ChildNodeDto":{"type":"object","properties":{"nodeId":{"type":"string"},"nodeType":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}}},"ComposeMessageDto":{"type":"object","properties":{"graphqlMessageId":{"type":"string"},"isMms":{"type":"boolean"},"messageId":{"type":"integer","format":"int64"},"text":{"type":"string","deprecated":true}}},"ConversationalMetadata":{"type":"object","properties":{"conversationalFeature":{"type":"string","enum":["NONE","PURCHASE_PRODUCT","SIMPLE_CONVERSATION"]},"keywordDescriptionText":{"type":"string"},"keywordMarker":{"type":"string"},"productVariant":{"$ref":"#/components/schemas/ProductVariantDto"}}},"CreateDefaultJourneyRequest":{"type":"object","description":"-","properties":{"templateId":{"type":"integer","format":"int64"}}},"CreateNewCustomJourneyRequest":{"type":"object","description":"Request body for creating new custom journeys","properties":{"category":{"type":"string","description":"Category of the custom journey being created","enum":["UNKNOWN","MARKETING","TRANSACTIONAL"]},"trigger":{"$ref":"#/components/schemas/JourneyTriggerDto"}},"required":["category","trigger"]},"CreateNewJourneyRequest":{"type":"object","properties":{"couponPoolId":{"type":"integer","format":"int64"},"description":{"type":"string"},"isCouponPoolSelected":{"type":"boolean"},"isVisible":{"type":"boolean"},"name":{"type":"string"},"templateId":{"type":"integer","format":"int64"},"triggerId":{"type":"integer","format":"int64"}}},"CreateNewJourneyRevisionRequest":{"type":"object","description":"-","properties":{"revisionId":{"type":"integer","format":"int64"}}},"CreateSupportTicketNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"configuredProviders":{"type":"array","items":{"$ref":"#/components/schemas/CxVendorDto"}}}}]},"CreateSupportTicketNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"customerServiceGroupId":{"type":"integer","format":"int64"},"vendor":{"$ref":"#/components/schemas/CxVendorDto"},"vendorId":{"type":"integer","format":"int64","writeOnly":true}}}]},"CreativeRequest":{"type":"object","properties":{"creativeIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"CriteriaGroupDto":{"type":"object","description":"Include and exclude criteria groups for the fan-out subscriber search","properties":{"criteriaValue":{"type":"string","enum":["INCLUDE","EXCLUDE"]},"dimensions":{"type":"array","items":{"$ref":"#/components/schemas/BranchingDimensionDto"}},"displayName":{"type":"string"},"isOptional":{"type":"boolean"}}},"CurrencyProperty":{"type":"object","properties":{"name":{"type":"string"},"symbol":{"type":"string"}}},"CxVendorDto":{"type":"object","properties":{"vendorId":{"type":"integer","format":"int64","example":0},"vendorName":{"type":"string","example":"Zendesk"}}},"DelayNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"displayUnit":{"type":"string","enum":["MINUTES","HOURS","DAYS","WEEKS"]},"durationSeconds":{"type":"integer","format":"int64"}}}]},"DetailParametersDto":{"type":"object"},"DynamicMultiSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"family":{"type":"string","description":"Identifier for SchemaPropertiesDto classes","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","SEGMENT","DEVICE_TYPE","OPERATING_SYSTEM","PRODUCT_AVAILABILITY","SUBSCRIPTION_TYPE","MAX_INVENTORY_COUNT","PRICE_DROP_THRESHOLD","FIRST_TIME_SUBSCRIBER","CHANNEL_SUBSCRIPTION_TYPE","PRODUCT_TYPE","NUMBER_OF_PRODUCTS","CAMPAIGN","JOURNEY"]},"type":{"type":"string","enum":["VALUE_IN_LIST","DYNAMIC_VALUE_IN_LIST"]},"values":{"type":"array","items":{"$ref":"#/components/schemas/Selectable"}}}}]},"DynamicNodeOptions":{"type":"object"},"DynamicSingleSelectOption":{"type":"object","properties":{"description":{"type":"string"},"displayName":{"type":"string"},"optionValue":{"type":"string"}}},"DynamicSingleSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"family":{"type":"string","description":"Identifier for SchemaPropertiesDto classes","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","SEGMENT","DEVICE_TYPE","OPERATING_SYSTEM","PRODUCT_AVAILABILITY","SUBSCRIPTION_TYPE","MAX_INVENTORY_COUNT","PRICE_DROP_THRESHOLD","FIRST_TIME_SUBSCRIBER","CHANNEL_SUBSCRIPTION_TYPE","PRODUCT_TYPE","NUMBER_OF_PRODUCTS","CAMPAIGN","JOURNEY"]},"type":{"type":"string","enum":["DYNAMIC_SINGLE_SELECT_EQUALS"]},"value":{"$ref":"#/components/schemas/SelectOption"}}}]},"EndOfJourneyNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"}]},"EnumMultiSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"family":{"type":"string","description":"Identifier for SchemaPropertiesDto classes","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","SEGMENT","DEVICE_TYPE","OPERATING_SYSTEM","PRODUCT_AVAILABILITY","SUBSCRIPTION_TYPE","MAX_INVENTORY_COUNT","PRICE_DROP_THRESHOLD","FIRST_TIME_SUBSCRIBER","CHANNEL_SUBSCRIPTION_TYPE","PRODUCT_TYPE","NUMBER_OF_PRODUCTS","CAMPAIGN","JOURNEY"]},"type":{"type":"string","enum":["VALUE_IN_LIST","DYNAMIC_VALUE_IN_LIST"]},"values":{"type":"array","items":{"$ref":"#/components/schemas/Selectable"}}}}]},"ExperimentNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"trafficSplitType":{"type":"string","enum":["EVENLY","CUSTOM"]}}}]},"ForwardToConciergeNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"couponPoolId":{"type":"integer","format":"int64"},"couponPoolName":{"type":"string"},"messageId":{"type":"integer","format":"int64"},"messageLinkId":{"type":"integer","format":"int64"},"shouldIncludeUtmParams":{"type":"boolean"},"utmCampaign":{"type":"string"}}}]},"FrequencySelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"type":{"type":"string","enum":["EQUAL_TO","LESS_THAN","GREATER_THAN","AT_LEAST_ONCE"]}}}]},"GetCouponsResponseDto":{"type":"object","properties":{"totalResults":{"type":"integer","format":"int64"}}},"GetIntegrationEventsResponseDto":{"type":"object","properties":{"totalResults":{"type":"integer","format":"int64"},"values":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationEventDto"}}}},"GetProductVariantsResponseDto":{"type":"object","properties":{"totalResults":{"type":"integer","format":"int64"},"values":{"type":"array","items":{"$ref":"#/components/schemas/ProductVariantDto"}}}},"GetProductsResponseDto":{"type":"object","properties":{"totalResults":{"type":"integer","format":"int64"},"values":{"type":"array","items":{"$ref":"#/components/schemas/ProductDto"}}}},"GetSegmentsResponseDto":{"type":"object","properties":{"nextPageToken":{"type":"string"},"values":{"type":"array","items":{"$ref":"#/components/schemas/DynamicSingleSelectOption"}}}},"GlobalSelectionOptionsDto":{"type":"object","description":"Options that affect the trigger operator's branch expression","properties":{"schemas":{"type":"array","description":"List of schemas to gather selections from the front-end","items":{"$ref":"#/components/schemas/BranchingSchemaDto"}}}},"IncomingTextNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"branchMax":{"type":"integer","format":"int32"},"branchMin":{"type":"integer","format":"int32"},"replyKeywords":{"type":"array","items":{"$ref":"#/components/schemas/ReplyKeywordDto"}},"reservedKeywords":{"type":"array","items":{"$ref":"#/components/schemas/ReservedKeywordDto"}}}}]},"IncomingTextNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"branchExpressionParametersId":{"type":"integer","format":"int64"}}}]},"IntegrationEventDto":{"type":"object","properties":{"name":{"type":"string","description":"Protobuf name of the event"},"provider":{"$ref":"#/components/schemas/IntegrationProviderDto"},"triggerId":{"type":"integer","format":"int64","description":"ID of the related trigger, if one exists"}}},"IntegrationProviderDto":{"type":"object","description":"Provider/vendor information","properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"vendor":{"type":"string"}}},"JoinerNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"allowedTypes":{"type":"array","items":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}},"parentBranchNodeId":{"type":"string"}}}]},"JourneyCountDto":{"type":"object","properties":{"count":{"type":"integer","format":"int64"}}},"JourneyDetailsDto":{"type":"object","properties":{"description":{"type":"string","description":"the description of the journey"},"draftRevisionId":{"type":"integer","format":"int64","description":"the ID of the current draft revision, if one exists, or null otherwise"},"graphqlId":{"type":"string"},"isActive":{"type":"boolean","description":"whether or not the journey is active in the execution API"},"journeyCategory":{"type":"string","enum":["UNKNOWN","MARKETING","TRANSACTIONAL"]},"journeyId":{"type":"integer","format":"int64","description":"the ID of the journey"},"journeySchedule":{"$ref":"#/components/schemas/JourneyScheduleDto"},"lastPublished":{"type":"integer","format":"int64","description":"timestamp of last publish to this journey"},"lastUpdated":{"type":"integer","format":"int64","description":"timestamp of last update to journey metadata"},"name":{"type":"string","description":"the name of the journey"},"publishedRevisionId":{"type":"integer","format":"int64","description":"the ID of the current published revision, if one exists, or null otherwise"},"state":{"type":"string","description":"the current state of the journey. Active journeys with published revisions are \"LIVE\", inactive journeys are \"INACTIVE\", and all other cases are \"DRAFT\"","enum":["LIVE","INACTIVE","DRAFT"]},"tags":{"type":"array","description":"a list of associated tags for journey","items":{"$ref":"#/components/schemas/JourneyTagDto"}},"templateVariantId":{"type":"integer","format":"int64"},"triggerId":{"type":"integer","format":"int64"}}},"JourneyScheduleDto":{"type":"object","description":"the schedule currently associated with the journey","properties":{"assignedJourney":{"$ref":"#/components/schemas/ScheduleAssignedJourneyDto"},"id":{"type":"integer","format":"int64"},"name":{"type":"string","description":"the name of the schedule"},"startTime":{"type":"string","format":"date-time","description":"the time the assigned journey should be activated at"},"status":{"type":"string","description":"the status of the schedule's processing","enum":["SCHEDULED","COMPLETED","CANCELLED"]}}},"JourneyStatsDto":{"type":"object","properties":{"attributedRevenue":{"type":"number","description":"the amount of revenue attributable to the journey","example":183414.37},"attributedRevenueByCurrency":{"type":"array","items":{"$ref":"#/components/schemas/RevenueByCurrencyDto"}},"clicks":{"type":"integer","format":"int64","description":"the number of clicks generated by the journey","example":2887},"conversions":{"type":"integer","format":"int64","description":"the number of total sales or other conversions generated by the journey","example":922},"journeysEntered":{"type":"integer","format":"int64","description":"the number of travelers who have entered the journey, aggregated across revisions","example":7694},"messagesSent":{"type":"integer","format":"int64","description":"the number of messages sent from the journey","example":15501}}},"JourneyTagDto":{"type":"object","description":"a list of associated tags for journey","properties":{"displayName":{"type":"string"},"type":{"type":"string"}}},"JourneyTriggerDto":{"type":"object","properties":{"applicationId":{"type":"integer","format":"int64","description":"The id of the application that created or provided the Attentive event","example":1},"category":{"type":"string","enum":["UNKNOWN","MARKETING","TRANSACTIONAL"],"example":"MARKETING"},"companyId":{"type":"integer","format":"int64","description":"Nullable ID of owning company"},"customEventType":{"type":"string","description":"API user-submitted type of the CustomEvent event, when eventType='CUSTOM_EVENT'"},"displayName":{"type":"string","description":"the display name of the trigger","example":"Viewed a product"},"eventSubType":{"type":"string","description":"Sub type of the related Attentive event","enum":["LOYALTY_TIER_GAINED","LOYALTY_TIER_LOST","LOYALTY_BIRTHDAY_REACHED","LOYALTY_ANNIVERSARY_REACHED","LOYALTY_REWARD","LOYALTY_CUSTOM_REWARD"]},"eventType":{"type":"string","description":"Type of the related Attentive event"},"graphqlId":{"type":"string","description":"GraphQL ID of the trigger","example":"MTQ6Sm91cm5leVRyaWdnZXIyMzg"},"iconUrl":{"type":"string","description":"the icon, hosted on S3, to display with the trigger","example":"https://client-ui-cdn.s3.amazonaws.com/journeys/viewedproduct.svg"},"id":{"type":"integer","format":"int64","description":"the ID of the trigger","example":1},"isActive":{"type":"boolean","description":"whether or not the journey trigger is enabled","example":true},"journeyCount":{"type":"integer","format":"int64","description":"current count of journeys with this trigger type","example":1},"maxJourneyLimit":{"type":"integer","format":"int64","description":"the max allowed number of journeys of this trigger type (NULL for no limit)","example":1},"modalDescription":{"type":"string","description":"a more verbose description of the trigger","example":"Send a message to your subscribers after they view a product on your site."},"nodeDescription":{"type":"string","description":"a description to use on a trigger node. Likely the same as the name","example":"Viewed a product"},"type":{"type":"string","description":"a codified type for the trigger. Guaranteed to be unique across triggers.","enum":["PRODUCT_VIEW","ADD_TO_CART","PURCHASE","SIGNED_UP","SIGNED_UP_FOR_EMAIL","ORDER_CREATED","ORDER_CREATED_PROMOTIONAL","ORDER_FULFILLED","ORDER_SUBSCRIPTION_CREATED","ORDER_SUBSCRIPTION_UPCOMING_CHARGE","ORDER_SUBSCRIPTION_CHARGE_FAILED","ORDER_SUBSCRIPTION_SKIPPED","TEXTED_A_KEYWORD","USER_WIN_BACK","CUSTOM_EVENT","INTEGRATION_EVENT","BACK_IN_STOCK","LOW_INVENTORY","PRICE_DROP","JOINED_A_SEGMENT","PAGE_VIEW","OPT_IN_BACK_IN_STOCK"],"example":"PRODUCT_VIEW"},"vendor":{"type":"string","description":"The vendor that produced or caused the Attentive event","example":"AFTERSHIP"}}},"JourneyValidationResult":{"type":"object","description":"revision-level validations that do not map to a specific node (e.g. misconfigured cooldown)","properties":{"metadata":{"$ref":"#/components/schemas/ValidationResultMetadata"},"severity":{"type":"string","description":"the severity of the validation failure","enum":["ERROR","WARNING","INFO"]},"validationCode":{"type":"string","description":"an error code for the specific validation that has failed","enum":["SEND_LEGAL_WELCOME_NODE_HAS_EMPTY_TEXT","SEND_MESSAGE_NODE_HAS_EMPTY_TEXT","SEND_MESSAGE_NODE_HAS_INVALID_MAXIMUM_DELAY","SEND_MESSAGE_HAS_INVALID_BUSINESS_HOURS_OR_FATIGUE","MORE_THAN_ONE_SEND_MESSAGE_NODE","MORE_THAN_ONE_SEND_MESSAGE_NODE_IN_MULTI_REGION_JOURNEY","MORE_THAN_ONE_SEND_CONVERSATIONAL_MESSAGE_NODE","SEND_EMAIL_NODE_IS_MISSING_TEMPLATE","SEND_EMAIL_NODE_FROM_ADDRESS_UNVERIFIED","BRANCHING_ROOT_NODE_HAS_EMPTY_DIMENSION","BRANCHING_EXPRESSION_PARAMETER_HAS_INVALID_SEGMENT","TRIGGER_NODE_HAS_INVALID_SEGMENT","KEYWORD_HAS_CONFLICTS","EMAIL_NODE_MACROS_REQUIRE_COUPON_SET","MESSAGE_NODE_MACROS_REQUIRE_COUPON_SET","MESSAGE_NODE_MACROS_REQUIRE_COUPON_SET_WITH_AUTO_APPLY_LINK","NODE_CAN_CONTAIN_MARKETING_CONTENT","NODE_CANNOT_CONTAIN_MARKETING_CONTENT","SAVE_USER_ATTRIBUTE_NODE_HAS_EMPTY_ATTRIBUTE","SAVE_USER_ATTRIBUTE_NODE_HAS_INVALID_ATTRIBUTE_CONFIGURED","SEND_TWO_WAY_NODE_REQUIRES_AT_LEAST_ONE_REPLY","SEND_CONVERSATIONAL_NODE_MISSING_REQUIRED_KEYWORD_METADATA","INCOMING_TEXT_NODE_REQUIRES_AT_LEAST_ONE_KEYWORD","REVISION_HAS_INVALID_COOLDOWN","PAGE_VIEW_MISSING_DELAY","PAGE_VIEW_MISSING_BRANCH","ACTIVE_VARIANT_LEVEL_BACK_IN_STOCK_JOURNEY_EXISTS","ACTIVE_PRODUCT_LEVEL_BACK_IN_STOCK_JOURNEY_EXISTS"]},"validationErrorCode":{"type":"string","description":"an error code for the specific validation that has failed","enum":["SEND_LEGAL_WELCOME_NODE_HAS_EMPTY_TEXT","SEND_MESSAGE_NODE_HAS_EMPTY_TEXT","SEND_MESSAGE_NODE_HAS_INVALID_MAXIMUM_DELAY","SEND_MESSAGE_HAS_INVALID_BUSINESS_HOURS_OR_FATIGUE","MORE_THAN_ONE_SEND_MESSAGE_NODE","MORE_THAN_ONE_SEND_MESSAGE_NODE_IN_MULTI_REGION_JOURNEY","MORE_THAN_ONE_SEND_CONVERSATIONAL_MESSAGE_NODE","SEND_EMAIL_NODE_IS_MISSING_TEMPLATE","SEND_EMAIL_NODE_FROM_ADDRESS_UNVERIFIED","BRANCHING_ROOT_NODE_HAS_EMPTY_DIMENSION","BRANCHING_EXPRESSION_PARAMETER_HAS_INVALID_SEGMENT","TRIGGER_NODE_HAS_INVALID_SEGMENT","KEYWORD_HAS_CONFLICTS","EMAIL_NODE_MACROS_REQUIRE_COUPON_SET","MESSAGE_NODE_MACROS_REQUIRE_COUPON_SET","MESSAGE_NODE_MACROS_REQUIRE_COUPON_SET_WITH_AUTO_APPLY_LINK","NODE_CAN_CONTAIN_MARKETING_CONTENT","NODE_CANNOT_CONTAIN_MARKETING_CONTENT","SAVE_USER_ATTRIBUTE_NODE_HAS_EMPTY_ATTRIBUTE","SAVE_USER_ATTRIBUTE_NODE_HAS_INVALID_ATTRIBUTE_CONFIGURED","SEND_TWO_WAY_NODE_REQUIRES_AT_LEAST_ONE_REPLY","SEND_CONVERSATIONAL_NODE_MISSING_REQUIRED_KEYWORD_METADATA","INCOMING_TEXT_NODE_REQUIRES_AT_LEAST_ONE_KEYWORD","REVISION_HAS_INVALID_COOLDOWN","PAGE_VIEW_MISSING_DELAY","PAGE_VIEW_MISSING_BRANCH","ACTIVE_VARIANT_LEVEL_BACK_IN_STOCK_JOURNEY_EXISTS","ACTIVE_PRODUCT_LEVEL_BACK_IN_STOCK_JOURNEY_EXISTS"]}}},"JourneysConfigurationDto":{"type":"object","properties":{"allowedSteps":{"type":"array","description":"a list of permitted nodes, as parameterized by the trigger type and active deciders.","items":{"type":"string","description":"a list of permitted nodes, as parameterized by the trigger type and active deciders.","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}},"copyableSteps":{"type":"array","description":"a list of permitted nodes for copying.","items":{"type":"string","description":"a list of permitted nodes for copying.","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}},"dynamicNodeOptions":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/BranchingRootOptionsDto"},{"$ref":"#/components/schemas/CreateSupportTicketNodeOptionsDto"},{"$ref":"#/components/schemas/IncomingTextNodeOptionsDto"},{"$ref":"#/components/schemas/SendConversationalMessageNodeOptionsDto"},{"$ref":"#/components/schemas/SendEmailNodeOptionsDto"},{"$ref":"#/components/schemas/SendMessageNodeOptionsDto"},{"$ref":"#/components/schemas/TriggerNodeOptionsDto"},{"$ref":"#/components/schemas/TwoWayMessageNodeOptionsDto"}]}},"movableSteps":{"type":"array","description":"a list of permitted nodes for moving.","items":{"type":"string","description":"a list of permitted nodes for moving.","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}},"triggerType":{"type":"string","enum":["PRODUCT_VIEW","ADD_TO_CART","PURCHASE","SIGNED_UP","SIGNED_UP_FOR_EMAIL","ORDER_CREATED","ORDER_CREATED_PROMOTIONAL","ORDER_FULFILLED","ORDER_SUBSCRIPTION_CREATED","ORDER_SUBSCRIPTION_UPCOMING_CHARGE","ORDER_SUBSCRIPTION_CHARGE_FAILED","ORDER_SUBSCRIPTION_SKIPPED","TEXTED_A_KEYWORD","USER_WIN_BACK","CUSTOM_EVENT","INTEGRATION_EVENT","BACK_IN_STOCK","LOW_INVENTORY","PRICE_DROP","JOINED_A_SEGMENT","PAGE_VIEW","OPT_IN_BACK_IN_STOCK"]}}},"KeywordResponseNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"keyword":{"type":"string"},"keywordDescriptionText":{"type":"string"},"keywordJoinerText":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ConversationalMetadata"},"sortOrder":{"type":"integer","format":"int32"}}}]},"LegalMessageDto":{"type":"object","properties":{"text":{"type":"string"}}},"MessageStatDto":{"type":"object","properties":{"bounced":{"type":"integer","format":"int64","example":0},"clicks":{"type":"integer","format":"int64","example":0},"conversions":{"type":"integer","format":"int64","example":0},"delivered":{"type":"integer","format":"int64","example":0},"messageId":{"type":"integer","format":"int64","example":105963},"optOuts":{"type":"integer","format":"int64","example":0},"revenue":{"type":"number","example":0},"revenueByCurrency":{"type":"array","description":"The revenue of the message by currency","items":{"$ref":"#/components/schemas/RevenueByCurrencyDto"}},"sends":{"type":"integer","format":"int64","example":0},"totalOpens":{"type":"integer","format":"int64","example":0},"uniqueClicks":{"type":"integer","format":"int64","example":0},"uniqueOpens":{"type":"integer","format":"int64","example":0}}},"MessagingTemplateDefaultDto":{"type":"object","properties":{"htmlContent":{"type":"string"},"jsonContent":{"type":"string"},"name":{"type":"string"},"subject":{"type":"string"}}},"MoneyIntervalSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/CurrencyProperty"},"rangeMax":{"type":"number","format":"double"},"rangeMin":{"type":"number","format":"double"},"type":{"type":"string","enum":["MONEY_EQUAL_TO","MONEY_LESS_THAN","MONEY_GREATER_THAN","MONEY_DOES_NOT_EQUAL","MONEY_IS_BETWEEN"]}}}]},"MultiTimeSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"endTimeMillis":{"type":"integer","format":"int64"},"startTimeMillis":{"type":"integer","format":"int64"},"type":{"type":"string","enum":["OVER_ALL_TIME","SINCE_TRIGGER","DATE_RANGE","RELATIVE_DATE"]}}}]},"NoResponseNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"sortOrder":{"type":"integer","format":"int32"}}}]},"NodeDto":{"type":"object","description":"all nodes on the graph","properties":{"childrenNodeDtos":{"type":"array","items":{"$ref":"#/components/schemas/ChildNodeDto"}},"childrenNodeIds":{"type":"array","description":"UUIDs for all nodes marked as direct children of the node","items":{"type":"string","description":"UUIDs for all nodes marked as direct children of the node"}},"graphqlId":{"type":"string"},"nodeId":{"type":"string","description":"the unique UUID of the node"},"nodeParameters":{"oneOf":[{"$ref":"#/components/schemas/AdderNodeParametersDto"},{"$ref":"#/components/schemas/ApiCallResultNodeParametersDto"},{"$ref":"#/components/schemas/BranchElseNodeParametersDto"},{"$ref":"#/components/schemas/BranchExpressionNodeParametersDto"},{"$ref":"#/components/schemas/BranchingRootNodeParametersDto"},{"$ref":"#/components/schemas/CreateSupportTicketNodeParametersDto"},{"$ref":"#/components/schemas/DelayNodeParametersDto"},{"$ref":"#/components/schemas/EndOfJourneyNodeParametersDto"},{"$ref":"#/components/schemas/ExperimentNodeParametersDto"},{"$ref":"#/components/schemas/ForwardToConciergeNodeParametersDto"},{"$ref":"#/components/schemas/IncomingTextNodeParametersDto"},{"$ref":"#/components/schemas/JoinerNodeParametersDto"},{"$ref":"#/components/schemas/KeywordResponseNodeParametersDto"},{"$ref":"#/components/schemas/NoResponseNodeParametersDto"},{"$ref":"#/components/schemas/OpenResponseNodeParametersDto"},{"$ref":"#/components/schemas/SaveUserAttributeNodeParametersDto"},{"$ref":"#/components/schemas/SendConversationalMessageNodeParametersDto"},{"$ref":"#/components/schemas/SendEmailNodeParametersDto"},{"$ref":"#/components/schemas/SendLegalWelcomeNodeParametersDto"},{"$ref":"#/components/schemas/SendMessageNodeParametersDto"},{"$ref":"#/components/schemas/TriggerNodeParametersDto"},{"$ref":"#/components/schemas/TwoWayMessageNodeParametersDto"},{"$ref":"#/components/schemas/VariantNodeParametersDto"},{"$ref":"#/components/schemas/TriggerIntegrationPostbackNodeParametersDto"}]},"nodeType":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]},"parentNodeTypes":{"type":"array","items":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]},"uniqueItems":true}}},"NodeParametersDto":{"type":"object","description":"parameters specific to the given node type","discriminator":{"propertyName":"nodeType"},"oneOf":[{"$ref":"#/components/schemas/AdderNodeParametersDto"},{"$ref":"#/components/schemas/ApiCallResultNodeParametersDto"},{"$ref":"#/components/schemas/BranchingRootNodeParametersDto"},{"$ref":"#/components/schemas/BranchElseNodeParametersDto"},{"$ref":"#/components/schemas/BranchExpressionNodeParametersDto"},{"$ref":"#/components/schemas/CreateSupportTicketNodeParametersDto"},{"$ref":"#/components/schemas/DelayNodeParametersDto"},{"$ref":"#/components/schemas/EndOfJourneyNodeParametersDto"},{"$ref":"#/components/schemas/ExperimentNodeParametersDto"},{"$ref":"#/components/schemas/ForwardToConciergeNodeParametersDto"},{"$ref":"#/components/schemas/IncomingTextNodeParametersDto"},{"$ref":"#/components/schemas/JoinerNodeParametersDto"},{"$ref":"#/components/schemas/KeywordResponseNodeParametersDto"},{"$ref":"#/components/schemas/OpenResponseNodeParametersDto"},{"$ref":"#/components/schemas/NoResponseNodeParametersDto"},{"$ref":"#/components/schemas/SaveUserAttributeNodeParametersDto"},{"$ref":"#/components/schemas/SendConversationalMessageNodeParametersDto"},{"$ref":"#/components/schemas/TwoWayMessageNodeParametersDto"},{"$ref":"#/components/schemas/SendEmailNodeParametersDto"},{"$ref":"#/components/schemas/SendLegalWelcomeNodeParametersDto"},{"$ref":"#/components/schemas/SendMessageNodeParametersDto"},{"$ref":"#/components/schemas/TriggerNodeParametersDto"},{"$ref":"#/components/schemas/VariantNodeParametersDto"},{"$ref":"#/components/schemas/TriggerIntegrationPostbackNodeParametersDto"}],"properties":{"createdTimeMillis":{"type":"integer","format":"int64"},"nodeType":{"type":"string"}},"required":["nodeType"]},"NodeStatDto":{"type":"object","properties":{"statsType":{"type":"string","enum":["EXPERIMENT_STATS","VARIANT_STATS","INCOMING_TEXT_STATS","DETAILED_KEYWORD_STATS","KEYWORD_RECEIPTS","MESSAGE_STATS","MESSAGE_STATS_WITH_CONCIERGE","OPEN_RESPONSE_STATS","REPLY_TO_BUY_STATS","TWO_WAY_MESSAGE_NODE_STATS","SAVE_USER_ATTRIBUTE_NODE_STATS","SUPPORT_TICKET_NODE_STATS"]}}},"NumberSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"family":{"type":"string","description":"Identifier for SchemaPropertiesDto classes","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","SEGMENT","DEVICE_TYPE","OPERATING_SYSTEM","PRODUCT_AVAILABILITY","SUBSCRIPTION_TYPE","MAX_INVENTORY_COUNT","PRICE_DROP_THRESHOLD","FIRST_TIME_SUBSCRIBER","CHANNEL_SUBSCRIPTION_TYPE","PRODUCT_TYPE","NUMBER_OF_PRODUCTS","CAMPAIGN","JOURNEY"],"example":"MAX_INVENTORY_COUNT"},"type":{"type":"string","description":"NumberInputComparator to use with this selection","enum":["NUMBER_INPUT_LESS_THAN_EQUAL_TO","NUMBER_INPUT_GREATER_THAN_EQUAL_TO"],"example":"NUMBER_INPUT_LESS_THAN_EQUAL_TO"},"value":{"type":"integer","format":"int64","description":"Number value","example":10}}}]},"OpenResponseNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"sortOrder":{"type":"integer","format":"int32"}}}]},"ProductAttributeDataDto":{"type":"object","properties":{"totalResults":{"type":"integer","format":"int64"},"values":{"type":"array","items":{"$ref":"#/components/schemas/SelectOption"}}}},"ProductDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"vendor":{"type":"string"}}},"ProductVariantDto":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number","format":"double"},"productId":{"type":"string"},"variantId":{"type":"string"}}},"PublishJourneyRevisionRequest":{"type":"object","properties":{"doEvictSubscribers":{"type":"boolean"}}},"ReplyKeywordDto":{"type":"object","properties":{"conversationalFeature":{"type":"string","enum":["NONE","PURCHASE_PRODUCT","SIMPLE_CONVERSATION"]},"featureDescription":{"type":"string"},"keyword":{"type":"string"},"keywordMarker":{"type":"string"}}},"ReservedKeywordDto":{"type":"object","properties":{"keyword":{"type":"string","example":"HELP"},"type":{"type":"string"}}},"RevenueByCurrencyDto":{"type":"object","description":"The revenue of the message by currency","properties":{"currency":{"type":"object","example":"USD","properties":{"currencyCode":{"type":"string"},"defaultFractionDigits":{"type":"integer","format":"int32"},"displayName":{"type":"string"},"numericCode":{"type":"integer","format":"int32"},"numericCodeAsString":{"type":"string"},"symbol":{"type":"string"}}},"revenue":{"type":"number","example":4}}},"RevisionConversationalStatDto":{"type":"object","properties":{"clicks":{"type":"integer","format":"int32"},"conversations":{"type":"integer","format":"int32"},"conversions":{"type":"integer","format":"int32"},"revenue":{"type":"number"}}},"RevisionDefinitionDto":{"type":"object","properties":{"created":{"type":"integer","format":"int64"},"eligibilityDurationSeconds":{"type":"integer","format":"int64"},"eligibilityDurationUnits":{"type":"string","enum":["MINUTES","HOURS","DAYS","WEEKS"]},"graphqlId":{"type":"string"},"hasChanges":{"type":"boolean"},"journeyId":{"type":"integer","format":"int64"},"lastGraphUpdated":{"type":"integer","format":"int64"},"lastUpdated":{"type":"integer","format":"int64"},"revisionGraph":{"$ref":"#/components/schemas/RevisionGraphDto"},"revisionId":{"type":"integer","format":"int64"},"revisionTooltips":{"type":"array","items":{"$ref":"#/components/schemas/TooltipDto"}},"revisionValidations":{"type":"array","description":"revision-level validations that do not map to a specific node (e.g. misconfigured cooldown)","items":{"$ref":"#/components/schemas/JourneyValidationResult"}},"revisionWarnings":{"type":"array","items":{"$ref":"#/components/schemas/JourneyValidationResult"}},"status":{"type":"string"}}},"RevisionGraphDto":{"type":"object","properties":{"nodeIdsToTooltips":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/TooltipDto"}}},"nodeIdsToValidationResults":{"type":"object","additionalProperties":{"type":"array","description":"a mapping of node IDs to node-specific validations in the graph","items":{"$ref":"#/components/schemas/JourneyValidationResult"}},"description":"a mapping of node IDs to node-specific validations in the graph"},"nodeIdsToValidationWarnings":{"type":"object","additionalProperties":{"type":"array","description":"a mapping of node IDs to node-specific validations in the graph","items":{"$ref":"#/components/schemas/JourneyValidationResult"}},"description":"a mapping of node IDs to node-specific validations in the graph"},"nodes":{"type":"array","description":"all nodes on the graph","items":{"$ref":"#/components/schemas/NodeDto"}}}},"RevisionMetadataDto":{"type":"object","properties":{"publishedEndTime":{"type":"string","format":"date-time","description":"timestamp of when the revision became inactive"},"publishedStartTime":{"type":"string","format":"date-time","description":"timestamp of when the revision became active"},"revisionId":{"type":"integer","format":"int64","example":2794}}},"RevisionStatDto":{"type":"object","properties":{"bounced":{"type":"integer","format":"int64","example":0},"clicks":{"type":"integer","format":"int64","example":0},"conversationalStats":{"$ref":"#/components/schemas/RevisionConversationalStatDto"},"conversions":{"type":"integer","format":"int64","example":0},"delivered":{"type":"integer","format":"int64","example":0},"entered":{"type":"integer","format":"int64","example":0},"messages":{"type":"array","items":{"$ref":"#/components/schemas/MessageStatDto"}},"nodes":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/NodeStatDto"}},"optOuts":{"type":"integer","format":"int64","example":0},"revenue":{"type":"number","example":0},"revenueByCurrency":{"type":"array","description":"The revenue of the message by currency","items":{"$ref":"#/components/schemas/RevenueByCurrencyDto"}},"revisionId":{"type":"integer","format":"int64","example":2794},"sends":{"type":"integer","format":"int64","example":0},"totalOpens":{"type":"integer","format":"int64","example":0},"uniqueClicks":{"type":"integer","format":"int64","example":0},"uniqueOpens":{"type":"integer","format":"int64","example":0}}},"SaveUserAttributeNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"userAttributeId":{"type":"string"},"userAttributeName":{"type":"string"},"userAttributeValueId":{"type":"string"},"userAttributeValueName":{"type":"string"}}}]},"ScheduleAssignedJourneyDto":{"type":"object","description":"the journey assigned to the schedule","properties":{"evictPreviousRevisionSubscribersActivateStart":{"type":"boolean","description":"whether or not to evict subscribers running through the previous revision when activating the new revision"},"journeyId":{"type":"integer","format":"int64","description":"the journey id assigned to the schedule"},"journeyRevisionIdActivateStart":{"type":"integer","format":"int64","description":"the revision id that should be activated for this journey as part of this schedule"}}},"SchemaPropertiesDto":{"type":"object"},"SelectOption":{"type":"object","properties":{"displayName":{"type":"string"},"optionValue":{"type":"string"}}},"Selectable":{"type":"object"},"Selection":{"type":"object","properties":{"schemaType":{"type":"string","enum":["MULTI_SELECT","DYNAMIC_MULTI_SELECT","FREQUENCY_COMPARATOR","TIME_COMPARATOR","SINGLE_SELECT","DYNAMIC_SINGLE_SELECT","NUMBER_INPUT","ACTION_FILTER","MONEY_COMPARATOR"]},"selectionProperties":{"$ref":"#/components/schemas/SelectionProperties"}}},"SelectionComparator":{"type":"object"},"SelectionProperties":{"type":"object","discriminator":{"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/SingleValueFrequencyProperties"},{"$ref":"#/components/schemas/FrequencySelectionProperties"},{"$ref":"#/components/schemas/TimeSelectionProperties"},{"$ref":"#/components/schemas/MultiTimeSelectionProperties"},{"$ref":"#/components/schemas/SingleTimeUnitSelectionProperties"},{"$ref":"#/components/schemas/EnumMultiSelectionProperties"},{"$ref":"#/components/schemas/DynamicMultiSelectionProperties"},{"$ref":"#/components/schemas/SingleSelectionProperties"},{"$ref":"#/components/schemas/DynamicSingleSelectionProperties"},{"$ref":"#/components/schemas/NumberSelectionProperties"},{"$ref":"#/components/schemas/ActionFilterSelectionProperties"},{"$ref":"#/components/schemas/SingleValueMoneySelectionProperties"},{"$ref":"#/components/schemas/MoneyIntervalSelectionProperties"}],"properties":{"type":{"$ref":"#/components/schemas/SelectionComparator"}}},"SendConversationalMessageNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"branchMax":{"type":"integer","format":"int32"},"branchMin":{"type":"integer","format":"int32"},"canToggleRespectBusinessHours":{"type":"boolean"},"canToggleSmartSending":{"type":"boolean"},"replyKeywords":{"type":"array","items":{"$ref":"#/components/schemas/ReplyKeywordDto"}}}}]},"SendConversationalMessageNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"attachedCoupon":{"$ref":"#/components/schemas/AttachedCouponDto"},"branchExpressionParametersId":{"type":"integer","format":"int64"},"couponPoolId":{"type":"integer","format":"int64","deprecated":true},"couponPoolSource":{"type":"string","deprecated":true,"enum":["TRIGGER_COUPON","MESSAGE_COUPON"]},"displayUnit":{"type":"string","enum":["MINUTES","HOURS","DAYS","WEEKS"]},"durationSeconds":{"type":"integer","format":"int64"},"ignoreFatigue":{"type":"boolean","deprecated":true},"message":{"$ref":"#/components/schemas/ComposeMessageDto"},"messageId":{"type":"integer","format":"int64","deprecated":true},"respectBusinessHours":{"type":"boolean"}}}]},"SendEmailNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"canToggleSmartSending":{"type":"boolean"},"messagingTemplateDefaults":{"type":"array","items":{"$ref":"#/components/schemas/MessagingTemplateDefaultDto"}}}}]},"SendEmailNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"attachedCoupon":{"$ref":"#/components/schemas/AttachedCouponDto"},"couponPoolId":{"type":"integer","format":"int64"},"couponPoolSource":{"type":"string","enum":["TRIGGER_COUPON","MESSAGE_COUPON"]},"editorSource":{"type":"string","enum":["DRAG_AND_DROP_EDITOR","HTML_EDITOR"]},"fromEmail":{"type":"string"},"fromName":{"type":"string"},"graphqlMessageId":{"type":"string"},"htmlContent":{"type":"string"},"ignoreFatigue":{"type":"boolean"},"jsonContent":{"type":"string"},"messageId":{"type":"integer","format":"int64"},"name":{"type":"string"},"preheaderText":{"type":"string"},"replyToEmail":{"type":"string"},"templateInstanceId":{"type":"integer","format":"int64"},"templateInstanceSubject":{"type":"string"},"templateInstanceUrl":{"type":"string"},"templateName":{"type":"string","deprecated":true},"templateSubject":{"type":"string","deprecated":true},"templateUrl":{"type":"string"},"utmParameters":{"type":"object","additionalProperties":{"type":"string"}}}}]},"SendLegalWelcomeNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"attachedCoupon":{"$ref":"#/components/schemas/AttachedCouponDto"},"couponPoolId":{"type":"integer","format":"int64"},"couponPoolSource":{"type":"string","enum":["TRIGGER_COUPON","MESSAGE_COUPON"]},"legalMessageId":{"type":"integer","format":"int64"},"legalText":{"type":"string"},"mediaType":{"type":"string","deprecated":true,"enum":["NONE","CONTACT_CARD","CUSTOM","LAST_PURCHASE","TRIGGER_PRODUCT"]},"mediaUrl":{"type":"string","deprecated":true},"message":{"$ref":"#/components/schemas/ComposeMessageDto"},"resubscribeMessage":{"$ref":"#/components/schemas/ComposeMessageDto"},"resubscribeMessageId":{"type":"integer","format":"int64","deprecated":true},"welcomeMessageId":{"type":"integer","format":"int64","deprecated":true}}}]},"SendMessageNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"canToggleRespectBusinessHours":{"type":"boolean"},"canToggleSmartSending":{"type":"boolean"}}}]},"SendMessageNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"attachedCoupon":{"$ref":"#/components/schemas/AttachedCouponDto"},"couponPoolId":{"type":"integer","format":"int64","deprecated":true},"couponPoolSource":{"type":"string","deprecated":true,"enum":["TRIGGER_COUPON","MESSAGE_COUPON"]},"ignoreFatigue":{"type":"boolean","deprecated":true},"message":{"$ref":"#/components/schemas/ComposeMessageDto"},"messageId":{"type":"integer","format":"int64","deprecated":true},"respectBusinessHours":{"type":"boolean"}}}]},"SingleSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"family":{"type":"string","description":"Identifier for SchemaPropertiesDto classes","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","SEGMENT","DEVICE_TYPE","OPERATING_SYSTEM","PRODUCT_AVAILABILITY","SUBSCRIPTION_TYPE","MAX_INVENTORY_COUNT","PRICE_DROP_THRESHOLD","FIRST_TIME_SUBSCRIBER","CHANNEL_SUBSCRIPTION_TYPE","PRODUCT_TYPE","NUMBER_OF_PRODUCTS","CAMPAIGN","JOURNEY"],"example":"CHANNEL_SUBSCRIPTION_TYPE"},"type":{"type":"string","enum":["SINGLE_SELECT_EQUALS"]},"value":{"type":"string"}}}]},"SingleTimeUnitSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"displayUnit":{"type":"string","enum":["MINUTES","HOURS","DAYS","WEEKS"]},"durationSeconds":{"type":"integer","format":"int64"},"type":{"type":"string","enum":["OVER_ALL_TIME","SINCE_TRIGGER","DATE_RANGE","RELATIVE_DATE"]}}}]},"SingleValueFrequencyProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"operand":{"type":"integer","format":"int32"},"type":{"type":"string","enum":["EQUAL_TO","LESS_THAN","GREATER_THAN","AT_LEAST_ONCE"]}}}]},"SingleValueMoneySelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/CurrencyProperty"},"operand":{"type":"number","format":"double"},"type":{"type":"string","enum":["MONEY_EQUAL_TO","MONEY_LESS_THAN","MONEY_GREATER_THAN","MONEY_DOES_NOT_EQUAL","MONEY_IS_BETWEEN"]}}}]},"TemplateDto":{"type":"object","properties":{"channel":{"type":"string","description":"the channel of the template","enum":["EMAIL","SMS","MULTI"]},"description":{"type":"string","description":"the description of the template"},"language":{"type":"string","description":"the language of messages in this template"},"name":{"type":"string","description":"the name of this template"},"templateId":{"type":"integer","format":"int64","description":"the ID of the template"},"triggerId":{"type":"integer","format":"int64","description":"the ID of the trigger associated with this template"}}},"TimeSelectionProperties":{"type":"object","allOf":[{"$ref":"#/components/schemas/SelectionProperties"},{"type":"object","properties":{"type":{"type":"string","enum":["OVER_ALL_TIME","SINCE_TRIGGER","DATE_RANGE","RELATIVE_DATE"]}}}]},"ToggleJourneyTriggerRequest":{"type":"object","properties":{"isActive":{"type":"boolean"}}},"ToggleTriggerByCompanyIdsRequest":{"type":"object","description":"Request body for toggling a list of company ids to specific status","properties":{"companyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"isActive":{"type":"boolean"}}},"TooltipDto":{"type":"object","properties":{"body":{"type":"string"},"header":{"type":"string"},"id":{"type":"integer","format":"int64"},"renderPriority":{"type":"integer","format":"int32"}}},"TriggerCriteriaSelection":{"type":"object","properties":{"criteriaValue":{"type":"string","enum":["INCLUDE","EXCLUDE"]},"selectedDimension":{"$ref":"#/components/schemas/TriggerDimensionSelection"}}},"TriggerDetailsDto":{"type":"object","properties":{"detailParametersDto":{"$ref":"#/components/schemas/DetailParametersDto"},"triggerType":{"type":"string","enum":["PRODUCT_VIEW","ADD_TO_CART","PURCHASE","SIGNED_UP","SIGNED_UP_FOR_EMAIL","ORDER_CREATED","ORDER_CREATED_PROMOTIONAL","ORDER_FULFILLED","ORDER_SUBSCRIPTION_CREATED","ORDER_SUBSCRIPTION_UPCOMING_CHARGE","ORDER_SUBSCRIPTION_CHARGE_FAILED","ORDER_SUBSCRIPTION_SKIPPED","TEXTED_A_KEYWORD","USER_WIN_BACK","CUSTOM_EVENT","INTEGRATION_EVENT","BACK_IN_STOCK","LOW_INVENTORY","PRICE_DROP","JOINED_A_SEGMENT","PAGE_VIEW","OPT_IN_BACK_IN_STOCK"]}}},"TriggerDimensionSelection":{"type":"object","properties":{"dimensionValue":{"type":"string","enum":["PRODUCT_NAME","PRODUCT_CATEGORY","PRODUCT_COLLECTIONS","PRODUCT_TAG","PRODUCT_AVAILABILITY","VIEWED_BACK_IN_STOCK","CART_VALUE","DEVICE_TYPE","OPERATING_SYSTEM","VIEWED_PRODUCT","ADDED_TO_CART","ABANDONED_CHECKOUT","PURCHASED","REDEEMED_COUPON","SAVED_EMAIL","RECEIVED_A_TEXT_MESSAGE","FIRST_TIME_SUBSCRIBER","CLICKED_A_TEXT_MESSAGE","KLAVIYO_RECEIVED_AN_EMAIL","KLAVIYO_OPENED_AN_EMAIL","KLAVIYO_CLICKED_AN_EMAIL","RECEIVED_AN_EMAIL","OPENED_AN_EMAIL","CLICKED_AN_EMAIL","SUBSCRIPTION_TYPE","SEGMENT","CHANNEL_SUBSCRIPTION_TYPE"]},"selections":{"type":"array","items":{"$ref":"#/components/schemas/Selection"}}}},"TriggerGlobalSelection":{"type":"object","description":"Selections that affect the trigger's entry condition","properties":{"selections":{"type":"array","items":{"$ref":"#/components/schemas/Selection"}}}},"TriggerNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"criteriaGroup":{"type":"array","description":"Include and exclude criteria groups for the fan-out subscriber search","items":{"$ref":"#/components/schemas/CriteriaGroupDto"}},"globalSelectionOptions":{"$ref":"#/components/schemas/GlobalSelectionOptionsDto"}}}]},"TriggerNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"branchExpressionParametersId":{"type":"integer","format":"int64"},"globalSelections":{"$ref":"#/components/schemas/TriggerGlobalSelection"},"selectedCriteria":{"type":"array","items":{"$ref":"#/components/schemas/TriggerCriteriaSelection"}},"triggerDescription":{"type":"string"},"triggerType":{"type":"string","enum":["PRODUCT_VIEW","ADD_TO_CART","PURCHASE","SIGNED_UP","SIGNED_UP_FOR_EMAIL","ORDER_CREATED","ORDER_CREATED_PROMOTIONAL","ORDER_FULFILLED","ORDER_SUBSCRIPTION_CREATED","ORDER_SUBSCRIPTION_UPCOMING_CHARGE","ORDER_SUBSCRIPTION_CHARGE_FAILED","ORDER_SUBSCRIPTION_SKIPPED","TEXTED_A_KEYWORD","USER_WIN_BACK","CUSTOM_EVENT","INTEGRATION_EVENT","BACK_IN_STOCK","LOW_INVENTORY","PRICE_DROP","JOINED_A_SEGMENT","PAGE_VIEW","OPT_IN_BACK_IN_STOCK"]}}}]},"TwoWayMessageNodeOptionsDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/DynamicNodeOptions"},{"type":"object","properties":{"branchMax":{"type":"integer","format":"int32"},"branchMin":{"type":"integer","format":"int32"},"canToggleRespectBusinessHours":{"type":"boolean"},"canToggleSmartSending":{"type":"boolean"},"reservedKeywords":{"type":"array","items":{"$ref":"#/components/schemas/ReservedKeywordDto"}}}}]},"TwoWayMessageNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"attachedCoupon":{"$ref":"#/components/schemas/AttachedCouponDto"},"branchExpressionParametersId":{"type":"integer","format":"int64"},"couponPoolId":{"type":"integer","format":"int64"},"couponPoolSource":{"type":"string","enum":["TRIGGER_COUPON","MESSAGE_COUPON"]},"ignoreFatigue":{"type":"boolean"},"message":{"$ref":"#/components/schemas/ComposeMessageDto"},"messageId":{"type":"integer","format":"int64"},"messageSuffixLength":{"type":"integer","format":"int32","writeOnly":true},"replyFormat":{"type":"string","enum":["KEYWORD","KEYWORD_WITH_DESCRIPTION","OPEN_RESPONSE"]},"respectBusinessHours":{"type":"boolean"}}}]},"UpdateBranchRequest":{"type":"object","properties":{"branches":{"type":"array","items":{"$ref":"#/components/schemas/NodeDto"}},"branchingNodeId":{"type":"string"},"nodeParameters":{"oneOf":[{"$ref":"#/components/schemas/AdderNodeParametersDto"},{"$ref":"#/components/schemas/ApiCallResultNodeParametersDto"},{"$ref":"#/components/schemas/BranchElseNodeParametersDto"},{"$ref":"#/components/schemas/BranchExpressionNodeParametersDto"},{"$ref":"#/components/schemas/BranchingRootNodeParametersDto"},{"$ref":"#/components/schemas/CreateSupportTicketNodeParametersDto"},{"$ref":"#/components/schemas/DelayNodeParametersDto"},{"$ref":"#/components/schemas/EndOfJourneyNodeParametersDto"},{"$ref":"#/components/schemas/ExperimentNodeParametersDto"},{"$ref":"#/components/schemas/ForwardToConciergeNodeParametersDto"},{"$ref":"#/components/schemas/IncomingTextNodeParametersDto"},{"$ref":"#/components/schemas/JoinerNodeParametersDto"},{"$ref":"#/components/schemas/KeywordResponseNodeParametersDto"},{"$ref":"#/components/schemas/NoResponseNodeParametersDto"},{"$ref":"#/components/schemas/OpenResponseNodeParametersDto"},{"$ref":"#/components/schemas/SaveUserAttributeNodeParametersDto"},{"$ref":"#/components/schemas/SendConversationalMessageNodeParametersDto"},{"$ref":"#/components/schemas/SendEmailNodeParametersDto"},{"$ref":"#/components/schemas/SendLegalWelcomeNodeParametersDto"},{"$ref":"#/components/schemas/SendMessageNodeParametersDto"},{"$ref":"#/components/schemas/TriggerNodeParametersDto"},{"$ref":"#/components/schemas/TwoWayMessageNodeParametersDto"},{"$ref":"#/components/schemas/VariantNodeParametersDto"},{"$ref":"#/components/schemas/TriggerIntegrationPostbackNodeParametersDto"}]},"nodeType":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]}}},"UpdateJourneyDetailsRequest":{"type":"object","properties":{"description":{"type":"string","description":"the description of the journey"},"draftRevisionId":{"type":"integer","format":"int64","description":"the ID of the current draft revision, if one exists, or null otherwise"},"graphqlId":{"type":"string"},"isActive":{"type":"boolean","description":"whether or not the journey is active in the execution API"},"journeyCategory":{"type":"string","enum":["UNKNOWN","MARKETING","TRANSACTIONAL"]},"journeyId":{"type":"integer","format":"int64","description":"the ID of the journey"},"journeySchedule":{"$ref":"#/components/schemas/JourneyScheduleDto"},"lastPublished":{"type":"integer","format":"int64","description":"timestamp of last publish to this journey"},"lastUpdated":{"type":"integer","format":"int64","description":"timestamp of last update to journey metadata"},"name":{"type":"string","description":"the name of the journey"},"publishedRevisionId":{"type":"integer","format":"int64","description":"the ID of the current published revision, if one exists, or null otherwise"},"state":{"type":"string","description":"the current state of the journey. Active journeys with published revisions are \"LIVE\", inactive journeys are \"INACTIVE\", and all other cases are \"DRAFT\"","enum":["LIVE","INACTIVE","DRAFT"]},"tags":{"type":"array","description":"a list of associated tags for journey","items":{"$ref":"#/components/schemas/JourneyTagDto"}},"templateVariantId":{"type":"integer","format":"int64"},"triggerId":{"type":"integer","format":"int64"}}},"UpdateJourneyNodeRequest":{"type":"object","description":"-","properties":{"childrenNodeDtos":{"type":"array","items":{"$ref":"#/components/schemas/ChildNodeDto"}},"childrenNodeIds":{"type":"array","description":"UUIDs for all nodes marked as direct children of the node","items":{"type":"string","description":"UUIDs for all nodes marked as direct children of the node"}},"graphqlId":{"type":"string"},"nodeId":{"type":"string","description":"the unique UUID of the node"},"nodeParameters":{"$ref":"#/components/schemas/NodeParametersDto"},"nodeType":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]},"parentNodeTypes":{"type":"array","items":{"type":"string","enum":["ADDER","API_CALL_RESULT","BRANCH_ELSE","BRANCH_EXPRESSION","BRANCHING_ROOT","CREATE_SUPPORT_TICKET","DELAY","END_OF_JOURNEY","EXPERIMENT","FORWARD_TO_CONCIERGE","INCOMING_TEXT","JOINER","KEYWORD_RESPONSE","NO_RESPONSE","OPEN_RESPONSE","SAVE_USER_ATTRIBUTE","SEND_EMAIL","SEND_LEGAL_WELCOME","SEND_MESSAGE","SEND_CONVERSATIONAL_MESSAGE","TRIGGER","TWO_WAY_MESSAGE","VARIANT"]},"uniqueItems":true}}},"UpdateJourneyRevisionSettingsRequest":{"type":"object","properties":{"eligibilityDurationSeconds":{"type":"integer","format":"int64"},"eligibilityDurationUnits":{"type":"string","enum":["MINUTES","HOURS","DAYS","WEEKS"]}}},"UpdateLegalMessageRequest":{"type":"object","properties":{"text":{"type":"string"}}},"ValidationResultMetadata":{"type":"object","description":"Optional. metadata specific to validation error code"},"VariantNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"name":{"type":"string"},"percentage":{"type":"number","format":"double"},"sortOrder":{"type":"integer","format":"int32"}}}]},"TriggerIntegrationPostbackNodeParametersDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/NodeParametersDto"},{"type":"object","properties":{"integrationVendors":{"type":"array","items":{"type":"string"}},"integrationVendorMetadata":{"type":"object","$ref":"#/components/schemas/IntegrationVendorMetadata"}}},{"required":["integrationVendors"]}]},"IntegrationVendorMetadata":{"type":"object","description":"parameters specific to the given node type","properties":{"postPilotMetaDataDto":{"type":"object","$ref":"#/components/schemas/PostPilotMetadata"},"airshipMetadataDto":{"type":"object","$ref":"#/components/schemas/AirshipMetadata"},"customMetadataDto":{"type":"object","$ref":"#/components/schemas/CustomMetadata"}}},"PostPilotMetadata":{"type":"object","properties":{"flowAddress":{"type":"string"}}},"AirshipMetadata":{"type":"object","properties":{"pushNotificationMessage":{"type":"string","deprecated":true},"messageTemplateId":{"type":"string"},"messageExpirySeconds":{"type":"integer","format":"int64"},"notificationTemplateId":{"type":"string"},"notificationMediaUrl":{"type":"string"},"notificationDeepLinkUrl":{"type":"string"},"devices":{"type":"array","items":{"type":"string","enum":["ANDROID","IOS"]}},"categories":{"type":"array","items":{"type":"string"}},"useEventLinkAsDeepLink":{"type":"boolean"},"deepLinkUtmParameters":{"type":"object","additionalProperties":{"type":"string"}}}},"CustomMetadata":{"type":"object","properties":{"postbackTemplateId":{"type":"string"},"customParameters":{"type":"object","additionalProperties":{"type":"string"}}}},"WelcomeJourneyDetailsDto":{"type":"object","properties":{"channelType":{"type":"string","description":"type of channel used for filtering on the FE","enum":["EMAIL","SMS","MULTI"]},"creativeIds":{"type":"array","description":"list of creative ids assigned to current welcome journey","items":{"type":"integer","format":"int64","description":"list of creative ids assigned to current welcome journey"}},"journeyId":{"type":"integer","format":"int64","description":"the ID of the welcome journey"},"legalText":{"type":"string","description":"text contained in company legal message"},"name":{"type":"string","description":"the name of the welcome journey"},"referencedMacros":{"type":"array","description":"list of macro names used by current welcome journey","example":["couponScreenLink","coupon"],"items":{"type":"string","description":"list of macro names used by current welcome journey","example":"[\"couponScreenLink\",\"coupon\"]"},"uniqueItems":true},"tags":{"type":"array","description":"a list of associated tags for welcome journey","items":{"$ref":"#/components/schemas/JourneyTagDto"}},"welcomeText":{"type":"string","description":"text contained in the welcome message of the journey"}}},"Metadata":{"example":{"createdAt":"2000-01-23T04:56:07.000Z","deletedAt":"2000-01-23T04:56:07.000Z","lastModifiedAt":"2000-01-23T04:56:07.000Z","createdBy":5,"lastModifiedBy":5,"deletedBy":2},"properties":{"createdBy":{"format":"int64","type":"integer"},"createdAt":{"format":"date-time","type":"string"},"lastModifiedBy":{"format":"int64","type":"integer"},"lastModifiedAt":{"format":"date-time","type":"string"},"deletedBy":{"format":"int64","type":"integer"},"deletedAt":{"format":"date-time","type":"string"}},"type":"object"},"SignUp":{"example":{"metadata":{"createdAt":"2000-01-23T04:56:07.000Z","deletedAt":"2000-01-23T04:56:07.000Z","lastModifiedAt":"2000-01-23T04:56:07.000Z","createdBy":5,"lastModifiedBy":5,"deletedBy":2},"displayName":"displayName","id":0,"steps":{"key":{"id":6,"type":"type","transitions":{"key":1}}},"status":"ACTIVE"},"properties":{"id":{"format":"int64","type":"integer"},"status":{"enum":["ACTIVE","INACTIVE","ARCHIVED"],"type":"string"},"displayName":{"type":"string"},"steps":{"additionalProperties":{"$ref":"#/components/schemas/SignUpStep"},"type":"object"},"metadata":{"$ref":"#/components/schemas/Metadata"}},"type":"object"},"SignUpStep":{"example":{"id":6,"type":"type","transitions":{"key":1}},"properties":{"id":{"format":"int64","type":"integer"},"type":{"type":"string"},"transitions":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"}},"type":"object"},"Creative":{"example":{"templateConfig":"templateConfig","metadata":{"createdAt":"2000-01-23T04:56:07.000Z","deletedAt":"2000-01-23T04:56:07.000Z","lastModifiedAt":"2000-01-23T04:56:07.000Z","createdBy":5,"lastModifiedBy":5,"deletedBy":2},"displayName":"displayName","id":0,"templateId":6,"status":"ACTIVE"},"properties":{"id":{"format":"int64","type":"integer"},"status":{"enum":["ACTIVE","INACTIVE"],"type":"string"},"displayName":{"type":"string"},"templateId":{"format":"int64","type":"integer"},"templateConfig":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Metadata"}},"type":"object"},"AnyValue":{"description":"Wildcard acceptance for any payload body from different event types."},"OrderPlaced":{"allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"isReplacement":{"type":"boolean","description":"Whether or not this order is a replacement order. If so, please reference the `replacementDetails` field to find the original order guid.","example":false},"replacementDetails":{"$ref":"#/components/schemas/OrderReplacementDetails"}}}]},"OrderClosed":{"allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"orderIdString":{"type":"string","description":"The exact same value as in the `orderId` field, except in string format. Javascript apps should use this field instead of `orderId` to maintain correct application behavior.","example":"224895"}}}]},"OrderCancelled":{"allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"timeCancelled":{"type":"string","description":"Local date and time when the order was cancelled, in the format \"yyyymmdd hh:mm\".","example":"20171028 17:27"},"cancelReason":{"description":"Reason for the cancellation.","type":"string","example":"Ordered by mistake."}}}]},"OrderAdjusted":{"allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"adjustment":{"type":"object","description":"Details about the order adjustment. Adjusted amount fields are displayed as negatives which indicate how much of the original amount was adjusted.","properties":{"timeAdjusted":{"type":"string","description":"Date and time local to the restaurant when the order was adjusted, in the format \"yyyymmdd hh:mm\".","example":"20171028 17:27"},"adjustmentAmount":{"type":"number","format":"double","description":"Total amount of the adjustment.","example":-5},"adjustmentCustomFeeTotalAmount":{"type":"number","format":"double","description":"Amount the custom fees have been adjusted.","example":0},"adjustmentSubtotalAmount":{"type":"number","format":"double","description":"Amount the subtotal has been adjusted.","example":-2},"adjustmentTaxAmount":{"type":"number","format":"double","description":"Amount tax has been adjusted.","example":-1.4},"adjustmentType":{"type":"string","description":"Type of adjustment.","example":"FullRefund, AdditionalCharge, PartialRefund, Tip"},"adjustmentReason":{"type":"string","example":"Order refunded.","description":"Reason for the adjustment."}}}}}]},"UserSignedUp":{"$ref":"#/components/schemas/User"},"UserUpdated":{"$ref":"#/components/schemas/User"},"GuestOptIn":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the guest.","example":"Michael"},"lastName":{"type":"string","description":"Last name of the guest.","example":"Jordan"},"email":{"type":"string","format":"email","description":"Email address of the guest.","example":"hisairness@example.com"},"locationId":{"type":"integer","format":"int64","description":"Olo restaurant id (a.k.a. VendorId) where the guest placed their order.","example":234556},"storeNumber":{"type":"string","description":"External reference of the restaurant where the guest placed their order.","example":"10586"}}},"UserOptOut":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Olo user id.","example":12345678},"emailAddress":{"type":"string","format":"email","description":"Email address of the user.","example":"ron@example.com"}}},"ScheduledOrderFired":{"$ref":"#/components/schemas/Order"},"ScheduledOrderFailed":{"allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"failReason":{"type":"string","description":"Reason why the scheduled order failed to fire.","example":"Order was cancelled"}}}]},"MenuItemAvailabilityChanged":{"type":"array","items":{"type":"object","properties":{"locationId":{"type":"integer","format":"int64","description":"Olo restaurant id (a.k.a. VendorId).","example":12341234},"itemEntityType":{"type":"string","description":"Type of item that was changed.","example":"Product, Choice"},"itemEntityId":{"type":"integer","description":"Olo id for the menu item on the associated restaurant's menu.","format":"int64","example":72251234},"itemExternalReference":{"type":"string","description":"External reference for the menu item.","example":"61DCD03A2-4FE53-4FG80-8DE47-C42GED"},"isAvailable":{"type":"boolean","description":"Whether or not the menu item is available.","example":false}}}},"VendorAvailabilityChanged":{"type":"object","properties":{"storeNumber":{"type":"string","description":"External reference of the restaurant.","example":"15623"},"state":{"type":"string","description":"State where the restaurant is located, two character abbreviation.","example":"NY"},"locationId":{"type":"integer","format":"int64","description":"Olo restaurant id (a.k.a. VendorId).","example":837213},"newStatus":{"type":"string","description":"Restaurant's online / offline status.","example":"Online, Offline"},"changeTime":{"type":"string","description":"Date and time (UTC) the change occurred.","example":"2017-03-18T08:41:49.897Z"}}},"VendorTemporarilyDisabled":{"type":"object","properties":{"change":{"type":"string","description":"Restaurant's enabled / disabled status.","example":"Enabled, Disabled"},"timestamp":{"type":"string","description":"Date and time (UTC) the change occurred.","example":"2017-11-20T15:31:03.594Z"},"channelName":{"type":"string","description":"Brand name.","example":"Foos Burgers"},"vendorExternalReference":{"type":"string","description":"External reference of the restaurant.","example":"1003"},"vendorId":{"type":"integer","format":"int64","description":"Olo restaurant id (a.k.a. VendorId).","example":34512},"vendorStatus":{"type":"string","description":"Restaurant status in Olo.","example":"Public, Private, Removed, Staging, Junk, Disabled"},"category":{"type":"string","description":"Reason for the change, can include the source.","example":"Restaurant maintenance is complete and now open"}}},"VendorMenuExportComplete":{"type":"object","properties":{"dateCreated":{"type":"string","format":"date-time","description":"Date and time (UTC) the new Vendor Export file was created.","example":"20190809 15:12"},"vendorId":{"type":"integer","format":"int64","description":"Olo restaurant/vendor id.","example":32157},"hasMenuChanges":{"type":"boolean","description":"Whether or not any menu changes were detected when the Vendor Export file was created.","example":true},"hasUncategorizedChanges":{"type":"boolean","description":"Whether or not any uncategorizable changes were detected when the Vendor Export file was created. Please note that when this field is true, it is possible that changes to the menu and/or restaurant were made even if the other change boolean fields are false.","example":false},"hasVendorChanges":{"type":"boolean","description":"Whether or not any restaurant/vendor level changes were detected when the Vendor Export file was created.","example":false}}},"DispatchStatusUpdate":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Olo dispatch GUID.","example":"708e00-b7se7-4wc4-be42-dfab3546w"},"orderId":{"type":"integer","format":"int64","description":"Internal Olo order id. Javascript apps should instead use the `orderIdString` field to maintain correct application behavior.","example":224895},"orderIdString":{"type":"string","description":"The exact same value as in the `orderId` field, except in string format. Javascript apps should use this field instead of `orderId` to maintain correct application behavior.","example":"224895"},"deliveryServiceDeliveryId":{"type":"string","description":"Delivery id from the delivery service provider (DSP).","example":"4554154"},"deliveryService":{"type":"string","description":"Name of the delivery service provider (DSP).","example":"roadrunner"},"status":{"type":"string","description":"Status of the delivery.","example":"DeliveryInProgress"},"estimatedPickupTime":{"type":"string","description":"Estimated date and time (UTC) that the courier will pickup the order from the restaurant.","example":"2017-04-18T21:15:11.587"},"estimatedDropoffTime":{"type":"string","description":"Estimated date and time (UTC) that the courier will deliver the order to the customer.","example":"2017-04-18T21:30:11.587"},"driverName":{"type":"string","description":"Name of the courier.","example":"Dan Deliveryman"},"driverPhoneNumber":{"type":"string","description":"Courier's phone number.","example":"15055555555"},"customerServiceContactInfo":{"type":"string","description":"Contact information for the delivery service provider (DSP).","example":"dispatch@olo.com; 1-505-555-5555"},"assignTime":{"type":"string","description":"Date and time (UTC) that the delivery was assigned to the courier.","example":"2016-03-03T16:41:37.397"},"pickupTime":{"type":"string","description":"Date and time (UTC) that the courier picked up the order from the restaurant.","example":"2016-03-03T16:41:48.603"},"dropoffTime":{"type":"string","description":"Date and time (UTC) that the courier completed the delivery to the customer.","example":"2016-03-03T16:42:03.227"},"cancelTime":{"type":"string","description":"Date and time (UTC) that the delivery was canceled.","example":"2016-03-03T16:40:03.227"},"canceledBy":{"type":"string","description":"Who canceled the delivery.","example":"DeliveryProvider"},"cancelReason":{"type":"string","description":"Reason the delivery was canceled.","example":"PickupNotReady"},"latitude":{"type":"number","format":"float","description":"Latitude of the delivery driver at the time the webhook was queued.","example":40.716038},"longitude":{"type":"number","format":"float","description":"Longitude of the delivery driver at the time the webhook was queued.","example":-74.00631}}},"StandingOrderInstantiationFailed":{"type":"object","properties":{"orderId":{"type":"integer","format":"int64","description":"Internal Olo order id. Javascript apps should instead use the `orderIdString` field to maintain correct application behavior.","example":123456},"orderIdString":{"type":"string","description":"The exact same value as in the `orderId` field, except in string format. Javascript apps should use this field instead of `orderId` to maintain correct application behavior.","example":"123456"},"templateName":{"type":"string","description":"Name of the standing order template.","example":"Test"},"templateId":{"type":"integer","format":"int64","description":"Id of the standing order template.","example":54},"timeWanted":{"type":"string","description":"Date and time local to the restaurant that the order is wanted.","example":"20170310 13:28"},"failReason":{"type":"string","description":"Reason why the standing order failed.","example":"Order failed"},"customer":{"$ref":"#/components/schemas/OrderCustomer"}}},"LocationParticipationChanged":{"type":"object","properties":{"storeNumber":{"type":"string","description":"External reference of the restaurant.","example":"51832"},"locationId":{"type":"integer","format":"int64","description":"Olo restaurant id (a.k.a. VendorId).","example":249674},"locationName":{"type":"string","description":"Name of the restaurant.","example":"Acapuloco - Downey"},"status":{"type":"string","description":"Restaurant's enabled / disabled status. If the restaurant is disabled, you will no longer be able to retrieve the associated Vendor Export file or interact with it via the Rails API.","example":"Enabled"},"changeTime":{"type":"string","format":"date-time","description":"Date and time (UTC) the change was made.","example":"2020-05-10T14:30:05.578"}}},"MenuSyncComplete":{"type":"object","properties":{"syncId":{"type":"string","format":"uuid","description":"Internal Olo menu sync id.","example":"eaa36dba-4f05-41ec-9080-63a6f4989d98"},"storeNumber":{"type":"string","description":"External reference of the restaurant.","example":"114590"},"status":{"type":"string","description":"Status of the menu sync operation.","example":"Succeeded, Failed"},"createdDateTime":{"type":"string","format":"date-time","description":"Date and time (UTC) the menu sync was initiated.","example":"2019-02-19T14:10:37.59"},"completedDateTime":{"type":"string","format":"date-time","description":"Date and time (UTC) the menu sync completed.","example":"2019-02-19T14:10:52.253"}}},"ExternalOrderEvent":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Olo external order event guid.","example":"2b9888ca-24bc-e711-a977-0afcc1bd9d86"},"orderId":{"type":"integer","format":"int64","description":"Internal Olo order id. Javascript apps should instead use the `orderIdString` field to maintain correct application behavior.","example":123456},"orderIdString":{"type":"string","description":"The exact same value as in the `orderId` field, except in string format. Javascript apps should use this field instead of `orderId` to maintain correct application behavior.","example":"123456"},"externalReference":{"type":"string","description":"External reference for the order. This will be the same as the order id in the Rails marketplace's system.","example":"54321"},"posRef":{"type":"string","description":"POS id for the order.","example":"615891"},"eventType":{"type":"string","description":"External order event type.","example":"OrderCanceled"},"updateReason":{"type":"string","description":"Reason for the external order event.","example":"EndUserCanceled, DestinationUnreachable, DriverFailure, ServiceOverCommitted, OtherCancelReason"},"comments":{"type":"string","description":"Any additional comments provided for the external order event.","example":"Order was cancelled by customer"},"orderingProvider":{"type":"object","$ref":"#/components/schemas/OrderingProvider"}}},"BasketSubmitFailed":{"type":"object","properties":{"brandName":{"type":"string","description":"The brand name.","example":"Foosburgers"},"brandId":{"type":"string","format":"uuid","description":"Internal Olo brand GUID.","example":"cea27ddd-06cd-4a62-93af-858cb3e32dc9"},"storeNumber":{"type":"string","description":"External reference of the restaurant.","example":"2064"},"storeUtcOffset":{"type":"number","format":"float","description":"UTC offset of the timezone the restaurant is in, this factors in Daylight Savings time.","example":-5},"timestamp":{"type":"string","format":"date-time","description":"Date and time (UTC) the failure occurred.","example":"2020-02-21T11:18:45.737Z"},"basket":{"type":"object","description":"The basket information.","properties":{"id":{"type":"string","format":"uuid","description":"Olo basket GUID.","example":"73d6f9c2-60cb-474c-bb36-9686bf1dea83"},"externalReference":{"type":"string","description":"External basket reference id.","example":"54012234125"},"posRef":{"type":"string","description":"The POS transaction id for the order, if the POS provides it.","example":"60628|1027606"},"createdDate":{"type":"string","description":"Date and time (UTC) the basket was created.","format":"date-time","example":"2020-02-21T11:18:37.920Z"}}},"error":{"$ref":"#/components/schemas/BasketSubmitError"}}},"BasketSubmitError":{"type":"object","description":"Details of the error.","properties":{"failureOrigin":{"type":"string","description":"Where the failure occurred.","example":"PosInStore"},"failureCategory":{"type":"string","description":"Category of failure based on failureOrigin.","example":"PosMappingError"},"customerFriendlyMessage":{"type":"string","description":"Customer friendly message about the failure.","example":"Apologies, there is a problem on this order. Please update your order to remove any unavailable items to try this order again. 'Cowboy Burger' is not currently available."}}},"OrderCoupon":{"type":"object","description":"Coupon applied to the order.","properties":{"couponCode":{"type":"string","description":"Coupon code.","example":"25OFF"},"description":{"type":"string","description":"Description of the coupon.","example":"Take 25% off entire order"}}},"OrderingProvider":{"type":"object","description":"Ordering provider information. If this is null, then the order was placed on one of the Olo white label ordering interfaces.","properties":{"name":{"type":"string","description":"Name of the ordering provider's API project.","example":"Olo"},"slug":{"type":"string","description":"Ordering provider slug. Typically this will only be populated for Rails orders.","example":"olo"}}},"OrderLocation":{"type":"object","description":"Details of the restaurant/location associated with the order.","properties":{"name":{"type":"string","description":"Name of the restaurant.","example":"Kitchen Sink Demo Vendor"},"logo":{"type":"string","description":"URL to the restaurant's logo."},"latitude":{"type":"number","format":"float","description":"Latitude of the restaurant.","example":40.7270278},"longitude":{"type":"number","format":"float","description":"Longitude of the restaurant.","example":-73.9918977}}},"OrderPayment":{"type":"object","description":"Payment information.","properties":{"type":{"type":"string","description":"Type of payment.","example":"instore, creditcard, prepaid, giftcard"},"description":{"type":"string","description":"Description of the payment.","example":"Cash"},"amount":{"type":"number","format":"double","description":"Amount of the payment.","example":6.99}}},"OrderTotals":{"type":"object","description":"Amounts paid for the order.","properties":{"subTotal":{"type":"number","format":"double","description":"Subtotal amount."},"salesTax":{"type":"number","format":"double","description":"Sales tax amount."},"feesTotal":{"type":"number","format":"double","description":"Total of all custom fees."},"tip":{"type":"number","format":"double","description":"Tip amount."},"discount":{"type":"number","format":"double","description":"Discount amount."},"total":{"type":"number","format":"double","description":"Total including taxes and fees."},"customerDelivery":{"type":"number","format":"double","description":"Amount paid by the customer for delivery. Only populated for Dispatch or in-house delivery orders."},"delivery":{"type":"number","format":"double","description":"Amount charged by the restaurant for delivery. Please reference the `customerDelivery` field as this factors in both Dispatch and in-house delivery charges.","deprecated":true}}},"OrderCustomFee":{"type":"object","description":"Custom fee that was charged for the order.","properties":{"amount":{"type":"number","format":"double","description":"Amount of the fee."},"description":{"type":"string","example":"Service Fee","description":"Description of the fee."},"internalName":{"type":"string","description":"Explanation of the fee.","example":"Systemwide Service Fee"}}},"OrderCustomField":{"type":"object","description":"Custom field, commonly assocatied with curbside pickup orders.","properties":{"key":{"type":"string","description":"Description of the custom field.","example":"Name"},"value":{"type":"string","description":"Value of the custom field.","example":"Value"}}},"OrderProductCustomValue":{"type":"object","description":"Choice custom field filled out by the customer.","properties":{"label":{"type":"string","description":"Label of the choice custom field.","example":"Writing on the cake"},"value":{"type":"string","description":"Value of the choice custom field.","example":"Happy Birthday!"},"vendorOptionGroupChoiceId":{"type":"integer","format":"int64","description":"Restaurant specific choice custom field id.","example":894675}}},"OrderProductModifier":{"type":"object","description":"Choice made by the customer for a product modifier/option group.","properties":{"modifierId":{"type":"integer","format":"int64","description":"Company level option/choice id.","example":382903},"vendorSpecificModifierId":{"type":"integer","format":"int64","description":"Restaurant specific option/choice id.","example":214931301},"modifierQuantity":{"type":"integer","format":"int32","description":"Quantity of the choice ordered.","example":1},"description":{"type":"string","description":"Name of the option/choice."},"sellingPrice":{"type":"number","format":"double","description":"Cost of the option/choice.","example":0.99},"modifiers":{"type":"array","description":"Choices made by the customer for modifiers/option groups that are nested under this one.","minItems":0,"items":{"$ref":"#/components/schemas/OrderProductModifier"}},"customFields":{"type":"array","description":"List of custom fields for the option/choice. Please reference the item level \"customValues\" array instead.","minItems":0,"deprecated":true,"items":{"$ref":"#/components/schemas/OrderProductModifierCustomField"}}}},"OrderProductModifierCustomField":{"type":"object","description":"Choice custom field.","properties":{"key":{"type":"string","description":"Description of the custom field.","example":"Name","deprecated":true},"value":{"type":"string","description":"Value of the custom field.","example":"Value","deprecated":true}}},"OrderLoginProvider":{"type":"object","properties":{"name":{"type":"string","description":"Name of the login provider.","example":"Google"},"slug":{"type":"string","description":"Login provider slug.","example":"google"}}},"OrderCustomer":{"type":"object","description":"Details about the customer.","properties":{"customerId":{"type":"integer","format":"int64","description":"Olo user/customer id.","example":63775},"externalReference":{"type":"string","description":"External reference of the customer supplied by the ordering provider.","example":"53235aacb-a24a-4e4c-17d1-d0d215412cb2"},"firstName":{"type":"string","description":"Customer's first name.","example":"Mike"},"lastName":{"type":"string","description":"Customer's last name.","example":"Test"},"contactNumber":{"type":"string","description":"Customer's phone number. Please note that some ordering providers such as Rails marketplaces do not typically provide actual customer phone numbers.","example":"15055555555"},"email":{"type":"string","description":"Customer's email address. Please note that some ordering providers such as Rails marketplaces do not typically provide actual customer email addresses.","example":"mike.test@olo.com"},"loyaltyScheme":{"type":"string","description":"Name of the loyalty scheme that the customer is enrolled in."},"membershipNumber":{"type":"string","description":"Customer's membership number for the loyalty scheme."},"loginProviders":{"type":"array","description":"Login provider for the customer. If empty, the customer did not have a registered account and is considered a guest user.","minItems":0,"items":{"$ref":"#/components/schemas/OrderLoginProvider"}}}},"OrderProduct":{"type":"object","description":"Product that was ordered.","properties":{"productId":{"type":"integer","format":"int64","description":"Olo product id.","example":122483},"specialInstructions":{"type":"string","description":"Special instructions."},"quantity":{"type":"integer","format":"int32","description":"Quantity of product ordered.","example":1},"recipientName":{"type":"string","description":"Name of the recipient."},"customValues":{"type":"array","description":"Choice custom fields specified by the customer for the product. Typically these are used for products that allow the customer to supply a custom message (ex. writing on a birthday cake).","items":{"$ref":"#/components/schemas/OrderProductCustomValue"}},"description":{"type":"string","description":"Description of the product."},"sellingPrice":{"type":"number","format":"double","description":"Selling price of the product.","example":1.99},"modifiers":{"type":"array","description":"Choices made by the customer for modifiers/option groups.","minItems":0,"items":{"$ref":"#/components/schemas/OrderProductModifier"}}}},"OrderReplacementDetails":{"type":"object","properties":{"originalId":{"type":"string","format":"uuid","description":"Original Olo order GUID.","example":"cea27ddd-06cd-4a62-93af-858cb3e32dc9"}}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Olo user id.","example":12345678},"userGuid":{"type":"string","format":"uuid","description":"Olo user GUID.","example":"f50abf1a-db44-419a-8c74-c375da9669ed"},"firstName":{"type":"string","description":"First name of the user.","example":"Ron"},"lastName":{"type":"string","description":"Last name of the user.","example":"Idaho"},"emailAddress":{"type":"string","description":"Email address of the user.","example":"ron@example.com"},"contactNumber":{"type":"string","description":"Contact number of the user.","example":"15055555555"},"allowEmail":{"type":"boolean","description":"Whether or not the user wishes to receive marketing emails.","example":false},"allowMarketingSms":{"type":"boolean","description":"Whether or not the user wishes to receive marketing SMS messages (text messages).","example":false}}},"OrderDeliveryAddress":{"type":"object","description":"Delivery address for the order. Please note that this information is not provided to Olo for Rails orders as the marketplace handles delivery through their system.","properties":{"streetAddress1":{"type":"string","description":"Street address line 1 and building (if specified).","example":"26 Broadway, Building 3"},"streetAddress2":{"type":"string","description":"Will always be blank."},"city":{"type":"string","description":"City.","example":"New York"},"postalCode":{"type":"string","description":"Zip code.","example":"10004"},"comments":{"type":"string","description":"Special instructions for the delivery address.","example":"Wait in lobby"},"coordinates":{"type":"object","description":"Coordinates of the delivery address.","properties":{"latitude":{"type":"number","format":"float","description":"Latitude.","example":40.7055092},"longitude":{"type":"number","format":"float","description":"Longitude.","example":-74.0131178}}}}},"Order":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Olo order GUID.","example":"2b9888ca-24bc-e711-a977-0afcc1bd9d86"},"orderId":{"type":"integer","format":"int64","description":"Internal Olo order id. Javascript apps should instead use the `orderIdString` field to maintain correct application behavior.","example":88182},"orderIdString":{"type":"string","description":"The exact same value as in the `orderId` field, except in string format. Javascript apps should use this field instead of `orderId` to maintain correct application behavior.","example":"88182"},"externalReference":{"type":"string","description":"External order reference for the order supplied by the ordering provider."},"posRef":{"type":"string","description":"POS id for the order.","example":"ABC123"},"brandName":{"type":"string","description":"Olo's configured name for the restaurant, generally set with guidance from the brand.","example":"Foosburgers"},"brandId":{"type":"string","format":"uuid","description":"Olo brand GUID.","example":"cea27ddd-06cd-4a62-93af-858cb3e32dc9"},"storeNumber":{"type":"string","description":"External reference of the restaurant."},"storeUtcOffset":{"type":"number","format":"float","description":"UTC offset of the restaurant's timezone. This will factor in Daylight Savings time.","example":-4},"timePlaced":{"type":"string","description":"Local date and time when the order was placed, in the format \"yyyymmdd hh:mm\".","example":"20171028 17:13"},"timeWanted":{"type":"string","description":"Local date and time the customer wants to receive the order, formatted \"yyyymmdd hh:mm\".","example":"20171028 17:19"},"prepEndTime":{"type":"string","description":"Local estimated date and time at which the kitchen will finish preparing the order, formatted \"yyyymmdd hh:mm\".","example":"20171028 17:21"},"timeReady":{"type":"string","description":"Local estimated date and time at which the order will be ready, in the format \"yyyymmdd hh:mm\".","example":"20171028 17:19"},"handoffStartTime":{"type":"string","description":"Local estimated date and time at which the order will be handed off, in the format \"yyyymmdd hh:mm\".","example":"20171028 17:19"},"customer":{"$ref":"#/components/schemas/OrderCustomer"},"deliveryMethod":{"type":"string","description":"Handoff mode for the order.","example":"pickup"},"deliveryAddress":{"$ref":"#/components/schemas/OrderDeliveryAddress"},"items":{"type":"array","description":"List of products ordered.","minItems":1,"items":{"$ref":"#/components/schemas/OrderProduct"}},"customFields":{"type":"array","description":"List of custom fields specified for the order.","minItems":0,"items":{"$ref":"#/components/schemas/OrderCustomField"}},"customFees":{"type":"array","description":"List of custom fees for the order.","minItems":0,"items":{"$ref":"#/components/schemas/OrderCustomFee"}},"totals":{"$ref":"#/components/schemas/OrderTotals"},"payments":{"type":"array","description":"Payment methods used for the order.","minItems":0,"items":{"$ref":"#/components/schemas/OrderPayment"}},"clientPlatform":{"type":"string","description":"Client platform associated with the API key used to place the order.","example":"Web"},"location":{"$ref":"#/components/schemas/OrderLocation"},"orderingProvider":{"$ref":"#/components/schemas/OrderingProvider"},"coupon":{"$ref":"#/components/schemas/OrderCoupon"}}},"ShopifyLineItem":{"type":"object","description":"A specific product variant that was in the user's cart when they began checkout","properties":{"key":{"type":"string"},"presentment_title":{"type":"string","description":"The product name","example":"IPod Nano - 8GB"},"presentment_variant_title":{"type":"string","description":"The name of the specific variant of the product. Shopify's docs don't provide an example. Presumably presentment_title should be used."},"product_id":{"type":"string","description":"The Shopify id associated with the product"},"quantity":{"type":"number","description":"The number of this item in the cart","example":5},"sku":{"type":"string","description":"The SKU of the product","example":"IPOD2008PINK"},"title":{"type":"string","example":"IPod Nano - 8GB"},"variant_id":{"type":"string","description":"The Shopify id associated with the specific product variant in the cart"},"variant_price":{"type":"string"},"line_price":{"type":"string","description":"The line price of the item, based on price multiplied by quantity","example":"995.00"},"price":{"type":"string","description":"The price of the item in presentment currency","example":"199.00"}}},"ShopifyCustomer":{"type":"object","description":"The Shopify Customer who initiated the Checkout","properties":{"id":{"type":"string","description":"The Shopify id associated with the Customer","example":603851970716743400},"email":{"type":"string","description":"The email of the Customer"},"phone":{"type":"string","description":"The phone number of the Customer"},"admin_graphql_api_id":{"type":"string","description":"The fully qualified graphQL id of the Customer"},"default_address":{"$ref":"#/components/schemas/DefaultAddress"}}},"DefaultAddress":{"type":"object","properties":{"country_code":{"type":"string","description":"The country code of the default address","example":"US"}}},"ShopifyCheckoutStarted":{"type":"object","properties":{"id":{"type":"string","description":"Shopify checkout started event id","example":981820079255243500},"token":{"type":"string"},"cart_token":{"type":"string"},"email":{"type":"string","description":"The email associated with this checkout event"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"type":"string"},"phone":{"type":"string"},"presentment_currency":{"type":"string","description":"The three-letter code (ISO 4217 format) for the currency that the customer used for payment at checkout","example":"USD"},"subtotal_price":{"type":"string","description":"The price of the checkout in presentment currency before shipping, taxes, and tips","example":"398.00"},"total_line_items_price":{"type":"string","description":"The sum of all the prices of all the items in the checkout. Duties, taxes, shipping and discounts excluded","example":"398.00"},"total_duties":{"type":"string","description":"The sum of all duties applied to line items in the order. Returns null if duties are not applicable to the order","example":null},"total_discounts":{"type":"string","description":"No Shopify description found","example":"0.00"},"total_tax":{"type":"string","description":"The sum of all the taxes applied to the checkout in presentment currency.","example":"0.00"},"taxes_included":{"type":"boolean","description":"Whether taxes are included in the subtotal price.","example":false},"total_price":{"type":"string","description":"The sum of the the checkout line prices, taxes, shipping costs, tips, and discounts in presentment currency.","example":"398.00"},"line_items":{"type":"array","description":"List of products ordered.","items":{"$ref":"#/components/schemas/ShopifyLineItem"}},"name":{"type":"string","description":"User-facing order identifier","example":"#981820079255243537"},"abandoned_checkout_url":{"type":"string","description":"The URL at which to send a user to resume their checkout flow"},"customer":{"$ref":"#/components/schemas/ShopifyCustomer"}}},"AftershipCheckpoint":{"type":"object","description":"Aftership checkpoint object","properties":{"location":{"type":"string"},"country_name":{"type":"string"},"country_iso3":{"type":"string"},"state":{"type":"string"},"city":{"type":"string"},"zip":{"type":"string"},"message":{"type":"string"},"tag":{"type":"string"},"subtag":{"type":"string"},"subtag_message":{"type":"string"},"created_at":{"type":"string"},"checkpoint_time":{"type":"string"},"slug":{"type":"string"},"raw_tag":{"type":"string"}}},"AftershipWebhookNotification":{"type":"object","properties":{"event_id":{"type":"string","description":"UUID v4 format, to uniquely identify the webhook event","example":"3f645f5e-530b-4062-8695-db6a64420af8"},"event":{"type":"string","description":"The name of the event (for tracking update, the value will be 'tracking_update')","example":"tracking_update"},"is_tracking_first_tag":{"type":"boolean","description":"Indicates if it is the first tracking update sent under a specific delivery tag. This allows application to send only the key updates to end users (e.g. the first in transit, the first failed attempt)"},"ts":{"type":"integer","format":"int64","description":"UTC unix timestamp that the event occurred"},"msg":{"type":"object","properties":{"id":{"type":"string"},"tracking_number":{"type":"string"},"title":{"type":"string"},"note":{"type":"string"},"origin_country_iso3":{"type":"string"},"destination_country_iso3":{"type":"string"},"courier_destination_country_iso3":{"type":"string"},"shipment_package_count":{"type":"string"},"active":{"type":"boolean"},"order_id":{"type":"string"},"order_id_path":{"type":"string"},"order_date":{"type":"string"},"customer_name":{"type":"string"},"emails":{"type":"array","description":"List of emails to notify","items":{"type":"string"}},"smses":{"type":"array","description":"List of phone numbers to notify","items":{"type":"string"}},"source":{"type":"string"},"return_to_sender":{"type":"boolean"},"tag":{"type":"string","description":"the Aftership delivery status (https://developers.aftership.com/reference/enum-tag)","enum":["InfoReceived","InTransit","OutForDelivery","AttemptFail","Delivered","AvailableForPickup","Exception","Expired"]},"subtag":{"type":"string"},"subtag_message":{"type":"string"},"tracked_count":{"type":"integer"},"expected_delivery":{"type":"string"},"shipment_type":{"type":"string"},"shipment_pickup_date":{"type":"string"},"shipment_delivery_date":{"type":"string"},"delivery_type":{"type":"string"},"tracking_account_number":{"type":"string"},"tracking_origin_country":{"type":"string"},"tracking_destination_country":{"type":"string"},"tracking_key":{"type":"string"},"tracking_postal_code":{"type":"string"},"tracking_ship_date":{"type":"string"},"tracking_state":{"type":"string"},"courier_tracking_link":{"type":"string"},"first_attempted_at":{"type":"string"},"courier_redirect_link":{"type":"string"},"pickup_location":{"type":"string"},"checkpoints":{"type":"array","description":"List of checkpoints","minItems":0,"items":{"$ref":"#/components/schemas/AftershipCheckpoint"}}}}}},"NarvarOrderNotification":{"type":"object","properties":{"retailer_moniker":{"type":"string"},"order_number":{"type":"string"},"placement_date":{"type":"string"},"customer_id":{"type":"string"},"billing_document":{"type":"object","$ref":"#/components/schemas/BillingDocument"}}},"BillingDocument":{"type":"object","properties":{"billed_to":{"type":"object","$ref":"#/components/schemas/BilledTo"},"amount":{"type":"string"},"tax_rate":{"type":"string"},"tax_amount":{"type":"string"},"fulfillment_status":{"type":"string"},"shipment_info":{"type":"array","description":"List of shipment info","minItems":0,"items":{"$ref":"#/components/schemas/ShipmentInfo"}}}},"BilledTo":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"phone":{"type":"string"},"phone_extension":{"type":"string"},"email":{"type":"string"},"fax":{"type":"string"},"address":{"type":"object","$ref":"#/components/schemas/Address"}}},"Address":{"type":"object","properties":{"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"street1":{"type":"string"},"zipcode":{"type":"string"}}},"ShipmentInfo":{"type":"object","properties":{"id":{"type":"string"},"tracking_number":{"type":"string"},"ship_to":{"type":"object","$ref":"#/components/schemas/ShipTo"},"discount":{"type":"string"},"shipping_amount":{"type":"string"},"tax":{"type":"string"},"order_currency":{"type":"string"},"retailer_promise_date":{"type":"string"},"ship_date":{"type":"string"},"carrier":{"type":"string"},"carrier_service":{"type":"string"},"carrier_service_code":{"type":"string"},"customer_option":{"type":"string"},"ship_method":{"type":"string"},"ship_source":{"type":"string"},"customer_key":{"type":"string"}}},"ShipTo":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"phone":{"type":"string"},"phone_extension":{"type":"string"},"email":{"type":"string"},"fax":{"type":"string"},"address":{"type":"object","$ref":"#/components/schemas/Address"}}},"SegmentBaseEvent":{"type":"object","properties":{"receivedAt":{"type":"string"},"messageId":{"type":"string"},"type":{"type":"string"}}},"SegmentTrackEvent":{"type":"object","properties":{"receivedAt":{"type":"string"},"messageId":{"type":"string"},"anonymousId":{"type":"string"},"userId":{"type":"string"},"type":{"type":"string"},"timestamp":{"type":"string"},"event":{"type":"string"},"properties":{"type":"object"}}},"SegmentIdentifyEvent":{"type":"object","properties":{"receivedAt":{"type":"string"},"messageId":{"type":"string"},"anonymousId":{"type":"string"},"userId":{"type":"string"},"context":{"type":"object"},"type":{"type":"string"},"timestamp":{"type":"string"},"traits":{"type":"object"}}},"PasskitCouponEvent":{"type":"object","properties":{"event":{"type":"string","description":"The type of event triggered.","example":"PASS_EVENT_UNINSTALLED"},"pass":{"$ref":"#/components/schemas/PasskitPass"}},"required":["event","pass"]},"PasskitEpochTime":{"type":"object","properties":{"seconds":{"type":"integer","description":"Epoch time in seconds."},"nanos":{"type":"integer","description":"Nanosecond adjustment."}}},"PasskitMetadata":{"type":"object","properties":{"firstInstalledAt":{"$ref":"#/components/schemas/PasskitEpochTime"},"firstUninstalledAt":{"$ref":"#/components/schemas/PasskitEpochTime"}}},"PasskitPass":{"type":"object","properties":{"id":{"type":"string","example":"0au5D1iSurFdc4uTy4qhZd"},"metadata":{"$ref":"#/components/schemas/PasskitMetadata"},"recordData":{"type":"object","additionalProperties":{"type":"string"}}},"required":["id","metadata","recordData"]},"MessageRequestDto":{"type":"object","properties":{"to":{"type":"string","description":"Phone number of a subscriber. Note that __subscriberExternalId__ must be null if using this identifier."},"subscriberExternalId":{"type":"integer","format":"int64","description":"The Subscriber external ID of a subscriber. Note that __to__ must be null if using this identifier."},"subscriptionType":{"type":"string","description":"Type of subscriber. The options include MARKETING or TRANSACTIONAL."},"body":{"type":"string","description":"Body of the SMS/MMS message. If the message contains fully qualified links, such as https://www.google.com, they're shortened when __useShortLinks__ is set to __true__."},"mediaUrl":{"type":"string","description":"URL of the image that accompanies MMS. Must be non-empty if set."},"useShortLinks":{"type":"boolean","description":"Automatically shorten links provided in the message body. Requires a non-null __messageName__."},"messageName":{"type":"string","description":"Name of the message to be created for tracking purposes. Note that we restrict the number of unique message names sent in a 24 hour window per company."},"skipFatigue":{"type":"boolean","description":"Forces a message send to a fatigued subscriber. Applicable to all subscription types.","default":true},"forceSend":{"type":"boolean","description":"Send messages to opted-out subscribers. Only applicable to TRANSACTIONAL subscribers."},"addSubscriber":{"type":"boolean","description":"Send messages to new subscribers. This does not send to opted-out subscribers. Note that __forceSend__ takes precedence. Only applicable to TRANSACTIONAL subscribers"},"messageId":{"type":"integer","format":"int64","description":"Id of message to create"},"creativeId":{"type":"integer","format":"int64","description":"Optional Creative ID to use when creating or opting in subscriptions"},"targetCompanyShortcode":{"type":"string","description":"The shortcode (messaging service SID) of a Company used for message routing. Note that this feature does not work on shared shortcodes."}}},"MessageBulkFailureObjectDto":{"type":"object","description":"Object containing the originl request and reason for failure","properties":{"originalRequest":{"$ref":"#/components/schemas/MessageRequestDto"},"reason":{"type":"string"}}},"CampaignMessageRequestDto":{"type":"object","description":"Campaign message object containing the request along with segment id","required":["campaignName","body","segmentId","scheduledTime","timezone"],"properties":{"campaignName":{"type":"string","description":"Name of the campaign"},"body":{"type":"string","description":"Body of the SMS/MMS message."},"mediaUrl":{"type":"string","description":"URL of the image that accompanies MMS. Must be non-empty if set."},"segmentId":{"type":"integer","format":"int64","description":"Identifies the segment to send the messages to"},"scheduledTime":{"type":"string","description":"Time that the campaign is scheduled for, in ISO-8601 format.","example":{"scheduledTime":"2022-03-24T11:11:52+0000"}},"timezone":{"type":"string","description":"Timezone to schedule the campaign in. The timezones allowed are \"America/New_York\", \"America/Chicago\", \"America/Denver\", \"America/Los_Angeles\", \"America/Anchorage\", and \"America/Adak\"","example":{"timezone":"America/New_York"}}}},"UpsertMessageRequestDto":{"type":"object","description":"Upsert a Message and retrieve the message id given a name","required":["messageName"],"properties":{"messageName":{"type":"string","description":"Name of the message"}}},"UpdateVariantInventoryRequest":{"type":"object","properties":{"updates":{"type":"array","items":{"$ref":"#/components/schemas/VariantInventoryUpdate"},"description":"List of Variant Inventory Updates"}}},"VariantInventoryUpdate":{"type":"object","properties":{"productId":{"type":"string"},"id":{"type":"string"},"availableForPurchase":{"type":"boolean"},"inventoryQuantity":{"type":"integer","format":"int64"},"upsertTime":{"type":"string","description":"Upsert timestamp, ISO 8601 datetime format expected"}}},"UpdateVariantInventoryResponse":{"type":"object","properties":{"recordsWritten":{"type":"integer","format":"int64"}}},"CatalogUploadRequest":{"type":"object","properties":{"validateOnly":{"type":"boolean","description":"If set to true, then data will not ingest and only validate the file.","default":false}}},"CatalogUploadResponse":{"type":"object","properties":{"uploadId":{"type":"string","description":"The identifier for this product catalog upload"},"status":{"type":"string","description":"The workflow state the product catalog upload is in. Workflow is `initialized` -> `validating` -> `validated` -> `completed`. The ideal end state is to reach `completed` without any validation errors. This indicates Attentive ingested everything in your upload.\n"},"errors":{"type":"array","description":"The format validation errors that were thrown. We show up to 10 errors for every validation type to reduce noise.\n","items":{"$ref":"#/components/schemas/CatalogUploadErrorResponse"}},"productsReceived":{"type":"integer","format":"int64","description":"The number of products we've so far seen for validation in your upload"},"productsProcessed":{"type":"integer","format":"int64","description":"The number of products we've successfully validated in your upload"},"lastUpdated":{"type":"string","description":"When Attentive has last updated the status and stats"},"expires":{"type":"string","description":"When this catalog upload will no longer be available"},"uploadUrl":{"type":"string","description":"The pre-signed URL to upload your product catalog to"},"validateOnly":{"type":"boolean","description":"Flag for avoiding saving the data. If set to `true`, the data will not be saved by Attentive. Useful for testing the validation\n"}}},"CatalogUploadErrorResponse":{"type":"object","properties":{"errorType":{"type":"string","description":"The class of validation error"},"errorMessage":{"type":"string","description":"Detailed validation error message"},"lineNum":{"type":"integer","format":"int64","description":"The line number for the given validation error in your file/catalog upload"}}},"CampaignBulkTimezoneRelativityRequest":{"type":"object","properties":{"campaignsToUpdate":{"type":"array","items":{"type":"string"}},"comment":{"type":"string"}}},"CampaignBulkActionDto":{"type":"object","properties":{"processedUuids":{"type":"array","items":{"type":"string"}},"alreadyProcessedUuids":{"type":"array","items":{"type":"string"}},"failedUuids":{"type":"array","items":{"type":"string"}}}},"CampaignBulkDowngradeRequest":{"type":"object","properties":{"campaignsToDowngrade":{"type":"array","items":{"$ref":"#/components/schemas/DowngradeInfo"}},"comment":{"type":"string"}}},"DowngradeInfo":{"type":"object","properties":{"campaignUuid":{"type":"string"},"messageIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"AbstractAttachmentDto":{"type":"object","properties":{"type":{"type":"string","enum":["CONTACT_CARD","SHORTLINK","VIDEO_LINK","IMAGE_GIF","MACRO_TEXT","MACRO_LINK"]}},"discriminator":{"propertyName":"type"}},"CampaignDto":{"type":"object","properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["LEGACY_MESSAGE","LEGACY_MESSAGE_EXPERIMENT","ONE_TIME","EXPERIMENT","UNKNOWN","SEND_TIME_EXPERIMENT"]},"messageExperimentId":{"type":"integer","format":"int64"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/MessageContentsDto"}},"campaignName":{"type":"string"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/CampaignSegmentDto"}},"metadata":{"$ref":"#/components/schemas/MetadataDto"},"smsRateLimit":{"type":"number","format":"double"},"mmsRateLimit":{"type":"number","format":"double"},"emailRateLimit":{"type":"number","format":"double"},"companySmsRateLimit":{"type":"number","format":"double"},"companyMmsRateLimit":{"type":"number","format":"double"},"companyEmailRateLimit":{"type":"number","format":"double"},"messageId":{"type":"integer","format":"int64"},"downgradePreapproved":{"type":"boolean"},"status":{"type":"string","enum":["UNKNOWN","UNSAVED_DRAFT","DRAFT","SCHEDULED_DRAFT","SCHEDULED","ATTENTIVE_REVIEW","SEND","CANCELLED","PAUSED","RESCHEDULED","SENT","SEND_ERROR","NEEDS_COUPONS"]},"scheduledTime":{"type":"integer","format":"int64"},"timezoneRelative":{"type":"boolean"},"ignoreFatigue":{"type":"boolean"},"updatedTime":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string"},"sendTimeUTC":{"type":"integer","format":"int64"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagDto"}},"composeCampaignUuid":{"type":"string"}}},"CampaignSegmentDto":{"type":"object","properties":{"segmentId":{"type":"integer","format":"int64"},"name":{"type":"string"},"excluded":{"type":"boolean"}}},"ChannelParametersDto":{"type":"object","properties":{"text":{"type":"string"},"estimatedNumberOfMessageParts":{"type":"integer","format":"int32"},"templateId":{"type":"integer","format":"int64"},"mediaResourceId":{"type":"integer","format":"int64"},"messagingTemplateInstanceId":{"type":"integer","format":"int64"},"subject":{"type":"string"},"fromEmail":{"type":"string"},"fromName":{"type":"string"},"replyToEmail":{"type":"string"},"preheaderText":{"type":"string"},"utmParameters":{"type":"object","additionalProperties":{"type":"string"}},"htmlContent":{"type":"string"},"jsonContent":{"type":"string"}}},"ContactCardAttachmentDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/AbstractAttachmentDto"},{"type":"object","properties":{"mediaUrl":{"type":"string"}}}]},"CouponLinkAttachmentDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/AbstractAttachmentDto"},{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"couponPoolId":{"type":"integer","format":"int64"},"couponPoolSource":{"type":"string","enum":["TRIGGER_COUPON","MESSAGE_COUPON"]},"macroCategory":{"type":"string","enum":["COUPONS"]},"couponPool":{"$ref":"#/components/schemas/CouponPoolDto1"},"shortLink":{"$ref":"#/components/schemas/CouponShortLink"}}}]},"CouponPoolDto1":{"type":"object","properties":{"autoRefresh":{"type":"boolean"},"codeTemplate":{"type":"string"},"companyId":{"type":"integer","format":"int64"},"countAssignable":{"type":"integer","format":"int64"},"couponSyncingStatus":{"type":"string","enum":["EXHAUSTED","SYNCING","ACTIVE"]},"couponUrlTemplate":{"type":"string"},"description":{"type":"string"},"externalId":{"type":"string"},"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"staticCode":{"type":"string"},"status":{"type":"string","enum":["UNKNOWN","ACTIVE","INACTIVE","UNRECOGNIZED"]},"totalCount":{"type":"integer","format":"int64"},"type":{"type":"string","enum":["UNKNOWN_TYPE","STATIC","DYNAMIC","UNRECOGNIZED"]}}},"CouponShortLink":{"type":"object","properties":{"target":{"type":"string"},"type":{"type":"string","enum":["CONTACT_CARD","SHORTLINK","VIDEO_LINK","IMAGE_GIF","MACRO_TEXT","MACRO_LINK"]}}},"ImageGifAttachmentDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/AbstractAttachmentDto"},{"type":"object","properties":{"mediaUrl":{"type":"string"}}}]},"MessageContentsDto":{"type":"object","properties":{"channel":{"type":"string","enum":["TEXT_MESSAGE","EMAIL"]},"channelParameters":{"$ref":"#/components/schemas/ChannelParametersDto"},"campaignMessageMemberId":{"type":"integer","format":"int64"},"messageId":{"type":"integer","format":"int64"},"name":{"type":"string"},"contentType":{"type":"string","enum":["SMS","MMS","EMAIL"]},"attachments":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ContactCardAttachmentDto"},{"$ref":"#/components/schemas/CouponLinkAttachmentDto"},{"$ref":"#/components/schemas/ImageGifAttachmentDto"},{"$ref":"#/components/schemas/ShortLinkAttachmentDto"},{"$ref":"#/components/schemas/VideoLinkAttachmentDto"}]}},"experimentStatSnapshotValue":{"type":"number","format":"double"},"text":{"type":"string","deprecated":true},"numSegments":{"type":"integer","format":"int32","deprecated":true},"templateId":{"type":"integer","format":"int64","deprecated":true},"mediaResourceId":{"type":"integer","format":"int64","deprecated":true}}},"MessageLinkPreviewMetadataDto":{"type":"object","properties":{"imagePreviewUrl":{"type":"string"},"videoPreviewUrl":{"type":"string"},"title":{"type":"string"}}},"MetadataDto":{"type":"object","properties":{"experimentMetadataId":{"type":"integer","format":"int64"},"experimentDelayPeriodSeconds":{"type":"integer","format":"int32"},"experimentWinningVariantCriteria":{"type":"string","enum":["UNKNOWN","CLICK_THROUGH_RATE","OPT_OUT_RATE","CONVERSION_RATE","TOTAL_REVENUE"]},"experimentSamplePercentage":{"type":"number","format":"float"},"experimentIsPickAWinnerEnabled":{"type":"boolean"},"experimentWinningCampaignMessageMemberId":{"type":"integer","format":"int64"},"experimentWinnerPickedTimestamp":{"type":"integer","format":"int64"},"sendTimeExperimentMetadataId":{"type":"integer","format":"int64"},"sendTimeExperimentTimestamps":{"type":"array","items":{"type":"integer","format":"int64"}}}},"ShortLinkAttachmentDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/AbstractAttachmentDto"},{"type":"object","properties":{"linkId":{"type":"integer","format":"int64"},"shortLink":{"type":"string"},"target":{"type":"string"}}}]},"TagDto":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"}}},"VideoLinkAttachmentDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/AbstractAttachmentDto"},{"type":"object","properties":{"entityId":{"type":"string"},"linkId":{"type":"integer","format":"int64"},"shortLink":{"type":"string"},"target":{"type":"string"},"messageLinkPreviewMetadata":{"$ref":"#/components/schemas/MessageLinkPreviewMetadataDto"}}}]},"Attachment":{"type":"object"},"Metadata1":{"type":"object","properties":{"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"description":{"type":"string"},"goodFor":{"type":"string"}}},"AffiliateMessageDto":{"type":"object","properties":{"to":{"$ref":"#/components/schemas/PhoneNumber"},"affiliateId":{"type":"integer","format":"int64"},"affiliateType":{"type":"string","enum":["KUSTOMER","ZENDESK","GORGIAS","FRESHDESK","VENDOR_LIVEPERSON","VENDOR_HELPSCOUT","VENDOR_INTERCOM","VENDOR_REAMAZE","VENDOR_GLADLY","VENDOR_SALESFORCE_SERVICE_CLOUD","VENDOR_SATISFILABS","VENDOR_RICHPANEL"]},"body":{"type":"string"},"link":{"type":"string"},"mediaUrl":{"type":"string"},"notificationUrl":{"type":"string"},"status":{"type":"string"},"ticketId":{"type":"integer","format":"int64"},"ticketIdStr":{"type":"string"},"type":{"type":"string","enum":["TRANSACTIONAL","CUSTOMER_SERVICE"]}}},"PhoneNumber":{"type":"object","properties":{"possiblePhoneNumber":{"type":"boolean"},"countryCode":{"type":"integer","format":"int32"},"shortCode":{"type":"boolean"},"tollFreeNumber":{"type":"boolean"},"region":{"type":"string"},"country":{"type":"string","enum":["Afghanistan","Åland Islands","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia, Plurinational State of","Bonaire, Sint Eustatius and Saba","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Congo, the Democratic Republic of the","Cook Islands","Costa Rica","Côte d'Ivoire","Croatia","Cuba","Curaçao","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Falkland Islands (Malvinas)","Faroe Islands","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-Bissau","Guyana","Haiti","Heard Island and McDonald Islands","Holy See (Vatican City State)","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran, Islamic Republic of","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait","Kyrgyzstan","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia, the former Yugoslav Republic of","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia, Federated States of","Moldova, Republic of","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestine, State of","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn","Poland","Portugal","Puerto Rico","Qatar","Réunion","Romania","Russian Federation","Rwanda","Saint Barthélemy","Saint Helena, Ascension and Tristan da Cunha","Saint Kitts and Nevis","Saint Lucia","Saint Martin (French part)","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Sint Maarten (Dutch part)","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and the South Sandwich Islands","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Swaziland","Sweden","Switzerland","Syrian Arab Republic","Taiwan, Province of China","Tajikistan","Tanzania, United Republic of","Thailand","Timor-Leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela, Bolivarian Republic of","Viet Nam","Virgin Islands, British","Virgin Islands, U.S.","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"]}}},"RateLimitDto":{"type":"object","properties":{"smsRateLimit":{"type":"number","format":"double"},"mmsRateLimit":{"type":"number","format":"double"},"emailRateLimit":{"type":"number","format":"double"}}},"CampaignBulkActionRequest":{"type":"object","properties":{"campaignUuids":{"type":"array","items":{"type":"string"}},"comment":{"type":"string"}}},"CampaignBulkRateLimitRequest":{"type":"object","properties":{"campaignsToRateLimit":{"type":"array","items":{"$ref":"#/components/schemas/RateLimitInfo"}},"comment":{"type":"string"}}},"RateLimitInfo":{"type":"object","properties":{"campaignUuid":{"type":"string"},"rateLimitDto":{"$ref":"#/components/schemas/RateLimitDto"}}},"SubscriberCouponDto1":{"type":"object","properties":{"phone":{"type":"string"},"coupon":{"type":"string"},"url":{"type":"string"},"coupons":{"type":"array","items":{"type":"string"}},"externalId":{"type":"string"}}},"MessageAnalyticsDto":{"type":"object","properties":{"messageId":{"type":"integer","format":"int64"},"clicks":{"type":"integer","format":"int64"},"sends":{"type":"integer","format":"int64"},"fiveMinBucket":{"type":"integer","format":"int64"}}},"FileDownloadDto":{"type":"object","properties":{"fileUrl":{"type":"string"}}},"CampaignsDto":{"type":"object","properties":{"campaigns":{"type":"array","items":{"$ref":"#/components/schemas/CampaignDto"}},"totalCampaignsCount":{"type":"integer","format":"int64"}}},"SendStatsDto":{"type":"object","properties":{"messageId":{"type":"integer","format":"int64"},"sends":{"type":"integer","format":"int64"},"clicks":{"type":"integer","format":"int64"},"optOuts":{"type":"integer","format":"int64"},"totalOpens":{"type":"integer","format":"int64"},"uniqueOpens":{"type":"integer","format":"int64"},"uniqueClicks":{"type":"integer","format":"int64"}}},"BusinessHours":{"type":"object","properties":{"open":{"$ref":"#/components/schemas/LocalTime"},"close":{"$ref":"#/components/schemas/LocalTime"},"timezone":{"type":"object","properties":{"id":{"type":"string"},"rules":{"type":"object","properties":{"fixedOffset":{"type":"boolean"},"transitions":{"type":"array","items":{"type":"object","properties":{"offsetBefore":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"offsetAfter":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"instant":{"type":"integer","format":"int64"},"overlap":{"type":"boolean"},"duration":{"type":"object","properties":{"seconds":{"type":"integer","format":"int64"},"units":{"type":"array","items":{"type":"object","properties":{"durationEstimated":{"type":"boolean"},"dateBased":{"type":"boolean"},"timeBased":{"type":"boolean"}}}},"negative":{"type":"boolean"},"zero":{"type":"boolean"},"nano":{"type":"integer","format":"int32"}}},"gap":{"type":"boolean"},"dateTimeBefore":{"type":"string","format":"date-time"},"dateTimeAfter":{"type":"string","format":"date-time"}}}},"transitionRules":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string","enum":["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"]},"timeDefinition":{"type":"string","enum":["UTC","WALL","STANDARD"]},"standardOffset":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"offsetBefore":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"offsetAfter":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"dayOfMonthIndicator":{"type":"integer","format":"int32"},"localTime":{"$ref":"#/components/schemas/LocalTime"},"midnightEndOfDay":{"type":"boolean"}}}}}}}},"companyId":{"type":"integer","format":"int64"}}},"CampaignDomainEventDto":{"type":"object","properties":{"campaignUuid":{"type":"string"},"triggerUserId":{"type":"integer","format":"int64"},"user":{"$ref":"#/components/schemas/User1"},"eventType":{"type":"string","enum":["CREATED","UPDATED","DELETED","PAUSED","RESUMED","CANCELLED","SEND_STARTED","SEND_FINISHED","TIMEZONE_SEND_STARTED","TIMEZONE_SEND_FINISHED","RESCHEDULED","CAMPAIGN_RATE_LIMIT_UPDATED","DOWNGRADED","DRAFTED"]},"eventTimestamp":{"type":"string","format":"date-time"},"comment":{"type":"string"},"source":{"type":"string"},"campaignSnapshot":{"type":"string"}}},"Company":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"externalId":{"type":"integer","format":"int64"},"displayName":{"type":"string"},"domain":{"type":"string"},"attentiveDomain":{"type":"string"},"salesforceAccountId":{"type":"string"},"salesforceOpportunityId":{"type":"string"},"phone":{"type":"string"},"messageCategories":{"type":"array","items":{"$ref":"#/components/schemas/MessageCategory"}},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"messagingServiceSid":{"type":"string"},"confirmOptIn":{"type":"string"},"ttjDoubleOptIn":{"type":"boolean"},"startResponse":{"type":"string"},"stopResponse":{"type":"string"},"helpResponse":{"type":"string"},"subscribedResponse":{"type":"string"},"autoResponse":{"type":"string"},"autoResponseActive":{"type":"boolean"},"desktopUrl":{"type":"string"},"timezone":{"type":"object","properties":{"id":{"type":"string"},"rules":{"type":"object","properties":{"fixedOffset":{"type":"boolean"},"transitions":{"type":"array","items":{"type":"object","properties":{"offsetBefore":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"offsetAfter":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"instant":{"type":"integer","format":"int64"},"overlap":{"type":"boolean"},"duration":{"type":"object","properties":{"seconds":{"type":"integer","format":"int64"},"units":{"type":"array","items":{"type":"object","properties":{"durationEstimated":{"type":"boolean"},"dateBased":{"type":"boolean"},"timeBased":{"type":"boolean"}}}},"negative":{"type":"boolean"},"zero":{"type":"boolean"},"nano":{"type":"integer","format":"int32"}}},"gap":{"type":"boolean"},"dateTimeBefore":{"type":"string","format":"date-time"},"dateTimeAfter":{"type":"string","format":"date-time"}}}},"transitionRules":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string","enum":["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"]},"timeDefinition":{"type":"string","enum":["UTC","WALL","STANDARD"]},"standardOffset":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"offsetBefore":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"offsetAfter":{"type":"object","properties":{"totalSeconds":{"type":"integer","format":"int32"},"id":{"type":"string"}}},"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"dayOfMonthIndicator":{"type":"integer","format":"int32"},"localTime":{"$ref":"#/components/schemas/LocalTime"},"midnightEndOfDay":{"type":"boolean"}}}}}}}},"businessHours":{"$ref":"#/components/schemas/BusinessHours"},"nonAttentiveMessageLinksAllowed":{"type":"boolean"},"viewThroughAttributionWindow":{"type":"integer","format":"int32"},"clickThroughAttributionWindow":{"type":"integer","format":"int32"},"rateLimit":{"type":"number","format":"double"},"mmsRateLimit":{"type":"number","format":"double"},"creativeHoldoutRate":{"type":"number","format":"double"},"messageHoldoutRate":{"type":"number","format":"double"},"walletDeliveryScreen":{"type":"string"},"codes":{"type":"array","items":{"type":"string"}},"fatigueRule":{"$ref":"#/components/schemas/FatigueRule"},"emailFatigueRule":{"$ref":"#/components/schemas/EmailFatigueRule"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"updated":{"type":"integer","format":"int64"},"created":{"type":"integer","format":"int64"},"createdBy":{"type":"string"},"termsLink":{"type":"string"},"privacyLink":{"type":"string"},"cartLink":{"type":"string"},"settingsUrl":{"type":"string"},"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zipcode":{"type":"string"},"addressCountry":{"type":"string"},"country":{"type":"string"},"replyWhenOptedOut":{"type":"boolean"},"companyType":{"type":"string","enum":["CLIENT","TEST","ATTENTIVE"]},"messagingServices":{"type":"array","items":{"$ref":"#/components/schemas/MessagingService"}},"email":{"type":"string"}}},"EmailFatigueRule":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"company":{"$ref":"#/components/schemas/Company"},"frequency":{"type":"integer","format":"int32"},"duration":{"type":"object","properties":{"seconds":{"type":"integer","format":"int64"},"units":{"type":"array","items":{"type":"object","properties":{"durationEstimated":{"type":"boolean"},"dateBased":{"type":"boolean"},"timeBased":{"type":"boolean"}}}},"negative":{"type":"boolean"},"zero":{"type":"boolean"},"nano":{"type":"integer","format":"int32"}}}}},"FatigueRule":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"company":{"$ref":"#/components/schemas/Company"},"messageId":{"type":"integer","format":"int64"},"frequency":{"type":"integer","format":"int32"},"duration":{"type":"object","properties":{"seconds":{"type":"integer","format":"int64"},"units":{"type":"array","items":{"type":"object","properties":{"durationEstimated":{"type":"boolean"},"dateBased":{"type":"boolean"},"timeBased":{"type":"boolean"}}}},"negative":{"type":"boolean"},"zero":{"type":"boolean"},"nano":{"type":"integer","format":"int32"}}}}},"LinkDomain":{"type":"object","properties":{"domain":{"type":"string"}}},"LocalTime":{"type":"object","properties":{"hour":{"type":"integer","format":"int32"},"minute":{"type":"integer","format":"int32"},"second":{"type":"integer","format":"int32"},"nano":{"type":"integer","format":"int32"}}},"Message":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"company":{"$ref":"#/components/schemas/Company"},"user":{"$ref":"#/components/schemas/User1"},"segment":{"$ref":"#/components/schemas/Segment"},"name":{"type":"string"},"text":{"type":"string"},"mediaUrl":{"type":"string"},"mediaType":{"type":"string","enum":["NONE","CONTACT_CARD","CUSTOM","LAST_PURCHASE","TRIGGER_PRODUCT"]},"signature":{"type":"string"},"start":{"type":"integer","format":"int64"},"status":{"type":"string","enum":["UNSAVED_DRAFT","DRAFT","SCHEDULED_DRAFT","SCHEDULED","ATTENTIVE_REVIEW","SEND","CANCELLED","PAUSED","RESCHEDULED","SENT","ACTIVE","INACTIVE","DRY_RUN","CANCEL_PENDING","PRODUCER_CANCEL_PENDING","PAUSE_PENDING","RESUME_PENDING","UPDATE_RECIPIENTS_PENDING","PRODUCER_UPDATE_RECIPIENTS_PENDING","RESUMED","UPDATED_RECIPIENTS","COMPANY_SHORT_LINK","DELETED","NEEDS_COUPONS"]},"timezoneRelative":{"type":"boolean"},"type":{"type":"string","enum":["ONE_TIME","AUTOMATED","TRANSACTIONAL","CONCIERGE"]},"subtype":{"type":"string","enum":["WELCOME","LEGAL","CONFIRM_OPT_IN","TRANSACTIONAL","OTHER","CONCIERGE"]},"response":{"type":"string"},"targeting":{"type":"array","items":{"$ref":"#/components/schemas/MessageCategory"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/MessageLink"}},"updated":{"type":"integer","format":"int64"},"rateLimit":{"type":"number","format":"double"},"numSegments":{"type":"integer","format":"int32"},"parentId":{"type":"integer","format":"int64"},"graphId":{"type":"integer","format":"int64"},"experimentId":{"type":"integer","format":"int64"},"stats":{"$ref":"#/components/schemas/Stats"},"ignoreFatigue":{"type":"boolean"},"channel":{"type":"string","enum":["TEXT","EMAIL"]},"emailTemplateId":{"type":"integer","format":"int64"},"targetedTags":{"type":"object","additionalProperties":{"uniqueItems":true,"type":"array","items":{"type":"string"}}},"legal":{"type":"boolean"},"videoMessage":{"type":"boolean"}}},"MessageCategory":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["CONTENT_TYPE","GENDER","REGION","STATE","STORE","USED_COUPON","CUSTOMER_STATUS"]},"defaultOptIn":{"type":"boolean"}}},"MessageLink":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"externalId":{"type":"integer","format":"int64"},"target":{"type":"string"},"subscriberTarget":{"type":"string"},"message":{"$ref":"#/components/schemas/Message"},"company":{"$ref":"#/components/schemas/Company"},"type":{"type":"string","enum":["SETTINGS","COUPON","TARGET","LAST_PURCHASE","TRIGGER_PRODUCT","TARGET_WITH_PREVIEW","PAYMENTS_CHECKOUT"]},"messageLinkPreviewMetadata":{"$ref":"#/components/schemas/MessageLinkPreviewMetadata"},"linkDomain":{"$ref":"#/components/schemas/LinkDomain"}}},"MessageLinkPreviewMetadata":{"type":"object","properties":{"title":{"type":"string"},"videoPreviewUrl":{"type":"string"},"imagePreviewUrl":{"type":"string"}}},"MessagingService":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"shortCode":{"$ref":"#/components/schemas/ShortCode"},"subscriberAssignmentWeight":{"type":"integer","format":"int32"},"primary":{"type":"boolean"},"active":{"type":"boolean"},"created":{"type":"integer","format":"int64"},"updated":{"type":"integer","format":"int64"},"rateLimit":{"type":"number","format":"double"},"phone":{"type":"string"},"messageServiceSid":{"type":"string"},"shortCodeProvider":{"$ref":"#/components/schemas/ShortCodeProvider"}}},"MessagingServiceProvider":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","enum":["TWILIO","ZIPWHIP","SINCH","OPEN_MARKET"]}}},"Segment":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/Company"},"utmParameters":{"type":"string"},"parameterString":{"type":"string"},"category":{"type":"string","enum":["AUTOMATED","ONE_TIME","BOTH"]},"name":{"type":"string"},"id":{"type":"integer","format":"int64"},"description":{"type":"string"}}},"ShortCode":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"phone":{"type":"string"},"shortCodeProvider":{"$ref":"#/components/schemas/ShortCodeProvider"},"messagingServiceSid":{"type":"string"},"messagingServiceProvider":{"$ref":"#/components/schemas/MessagingServiceProvider"},"mmsVasId":{"type":"string"},"shared":{"type":"boolean"},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string"},"created":{"type":"integer","format":"int64"},"phoneNumberType":{"type":"string","enum":["UNKNOWN","TEN_DLC","SHORT_CODE","LONG_CODE","TOLL_FREE"]},"shortCodeProviderId":{"type":"integer","format":"int64"}}},"ShortCodeProvider":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"rateLimit":{"type":"number","format":"double"}}},"Stats":{"type":"object","properties":{"recipients":{"type":"integer","format":"int32"},"clicks":{"type":"integer","format":"int32"},"conversions":{"type":"integer","format":"int32"},"optOuts":{"type":"integer","format":"int32"},"revenue":{"type":"number"}}},"User1":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"companies":{"type":"array","items":{"$ref":"#/components/schemas/Company"}},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"department":{"type":"string"},"phone":{"$ref":"#/components/schemas/PhoneNumber"},"password":{"type":"string"},"created":{"type":"integer","format":"int64"},"deleted":{"type":"integer","format":"int64"},"hasSignature":{"type":"boolean"},"signature":{"type":"string"},"superUser":{"type":"boolean"},"role":{"type":"string","enum":["OWNER","AFFILIATE"]},"grants":{"type":"array","items":{"type":"string"}},"phoneAsString":{"type":"string"},"authenticationType":{"type":"string","enum":["ACCOUNT","APP","USER"]},"company":{"$ref":"#/components/schemas/Company"}}},"AttachmentTypeCompatibility":{"type":"object","properties":{"incompatibleAttachments":{"type":"array","items":{"type":"string","enum":["MACRO_LINK","MACRO_TEXT","MACRO","SHORTLINK","VIDEO_LINK","IMAGE_GIF","CONTACT_CARD","TRIGGER_PRODUCT_IMAGE"]}}}},"ValidAttachmentMapDto":{"type":"object","properties":{"availableAttachmentMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AttachmentTypeCompatibility"}}}},"MessageSegmentMetadataDto":{"type":"object","properties":{"messageSegments":{"type":"string"},"numSegments":{"type":"integer","format":"int32"},"charsRemaining":{"type":"integer","format":"int32"}}},"DegradationWarningDto":{"type":"object","properties":{"header":{"type":"string"},"body":{"type":"string"}}},"ProfanityWordsDto":{"type":"object","properties":{"profanityWords":{"type":"array","items":{"type":"string"}}}},"ProviderStatusDto":{"type":"object","properties":{"companyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"enabledForAllCompanies":{"type":"boolean"},"message":{"type":"string"}}},"ShortCodeDto":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string"},"phoneNumberType":{"type":"string","description":"Whether it's a short code, long code, 10dlc, or toll-free number"},"description":{"type":"string"},"shortCodeId":{"type":"integer","format":"int64"},"shortCodeProviderName":{"type":"string"},"shortCodeProviderId":{"type":"integer","format":"int64"},"messagingServiceSid":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceProviderName":{"type":"string"},"mmsVasId":{"type":"string"},"isShared":{"type":"boolean"},"status":{"type":"string"}}},"RbmAgentDto":{"type":"object","required":["agentIdentifier"],"properties":{"agentIdentifier":{"type":"string"},"rbmAgentId":{"type":"integer","format":"int64"},"country":{"type":"string"},"description":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceProviderName":{"type":"string"},"isShared":{"type":"boolean"},"status":{"type":"string"},"supportedRbmPricingCarriers":{"$ref":"#/components/schemas/SupportedRbmPricingCarriersDto"}}},"SupportedRbmPricingCarriersDto":{"type":"object","properties":{"rbmPricingCarriers":{"type":"array","items":{"type":"string"}},"allCarriersSupported":{"type":"boolean"}}},"MessagingServiceDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"phone":{"type":"string"},"agentIdentifier":{"type":"string"},"country":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceProviderName":{"type":"string"},"subscriberAssignmentWeight":{"type":"integer","format":"int32"},"primary":{"type":"boolean"},"active":{"type":"boolean"},"startDate":{"type":"string","format":"date-time","description":"the UNIX timestamp of when the messaging service started"},"endDate":{"type":"string","format":"date-time","description":"the UNIX timestamp of when the messaging service stopped"},"updatedDate":{"type":"string","format":"date-time","description":"the UNIX timestamp of when the messaging service was last updated"},"shortCode":{"$ref":"#/components/schemas/ShortCodeDto"},"rbmAgent":{"$ref":"#/components/schemas/RbmAgentDto"},"smsRateLimit":{"type":"number","format":"double"},"mmsRateLimit":{"type":"number","format":"double"},"isSmsRateLimitActive":{"type":"boolean"},"isMmsRateLimitActive":{"type":"boolean"}}},"SendDto":{"type":"object","properties":{"sendId":{"type":"string","format":"uuid"},"externalId":{"type":"string"},"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string"},"messageId":{"type":"integer","format":"int64"},"subscriberId":{"type":"integer","format":"int64"},"subscriberTimezone":{"type":"string"},"userId":{"type":"string","format":"uuid"},"fromPhone":{"type":"string","description":"from phone number"},"toPhone":{"type":"string","description":"to phone number"},"carrier":{"type":"string"},"body":{"type":"string","description":"body/content of the message"},"segmentCount":{"type":"integer","format":"int32","description":"number of segments for the message"},"mediaUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"direction":{"type":"string","description":"direction of the message; inbound or outbound"},"provider":{"type":"string","description":"message provider; Twilio, Sinch, Zipwhip, OpenMarket"},"aggregator":{"type":"string","description":"message aggregator; SAP, Syniverse"},"status":{"type":"string","description":"send metadata status, which would be set based on the mapping for stage and step in send_status"},"messageType":{"type":"string","description":"SMS or MMS, which will be set if media url is present"}}},"SendStatusDto":{"type":"object","properties":{"sendId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"rawStatus":{"type":"string"},"errorCode":{"type":"string"},"segmentId":{"type":"string"},"stage":{"type":"string","description":"stage that the message is in"},"step":{"type":"string","description":"step of the message within a stage"},"errorMessage":{"type":"string","description":"error message for the given error code"}}},"SendSearchRequestDto":{"type":"object","properties":{"pageSize":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"sort":{"type":"object","properties":{"propertyName":{"type":"string","description":"name of property to be sorted"},"order":{"type":"string"}}},"filter":{"type":"array","items":{"type":"object","title":"SendSearchRequestDtoFilter","properties":{"propertyName":{"type":"string","description":"name of property to be filtered"},"propertyValue":{"type":"string"},"operator":{"type":"string"},"isCollection":{"type":"boolean","default":false}}}}}},"CompanyMessagingServiceMetadataDto":{"type":"object","properties":{"messagingServiceActive":{"type":"boolean"},"shouldAutoDowngrade":{"type":"boolean"},"isMmsRateLimitActive":{"type":"boolean"},"mmsRateLimit":{"type":"number","format":"double"},"isSmsRateLimitActive":{"type":"boolean"},"smsRateLimit":{"type":"number","format":"double"},"rbmMessagingServiceActive":{"type":"boolean"}}},"ShortCodeMigrationDto":{"type":"object","properties":{"shortCodeId":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"shortCodeMigratedSuccessfully":{"type":"boolean"},"migrationStatusMessage":{"type":"string"}}},"CountRequestDto":{"type":"object","properties":{"filter":{"type":"array","items":{"title":"CountRequestDtoFilter","type":"object","properties":{"propertyName":{"type":"string","description":"name of property to be filtered on"},"propertyValue":{"type":"string","description":"value of property to be filtered on"}}}},"group":{"type":"array","items":{"type":"string","description":"name of property to be grouped by"}}}},"CountDto":{"type":"object","properties":{"count":{"type":"integer","format":"int64"},"group":{"type":"array","items":{"type":"object","title":"CountDtoGroup","properties":{"propertyName":{"type":"string","description":"name of property this count is for"},"propertyValue":{"type":"string","description":"value of property this count is for"}}}}}},"CompanyPhoneNumberDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string"},"phone":{"type":"string"},"phoneNumberType":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceProviderName":{"type":"string"},"status":{"type":"string"},"shortCodeProviderId":{"type":"integer","format":"int64"},"primary":{"type":"boolean"},"active":{"type":"boolean"},"phoneNumberApplicationId":{"type":"string"},"phoneNumberApplicationStatus":{"type":"string"}}},"RetryFailedRequest":{"type":"object","required":["created_at_start","created_at_end"],"properties":{"created_at_start":{"type":"string","format":"date-time","description":"start time for the query in utc"},"created_at_end":{"type":"string","format":"date-time","description":"end time of the query in utc"},"dry_run":{"type":"boolean","description":"defaults to true. If true, will not actually re-send messages"},"channel":{"type":"string","description":"valid values are SMS and MMS. If no value or an invalid value is passed, will retry both"},"providers":{"type":"array","description":"providers whose messages to retry. Must not be empty","items":{"type":"string"}},"error_codes":{"type":"array","description":"optional list of error codes to retry. If empty, all error codes will be retried. For a list of error codes, see the MOPS error code glossary at https://docs.google.com/spreadsheets/d/1F38Z5nE-2Dja9fAJGKvmFH61PoWUz3JwwedmZCgkddY","items":{"type":"string"}},"statuses":{"type":"array","description":"optional list of statuses to retry. If empty, will default to [FAILED]","items":{"type":"string"}},"carriers":{"type":"array","description":"carriers to retry sends for. If empty, will retry all carriers","items":{"type":"string"}},"company_ids":{"type":"array","description":"companies to retry sends for. If empty, will retry sends for all companies","items":{"type":"integer"}},"message_ids":{"type":"array","description":"if populated, will retry only messages with message IDs in the list. If empty, will retry messages with any message ID.","items":{"type":"integer"}},"retry_messages":{"type":"boolean"},"retry_message_receipts":{"type":"boolean"}}},"CompanyPhoneNumberRequestDto":{"type":"object","properties":{"filters":{"type":"array","items":{"type":"object","title":"CompanyPhoneNumberRequestDtoFilters","properties":{"name":{"type":"string","description":"name of property to be filtered"},"value":{"type":"string","description":"value of property to filter by"}}}},"offset":{"type":"integer","format":"int64","description":"offset of pagination"},"total":{"type":"integer","format":"int64","description":"total number of results per page desired"}}},"CompanyPhoneNumberResponseDto":{"type":"object","properties":{"companyPhoneNumbers":{"type":"array","items":{"$ref":"#/components/schemas/CompanyPhoneNumberDto"}},"total":{"type":"integer","format":"int64"}}},"CarrierTestPhoneNumberDto":{"type":"object","properties":{"phoneNumber":{"type":"string"},"country":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceProviderName":{"type":"string"}}},"PhoneNumberDto":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string"},"phoneNumberType":{"type":"string","description":"Whether it's a short code, long code, 10dlc, or toll-free number"},"country":{"type":"string"},"description":{"type":"string"},"phoneNumberId":{"type":"integer","format":"int64"},"aggregatorName":{"type":"string"},"aggregatorId":{"type":"integer","format":"int64"},"messagingServiceSid":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceProviderName":{"type":"string"},"mmsVasId":{"type":"string"},"isShared":{"type":"boolean"},"status":{"type":"string"},"phoneNumberApplicationId":{"type":"string"},"phoneNumberApplicationStatus":{"type":"string"},"phoneNumberApplicationSubmittedDate":{"type":"string","format":"date"},"phoneNumberApplicationCancellationDate":{"type":"string","format":"date"},"phoneNumberApplicationApprovedDate":{"type":"string","format":"date"},"assignedCompanies":{"type":"array","items":{"type":"object","title":"PhoneNumberDtoAssignedCompanies","properties":{"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string"}}}},"shortCodeLeaseOwner":{"type":"string"},"useCase":{"type":"string"}}},"PhoneNumberDetailDto":{"type":"object","properties":{"phoneNumberDto":{"$ref":"#/components/schemas/PhoneNumberDto"},"companyPhoneNumbers":{"type":"array","items":{"$ref":"#/components/schemas/CompanyPhoneNumberDto"}},"testSends":{"type":"array","items":{"$ref":"#/components/schemas/TestSendDto"}}}},"PhoneNumberPurchasesRequestDto":{"type":"object","properties":{"phone":{"type":"string"},"phoneNumberType":{"type":"string"},"country":{"type":"string"},"aggregatorId":{"type":"integer","format":"int64"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"messagingServiceSid":{"type":"string"},"phoneNumberApplicationId":{"type":"string"}}},"PhoneNumberPurchasesResponseDto":{"type":"object","properties":{"phoneNumberDto":{"$ref":"#/components/schemas/PhoneNumberDto"},"phoneNumberUploadedSuccessfully":{"type":"boolean"},"phoneNumberUploadStatusMessage":{"type":"string"}}},"TollFreeVerificationResponseDto":{"type":"object","properties":{"companyName":{"type":"string"},"phoneNumbers":{"type":"array","items":{"type":"string"}},"verificationRequestUploadedSuccessfully":{"type":"boolean"},"verificationRequestStatusMessage":{"type":"string"}}},"TollFreeVerificationStatusRequestDto":{"type":"object","properties":{"phoneNumber":{"type":"string"}}},"TollFreeVerificationStatusResponseDto":{"type":"object","properties":{"phoneNumber":{"type":"string"},"verificationStatus":{"type":"string"},"internalTicketNumber":{"type":"string"},"statusRequestUploadedSuccessfully":{"type":"boolean"},"statusRequestStatusMessage":{"type":"string"}}},"PartnerShortCodeRequestDto":{"type":"object","properties":{"phoneNumber":{"type":"string"},"phoneNumberApplicationId":{"type":"string"},"partnerShortCodeStatus":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"}}},"PartnerShortCodeResponseDto":{"type":"object","properties":{"phoneNumber":{"type":"string"},"phoneNumberId":{"type":"integer","format":"int64"},"phoneNumberApplicationId":{"type":"string"},"phoneNumberApplicationStatus":{"type":"string"},"previousPhoneNumberApplicationStatus":{"type":"string"},"messagingServiceProviderId":{"type":"integer","format":"int64"},"phoneNumberUpdatedSuccessfully":{"type":"boolean"},"phoneNumberUpdatedStatusMessage":{"type":"string"},"assignedCompanies":{"type":"array","items":{"type":"object","title":"PhoneNumberDtoAssignedCompanies","properties":{"companyId":{"type":"integer","format":"int64"},"companyName":{"type":"string"}}}}}},"MitigationMetadataDto":{"type":"object","properties":{"channelImpacted":{"type":"string"},"channel":{"type":"string"},"bannerText":{"type":"string"},"countryScope":{"type":"string"}}},"MitigationDto":{"type":"object","properties":{"name":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"active":{"type":"boolean"},"metadata":{"$ref":"#/components/schemas/MitigationMetadataDto"}}},"IncidentDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"jiraTicket":{"type":"string"},"channelImpacted":{"type":"string"},"channels":{"type":"array","items":{"type":"string"},"example":["sms","mms"]},"type":{"type":"string"},"status":{"type":"string"},"carriers":{"type":"array","items":{"type":"string"},"example":["att","verizon"]},"providers":{"type":"array","items":{"type":"string"},"example":["OPEN_MARKET","SINCH"]},"created":{"type":"string","format":"date-time"},"mitigations":{"type":"array","items":{"$ref":"#/components/schemas/MitigationDto"}},"phoneNumberTypes":{"type":"array","items":{"type":"string"},"example":["LONG_CODE","SHORT_CODE","TEN_DLC","TOLL_FREE"]}}},"IncidentImpactDto":{"type":"object","properties":{"phoneNumbersImpacted":{"type":"integer","format":"int64"},"companiesImpactedCount":{"type":"integer","format":"int64"},"companiesImpacted":{"type":"array","items":{"type":"integer","format":"int64"}}}},"TestSendDto":{"type":"object","properties":{"sendId":{"type":"string","format":"uuid"},"carrier":{"type":"string"},"mms":{"type":"boolean"},"status":{"type":"string"}}},"PrivacyRequestAddDeleteEventDto":{"type":"object","properties":{"subjectEmail":{"type":"string","description":"Email of a subscriber. Only required if __subjectPhone__ is empty."},"subjectPhone":{"type":"string","description":"Phone of a subscriber. Only required if __subjectEmail__ is empty."},"requestMsg":{"type":"string","description":"An optional message for an audit trail."},"clientUserId":{"type":"string","description":"ClientUserId of a subscriber. Only required if __subjectEmail__ and __subjectPhone__ is empty."}}},"PrivacyRequestDto":{"type":"object","properties":{"id":{"type":"string","description":"ID of the privacy request."},"processed":{"type":"boolean","description":"Status of the request."},"type":{"type":"string","description":"Type of the request."},"subjectEmail":{"type":"string","description":"Email of a subscriber."},"subjectPhone":{"type":"string","description":"Phone of a subscriber."},"requestMsg":{"type":"string","description":"An optional message for an audit trail."},"requestDateTime":{"type":"string","description":"Timestamp of when the request was made."},"processingStartDateTime":{"type":"string","description":"Timestamp of when processing of the request began."},"processingEndDateTime":{"type":"string","description":"Timestamp of when processing of the request completed."}}},"PrivacyRequestErrorDto":{"type":"object","properties":{"error":{"type":"string","description":"Error Message"}}},"IdentifyRequestDto":{"type":"object","properties":{"phone":{"type":"string","description":"Phone number used to associate a client user identifier or custom identifier(s) with a user. [E.164 format](https://en.wikipedia.org/wiki/E.164) is required.","example":"+13115552368"},"email":{"type":"string","description":"Email used to associate a client user identifier or custom identifier(s) with a user. There is a 100 character limit.","example":"sample-email@attentivemobile.com"},"shopifyId":{"type":"string","description":"Shopify Id used to associate a client user identifier or custom identifier(s) with a user. There is a 100 character limit.","example":123456789000},"klaviyoId":{"type":"string","description":"Klaviyo Id used to associate a client user identifier or custom identifier(s) with a user. There is a 100 character limit.","example":"0123456789ABCDEFGHIJKLMNOP"},"clientUserId":{"type":"string","description":"Client user identifier to be associated with a user through a phone, email, shopify id, klaviyo id, or custom identifier. This is a freeform field and can accept any string input. Please do NOT put shopify ids or klaviyo ids here, there are dedicated fields for those identifiers. There is a 100 character limit.\n","example":"123456"},"customIdentifiers":{"type":"array","items":{"$ref":"#/components/schemas/CustomIdentifierDto1"},"description":"Custom identifier(s) to be associated with a user through a phone, email, shopify id, klaviyo id, client user identifier, or another custom identifier. There is a 100 character limit."}}},"CustomIdentifierDto1":{"type":"object","properties":{"name":{"type":"string","example":"loyaltyId"},"value":{"type":"string","example":"1122334455"}},"required":["name","value"]},"DeleteRequestDto":{"type":"object","properties":{"clientUserId":{"type":"string","description":"Client user identifer of the user to be removed.","example":"abc12345-1234-abcd-9874-123abc456efg"},"customIdentifier":{"$ref":"#/components/schemas/CustomIdentifierDto1","description":"Custom identifier of the user to be removed."}}},"ExternalIdentifiers":{"type":"object","description":"clientUserId or another custom identifier.  This field is required if either phone or email is not provided.\n\nIf using an external identifier instead of phone or email, the external identifier must first be associated with a phone or email using the Identity API.\n","properties":{"clientUserId":{"type":"string","description":"(optional) Your primary ID for a user"},"customIdentifiers":{"type":"array","description":"(optional) Namespaced custom identifiers and their values.","items":{"type":"object","title":"ExternalIdentifiersCustomIdentifiers","properties":{"name":{"type":"string"},"value":{"type":"string"}}}}}},"EventUser":{"type":"object","description":"User associated with the action. Note that this is a visitor to the site and does not need to be actively subscribed to Attentive.\nPhone, email, or an external identifier (clientUserId or another custom identifier) are required\n","properties":{"phone":{"type":"string","description":"Phone number of the user associated with the action. [E.164 format](https://en.wikipedia.org/wiki/E.164) is required. This field is required if either email or an externalIdentifier is not provided.","example":"+13115552368"},"email":{"type":"string","description":"Email of the user associated with the action. This field is required if either phone or an externalIdentifier is not provided.","example":"test@gmail.com"},"externalIdentifiers":{"$ref":"#/components/schemas/ExternalIdentifiers"}},"additionalProperties":false,"minProperties":1}},"responses":{"NotFound":{"description":"The specified resource was not found"},"AccessDenied":{"description":"Access Denied"},"Forbidden":{"description":"Forbidden"},"InvalidParameter":{"description":"Invalid parameter in request query or body"},"InternalError":{"description":"Internal Server Error"},"NotFound1":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"}}}},"AccessDenied1":{"description":"Access Denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"}}}},"InvalidParameter1":{"description":"Invalid parameter in request query or body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"}}}},"InternalError1":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"}}}},"DetailedBadRequest":{"description":"Bad Request. Invalid parameter in request query or body. The following scenarios will cause a 400 response: \nA) Including distributionStart and distributionStop dates that overlap with the distributionStart and distributionStop dates from a previous call, \nB) Including distributionStart and distributionStop dates in an offer that has a distribution window of “Never expire” or “Time to live”, \nC) Excluding distributionStart and distributionStop dates in an offer that has a distribution window of “Custom time period”, D) Including a distributionStart value that is after the distributionStop value\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"}}}},"Conflict":{"description":"Subscription already exists for user"},"Unauthorized":{"description":"Unauthorized"},"TooManyRequests":{"description":"The user has sent too many requests in a given amount of time"}},"requestBodies":{"MessageRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageRequestDto"},"example":{"to":"1111111111","subscriptionType":"MARKETING","body":"A message you would send a subscriber: https://wwww.attentivemobile.com","useShortLinks":true,"messageName":"MessageName"}}}},"BulkMessageRequest":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageRequestDto"}},"example":[{"to":"1111111111","subscriptionType":"MARKETING","body":"A message you would send a subscriber: https://wwww.attentivemobile.com","useShortLinks":true,"messageName":"MessageName"},{"to":"1111111112","subscriptionType":"MARKETING","body":"A message you would send a subscriber: https://wwww.attentivemobile.com","useShortLinks":true,"messageName":"MessageName"}]}}},"CampaignMessageRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignMessageRequestDto"},"example":{"body":"A message you would send a subscriber: https://wwww.attentivemobile.com","campaignName":"CampaignName","segmentId":42,"scheduledTime":"2022-03-24T11:11:52+0000","timezone":"America/New_York"}}}},"UpsertMessageRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertMessageRequestDto"},"example":{"messageName":"MessageName"}}}}}},"x-readme":{"explorer-enabled":false}}