{"info":{"_postman_id":"6c5882c1-edf7-41df-a539-7525aad6b876","name":"Official Texter API V2","description":"<html><head></head><body><h1 id=\"about-texter\">About Texter</h1>\n<h6 id=\"texterchat-טקסטר-is-a-unified-messaging-platform-designed-to-help-businesses-manage-customer-conversations---especially-on-whatsapp-our-service-enables-you-to\"><strong>TexterChat</strong> (טקסטר) is a unified messaging platform designed to help businesses manage customer conversations - especially on WhatsApp. Our service enables you to:</h6>\n<ul>\n<li><p>Centralize all chats (WhatsApp, Messenger, Instagram, etc.) in a single inbox</p>\n</li>\n<li><p>Use smart bots for lead qualification, business hours, and routing</p>\n</li>\n<li><p>Integrate with your CRM and view customer data in real time</p>\n</li>\n<li><p>Send styled template messages in bulk (images, buttons, video)</p>\n</li>\n<li><p>Manage conversation essentials like labels, quick replies, notes, departments etc.</p>\n</li>\n<li><p>And much more!</p>\n</li>\n</ul>\n<p>We serve a wide range of clients, from higher education institutions, insurance agencies, retailers, medical clinics and government entities like the IDF, to SMBs looking for fast, professional WhatsApp communication. TexterChat was founded by two tech entrepreneurs and operates in both Israel and the U.S., headquartered in Tel Aviv. You can learn more at <a href=\"https://texterchat.com\">texterchat.com</a>.</p>\n<h1 id=\"texter-api-v2\">Texter API V2</h1>\n<h6 id=\"the-texter-api-enables-your-developers-to-control-every-aspect-of-this-platform-programmatically\">The <strong>Texter API</strong> enables your developers to control every aspect of this platform programmatically:</h6>\n<ul>\n<li><p>Manage and send your template messages</p>\n</li>\n<li><p>Retrieve chats by ID or by various filters</p>\n</li>\n<li><p>Assign and resolve conversations</p>\n</li>\n<li><p>Send session messages into active chats</p>\n</li>\n<li><p>Manage labels</p>\n</li>\n<li><p>Monitor and resolve channel health issues</p>\n</li>\n<li><p>Manage quick replies (coming soon)</p>\n</li>\n</ul>\n<p>And more...</p>\n<p>For any questions please contact <a href=\"https://wa.me/972586640430\">Texter Support</a></p>\n<h1 id=\"authentication\">Authentication</h1>\n<h6 id=\"all-requests-require-a-bearer-token\">All requests require a <strong>Bearer Token</strong>.</h6>\n<h6 id=\"when-creating-a-new-token-in-texter-you-will-need-to-assign-it-specific-scopes-which-define-which-parts-of-your-inbox-the-token-can-access\">When creating a new token in Texter, you will need to assign it specific scopes, which define which parts of your inbox the token can access.</h6>\n<h6 id=\"each-folder-in-this-documentation-lists-the-required-scopes-for-its-endpoints\">Each folder in this documentation lists the required scopes for its endpoints.</h6>\n<h6 id=\"for-example-to-use-the-labels-routes-generate-a-token-with-the-scopes-manage-labels-and-manage-all-chats-then-store-it-in-postman-under-the-environment-variable-labelsapitoken\">For example, to use the <strong>Labels</strong> routes, generate a token with the scopes <strong>\"Manage Labels\"</strong> and <strong>\"Manage All Chats\"</strong>, then store it in Postman under the environment variable <code>labelsApiToken</code>.</h6>\n<p>To create a new token go to your Texter environment-</p>\n<img src=\"https://content.pstmn.io/fff87c90-f92a-4f06-9320-50ed2dde239a/aW1hZ2UucG5n\" alt=\"Gear%20icon%20>>%20Developers%20>>%20API%20Tokens\" width=\"352\" height=\"440\">\n\n<img src=\"https://content.pstmn.io/65c539e8-60ec-448b-87ef-932b73d324af/aW1hZ2UucG5n\" alt=\"Plus%20icon%20>>%20Give%20the%20token%20a%20name%20>>%20Choose%20the%20relevant%20scopes%20>>%20Save%20changes\" width=\"700\" height=\"324\">\n\n<img src=\"https://content.pstmn.io/eadf6063-aaab-482f-abf7-9329414501bd/aW1hZ2UucG5n\" alt=\"Click%20on%20the%20link%20icon%20to%20copy%20the%20token\" width=\"376\" height=\"135\">\n\n<h1 id=\"base-url\">Base URL</h1>\n<h6 id=\"all-requests-use-your-unique-project-subdomain\">All requests use your unique project subdomain:</h6>\n<p><a href=\"https://projectID.texterchat.com/server/api/v2\">https://projectID.texterchat.com/server/api/v2</a></p>\n<p>For example, if your environments URL is <a href=\"https://demo.texterchat.com,\">https://demo.texterchat.com,</a> then your projectID is <strong>demo</strong>.</p>\n<p>In your environment, replace <strong><code>projectID</code></strong> with your actual project ID from Texter.</p>\n<h1 id=\"quick-start\">Quick Start</h1>\n<h6 id=\"to-test-the-api\">To test the API:</h6>\n<ol>\n<li><p>Set your environment values:</p>\n<ul>\n<li><p><strong><code>projectID</code></strong>: Your Texter project ID</p>\n</li>\n<li><p><strong><code>templatesApiToken</code></strong>: Generate a token for Template routes, include the scopes -<br>  - Send Template Messages<br>  - View Template Messages<br>  - Manage All Chats<br>  - List All Chats</p>\n</li>\n</ul>\n</li>\n<li><p>Try the <a href=\"https://apidocs.texterchat.com/#a159ef1b-3376-48ea-978d-782dd987e2d2\">List All Templates</a> request to confirm your connection.</p>\n</li>\n</ol>\n<p>You're ready to go!</p>\n<hr>\n<hr>\n<h1 id=\"entities\">Entities</h1>\n<p>This section describes the core entities that appear across multiple API endpoints.</p>\n<p>Each entity represents a recurring object type - such as templates, chats, messages etc.<br>With a standardized structure and attributes common to multiple endpoints.</p>\n<hr>\n<h1 id=\"template-object\">↳ Template Object</h1>\n<p>Represents a WhatsApp template in Texter, including internal behavior (chat routing rules, departments, defaults) and provider state (WhatsApp approval status, localized content, quality score).</p>\n<h3 id=\"1-top-level-fields\">1. Top-Level Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique identifier of the template in Texter</td>\n<td><code>\"6891bb93481ccea320113a91\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Internal template name (also used as the template ID in API calls)</td>\n<td><code>\"bulk_marketing_272\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Human-readable title shown in Texter’s UI</td>\n<td><code>\"OTP with resend\"</code>, <code>\"Template 1\"</code>, <code>\"הודעה שיווקית ווצאפ ביזנס וטקטר\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>usage</code></td>\n<td>string</td>\n<td>How this template is intended to be sent</td>\n<td><code>inbox</code> (1-to-1), <code>bulk</code> (broadcast/mass messaging)</td>\n<td></td>\n</tr>\n<tr>\n<td><code>chatStatus</code></td>\n<td>number</td>\n<td>What status the chat should move to after the recipient replies to this template</td>\n<td><code>0 = BOT</code>,  <br><code>1 = PENDING</code>,  <br><code>2 = TAKEN</code>,  <br><code>3 = RESOLVED</code>,  <br><code>4 = BULK</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>created</code></td>\n<td>number (ms timestamp)</td>\n<td>When the template was created (epoch ms)</td>\n<td><code>1761559633632</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string (ISO 8601)</td>\n<td>Last time this template was updated</td>\n<td><code>\"2025-10-27T11:09:01.156Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>departments</code></td>\n<td>string[]</td>\n<td>List of department IDs allowed to use this template</td>\n<td><code>[\"customer_service\",\"financial\",\"waiting_for_customer_reply\", ...]</code></td>\n<td>Can be an empty array <code>[]</code></td>\n</tr>\n<tr>\n<td><code>isDefault</code></td>\n<td>boolean</td>\n<td>Whether this is the default template for the account</td>\n<td><code>true</code>, <code>false</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>setBotNode</code></td>\n<td>string</td>\n<td>Bot node to trigger after reply, if chatStatus routes to bot</td>\n<td><code>\"marketing_template_wa_business_app\"</code></td>\n<td>Only appears on templates that define post-reply bot flow</td>\n</tr>\n<tr>\n<td><code>channelInfo</code></td>\n<td>object</td>\n<td>Channel that this template belongs to</td>\n<td>see table below</td>\n<td></td>\n</tr>\n<tr>\n<td><code>provider_template</code></td>\n<td>object</td>\n<td>WhatsApp-facing template metadata (category, approval status, localizations)</td>\n<td>see table below</td>\n<td></td>\n</tr>\n<tr>\n<td><code>defaults</code></td>\n<td>object</td>\n<td>Default variable values and default header media to prefill when sending</td>\n<td>see table below</td>\n<td></td>\n</tr>\n<tr>\n<td><code>localizationDrafts</code></td>\n<td>object</td>\n<td>Unsubmitted localization definitions (work-in-progress version of the template text/components before approval)</td>\n<td>see table below</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"2-channelinfo\">2. <code>channelInfo</code></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>channelInfo.name</code></td>\n<td>string</td>\n<td>Channel type for this template</td>\n<td><code>\"whatsapp\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>channelInfo.accountId</code></td>\n<td>string</td>\n<td>Channel account identifier in Texter. For WhatsApp this is the connected phone number</td>\n<td><code>\"972586640430\"</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"3-provider_template\">3. <code>provider_template</code></h3>\n<p><code>provider_template</code> contains what WhatsApp “knows” about the template.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>provider_template.name</code></td>\n<td>string</td>\n<td>Template name as registered with WhatsApp. Typically matches <code>name</code></td>\n<td><code>\"bulk_marketing_272\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>provider_template.category</code></td>\n<td>string</td>\n<td>WhatsApp template category (WhatsApp may change this on approval)</td>\n<td><code>MARKETING</code>,  <br><code>UTILITY</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>provider_template.localizations</code></td>\n<td>array</td>\n<td>All approved localizations for this template</td>\n<td>array of Localization objects (see next table)</td>\n<td></td>\n</tr>\n<tr>\n<td><code>provider_template.metadata</code></td>\n<td>object</td>\n<td>Extra provider metadata</td>\n<td><code>{}</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>Notes:</p>\n<ul>\n<li><p>If <code>provider_template.localizations</code> is empty and you see data under <code>localizationDrafts</code>, that means the template exists in Texter but was not yet approved by WhatsApp.</p>\n</li>\n<li><p>Some localizations include <code>expiresAt</code> for temporary/limited-time templates.</p>\n</li>\n</ul>\n<h3 id=\"4-provider_templatelocalizatios\">4. <code>provider_template.localizatios[]</code></h3>\n<p>Each item in <code>provider_template.localizations</code> describes one approved localization (language variant) of the template as seen by WhatsApp.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Approval status of this localization</td>\n<td><code>APPROVED</code>,  <br><code>PENDING</code>,  <br><code>REJECTED</code>, <code>REQUESTED</code>,  <br><code>NEW</code>, <code>DELETED</code>,  <br><code>SUBMIT_FAILED</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>rejectionReason</code></td>\n<td>string</td>\n<td>Reason for rejection</td>\n<td><code>\"NONE\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>language</code></td>\n<td>string</td>\n<td>Language code (IETF / WhatsApp locale code)</td>\n<td><code>\"he\"</code>,  <br><code>\"en\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>components</code></td>\n<td>array</td>\n<td>Body / header / footer / buttons that make up the template in this language</td>\n<td>see Components table below</td>\n<td></td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>string (ISO 8601)</td>\n<td>When this localization was created</td>\n<td><code>\"2025-08-05T08:26:51.159492Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>string (ISO 8601)</td>\n<td>When this localization was last modified</td>\n<td><code>\"2025-10-08T13:11:20.994582Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>expiresAt</code></td>\n<td>string (ISO 8601)</td>\n<td>When this localization stops being valid</td>\n<td><code>\"2025-09-04T08:38:01.348019Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>qualityScore</code></td>\n<td>object</td>\n<td>WhatsApp quality rating for this template in this language</td>\n<td>see below</td>\n<td></td>\n</tr>\n<tr>\n<td><code>qualityScore.score</code></td>\n<td>string</td>\n<td>Quality tier as reported by WhatsApp</td>\n<td><code>UNKNOWN</code>,  <br><code>GREEN</code>,  <br><code>YELLOS</code>,  <br><code>RED</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>qualityScore.reasons</code></td>\n<td>string[]</td>\n<td>Reasons affecting the quality score</td>\n<td><code>[\"High block rate\"]</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"components-inside-localizatioscomponents\">Components inside <code>localizatios[].components[]</code></h4>\n<p>A localization's components array is a list of WhatsApp template components such as:</p>\n<ul>\n<li><p><code>HEADER</code> (may include <code>format</code> and <code>example.header_handle</code>)</p>\n</li>\n<li><p><code>BODY</code> (always includes <code>text</code>, may include <code>example.body_text</code> with variable examples)</p>\n</li>\n<li><p><code>FOOTER</code> (always includes <code>text</code>)</p>\n</li>\n<li><p><code>BUTTONS</code> (includes <code>buttons[]</code>)</p>\n</li>\n</ul>\n<p>Component-level structure:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>Component type</td>\n<td><code>HEADER</code>,  <br><code>BODY</code>,  <br><code>FOOTER</code>,  <br><code>BUTTONS</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>text</code></td>\n<td>string</td>\n<td>Text content for BODY or FOOTER</td>\n<td><code>\"שלום {{1}} יום נעים\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>format</code></td>\n<td>string</td>\n<td>Media type for HEADER</td>\n<td><code>IMAGE</code>,  <br><code>VIDEO</code>,  <br><code>DOCUMENT</code></td>\n<td>Only relevant to <code>HEADER</code></td>\n</tr>\n<tr>\n<td><code>example.header_handle</code></td>\n<td>string[]</td>\n<td>Example media URL(s) used in the template header</td>\n<td><code>[\"https://storage.googleapis.com/photo123.jpg\"]</code></td>\n<td>Only relevant to <code>HEADER</code></td>\n</tr>\n<tr>\n<td><code>example.body_text</code></td>\n<td>string[][]</td>\n<td>Example values for <code>{{1}}</code>, <code>{{2}}</code>, etc in BODY</td>\n<td><code>[[\"אלינור\", \"יוסי\"]]</code></td>\n<td>Only relevant if <code>BODY</code> has variables</td>\n</tr>\n<tr>\n<td><code>buttons</code></td>\n<td>array</td>\n<td>Button definitions for BUTTONS</td>\n<td>see below</td>\n<td>Only relevant to <code>BUTTONS</code></td>\n</tr>\n<tr>\n<td><code>buttons[].type</code></td>\n<td>string</td>\n<td>Button type</td>\n<td><code>QUICK_REPLY</code>,  <br><code>URL</code>,  <br><code>PHONE_NUMBER</code></td>\n<td>Only in <code>BUTTONS</code></td>\n</tr>\n<tr>\n<td><code>buttons[].text</code></td>\n<td>string</td>\n<td>Button label shown to the recipient</td>\n<td><code>\"מעניין אותי!\"</code>, <code>\"לאתר\"</code></td>\n<td>Only in <code>BUTTONS</code></td>\n</tr>\n<tr>\n<td><code>buttons[].url</code></td>\n<td>string</td>\n<td>URL for <code>type: \"URL\"</code> buttons (may include variables like <code>{{1}}</code>)</td>\n<td><code>\"https://texterchat.com/{{1}}\"</code></td>\n<td>Only for <code>URL</code> buttons</td>\n</tr>\n<tr>\n<td><code>buttons[].phone_number</code></td>\n<td>string</td>\n<td>Phone number for <code>type: \"PHONE_NUMBER\"</code> buttons</td>\n<td><code>\"+972521234567\"</code></td>\n<td>Only for <code>PHONE_NUMBER</code> buttons</td>\n</tr>\n<tr>\n<td><code>buttons[].example.url</code></td>\n<td>string</td>\n<td>Example value for a URL containing variables</td>\n<td><code>\"blog\"</code></td>\n<td>Optional</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"5-defaults\">5. <code>defaults</code></h3>\n<p><code>defaults</code> is where Texter stores prefill values that will be used when sending the template (especially via the Send Template Message endpoint) if the caller doesn’t explicitly send overrides.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>defaults</code></td>\n<td>object</td>\n<td>Default values by language code</td>\n<td><code>{ \"he\": { ... } }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>defaults.LANG.body</code></td>\n<td>string[]</td>\n<td>Default BODY variable values to autofill</td>\n<td><code>\"body\": [\"אלינור\"]</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>defaults.LANG.header</code></td>\n<td>object</td>\n<td>Default header media to use when sending</td>\n<td><code>{ \"type\": \"video\", \"url\": \"https://ninja.texterchat.com/server/files/shared/...\" }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>defaults.LANG.header.type</code></td>\n<td>string</td>\n<td>Default header media type</td>\n<td><code>image</code>,  <br><code>video</code>,  <br><code>document</code></td>\n<td>Only if header is present</td>\n</tr>\n<tr>\n<td><code>defaults.LANG.header.url</code></td>\n<td>string</td>\n<td>Default header media URL (public or signed)</td>\n<td><code>\"https://ninja.texterchat.com/server/files/shared/...</code></td>\n<td>Only if header is present</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"6-localizationdrafts\">6. <code>localizationDrafts</code></h3>\n<p><code>localizationDrafts</code> appears when a template exists in Texter but hasn’t been fully submitted/approved by WhatsApp yet.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>localizationDrafts</code></td>\n<td>object</td>\n<td>Map of language code → draft localization definition</td>\n<td><code>\"he\": { \"language\": \"he\", \"components\": [...] }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>localizationDrafts.LANG.language</code></td>\n<td>string</td>\n<td>Language code for this draft localization</td>\n<td><code>\"he\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>localizationDrafts.LANG.components</code></td>\n<td>array</td>\n<td>Draft components for this localization (BODY, FOOTER, BUTTONS, etc)</td>\n<td>same structure as approved <code>components</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>localizationDrafts.LANG.components[].text</code></td>\n<td>string</td>\n<td>Draft text that has not yet been approved</td>\n<td><code>\"Hey {{1}} Thanks\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>localizationDrafts.LANG.components[].example</code></td>\n<td>object</td>\n<td>Example variable values for placeholders like <code>{{1}}</code></td>\n<td><code>\"example\": { \"body_text\":[[\"Joe\"]] }</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h1 id=\"chat-object\">↳ Chat Object</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Examples / Allowed Values</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique identifier of the chat in Texter</td>\n<td><code>\"64de3b15398a8e09c47a9f62\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Name of the customer as set in their WhatsApp account settings</td>\n<td><code>\"גיא לוין\"</code>, <code>\"Julia\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>displayName</code></td>\n<td>string</td>\n<td>Custom name that was modified in Texter</td>\n<td><code>\"גיא\"</code></td>\n<td>If it doesn't appear, the displayName was never modified</td>\n</tr>\n<tr>\n<td><code>channelInfo.name</code></td>\n<td>string</td>\n<td>Channel type</td>\n<td><code>\"whatsapp\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>channelInfo.accountId</code></td>\n<td>string</td>\n<td>The business WhatsApp account / phone number connected to Texter</td>\n<td><code>\"972586640430\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>channelInfo.id</code></td>\n<td>string</td>\n<td>The customer’s WhatsApp number</td>\n<td><code>\"972521234567\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>agent.uid</code></td>\n<td>string</td>\n<td>Internal Texter user ID of the assigned agent</td>\n<td><code>\"rShazWqr8iTDocIqkOp4GY0c0j32\"</code>, <code>null</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>agent.displayName</code></td>\n<td>string</td>\n<td>Name of the assigned agent</td>\n<td><code>\"גיל\"</code>, <code>\"ניב\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>departmentId</code></td>\n<td>string</td>\n<td>Department responsible for the chat</td>\n<td><code>\"customer_service\"</code>, <code>null</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>number</td>\n<td>Current state of the chat</td>\n<td><code>0 = WITH BOT</code>,  <br><code>1 = PENDING</code>,  <br><code>2 = TAKEN</code>,  <br><code>3 = SOLVED</code>,  <br><code>4 = BULK</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>unreadCount</code></td>\n<td>number</td>\n<td>Number of unread incoming messages</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>important</code></td>\n<td>boolean</td>\n<td>Whether the chat is marked as important</td>\n<td><code>true</code>, <code>false</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>string[]</td>\n<td>List of label IDs applied to the chat</td>\n<td><code>[\"urgent\", \"billing\"]</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>lastMessage.type</code></td>\n<td>string</td>\n<td>Type of the last message (<code>text</code>, <code>media</code>, <code>special</code>)</td>\n<td><code>\"text\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>lastMessage.text</code></td>\n<td>string</td>\n<td>Text content of the last message, if applicable</td>\n<td><code>\"תודה\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>lastMessage.media</code></td>\n<td>array</td>\n<td>List of media files attached to the last message</td>\n<td><code>[ { \"mediaType\": \"document\", \"filename\": \"invoice.pdf\", \"fileId\": \"2494ndgwg24ndg\" } ]</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>last_message_timestamp</code></td>\n<td>number (ms)</td>\n<td>Timestamp of the last message sent or received</td>\n<td><code>1761858108753</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>lastIncomingMessageTimestamp</code></td>\n<td>number (ms)</td>\n<td>Timestamp of the last incoming (customer) message</td>\n<td><code>1762011142000</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>created</code></td>\n<td>string (ISO 8601)</td>\n<td>When the chat was created</td>\n<td><code>\"2025-02-26T13:02:58.353Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string (ISO 8601)</td>\n<td>Last time the chat was updated</td>\n<td><code>\"2025-10-30T21:01:48.989Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>pendingMessageTime</code></td>\n<td>number</td>\n<td>Timestamp of the last incoming (customer) message after the chat was set to PENDING</td>\n<td><code>1761858108</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>pendingUpdateTime</code></td>\n<td>number</td>\n<td>Timestamp of the last update into pending state</td>\n<td><code>1761858108</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>resolvedUpdateTime</code></td>\n<td>number</td>\n<td>Timestamp of the last time the chat was marked as RESOLVED</td>\n<td><code>1761664598</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>replyAction.chatStatus</code></td>\n<td>number</td>\n<td>Status to apply when the customer replies to a template</td>\n<td><code>0 = WITH BOT</code>,  <br><code>1 = PENDING</code>,  <br><code>2 = TAKEN</code>,  <br><code>3 = SOLVED</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>replyAction.setBotNode</code></td>\n<td>string</td>\n<td>Bot node to trigger after reply</td>\n<td><code>\"marketing_template_wa_business_app\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>replyAction.expirationTime</code></td>\n<td>number</td>\n<td>How long (in seconds) the reply action remains valid</td>\n<td><code>259200</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>sendingBulkAgent</code></td>\n<td>string</td>\n<td>ID of the agent who initiated the bulk template message</td>\n<td><code>\"rShazWqr8iTDocIqkOp4GY0c0j32\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>botState</code></td>\n<td>object</td>\n<td>Data about the active or most recent bot session (see Bot State table below)</td>\n<td><code>{ \"flowVersion\": {...}, \"node\": \"handoff\" }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>previousBotSession</code></td>\n<td>object</td>\n<td>Data about the the second-to-last bot session (see Bot State table below)</td>\n<td>Same as <code>botState</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>crmData</code></td>\n<td>object</td>\n<td>Custom CRM metadata associated with the chat; structure varies by integration (Powerlink, Monday, etc.)</td>\n<td><code>{ \"fullname\": \"John Doe\", \"deepLink\": \"https://...\" }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>crmDeepLink</code></td>\n<td>string</td>\n<td>Personalized link to the customers record in the inegrated business CRM</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>crmLastTicketId</code></td>\n<td>string</td>\n<td>Reference to the most recent CRM record linked to the chat</td>\n<td><code>\"97337f16-e717-4ac9-b2dd-8552909b9252\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>lastMessageStoredInCRMTimestamp</code></td>\n<td>string</td>\n<td>Timestamp (in ms) of the last message stored in CRM</td>\n<td><code>1761858108753</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>externalBot</code></td>\n<td>boolean</td>\n<td>Whether an external bot (outside Texter) is currently active</td>\n<td><code>true</code>, <code>false</code></td>\n<td>When changed, triggers an event - used to enable or disable external bots.</td>\n</tr>\n<tr>\n<td><code>unsubscribed.date</code></td>\n<td>string</td>\n<td>When the chat unsubscribed from receiving template messages</td>\n<td><code>\"2025-10-30T21:01:48.989Z\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>unsubscribed.bulkSendId</code></td>\n<td>string</td>\n<td>Latest bulk send ID that this user was included before unsubscribed</td>\n<td><code>\"97337f16-e717-4ac9-b2dd-8552909b9252\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>blockedChat.blocked</code></td>\n<td>boolean</td>\n<td>Whether chat is marked as blocked</td>\n<td><code>true</code>, <code>false</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>blockedChat.agent</code></td>\n<td>string</td>\n<td>ID of the agent who blocked the chat</td>\n<td><code>\"333aed7a-b3ea-4e5c-acbc-d8499be509c3\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>hasMessageError</code></td>\n<td>boolean</td>\n<td>Whether the chat contains failed outgoing messages</td>\n<td><code>true</code>, <code>false</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>language</code></td>\n<td>string</td>\n<td>The chat perferred language</td>\n<td></td>\n<td>Reserved for future functionallity</td>\n</tr>\n<tr>\n<td><code>channel</code></td>\n<td>string</td>\n<td>Channel type</td>\n<td><code>\"whatsapp\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>channelInfo.name</code> instead</td>\n</tr>\n<tr>\n<td><code>clientPhone</code></td>\n<td>string</td>\n<td>Customer phone number in international format</td>\n<td><code>\"+972521234567\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>channelInfo.id</code> instead</td>\n</tr>\n<tr>\n<td><code>clientPhoneE164</code></td>\n<td>string</td>\n<td>Customer phone number in E.164 format</td>\n<td><code>\"+972521234567\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>channelInfo.id</code> instead</td>\n</tr>\n<tr>\n<td><code>entityPhone</code></td>\n<td>string</td>\n<td>Business WhatsApp number used for this chat</td>\n<td><code>\"+972586640430\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>channelInfo.accountId</code> instead</td>\n</tr>\n<tr>\n<td><code>lastText</code></td>\n<td>string</td>\n<td>Text preview of the last message</td>\n<td><code>\"תודה\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>lastMessage.text</code> instead</td>\n</tr>\n<tr>\n<td><code>unsubscribedTime</code></td>\n<td>number</td>\n<td>Timestamp of when the user unsubscribed from template messages</td>\n<td><code>1761664598</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>unsubscribed.date</code> instead</td>\n</tr>\n<tr>\n<td><code>blockedTemplates</code></td>\n<td>boolean</td>\n<td>Wether the recipient unsubscribed from receiving template messages</td>\n<td><code>true</code>, <code>false</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>use <code>unsubscrubed</code> property instead</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"bot-state\">Bot State</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Examples / Allowed Values</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Internal ID of the bot session</td>\n<td><code>\"3084c088c0902ac2b8b438acc34a2e...\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>flowVersion.identifier</code></td>\n<td>string</td>\n<td>Identifier of the active or previous bot</td>\n<td><code>\"onboarding-bot\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>flowVersion.version</code></td>\n<td>number</td>\n<td>Version number of the bot flow</td>\n<td><code>203</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>userState</code></td>\n<td>object</td>\n<td>Key-value memory of collected variables or answers from different bot nodes</td>\n<td><code>{ \"priority\": \"high\", \"menu_choice\": 2 }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>store</code></td>\n<td>object</td>\n<td>Key-value memory of collected variables or answers during the session</td>\n<td><code>{ \"firstName\": \"Joe\", \"email\": \"joeDoe@gmail.com\" }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>latestAgentUid</code></td>\n<td>string</td>\n<td>ID of the last human agent involved in the session</td>\n<td><code>\"876bb262-86f5-4583-a054-0a3cba7be1ba\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>latestAgentName</code></td>\n<td>string</td>\n<td>Display name of the last human agent involved</td>\n<td><code>\"מור\"</code>, <code>\"דן\"</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h1 id=\"message-object\">↳ Message Object</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique message ID in Texter</td>\n<td><code>\"69062b15962e17ab3033f886\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>systemMessage</code></td>\n<td>boolean</td>\n<td>Marks a system/control message instead of a normal chat bubble</td>\n<td><code>true</code>, <code>false</code></td>\n<td><code>true</code> messages describe routing / assignment / status changes</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>The content type of the message</td>\n<td><code>\"text\"</code>, <code>\"media\"</code>, <code>\"contacts\"</code>, <code>\"location\"</code>, <code>\"buttons\"</code>, <code>\"list\"</code>, <code>\"postback\"</code>, <code>\"special\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>text</code></td>\n<td>string</td>\n<td>Human-readable body text of the message</td>\n<td><code>\"ברוכים הבאים לתמיכה...\"</code>, <code>\"איך אפשר עוד לעזור?\"</code>, <code>\"היי\"</code></td>\n<td>Present on most <code>\"text\"</code>, <code>\"buttons\"</code>, <code>\"list\"</code>, and <code>\"special\"</code> messages</td>\n</tr>\n<tr>\n<td><code>buttons</code></td>\n<td>Array&lt;{ title: string; payload: string; }&gt;</td>\n<td>Interactive reply buttons that were sent to the user</td>\n<td><code>[{\"title\":\"נציג אנושי\",\"payload\":\"2\"}, {\"title\":\"סגירת פנייה\",\"payload\":\"3\"}]</code></td>\n<td>Only appears when <code>type: \"buttons\"</code></td>\n</tr>\n<tr>\n<td><code>list</code></td>\n<td>{ button: string; sections: Array&lt;{ title: string; rows: Array&lt;{ title: string; payload: string; description?: string; }&gt;}&gt; }</td>\n<td>WhatsApp \"list picker\" that was sent to the user</td>\n<td><code>\"button\": \"בחרו כאן\"</code>, rows like <code>{ \"title\": \"בעיה טכנית\", \"payload\": \"1\" }</code></td>\n<td>Only appears when <code>type: \"list\"</code></td>\n</tr>\n<tr>\n<td><code>postback</code></td>\n<td>{ payload: string; title?: string; description?: string }</td>\n<td>Which list item / button the user chose</td>\n<td><code>{ \"payload\": \"3\", \"title\": \"סגירת פנייה\" }</code></td>\n<td>Only appears when <code>type: \"postback\"</code> (incoming)</td>\n</tr>\n<tr>\n<td><code>media</code></td>\n<td>media[]</td>\n<td>Array of media items (files) in this message</td>\n<td>See <code>media[] Object</code> table below</td>\n<td>Only appears when <code>type: \"media\"</code></td>\n</tr>\n<tr>\n<td><code>location</code></td>\n<td>{ latitude: number; longitude: number; name?: string; address?: string; url?: string }</td>\n<td>Shared location data</td>\n<td><code>{ \"latitude\": 32.07, \"longitude\": 34.79, \"name\": \"Head Office\" }</code></td>\n<td>Only appears when <code>type: \"location\"</code></td>\n</tr>\n<tr>\n<td><code>contacts</code></td>\n<td>ContactCard[]</td>\n<td>Shared contact cards (vCard-style info)</td>\n<td><code>{ name: { formatted_name: \"John Doe\" }, phones: [{ phone: \"123\", type: \"MOBILE\" }] }</code></td>\n<td>Only appears when <code>type: \"contacts\"</code></td>\n</tr>\n<tr>\n<td><code>special</code></td>\n<td>object</td>\n<td>Structured provider/template data or other special content</td>\n<td><code>special.whatsappTyntec.template.templateId = \"bulk_marketing_272\"</code></td>\n<td>Used for outgoing WhatsApp templates, broadcasts, etc. Only for <code>type: \"special\"</code></td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>object</td>\n<td>Extra metadata about this message</td>\n<td><code>{ \"triggeredBot\": true }</code>, <code>{ \"botMsgInfo\": { ... } }</code></td>\n<td>May include bot info, template info, campaign info, flags</td>\n</tr>\n<tr>\n<td><code>metadata.botMsgInfo</code></td>\n<td>{ identifier: string; version: number; nodeName: string; hideSummary: boolean; }</td>\n<td>Which bot node generated this outgoing message</td>\n<td><code>{ \"identifier\": \"smart-resolve\", \"version\": 210, \"nodeName\": \"priority\", \"hideSummary\": false }</code></td>\n<td>Lets you attribute messages to a bot flow/node</td>\n</tr>\n<tr>\n<td><code>metadata.triggeredBot</code></td>\n<td>boolean</td>\n<td>Whether this incoming message triggered automation/bot logic</td>\n<td><code>true</code>, <code>false</code></td>\n<td>Mainly on incoming user messages (including postbacks)</td>\n</tr>\n<tr>\n<td><code>chatChannelInfo</code></td>\n<td>{ name: string; id: string; accountId: string }</td>\n<td>Which WhatsApp line/account this message belongs to</td>\n<td><code>{ \"name\": \"whatsapp\", \"id\": \"972527760989\", \"accountId\": \"972586640430\" }</code></td>\n<td><code>name</code> will be <code>\"whatsapp\"</code> for WhatsApp messages</td>\n</tr>\n<tr>\n<td><code>channelInfo</code></td>\n<td>{ id: string; metadata?: object }</td>\n<td>Provider-side message identifier</td>\n<td><code>\"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgS...\"</code></td>\n<td>Use this to correlate with the WhatsApp provider / Meta logs</td>\n</tr>\n<tr>\n<td><code>direction</code></td>\n<td>string</td>\n<td>Logical direction of the message</td>\n<td><code>\"incoming\"</code> or <code>\"outgoing\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>number</td>\n<td>Delivery state of the message</td>\n<td><code>0</code> = Sent, <code>1</code> = Accepted, <code>2</code> = Delivered, <code>3</code> = Seen, <code>4</code> = Failed, <code>5</code> = Channel Failed, <code>6</code> = Deleted</td>\n<td></td>\n</tr>\n<tr>\n<td><code>statusHistory</code></td>\n<td>Array&lt;{ status: number; timestamp: number; }&gt;</td>\n<td>Timeline of delivery/read states for this message</td>\n<td><code>[{\"status\":0,\"timestamp\":1761574714328},{\"status\":3,\"timestamp\":1761574716050}]</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>number (ms timestamp)</td>\n<td>When the message was created (epoch ms)</td>\n<td><code>1761574722000</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string (ISO 8601)</td>\n<td>Last time this message was updated</td>\n<td><code>\"2025-10-27T14:18:39.153Z\"</code></td>\n<td>Updates happen e.g. when delivery status changes from Sent → Seen</td>\n</tr>\n<tr>\n<td><code>parent_chat</code></td>\n<td>string</td>\n<td>The Chat ID this message belongs to</td>\n<td><code>\"67d29e10d0c2473c648f3c9e\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>agent</code></td>\n<td>string</td>\n<td>Which agent or bot “sent” this message</td>\n<td><code>\"Bot\"</code>, or agent UID like <code>\"333aed7a-b3ea-4e5c-acbc-d8499be509c3\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>assignedToAgent</code></td>\n<td>string</td>\n<td>Which agent the chat was assigned to at this moment</td>\n<td><code>\"333aed7a-b3ea-4e5c-acbc-d8499be509c3\"</code>, <code>\"Bot\"</code></td>\n<td>Only appears on <code>systemMessage: true</code> messages that describe routing/assignment</td>\n</tr>\n<tr>\n<td><code>assignedToDepartment</code></td>\n<td>string</td>\n<td>Which department the chat was assigned to</td>\n<td><code>\"waiting_for_customer_reply\"</code>, <code>\"Zg18sAOfUA7pKNUQDnGc\"</code></td>\n<td>Only on some <code>systemMessage: true</code></td>\n</tr>\n<tr>\n<td><code>newChatStatus</code></td>\n<td>number</td>\n<td>New chat status after this routing/system event</td>\n<td><code>0 = WITH BOT</code>,  <br><code>1 = PENDING</code>,  <br><code>2 = TAKEN</code>,  <br><code>3 = RESOLVED</code>,  <br><code>4 = BULK</code></td>\n<td>Only on <code>systemMessage: true</code></td>\n</tr>\n<tr>\n<td><code>botSessionId</code></td>\n<td>string</td>\n<td>Bot session / flow instance ID tied to this message</td>\n<td><code>\"34c7c30a56278d74dc08d68194722ccc...\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>hideSummary</code></td>\n<td>boolean</td>\n<td>Should this message be hidden/suppressed from summaries</td>\n<td><code>true</code>, <code>false</code></td>\n<td>Also exists inside <code>metadata.botMsgInfo.hideSummary</code></td>\n</tr>\n<tr>\n<td><code>tmpSendId</code></td>\n<td>string</td>\n<td>number</td>\n<td>Client-generated ID to match “send request” → “stored message”</td>\n<td><code>\"9929b94d-d824-431e-aac9-b532279022ac\"</code>, <code>1761030858</code></td>\n</tr>\n<tr>\n<td><code>errorReason</code></td>\n<td>string</td>\n<td>Reason the send failed (provider error, throttling, 24h window, etc.)</td>\n<td><code>\"reengagement window closed\"</code></td>\n<td>Only present if delivery actually failed</td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>object</td>\n<td>Snapshot of the interactive message that this message is replying to / selecting from</td>\n<td>Copies keys like <code>_id</code>, <code>text</code>, <code>buttons</code>/<code>list</code>, etc. from the original message</td>\n<td></td>\n</tr>\n<tr>\n<td><code>forwarded</code></td>\n<td>boolean</td>\n<td>Whether WhatsApp marked the message as forwarded</td>\n<td><code>true</code>, <code>false</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>sensitive</code></td>\n<td>boolean</td>\n<td>Whether the content is marked sensitive and should be redacted in some views</td>\n<td><code>true</code>, <code>false</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>bulkSendId</code></td>\n<td>string</td>\n<td>Bulk / campaign batch ID for this message</td>\n<td><code>\"6900c1ebe946b426d31ce905\"</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"🛑-deprecated--legacy-these-may-still-be-returned-but-dont-build-new-code-on-them\">🛑 Deprecated / Legacy (these may still be returned, but don't build new code on them)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>incoming</code></td>\n<td>boolean</td>\n<td>Legacy mirror of <code>direction</code></td>\n<td><code>true</code>, <code>false</code></td>\n<td>🛑 <strong>Deprecated</strong> Use <code>direction</code> instead</td>\n</tr>\n<tr>\n<td><code>outgoing</code></td>\n<td>boolean</td>\n<td>Legacy mirror of <code>direction</code></td>\n<td><code>true</code>, <code>false</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>direction</code> instead</td>\n</tr>\n<tr>\n<td><code>received</code></td>\n<td>number (ms timestamp)</td>\n<td>Legacy timestamp, originally \"when we received it\"</td>\n<td><code>1761574713761</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>timestamp</code> instead</td>\n</tr>\n<tr>\n<td><code>botMsgInfo</code></td>\n<td>{ identifier: string; version: number; nodeName: string; hideSummary: boolean }</td>\n<td>Legacy top-level copy of bot info</td>\n<td><code>{ \"identifier\": \"smart-resolve\", \"version\": 210, \"nodeName\": \"priority\", \"hideSummary\": false }</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>metadata.botMsgInfo</code> instead</td>\n</tr>\n<tr>\n<td><code>bulkSendId</code></td>\n<td>string</td>\n<td>Legacy copy of campaign/bulk send ID</td>\n<td><code>\"6900c1ebe946b426d31ce905\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>metadata.bulkSendId</code> instead</td>\n</tr>\n<tr>\n<td><code>providerMessageId</code></td>\n<td>string</td>\n<td>Old provider message ID before</td>\n<td><code>\"3743ed63-6ace-480c-af7e-7b5d0cf11883\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>channelInfo.id</code> instead</td>\n</tr>\n<tr>\n<td><code>messageId</code></td>\n<td>string</td>\n<td>Older internal message ID field</td>\n<td><code>\"abc123\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>_id</code> instead</td>\n</tr>\n<tr>\n<td><code>templateId</code></td>\n<td>string</td>\n<td>WhatsApp template name/ID used for this outbound</td>\n<td><code>\"inbox_marketing_247\"</code>, <code>\"bulk_marketing_272\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Replaced by structured template info under <code>special.whatsappTyntec</code> / <code>metadata.whatsappTemplate</code></td>\n</tr>\n<tr>\n<td><code>templateMessage</code></td>\n<td>boolean</td>\n<td>Was this message sent using a template?</td>\n<td><code>true</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>New flows rely on richer template metadata</td>\n</tr>\n<tr>\n<td><code>templateMessageData</code></td>\n<td>{ id: string; header?: any; body: { text: string }; footer?: any; buttons?: any }</td>\n<td>Legacy snapshot of the actual WhatsApp template body/variables/buttons that were sent</td>\n<td><code>{ \"id\": \"bulk_marketing_272\", \"body\": { \"text\": \"🔈חדש - מהיום...\" } }</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>New code should inspect <code>special.whatsappTyntec.template</code> (or <code>metadata.whatsappTemplate</code> if exposed)</td>\n</tr>\n<tr>\n<td><code>parameters</code> / <code>templateParameters</code></td>\n<td>string[]</td>\n<td>Legacy placeholder values injected into that template</td>\n<td><code>[\"ddd\"]</code>, <code>[]</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Parameters now live in structured template data instead of a flat string array</td>\n</tr>\n<tr>\n<td><code>tmpSendId</code> inside nested content (<code>MessageContentsBase.tmpSendId</code>)</td>\n<td>string</td>\n<td>Per-content copy of tmpSendId</td>\n<td><code>\"1761030842\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>duplication. Use root-level <code>tmpSendId</code></td>\n</tr>\n<tr>\n<td><code>url</code> (inside <code>media[]</code>)</td>\n<td>string</td>\n<td>Direct download URL for the file</td>\n<td><code>\"https://ninja.texterchat.com/server/files/shared/6900c1ea...\"</code></td>\n<td>🛑 <strong>Deprecated</strong>  <br>Use <code>fileId</code> instead</td>\n</tr>\n<tr>\n<td><code>scanned</code></td>\n<td>boolean</td>\n<td>Whether the file was scanned for threats</td>\n<td><code>true</code>, <code>false</code></td>\n<td>🛑 <strong>Deprecated</strong></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"media-object\"><code>media[]</code> Object</h3>\n<p>(Used in messages where <code>type: \"media\"</code>)</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mediaType</code></td>\n<td>string</td>\n<td>The kind of file sent in this media item</td>\n<td><code>\"image\"</code>, <code>\"document\"</code>, <code>\"audio\"</code>, <code>\"video\"</code>, <code>\"sticker\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>fileId</code></td>\n<td>string</td>\n<td>Internal file ID in Texter storage</td>\n<td><code>\"6900c1eac29d42708adac92f\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>previewId</code></td>\n<td>string</td>\n<td>Internal preview/thumbnail file ID</td>\n<td><code>\"6900c1eac29d42708adac92f_preview\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>filename</code></td>\n<td>string</td>\n<td>Original filename from the sender device</td>\n<td><code>\"offer_october_2025.pdf\"</code>, <code>\"IMG-20251027-WA0001.jpg\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>contentType</code></td>\n<td>string</td>\n<td>MIME type</td>\n<td><code>\"application/pdf\"</code>, <code>\"image/jpeg\"</code>, <code>\"video/mp4\"</code>, <code>\"audio/ogg\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>caption</code></td>\n<td>string</td>\n<td>Optional caption text the sender attached to the media</td>\n<td><code>\"אנא תראו את ההצעה המצורפת\"</code>, <code>\"בדיקה\"</code></td>\n<td>Relevant for when mediaType is <code>image</code> or <code>video</code></td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>object</td>\n<td>Channel / provider metadata for this attachment</td>\n<td><code>{ \"frequentlyForwarded\": false }</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>scanned</code></td>\n<td>boolean</td>\n<td>Whether the file went through AV / safety scan</td>\n<td><code>true</code>, <code>false</code></td>\n<td><strong>🛑 Deprecated</strong></td>\n</tr>\n<tr>\n<td><code>url</code></td>\n<td>string</td>\n<td>Direct media URL</td>\n<td><code>\"https://ninja.texterchat.com/server/files/shared/6900c1ea...\"</code></td>\n<td><strong>🛑 Deprecated</strong>  <br>Use <code>fileId</code> download flow instead</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h1 id=\"probelm-object\">↳ Probelm Object</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Allowed / Examples</strong></th>\n<th><strong>Notes</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique ID of this problem record in Texter</td>\n<td><code>\"68cc1241bafffd81d455e788\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>channel</code></td>\n<td>string</td>\n<td>Which messaging channel this problem refers to</td>\n<td><code>whatsapp</code>,  <br><code>messenger</code>,  <br><code>instagram</code>,  <br><code>website_chat</code>,  <br><code>email</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>accountId</code></td>\n<td>string</td>\n<td>The account ID in Texter affected by this issue</td>\n<td><code>\"972586503100\"</code>, <code>\"972523817473\"</code>, <code>\"380939933826\"</code></td>\n<td>This is the same ID you see under <code>chatChannelInfo.accountId</code> in messages</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Machine-readable problem code (stable identifier for the issue type)</td>\n<td><code>\"whatsapp_app_id_error\"</code>, <code>\"whatsapp_business_has_limited_messaging_availability\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>caseId</code></td>\n<td>string</td>\n<td>Provider / Meta case reference if available for this specific issue</td>\n<td><code>\"123456789012345\"</code></td>\n<td>Optional. If two problems share same <code>name</code> + same <code>caseId</code>, they’re considered the same ongoing incident</td>\n</tr>\n<tr>\n<td><code>severity</code></td>\n<td>string</td>\n<td>How bad the issue is</td>\n<td><code>\"error\"</code> or <code>\"warning\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>impairedFunctionality</code></td>\n<td>object</td>\n<td>Which abilities are impacted for this account</td>\n<td><code>{ \"send\": true, \"receive\": false }</code>, <code>{ \"send\": false, \"receive\": false }</code>, <code>{ \"send\": true, \"receive\": true }</code></td>\n<td>Keys map to channel capabilities. For WhatsApp you mainly see <code>send</code> and <code>receive</code>. <code>true</code> = that capability is impacted</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Human-readable explanation of the issue</td>\n<td><code>\"WhatsApp app ID is not set\"</code>, <code>\"The Business has not passed business verification.\"</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>instruction</code></td>\n<td>string</td>\n<td>Recommended remediation / what the user should do next</td>\n<td><code>\"Visit business settings and start or resolve the business verification request.\"</code>, <code>\"Contact support to resolve this issue.\"</code></td>\n<td>Optional. Not present on all problems</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>number (ms timestamp)</td>\n<td>When this problem record was created (epoch ms)</td>\n<td><code>1758204481268</code></td>\n<td></td>\n</tr>\n<tr>\n<td><code>startedAt</code></td>\n<td>number (ms timestamp)</td>\n<td>When this issue actually started affecting the account, if known</td>\n<td><code>1758204400000</code></td>\n<td>Optional. Can be earlier than <code>createdAt</code> if was discovered later</td>\n</tr>\n<tr>\n<td><code>resolvedAt</code></td>\n<td>number (ms timestamp)</td>\n<td>When the issue was resolved</td>\n<td><code>1758208900000</code></td>\n<td>Optional. If missing, the problem is still ongoing/active</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"About Texter","slug":"about-texter"},{"content":"Texter API V2","slug":"texter-api-v2"},{"content":"Authentication","slug":"authentication"},{"content":"Base URL","slug":"base-url"},{"content":"Quick Start","slug":"quick-start"},{"content":"Entities","slug":"entities"},{"content":"↳ Template Object","slug":"template-object"},{"content":"↳ Chat Object","slug":"chat-object"},{"content":"↳ Message Object","slug":"message-object"},{"content":"↳ Probelm Object","slug":"probelm-object"}],"owner":"9650533","collectionId":"6c5882c1-edf7-41df-a539-7525aad6b876","publishedId":"2sB3Wny34L","public":true,"customColor":{"top-bar":"ebebeb","right-sidebar":"303030","highlight":"014489"},"publishDate":"2025-11-02T12:01:55.000Z"},"item":[{"name":"Manage Templates","item":[{"name":"Create New Template","id":"b90f5df3-0422-43c8-a6d8-b086aa9e58bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    // Required - \r\n    \"title\": \"<STRING>\",\r\n    \"category\": \"MARKETING | UTILITY\",\r\n    \"chatStatus\": 2,\r\n    \"usage\": \"inbox | bulk\",\r\n\r\n    // Optional - \r\n    \"name\": \"<STRING>\",\r\n    \"isDefault\": \"<BOOLEAN>\",\r\n    \"departments\": \"<STRING[]>\",\r\n    \"setBotNode\": \"<STRING>\",\r\n    \"responsibleAgent\": \"<STRING>\",\r\n    \"responsibleDepartment\": \"<STRING>\",\r\n    \"replyText\": \"<STRING>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}","description":"<h3 id=\"description\">Description</h3>\n<p>This endpoint is the first of three required to create and submit a new template.</p>\n<p>When a template is first created, it exists only locally and is not yet displayed. The template entity is internal therefore has properties unknown to WhatsApp such as reply action, set bot node etc.</p>\n<p>After creating a template, the next step is to <a href=\"https://apidocs.texterchat.com/#59ddf910-5d8e-4078-92d8-850c3f531568\">create a localization</a>, which defines all the properties required by WhatsApp - including the language, components (header, body, footer, buttons) and example variable values.</p>\n<p>Finally, once both the template <strong>and</strong> its localization have been created, you can submit the template to WhatsApp for approval.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>accountID</code></strong> - for WhatsApp channels this would be the phone number associated to the account in Texter.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>string</td>\n<td>✅</td>\n<td>Internal title</td>\n<td></td>\n</tr>\n<tr>\n<td>category</td>\n<td>string</td>\n<td>✅</td>\n<td>WhatsApp may adjust this value upon submission based on the template’s semantic classification.</td>\n<td><code>MARKETING</code>  <br /><code>UTILITY</code></td>\n</tr>\n<tr>\n<td>chatStatus</td>\n<td>number</td>\n<td>✅</td>\n<td>Determines the chat status after the recipient replies to the template</td>\n<td><code>BOT = 0</code>  <br /><code>PENDING = 1</code>  <br /><code>ASSIGNED = 2</code>  <br /><code>RESOLVED = 3</code></td>\n</tr>\n<tr>\n<td>usage</td>\n<td>string</td>\n<td>✅</td>\n<td>Whether this template is intended to be sent in bulk or individually</td>\n<td><code>bulk</code>  <br /><code>inbox</code></td>\n</tr>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>❌</td>\n<td>The template name (which serves as its ID). Will be auto-generated if not specified</td>\n<td>Must be unique</td>\n</tr>\n<tr>\n<td>isDefault</td>\n<td>boolean</td>\n<td>❌</td>\n<td>If not specified it will be false. Only one template can be default</td>\n<td></td>\n</tr>\n<tr>\n<td>departments</td>\n<td>string[]</td>\n<td>❌</td>\n<td>Determines which departments would have access to this template</td>\n<td>Requires department ID’s</td>\n</tr>\n<tr>\n<td>setBotNode</td>\n<td>string</td>\n<td>❌</td>\n<td>If chatStatus is set to 0 (BOT), you can set the bot to start running from this specific node</td>\n<td>Must be an existing node in the channel's bot</td>\n</tr>\n<tr>\n<td>responsibleAgent</td>\n<td>string</td>\n<td>❌</td>\n<td>Assign the chat to this agent.  <br />* Can't be used when using <strong>responsibleDepartment</strong></td>\n<td>Agent email in Texter</td>\n</tr>\n<tr>\n<td>responsibleDepartment</td>\n<td>string</td>\n<td>❌</td>\n<td>Assign the chat to this department.  <br />* Can't be used when using <strong>responsibleAgent</strong></td>\n<td>Deparment ID from Texter</td>\n</tr>\n<tr>\n<td>replyText</td>\n<td>string</td>\n<td>❌</td>\n<td>Text sent when the recipient replies to the template</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful call, the API will respond with the new <a href=\"https://apidocs.texterchat.com/#template-object\">template object</a> created.</p>\n<p>If you didn't specify a template name when creating the template, save the generated name from the response in order to use it when <a href=\"https://apidocs.texterchat.com/#59ddf910-5d8e-4078-92d8-850c3f531568\">creating a localization</a> and later <a href=\"https://apidocs.texterchat.com/#ba2811fa-0364-40bc-a117-4479ed7ebc69\">submitting it to WhatsApp</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","{{accountID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"843e58eb-1fed-4ffb-8bb5-176e8e70a043","name":"Simple Template","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Example Template\",\r\n    \"category\": \"MARKETING\",\r\n    \"chatStatus\": 1,\r\n    \"usage\": \"inbox\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"server","value":"envoy"},{"key":"date","value":"Mon, 03 Nov 2025 08:33:59 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"x-powered-by","value":"Express"},{"key":"x-robots-tag","value":"noindex, nofollow"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-headers","value":"Authorization"},{"key":"x-version","value":"7.0.0"},{"key":"x-envoy-upstream-service-time","value":"59"},{"key":"content-encoding","value":"gzip"},{"key":"vary","value":"Accept-Encoding"},{"key":"transfer-encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"690868f7962e17ab3033f91b\",\n    \"name\": \"inbox_marketing_95\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"accountId\": \"972509876543\"\n    },\n    \"chatStatus\": 1,\n    \"created\": 1762158839563,\n    \"departments\": [],\n    \"isDefault\": false,\n    \"localizationDrafts\": {},\n    \"provider_template\": {\n        \"name\": \"inbox_marketing_95\",\n        \"category\": \"MARKETING\",\n        \"localizations\": [],\n        \"metadata\": {}\n    },\n    \"title\": \"Example Template\",\n    \"updatedAt\": \"2025-11-03T08:33:59.563Z\",\n    \"usage\": \"inbox\"\n}"},{"id":"867ae1a3-c788-414d-9367-13b42a60e836","name":"Template Routed to Bot","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Template to Bot\",\r\n    \"category\": \"UTILITY\",\r\n    \"chatStatus\": 0,\r\n    \"usage\": \"bulk\",\r\n    \"setBotNode\": \"new_holiday_campaign\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"69086d69962e17ab3033f91d\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"accountId\": \"972509876543\"\n    },\n    \"name\": \"bulk_utility_97\",\n    \"chatStatus\": 0,\n    \"created\": 1762159977992,\n    \"departments\": [],\n    \"isDefault\": false,\n    \"localizationDrafts\": {},\n    \"provider_template\": {\n        \"name\": \"bulk_utility_97\",\n        \"category\": \"UTILITY\",\n        \"localizations\": [],\n        \"metadata\": {}\n    },\n    \"setBotNode\": \"new_holiday_campaign\",\n    \"title\": \"Template to Bot\",\n    \"updatedAt\": \"2025-11-03T08:52:57.992Z\",\n    \"usage\": \"bulk\"\n}"},{"id":"f3f6cb50-61d4-40da-843a-201d17d26412","name":"Advanced Template","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Advanced Example\",\r\n    \"category\": \"MARKETING\",\r\n    \"chatStatus\": 2,\r\n    \"usage\": \"inbox\", \r\n    \"name\": \"send_receipt\",\r\n    \"isDefault\": true,\r\n    \"departments\": [\"business\", \"cf9055b2-95f5-4c08-b4ac-7d87298873c0\"],\r\n    \"responsibleAgent\": \"demo@texterchat.com\",\r\n    \"replyText\": \"Thanks for your purchase! Can we help with anything else?\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"6908704c962e17ab3033f91e\",\n    \"name\": \"send_receipt\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"accountId\": \"972509876543\"\n    },\n    \"chatStatus\": 2,\n    \"created\": 1762160716983,\n    \"departments\": [\n        \"business\",\n        \"cf9055b2-95f5-4c08-b4ac-7d87298873c0\"\n    ],\n    \"isDefault\": true,\n    \"localizationDrafts\": {},\n    \"provider_template\": {\n        \"name\": \"send_receipt\",\n        \"category\": \"MARKETING\",\n        \"localizations\": [],\n        \"metadata\": {}\n    },\n    \"replyText\": \"Thanks for your purchase! Can we help with anything else?\",\n    \"responsibleAgent\": \"demo@texterchat.com\",\n    \"title\": \"Advanced Example\",\n    \"updatedAt\": \"2025-11-03T09:05:16.982Z\",\n    \"usage\": \"inbox\"\n}"},{"id":"75544898-3098-47df-a081-3005c3c93ed4","name":"Error Create Template","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Bad Template\",\r\n    \"category\": \"UTILITY\",\r\n    \"chatStatus\": 5,\r\n    \"usage\": \"inbox\",\r\n    \"responsibleDepartment\": \"business\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"error\": \"data/chatStatus must be equal to one of the allowed values\"\r\n}"}],"_postman_id":"b90f5df3-0422-43c8-a6d8-b086aa9e58bf"},{"name":"Create or Update Localization","id":"59ddf910-5d8e-4078-92d8-850c3f531568","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    // Required -\r\n    \"language\": \"he\",\r\n    \"components\":[\r\n\r\n        // Any of HEADER/BODY/FOOTER/BUTTONS - \r\n        {\r\n            \"type\": \"HEADER\",\r\n            \"format\": \"IMAGE | VIDEO | DOCUMENT\",\r\n            \"example\": {\r\n                \"header_handle\": [\r\n                    \"<FILE_PUBLIC_URL>\"\r\n                ]\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"BODY\",\r\n            \"text\": \"היי {{1}} מעדכן שהזמנה מספר {{2}} מוכנה לאיסוף\",\r\n            \"example\": {\r\n                \"body_text\": [\r\n                    [\r\n                        \"רועי\",\r\n                        \"15033\"\r\n                    ]\r\n                ]\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"FOOTER\",\r\n            \"text\": \"להסרה השב הסר\"\r\n        },\r\n        {\r\n            \"type\": \"BUTTONS\",\r\n            \"buttons\": [\r\n                {\r\n                    \"type\": \"PHONE_NUMBER\",\r\n                    \"text\": \"Call here\",\r\n                    \"phone_number\": \"+972521234567\"\r\n                },\r\n                {\r\n                    \"type\": \"URL\",\r\n                    \"text\": \"Our website\",\r\n                    \"url\": \"https://www.texterchat.com\"\r\n                }\r\n            ]\r\n        }\r\n    ],\r\n\r\n    // Optional -\r\n    \"defaults\": {\r\n        \"header\": {\r\n            \"type\": \"image\",\r\n            \"url\": \"<DEFAULT_FILE_URL>\"\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint after creating a new template to define or update its core properties - including language, body, header, buttons, and other components.</p>\n<p>Notice that this can't be used for already submitted templates- if you want to update any of these fields and your templae is already submitted, you ought to create a new template.</p>\n<p>After a successful request, the template will be visible in Texter as a preview. When creating a template via the API for the first time, we recommend reviewing it in Texter before <a href=\"https://apidocs.texterchat.com/#ba2811fa-0364-40bc-a117-4479ed7ebc69\">submitting it for approval</a>.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>accountID</code></strong> - For WhatsApp channels this would be the phone number associated to the account in Texter.</p>\n</li>\n<li><p><strong><code>templateName</code></strong> - The unique identifier of the template. This can be either:<br />  - The custom name assigned when the template was created, or<br />  - The system-generated name, which can be retrieved from the response of the <a href=\"https://apidocs.texterchat.com/#b90f5df3-0422-43c8-a6d8-b086aa9e58bf\">template creation endpoint</a> (under the <code>name</code> field).</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<h4 id=\"top-level-fields\">Top-Level Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>language</td>\n<td>string</td>\n<td>✅</td>\n<td>The localization language code. Must be a lowercase IETF language tag matching the template’s language (e.g., <code>he</code>, <code>en</code>)</td>\n<td></td>\n</tr>\n<tr>\n<td>components</td>\n<td>object[]</td>\n<td>✅</td>\n<td>Array of template components. At least one is required. Each item is one of: <code>HEADER</code>, <code>BODY</code>, <code>FOOTER</code>, <code>BUTTONS</code> (see sub-schemas below).</td>\n<td>1–4 items, one of each type max</td>\n</tr>\n<tr>\n<td>defaults</td>\n<td>object</td>\n<td>❌</td>\n<td>Optional defaults used when <strong>sending</strong> the template (does not affect WhatsApp approval). Useful for pre-filling header media or body variables</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"components-variants\"><code>components[]</code> Variants</h4>\n<h5 id=\"component-header\">Component: <code>HEADER</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td>Component type identifier</td>\n<td><code>HEADER</code></td>\n</tr>\n<tr>\n<td>format</td>\n<td>string</td>\n<td>✅</td>\n<td>Media type</td>\n<td><code>IMAGE</code>  <br /><code>VIDEO</code>  <br /><code>DOCUMENT</code></td>\n</tr>\n<tr>\n<td>example.header_handle</td>\n<td>string[]</td>\n<td>✅</td>\n<td>Array with one HTTP(S) URL used as the header example media handle</td>\n<td>Must be HTTP(S)</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"component-body\">Component: <code>BODY</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td>Component type identifier</td>\n<td><code>BODY</code></td>\n</tr>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>Message body. Supports numbered variables using <code>{{1}}</code>, <code>{{2}}</code>, etc.</td>\n<td>Up to 1024 characters for MARKETING template category, or up to 550 characters for UTILITY templates</td>\n</tr>\n<tr>\n<td>example.body_text</td>\n<td>string[][]</td>\n<td>❗</td>\n<td>Example values for body variables. <strong>Required only if</strong> variables exist in <code>text</code>. Must match variable count &amp; order</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"component-footer\">Component: <code>FOOTER</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td>Component type identifier</td>\n<td><code>FOOTER</code></td>\n</tr>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>Footer text</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"component-buttons\">Component: <code>BUTTONS</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td>Component type identifier</td>\n<td><code>BUTTONS</code></td>\n</tr>\n<tr>\n<td>buttons</td>\n<td>object[]</td>\n<td>✅</td>\n<td>1–3 buttons. Either up to 3 <code>QUICK_REPLY</code> buttons, <strong>OR</strong> up to 2 CTA buttons (mix of <code>URL</code>, <code>PHONE_NUMBER</code>, <code>FLOW</code>). he two groups cannot be mixed.</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"button-quick_reply\">Button: <code>QUICK_REPLY</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Allowed Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td><code>QUICK_REPLY</code></td>\n</tr>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"button-url\">Button: <code>URL</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description / Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td><code>URL</code></td>\n</tr>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>Button label.</td>\n</tr>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>✅</td>\n<td>Target URL. May contain <strong>at most one</strong> variable, which must be <code>{{1}}</code> and must appear at the end of the URL</td>\n</tr>\n<tr>\n<td>example.url</td>\n<td>string</td>\n<td>❗ (required by WhatsApp when <code>url</code> has a variable)</td>\n<td>Fully-resolved example URL. Must start with the exact same literal prefix as <code>url</code> (everything before <code>{{1}}</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"button-phone_number\">Button: <code>PHONE_NUMBER</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description / Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td><code>PHONE_NUMBER</code></td>\n</tr>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>Button label</td>\n</tr>\n<tr>\n<td>phone_number</td>\n<td>string</td>\n<td>✅</td>\n<td>E.164-formatted phone number</td>\n</tr>\n</tbody>\n</table>\n</div><h5 id=\"button-flow\">Button: <code>FLOW</code></h5>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description / Notes</th>\n<th>Allowed Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td></td>\n<td><code>FLOW</code></td>\n</tr>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>Button label. Max 25 characters</td>\n<td></td>\n</tr>\n<tr>\n<td>flow_id</td>\n<td>string</td>\n<td>✅</td>\n<td>The published Flow ID from Meta</td>\n<td></td>\n</tr>\n<tr>\n<td>flow_action</td>\n<td>string</td>\n<td>❌ (defaults to <code>navigate</code>)</td>\n<td>How the Flow is opened</td>\n<td><code>navigate</code>, <code>data_exchange</code></td>\n</tr>\n<tr>\n<td>navigate_screen</td>\n<td>string</td>\n<td>❗ when <code>flow_action=navigate</code></td>\n<td>The <code>id</code> of the screen in the Flow JSON to open first. Case-sensitive</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"defaults-optional\"><code>defaults</code> (Optional)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>header</td>\n<td>object</td>\n<td>❌</td>\n<td>Default header media used when sending the template</td>\n<td></td>\n</tr>\n<tr>\n<td>body</td>\n<td>string[]</td>\n<td>❌</td>\n<td>Default values for body variables (order must match <code>{{n}}</code>)</td>\n<td></td>\n</tr>\n<tr>\n<td>header.type</td>\n<td>string</td>\n<td>✅</td>\n<td>Header media type</td>\n<td><code>image</code>  <br /><code>video</code>  <br /><code>document</code></td>\n</tr>\n<tr>\n<td>header.url</td>\n<td>string</td>\n<td>✅</td>\n<td>Default header media file URL</td>\n<td>Must be HTTP(S)</td>\n</tr>\n<tr>\n<td>header.filename</td>\n<td>string</td>\n<td>❌</td>\n<td>File name shown to users. <strong>Only</strong> applicable when <code>header.type: document</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful call, the API will respond with the updated <a href=\"https://apidocs.texterchat.com/#template-object\">template object</a> along with its added localization.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","{{accountID}}","{{templateName}}","localizations"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"0872f035-8219-4d58-bb43-e14342040288","name":"Simple Localization","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"language\": \"en\",\r\n    \"components\":[\r\n        {\r\n            \"type\": \"BODY\",\r\n            \"text\": \"How can we help?\"\r\n        },\r\n        {\r\n            \"type\": \"BUTTONS\",\r\n            \"buttons\": [\r\n                {\r\n                    \"type\": \"QUICK_REPLY\",\r\n                    \"text\": \"About Texter\"\r\n                },\r\n                {\r\n                    \"type\": \"QUICK_REPLY\",\r\n                    \"text\": \"Contact Us\"\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"_id\": \"69086d69962e17ab3033f91d\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"accountId\": \"972509876543\"\n    },\n    \"name\": \"bulk_utility_97\",\n    \"chatStatus\": 0,\n    \"created\": 1762159977992,\n    \"departments\": [],\n    \"isDefault\": false,\n    \"localizationDrafts\": {\n        \"en\": {\n            \"language\": \"en\",\n            \"components\": [\n                {\n                    \"type\": \"BODY\",\n                    \"text\": \"How can we help?\"\n                },\n                {\n                    \"type\": \"BUTTONS\",\n                    \"buttons\": [\n                        {\n                            \"type\": \"QUICK_REPLY\",\n                            \"text\": \"About Texter\"\n                        },\n                        {\n                            \"type\": \"QUICK_REPLY\",\n                            \"text\": \"Contact Us\"\n                        }\n                    ]\n                }\n            ]\n        }\n    },\n    \"provider_template\": {\n        \"name\": \"bulk_utility_97\",\n        \"category\": \"UTILITY\",\n        \"localizations\": [],\n        \"metadata\": {}\n    },\n    \"setBotNode\": \"new_holiday_campaign\",\n    \"title\": \"Template to Bot\",\n    \"updatedAt\": \"2025-11-03T08:52:57.992Z\",\n    \"usage\": \"bulk\",\n    \"defaults\": {\n        \"en\": {}\n    }\n}"},{"id":"ce33ffe0-fcac-4697-b976-623c8b44b8ab","name":"Advanced Localization","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"language\": \"he\",\r\n    \"components\":[\r\n        {\r\n            \"type\": \"HEADER\",\r\n            \"format\": \"IMAGE\",\r\n            \"example\": {\r\n                \"header_handle\": [\r\n                    \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-logo.png\"\r\n                ]\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"BODY\",\r\n            \"text\": \"היי {{1}} מעדכן שהזמנה מספר {{2}} מוכנה לאיסוף\",\r\n            \"example\": {\r\n                \"body_text\": [\r\n                    [\r\n                        \"רועי\",\r\n                        \"15033\"\r\n                    ]\r\n                ]\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"FOOTER\",\r\n            \"text\": \"להסרה השב הסר\"\r\n        },\r\n        {\r\n            \"type\": \"BUTTONS\",\r\n            \"buttons\": [\r\n                {\r\n                    \"type\": \"PHONE_NUMBER\",\r\n                    \"text\": \"Call here\",\r\n                    \"phone_number\": \"+972521234567\"\r\n                },\r\n                {\r\n                    \"type\": \"URL\",\r\n                    \"text\": \"Our website\",\r\n                    \"url\": \"https://www.texterchat.com/{{1}}\",\r\n                    \"example\": {\r\n                        \"url\": \"https://www.texterchat.com/blog\"\r\n                    }\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"_id\": \"690868f7962e17ab3033f91b\",\n    \"name\": \"inbox_marketing_95\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"accountId\": \"972509876543\"\n    },\n    \"chatStatus\": 1,\n    \"created\": 1762158839563,\n    \"departments\": [],\n    \"isDefault\": false,\n    \"localizationDrafts\": {\n        \"he\": {\n            \"language\": \"he\",\n            \"components\": [\n                {\n                    \"type\": \"HEADER\",\n                    \"format\": \"IMAGE\",\n                    \"example\": {\n                        \"header_handle\": [\n                            \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-logo.png\"\n                        ]\n                    }\n                },\n                {\n                    \"type\": \"BODY\",\n                    \"text\": \"היי {{1}} מעדכן שהזמנה מספר {{2}} מוכנה לאיסוף\",\n                    \"example\": {\n                        \"body_text\": [\n                            [\n                                \"רועי\",\n                                \"15033\"\n                            ]\n                        ]\n                    }\n                },\n                {\n                    \"type\": \"FOOTER\",\n                    \"text\": \"להסרה השב הסר\"\n                },\n                {\n                    \"type\": \"BUTTONS\",\n                    \"buttons\": [\n                        {\n                            \"type\": \"PHONE_NUMBER\",\n                            \"text\": \"Call here\",\n                            \"phone_number\": \"+972521234567\"\n                        },\n                        {\n                            \"type\": \"URL\",\n                            \"text\": \"Our website\",\n                            \"url\": \"https://www.texterchat.com\"\n                        }\n                    ]\n                }\n            ]\n        }\n    },\n    \"provider_template\": {\n        \"name\": \"inbox_marketing_95\",\n        \"category\": \"MARKETING\",\n        \"localizations\": [],\n        \"metadata\": {}\n    },\n    \"title\": \"Example Template\",\n    \"updatedAt\": \"2025-11-03T08:33:59.563Z\",\n    \"usage\": \"inbox\",\n    \"defaults\": {\n        \"he\": {\n            \"header\": {\n                \"type\": \"image\",\n                \"url\": \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-logo.png\"\n            },\n            \"body\": [\n                \"רועי\",\n                \"15033\"\n            ]\n        }\n    }\n}"},{"id":"5a667eb3-300c-4b54-b36a-fae8727ff0cf","name":"Error Create/Update Localization","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"language\": \"he\",\r\n    \"components\":[\r\n        {\r\n            \"type\": \"BODY\",\r\n            \"text\": \"היי {{1}} איך אפשר לעזור?\",\r\n            \"example\": {\r\n                \"body_text\": [\r\n                    [\r\n                        \"טקסטר\"\r\n                    ]\r\n                ]\r\n            }\r\n        }\r\n    ],\r\n    \"defaults\": {\r\n        \"body\": [\r\n            \"טקסטר\"\r\n        ]\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Template welcome_template not found\"\n}"}],"_postman_id":"59ddf910-5d8e-4078-92d8-850c3f531568"},{"name":"Submit Template for Approval","id":"ba2811fa-0364-40bc-a117-4479ed7ebc69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations/{{LANG}}/submit","description":"<h3 id=\"description\">Description</h3>\n<p>This endpoint is used to submit your template for WhatsApp approval.<br />It should only be called after you have successfully <a href=\"https://apidocs.texterchat.com/#b90f5df3-0422-43c8-a6d8-b086aa9e58bf\">created a template</a> and then <a href=\"https://apidocs.texterchat.com/#59ddf910-5d8e-4078-92d8-850c3f531568\">added a localization</a>.</p>\n<p>Once submitted, approval usually takes just a few seconds, though in rare cases it can take up to 24 hours. If the template violates any of WhatsApp's rules, it may be denied. You can read more about common reasons for denial here:<br /><a href=\"https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/\">https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/</a></p>\n<p>Also note that WhatsApp may approve your template but change its category (commonly from <em>Utility</em> to <em>Marketing</em>) if it determins that the content fits a different classification.</p>\n<p>To verify whether your template was approved and to view its full details, use the <a href=\"https://apidocs.texterchat.com/#a159ef1b-3376-48ea-978d-782dd987e2d2\">List All Templates endpoint</a> (which only returns approved template messages).</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>accountID</code></strong> - For WhatsApp channels this would be the phone number associated to the account in Texter.</p>\n</li>\n<li><p><strong><code>templateName</code></strong> - The unique identifier of the template. This can be either:<br />  - The custom name assigned when the template was created, or<br />  - The system-generated name, which can be retrieved from the response of the <a href=\"https://apidocs.texterchat.com/#b90f5df3-0422-43c8-a6d8-b086aa9e58bf\">template creation endpoint</a> (under the <code>name</code> field).</p>\n</li>\n<li><p><strong><code>LANG</code></strong> <strong>-</strong> The language specified when creating the template localization (lowercase IETF language tag).</p>\n</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful call, the API will respond with the <a href=\"https://apidocs.texterchat.com/#template-object\">template object</a> that was submitted.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","{{accountID}}","{{templateName}}","localizations","{{LANG}}","submit"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"196722eb-05d0-4b40-bf45-4e3842233376","name":"Submit Successful","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations/{{LANG}}/submit"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"_id\": \"69086d69962e17ab3033f91d\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"accountId\": \"972509876543\"\n    },\n    \"name\": \"bulk_utility_97\",\n    \"chatStatus\": 0,\n    \"created\": 1762159977992,\n    \"departments\": [],\n    \"isDefault\": false,\n    \"localizationDrafts\": {},\n    \"provider_template\": {\n        \"name\": \"bulk_utility_97\",\n        \"category\": \"UTILITY\",\n        \"localizations\": [\n            {\n                \"language\": \"en\",\n                \"components\": [\n                    {\n                        \"type\": \"BODY\",\n                        \"text\": \"How can we help?\"\n                    },\n                    {\n                        \"type\": \"BUTTONS\",\n                        \"buttons\": [\n                            {\n                                \"type\": \"QUICK_REPLY\",\n                                \"text\": \"About Texter\"\n                            },\n                            {\n                                \"type\": \"QUICK_REPLY\",\n                                \"text\": \"Contact Us\"\n                            }\n                        ]\n                    }\n                ],\n                \"status\": \"REQUESTED\"\n            }\n        ],\n        \"metadata\": {}\n    },\n    \"setBotNode\": \"new_holiday_campaign\",\n    \"title\": \"Template to Bot\",\n    \"updatedAt\": \"2025-11-03T08:52:57.992Z\",\n    \"usage\": \"bulk\",\n    \"defaults\": {\n        \"en\": {}\n    }\n}"},{"id":"17593746-18a1-47a3-a0d8-e612a4e86e80","name":"Error Submit Template","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}/localizations/{{LANG}}/submit"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Localization he draft not found\"\n}"}],"_postman_id":"ba2811fa-0364-40bc-a117-4479ed7ebc69"},{"name":"Update Existing Template","id":"e36cdab9-36f4-4289-984c-da1eb3b12721","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    // Required - \r\n    \"title\": \"<STRING>\",\r\n    \"chatStatus\": 0,\r\n    \"usage\": \"inbox | bulk\",\r\n\r\n    // Optional - \r\n    \"isDefault\": \"<BOOLEAN>\",\r\n    \"departments\": \"<STRING[]>\",\r\n    \"setBotNode\": \"<STRING>\",\r\n    \"responsibleAgent\": \"<STRING>\",\r\n    \"responsibleDepartment\": \"<STRING>\",\r\n    \"replyText\": \"<STRING>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}","description":"<h3 id=\"description\">Description</h3>\n<p>This endpoint allows you to update certain properties of a template, primarily its behavior within Texter.<br />You can modify any attributes defined during <a href=\"https://apidocs.texterchat.com/#b90f5df3-0422-43c8-a6d8-b086aa9e58bf\">template creation</a>, except for its name and category.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>accountID</code></strong> - For WhatsApp channels this would be the phone number associated to the account in Texter.</p>\n</li>\n<li><p><strong><code>templateName</code></strong> - The unique identifier of the template. This can be either:<br />  - The custom name assigned when the template was created, or<br />  - The system-generated name, which can be retrieved from the response of the <a href=\"https://apidocs.texterchat.com/#b90f5df3-0422-43c8-a6d8-b086aa9e58bf\">template creation endpoint</a> (under the <strong><code>name</code></strong> field).</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>string</td>\n<td>✅</td>\n<td>Internal title</td>\n<td></td>\n</tr>\n<tr>\n<td>chatStatus</td>\n<td>number</td>\n<td>✅</td>\n<td>Determines the chat status after the recipient replies to the template</td>\n<td><code>BOT = 0</code>  <br /><code>PENDING = 1</code>  <br /><code>ASSIGNED = 2</code>  <br /><code>RESOLVED = 3</code></td>\n</tr>\n<tr>\n<td>usage</td>\n<td>string</td>\n<td>✅</td>\n<td>Whether this template is intended to be sent in bulk or individually</td>\n<td><code>bulk</code>  <br /><code>inbox</code></td>\n</tr>\n<tr>\n<td>isDefault</td>\n<td>boolean</td>\n<td>❌</td>\n<td>If not specified it will be false. Only one template can be default</td>\n<td></td>\n</tr>\n<tr>\n<td>departments</td>\n<td>string[]</td>\n<td>❌</td>\n<td>Determines which departments would have access to this template</td>\n<td>Requires department ID’s</td>\n</tr>\n<tr>\n<td>setBotNode</td>\n<td>string</td>\n<td>❌</td>\n<td>If chatStatus is set to 0 (BOT), you can set the bot to start running from this specific node. If not specified then the bot will run from the starting node by default</td>\n<td>Must be an existing node in the channel's bot</td>\n</tr>\n<tr>\n<td>responsibleAgent</td>\n<td>string</td>\n<td>❌</td>\n<td>Assign the chat to this agent.  <br />* Can't be used when using <strong>responsibleDepartment</strong></td>\n<td>Agent email in Texter</td>\n</tr>\n<tr>\n<td>responsibleDepartment</td>\n<td>string</td>\n<td>❌</td>\n<td>Assign the chat to this department.  <br />* Can't be used when using <strong>responsibleAgent</strong></td>\n<td>Deparment ID from Texter</td>\n</tr>\n<tr>\n<td>replyText</td>\n<td>string</td>\n<td>❌</td>\n<td>Text sent when the recipient replies to the template</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful call, the API will respond with the updated <a href=\"https://apidocs.texterchat.com/#template-object\">template object</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","{{accountID}}","{{templateName}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"51f3cb95-d5f8-4e96-8ce1-62e86ed21161","name":"Update Successful","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Updated Template\",\r\n    \"chatStatus\": 3,\r\n    \"usage\": \"bulk\",\r\n    \"replyText\": \"המספר הזה מיועד למענה אוטומטי בלבד, נא לפנות אלינו באמצעי התקשורת האחרים.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n    \"_id\": \"690868f7962e17ab3033f91b\",\r\n    \"name\": \"inbox_marketing_95\",\r\n    \"channelInfo\": {\r\n        \"name\": \"whatsapp\",\r\n        \"accountId\": \"972509876543\"\r\n    },\r\n    \"chatStatus\": 3,\r\n    \"created\": 1762158839563,\r\n    \"departments\": [],\r\n    \"isDefault\": false,\r\n    \"localizationDrafts\": {\r\n        \"he\": {\r\n            \"language\": \"he\",\r\n            \"components\": [\r\n                {\r\n                    \"type\": \"HEADER\",\r\n                    \"format\": \"IMAGE\",\r\n                    \"example\": {\r\n                        \"header_handle\": [\r\n                            \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-logo.png\"\r\n                        ]\r\n                    }\r\n                },\r\n                {\r\n                    \"type\": \"BODY\",\r\n                    \"text\": \"היי {{1}} מעדכן שהזמנה מספר {{2}} מוכנה לאיסוף\",\r\n                    \"example\": {\r\n                        \"body_text\": [\r\n                            [\r\n                                \"רועי\",\r\n                                \"15033\"\r\n                            ]\r\n                        ]\r\n                    }\r\n                },\r\n                {\r\n                    \"type\": \"FOOTER\",\r\n                    \"text\": \"להסרה השב הסר\"\r\n                },\r\n                {\r\n                    \"type\": \"BUTTONS\",\r\n                    \"buttons\": [\r\n                        {\r\n                            \"type\": \"PHONE_NUMBER\",\r\n                            \"text\": \"Call here\",\r\n                            \"phone_number\": \"+972521234567\"\r\n                        },\r\n                        {\r\n                            \"type\": \"URL\",\r\n                            \"text\": \"Our website\",\r\n                            \"url\": \"https://www.texterchat.com\"\r\n                        }\r\n                    ]\r\n                }\r\n            ]\r\n        }\r\n    },\r\n    \"provider_template\": {\r\n        \"name\": \"inbox_marketing_95\",\r\n        \"category\": \"MARKETING\",\r\n        \"localizations\": [],\r\n        \"metadata\": {}\r\n    },\r\n    \"title\": \"Updated Template\",\r\n    \"updatedAt\": \"2025-11-03T09:46:12.511Z\",\r\n    \"usage\": \"bulk\",\r\n    \"defaults\": {\r\n        \"he\": {\r\n            \"header\": {\r\n                \"type\": \"image\",\r\n                \"url\": \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-logo.png\"\r\n            },\r\n            \"body\": [\r\n                \"רועי\",\r\n                \"15033\"\r\n            ]\r\n        }\r\n    },\r\n    \"replyText\": \"המספר הזה מיועד למענה אוטומטי בלבד, נא לפנות אלינו באמצעי התקשורת האחרים.\"\r\n}"},{"id":"5cc1041f-4cbe-4ed6-b20e-baadfbdf2297","name":"Error Update Template","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"New Name\",\r\n    \"chatStatus\": 0,\r\n    \"isDefault\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data must have required property 'usage'\"\n}"}],"_postman_id":"e36cdab9-36f4-4289-984c-da1eb3b12721"},{"name":"Delete Template","id":"8799969b-ad01-4495-9363-3fc3692c7b2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}","description":"<h3 id=\"description\">Description</h3>\n<p>Permanently delete a template message.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>accountID</code></strong> - For WhatsApp channels this would be the phone number associated to the account in Texter.</p>\n</li>\n<li><p><strong><code>templateName</code></strong> - The unique identifier of the template. This can be either:<br />  - The custom name assigned when the template was created, or<br />  - The system-generated name, which can be retrieved from the response of the <a href=\"https://apidocs.texterchat.com/#b90f5df3-0422-43c8-a6d8-b086aa9e58bf\">template creation endpoint</a> (under the <code>name</code> field).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","{{accountID}}","{{templateName}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"bc22ee48-7be1-4505-8905-a16c25d46a59","name":"Delete Successful","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"a76d7978-11e0-4447-9e32-75d8b7fd5f5b","name":"Error Delete Template","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/{{accountID}}/{{templateName}}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Template inbox_utility_97 not found\"\n}"}],"_postman_id":"8799969b-ad01-4495-9363-3fc3692c7b2f"},{"name":"Send Template Message","event":[{"listen":"test","script":{"id":"85359d82-455d-4032-b137-45d9ecb0fa0c","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"d10d2cf5-e8f4-4a0b-94ea-1179abd0186d","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n// ********************** REQUIRED **********************\r\n\r\n    \"templateName\": \"TEMPLATE_ID\",\r\n    \"to\": \"TO_NUMBER\",\r\n\r\n    // Required if template has parameters\r\n    \"body\": [\"parameter1\", \"parameter2\"],\r\n\r\n// ********************** OPTIONAL **********************\r\n\r\n    // If not specified, will be sent from the default channel in Texter\r\n    \"from\": \"FROM_NUMBER\",\r\n\r\n    // If not specified, will send what's set in templates default\r\n    \"header\": {\r\n        \"type\": \"image | video | document\",\r\n        \"url\": \"<MEDIA_URL>\",\r\n        \r\n        // Optional, allowed only for type document -\r\n        \"filename\": \"<STRING>\"\r\n    },\r\n\r\n    \"setChat\": {\r\n        \"crmData\": {\r\n            \"key\": \"val\",\r\n            \"key2\": \"val2\"\r\n        }\r\n    },\r\n\r\n// ********************** ADVANCED **********************\r\n\r\n    \"buttons\": [{\r\n        \"type\": \"url | flow\",\r\n        \"payload\": \"<YOUR_URL> | <FLOW_ID>\"\r\n    }],\r\n\r\n    \"replyAction\": {\r\n        \"chatStatus\": \"BOT | ASSIGNED | RESOLVED\",\r\n        \"responsibleAgent\": \"AGENT_EMAIL\",\r\n        \"responsibleDepartment\": \"DEPARTMENT_ID\",\r\n        \"replyText\": \"text to send when client replies\",\r\n        \"setBotNode\": \"BOT_NODE_TITLE\",\r\n        \"expirationTime\": \"NUMBER_IN_SECONDS\"\r\n    },\r\n\r\n    \"sessionMessage\": {                            \r\n        \"enabled\": \"<BOOLEAN>\",\r\n        \"options\": {\r\n            \"omitHeader\": \"<BOOLEAN>\",\r\n            \"omitFooter\": \"<BOOLEAN>\"\r\n        }\r\n    },\r\n    \r\n    \"bulkReportTitle\": \"<STRING>\",\r\n    \"saveBody\": [\"param1\", \"param2\"],\r\n    \"language\": \"<STRING>\",\r\n    \"ignoreExcessParameters\": \"<BOOLEAN>\",\r\n    \"whitespaceAbsentParameters\": \"<BOOLEAN>\",\r\n    \"skipHeaderFileURLCheck\": \"<BOOLEAN>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send","description":"<h3 id=\"description\">Description</h3>\n<p>This endpoint allows you to send an existing template message.<br />Here you can provide dynamic variables, attachments, and metadata about the recipient.</p>\n<p>You may also override certain predefined behaviors, such as the action performed after the recipient replies to the template.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<h4 id=\"basic\">Basic</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>templateName</td>\n<td>string</td>\n<td>✅</td>\n<td>The template’s unique name or ID to send</td>\n<td></td>\n</tr>\n<tr>\n<td>to</td>\n<td>string</td>\n<td>✅</td>\n<td>Recipient’s phone number</td>\n<td></td>\n</tr>\n<tr>\n<td>body</td>\n<td>string[]</td>\n<td>❗ Required if template includes variables</td>\n<td>Array of values for template variables (e.g. <code>{{1}}</code>, <code>{{2}}</code>)</td>\n<td></td>\n</tr>\n<tr>\n<td>from</td>\n<td>string</td>\n<td>❌</td>\n<td>The sender’s WhatsApp account number. If not provided while multiple channels exist, the template will be sent from the default channel</td>\n<td></td>\n</tr>\n<tr>\n<td>header</td>\n<td>object</td>\n<td>❌</td>\n<td>Optional header media to include when sending (overrides template default)</td>\n<td></td>\n</tr>\n<tr>\n<td>header.type</td>\n<td>string</td>\n<td>❌</td>\n<td>Header media type</td>\n<td><code>image</code>  <br /><code>video</code>  <br /><code>document</code></td>\n</tr>\n<tr>\n<td>header.url</td>\n<td>string</td>\n<td>❌</td>\n<td>Public HTTP(S) URL of the media file</td>\n<td>Must be HTTP(S)</td>\n</tr>\n<tr>\n<td>header.filename</td>\n<td>string</td>\n<td>❌</td>\n<td>File name displayed to recipient (only for type <code>document</code>)</td>\n<td></td>\n</tr>\n<tr>\n<td>setChat</td>\n<td>object</td>\n<td>❌</td>\n<td>CRM data or metadata to update in chat (merged with existing data)</td>\n<td></td>\n</tr>\n<tr>\n<td>setChat.crmData</td>\n<td>object or string</td>\n<td>❌</td>\n<td>Key-value object (or JSON string) containing CRM fields to upsert</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"advanced\">Advanced</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>buttons</td>\n<td>array</td>\n<td>❗ Required if template includes a variable in URL button</td>\n<td>Injects the variable into the button URL</td>\n<td></td>\n</tr>\n<tr>\n<td>buttons[].type</td>\n<td>string</td>\n<td>❗ Required if template includes a variable in URL button, or if template was made with a flow form</td>\n<td>Type of the button</td>\n<td><code>url</code> <code>flow</code></td>\n</tr>\n<tr>\n<td>buttons[].payload</td>\n<td>string</td>\n<td>❗ Required if template includes a variable in URL button, or if template was made with a flow form</td>\n<td>Value to inject into the variable inside the URL, or the flow ID from business manager</td>\n<td>Non-english data should be URL encoded before being inserted into the URL payload</td>\n</tr>\n<tr>\n<td>replyAction</td>\n<td>object</td>\n<td>❌</td>\n<td>Defines behavior after the recipient replies</td>\n<td></td>\n</tr>\n<tr>\n<td>replyAction.chatStatus</td>\n<td>string</td>\n<td>❌</td>\n<td>Determines chat status after reply</td>\n<td><code>BOT</code>  <br /><code>ASSIGNED</code>  <br /><code>RESOLVED</code></td>\n</tr>\n<tr>\n<td>replyAction.responsibleAgent</td>\n<td>string</td>\n<td>❌</td>\n<td>Assigns the chat to a specific agent (email)</td>\n<td>Agent email in Texter</td>\n</tr>\n<tr>\n<td>replyAction.responsibleDepartment</td>\n<td>string</td>\n<td>❌</td>\n<td>Assigns the chat to a department</td>\n<td>Department ID from Texter</td>\n</tr>\n<tr>\n<td>replyAction.replyText</td>\n<td>string</td>\n<td>❌</td>\n<td>Text message automatically sent after client reply</td>\n<td></td>\n</tr>\n<tr>\n<td>replyAction.setBotNode</td>\n<td>string</td>\n<td>❌</td>\n<td>Bot node to start execution from after client reply (only if <code>chatStatus</code> = <code>BOT</code>)</td>\n<td></td>\n</tr>\n<tr>\n<td>replyAction.expirationTime</td>\n<td>number</td>\n<td>❌</td>\n<td>Time in seconds after which the reply action expires. Default is 24 hours</td>\n<td></td>\n</tr>\n<tr>\n<td>sessionMessage</td>\n<td>object</td>\n<td>❌</td>\n<td>Attempt to send as a <strong>session message</strong> if possible</td>\n<td></td>\n</tr>\n<tr>\n<td>sessionMessage.enabled</td>\n<td>boolean</td>\n<td>❌</td>\n<td>Whether to attempt sending via session instead of template</td>\n<td></td>\n</tr>\n<tr>\n<td>sessionMessage.options</td>\n<td>object</td>\n<td>❌</td>\n<td>Additional session message options</td>\n<td></td>\n</tr>\n<tr>\n<td>sessionMessage.options.omitHeader</td>\n<td>boolean</td>\n<td>❌</td>\n<td>If true, header is omitted when sending as session message</td>\n<td></td>\n</tr>\n<tr>\n<td>sessionMessage.options.omitFooter</td>\n<td>boolean</td>\n<td>❌</td>\n<td>If true, footer is omitted when sending as session message</td>\n<td></td>\n</tr>\n<tr>\n<td>bulkReportTitle</td>\n<td>string</td>\n<td>❌</td>\n<td>An identifier used to group individual API calls into a single entry within the Bulk Reports dashboard. Since templates are sent individually, use a consistent title across multiple requests to aggregate their statistics and tracking data under one report name.</td>\n<td></td>\n</tr>\n<tr>\n<td>saveBody</td>\n<td>string[]</td>\n<td>❌</td>\n<td>Replace actual template parameters in database with these values (useful for sensitive data like OTP)</td>\n<td></td>\n</tr>\n<tr>\n<td>language</td>\n<td>string</td>\n<td>❌</td>\n<td>Template localization code to send (e.g. <code>en</code>, <code>he</code>)</td>\n<td></td>\n</tr>\n<tr>\n<td>ignoreExcessParameters</td>\n<td>boolean</td>\n<td>❌</td>\n<td>If true, ignores extra parameters in <code>body</code> instead of failing</td>\n<td></td>\n</tr>\n<tr>\n<td>whitespaceAbsentParameters</td>\n<td>boolean</td>\n<td>❌</td>\n<td>Replace missing parameters with a single whitespace string</td>\n<td></td>\n</tr>\n<tr>\n<td>skipHeaderFileURLCheck</td>\n<td>boolean</td>\n<td>❌</td>\n<td>Skip validation (HEAD request) of header media URL accessibility</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns an object describing the result of the send operation.</p>\n<ul>\n<li><p><strong><code>success</code></strong> – Boolean indicating whether the template message was successfully sent</p>\n</li>\n<li><p><strong><code>text</code></strong> – The final rendered message text after inserting all variable values</p>\n</li>\n<li><p><strong><code>sentAsSessionMessage</code></strong> – Boolean indicating whether the message was sent as a session message instead of a template message</p>\n</li>\n<li><p><strong><code>messageId</code></strong> – Unique identifier of the message created in Texter</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","send"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"355628d4-39da-4e1c-bf74-294e06bb443b","name":"Simple Template","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"inbox_marketing_98\",\r\n    \"to\": \"972521234567\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"text\": \"היי, תודה שפנית אלינו, איך אפשר לעזור?\",\n    \"sentAsSessionMessage\": false,\n    \"messageId\": \"69388295962e17ab3032f92e\"\n}"},{"id":"f36c97cc-4cb6-4771-be59-105d5e7c5da6","name":"Template with Parameters","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"bulk_marketing_93\",\r\n    \"to\": \"+972521234567\",\r\n    \"body\": [\"John\", \"2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"text\": \"Hi John.\\nThis is an example of a template body with 2 variables.\",\n    \"sentAsSessionMessage\": false,\n    \"messageId\": \"690883c5962e17ab3033f92f\"\n}"},{"id":"baad9f24-d106-4803-979d-cd8f04bc1584","name":"Template with Image","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"inbox_utility_119\",\r\n    \"to\": \"521234567\",\r\n    \"header\": {\r\n        \"type\": \"image\",\r\n        \"url\": \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-logo.png\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"text\": \"Your new requested profile image has been approved\",\n    \"sentAsSessionMessage\": false,\n    \"messageId\": \"6908800e962e17ac3033f92a\"\n}"},{"id":"ac572aca-d215-4f05-a6a8-f8286dae94cb","name":"Template with Document","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"inbox_marketing_137\",\r\n    \"to\": \"0521234567\",\r\n    \"header\": {\r\n        \"type\": \"document\",\r\n        \"filename\": \"Welcome To Texter\",\r\n        \"url\": \"https://storage.googleapis.com/texter-public-files/customers/ninja/texter-api.pdf\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"text\": \"Here is the file you requested\",\n    \"sentAsSessionMessage\": false,\n    \"messageId\": \"69088292962e17ab3033f92d\"\n}"},{"id":"589186de-bd21-4abb-9651-a806958e9bb1","name":"Template with crmData","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"inbox_marketing_87\",\r\n    \"to\": \"052-1234567\",\r\n    \"setChat\": {\r\n        \"crmData\": {\r\n            \"leadId\": 123072,\r\n            \"leadName\": \"John Doe\"\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"text\": \"Hi John! Thanks for joining us.\",\n    \"sentAsSessionMessage\": false,\n    \"messageId\": \"69088612342e17ab3033f931\"\n}"},{"id":"40f87019-7676-4353-96b0-cd36442c76c4","name":"Template with Dynamic URL","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"bulk_marketing_269\",\r\n    \"to\": \"9721234567\",\r\n    \"buttons\": [{\r\n        \"type\": \"url\",\r\n        \"payload\": \"dynamic_url\"\r\n    }]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"text\": \"Just sent you a link to our new collection!\",\n    \"sentAsSessionMessage\": false,\n    \"messageId\": \"69353defe9e23a89ff112795\"\n}"},{"id":"19394f9c-1907-469e-9966-2297529aa2da","name":"Error Send Template","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"templateName\": \"nonexistent_template\",\r\n    \"to\": \"+972 52-123-4567\",\r\n    \"from\": \"972523131640\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/send"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Template \\\"nonexistent_template\\\" not found\",\n    \"success\": false\n}"}],"_postman_id":"d10d2cf5-e8f4-4a0b-94ea-1179abd0186d"},{"name":"List All Templates","event":[{"listen":"test","script":{"id":"d8682d4c-9406-4397-8a63-356f4abe496b","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"a159ef1b-3376-48ea-978d-782dd987e2d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates","description":"<h3 id=\"description\">Description</h3>\n<p>Retrieve all approved templates.<br />You may optionally specify an account ID if multiple channels are connected, and you can filter templates by whether they include headers (file, image, or video).<br />Additionally you can retrieve all templates including pending and rejected.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>An array of all the relevant <a href=\"https://apidocs.texterchat.com/#template-object\">template objects</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>When set to true, returns only templates that include a header. When set to false, excludes all templates that contain a header</p>\n","type":"text/plain"},"key":"hasHeader","value":""},{"disabled":true,"description":{"content":"<p>Filters results to template messages belonging to the specified account</p>\n","type":"text/plain"},"key":"accountId","value":""},{"disabled":true,"description":{"content":"<p>When set to true, returns all templates including pending and rejected</p>\n","type":"text/plain"},"key":"includeAll","value":""},{"disabled":true,"description":{"content":"<p>When set to true, triggers a real-time synchronization with the WhatsApp API before returning the list (requires <code>accountId</code> to prevent performance overhead)</p>\n","type":"text/plain"},"key":"syncFresh","value":""}],"variable":[]}},"response":[{"id":"1cb15774-2212-413a-9c1f-76af9c86a570","name":"Get Templates with Header","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates?hasHeader=true","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","whatsapp","templates"],"query":[{"key":"hasHeader","value":"true","description":"When set to true, returns only templates that include a header. When set to false, excludes all templates that contain a header"},{"key":"accountId","value":"","description":"Filters results to template messages belonging to the specified account","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"6723f02668ad82498b05f7a4\",\n        \"channelInfo\": {\n            \"name\": \"whatsapp\",\n            \"accountId\": \"972509876543\"\n        },\n        \"name\": \"bulk_utility_2\",\n        \"created\": 1730408486546,\n        \"departments\": [\n            \"f115f61c-2b69-4d06-9c0e-598fb843ca08\",\n            \"a0d5b2d5-3004-4991-8745-532598afdf51\",\n            \"cf9055b2-95f5-4c08-b4ac-7d87298873c0\"\n        ],\n        \"provider_template\": {\n            \"name\": \"bulk_utility_2\",\n            \"localizations\": [\n                {\n                    \"name\": \"bulk_utility_2\",\n                    \"previous_category\": \"MARKETING\",\n                    \"parameter_format\": \"POSITIONAL\",\n                    \"components\": [\n                        {\n                            \"type\": \"HEADER\",\n                            \"format\": \"IMAGE\",\n                            \"example\": {\n                                \"header_handle\": [\n                                    \"https://scontent.whatsapp.net/v/t61.29466-34/323051586_1415055742367304_5419091765802012734_n.jpg?ccb=1-7&_nc_sid=8b1bef&_nc_ohc=3k0XEPE-d-cQ7kNvwF2pNNQ&_nc_oc=AdludOXtiv1aRh7fxQtuJqR9GqgkczNqEScp9hLTM3OFy5VbROs2Hi7a9XApey8HRcw&_nc_zt=3&_nc_ht=scontent.whatsapp.net&edm=AH51TzQEAAAA&_nc_gid=78V2bNaBkeRutDLj3p0zlg&_nc_tpa=Q5bMBQECapy6Gp27JBH_p0OmNFifJzH2ENVnie7NMSgxA03HQMpY_l61zy_m8BP4SEm7IMiqHAJauJD55Q&oh=01_Q5Aa2wEYUBc6-_G_pP1nCN-Tc_VSfivbmmqr1-j7qovznqRo8g&oe=692FF2BE\"\n                                ]\n                            }\n                        },\n                        {\n                            \"type\": \"BODY\",\n                            \"text\": \"Hi {{1}}, we are happy to notify you that {{2}} you have previously added to your waiting list, already in stock\",\n                            \"example\": {\n                                \"body_text\": [\n                                    [\n                                        \"John Doe\",\n                                        \"Lava Lamp\"\n                                    ]\n                                ]\n                            }\n                        },\n                        {\n                            \"type\": \"FOOTER\",\n                            \"text\": \"To unsubscribe, please reply \\\"unsubscribe\\\"\"\n                        }\n                    ],\n                    \"language\": \"en\",\n                    \"status\": \"APPROVED\",\n                    \"category\": \"UTILITY\",\n                    \"id\": \"1415054519034093\"\n                }\n            ],\n            \"category\": \"UTILITY\",\n            \"metadata\": {}\n        },\n        \"title\": \"Template 68\",\n        \"updatedAt\": \"2024-10-31T21:01:26.546Z\",\n        \"usage\": \"bulk\",\n        \"chatStatus\": 1,\n        \"localizationDrafts\": {},\n        \"defaults\": {\n            \"en\": {\n                \"header\": {\n                    \"url\": \"https://demo.texterchat.com/server/files/shared/6723f02d17f43a1a26ad22e1?t=65665033da4ed46ce52c6259e7249a7ea15253bef256e9c60e692b2ebe8f82900da909812a129193b84b504f6612dfe232d2\",\n                    \"type\": \"image\"\n                }\n            }\n        }\n    },\n    {\n        \"_id\": \"67a3bda43453e4536e12555f\",\n        \"channelInfo\": {\n            \"name\": \"whatsapp\",\n            \"accountId\": \"972509876543\"\n        },\n        \"name\": \"bulk_marketing_87\",\n        \"chatStatus\": 0,\n        \"created\": 1738784164774,\n        \"departments\": [\n            \"Business\"\n        ],\n        \"isDefault\": false,\n        \"localizationDrafts\": {},\n        \"provider_template\": {\n            \"name\": \"bulk_marketing_87\",\n            \"localizations\": [\n                {\n                    \"name\": \"bulk_marketing_87\",\n                    \"parameter_format\": \"POSITIONAL\",\n                    \"components\": [\n                        {\n                            \"type\": \"HEADER\",\n                            \"format\": \"IMAGE\",\n                            \"example\": {\n                                \"header_handle\": [\n                                    \"https://scontent.whatsapp.net/v/t61.29466-34/473398640_1275174086894721_8128912010385590804_n.png?ccb=1-7&_nc_sid=8b1bef&_nc_ohc=zwKfRjUHFagQ7kNvwGswy92&_nc_oc=AdkteTRXEYDLjrNRE3MbAiJkxb3J0J4X17VqclAIZM6papOx5eh4jM0GJOOmN0CfLec&_nc_zt=3&_nc_ht=scontent.whatsapp.net&edm=AH51TzQEAAAA&_nc_gid=swfnVtK-BnUUMPWxqrkfZQ&_nc_tpa=Q5bMBQH3kQvGZ1CM4GeE9B8_H_Fodl6NrMs0Ftc06FtO-GD5_8A92Mx9XoXrCh7pFVw5RuYPSi47YL5xCA&oh=01_Q5Aa2wG42Qn18Zhfln4TILGic3ScMyy8gSo8S1KuBRccIfpjcw&oe=692FE41C\"\n                                ]\n                            }\n                        },\n                        {\n                            \"type\": \"BODY\",\n                            \"text\": \"היי {{1}}, כאן {{2}} מטקסטר, אשמח לעזור לך בתמיכה הטכנית שלנו אנא לחץ על אחד :הכפתורים\",\n                            \"example\": {\n                                \"body_text\": [\n                                    [\n                                        \"גיל אור\",\n                                        \"כארם גרה\"\n                                    ]\n                                ]\n                            }\n                        },\n                        {\n                            \"type\": \"FOOTER\",\n                            \"text\": \"להסרה השב/י הסר\"\n                        },\n                        {\n                            \"type\": \"BUTTONS\",\n                            \"buttons\": [\n                                {\n                                    \"type\": \"QUICK_REPLY\",\n                                    \"text\": \"אשמח לפרטים\"\n                                },\n                                {\n                                    \"type\": \"QUICK_REPLY\",\n                                    \"text\": \"צ'ט עם נציג\"\n                                }\n                            ]\n                        }\n                    ],\n                    \"language\": \"he\",\n                    \"status\": \"APPROVED\",\n                    \"category\": \"MARKETING\",\n                    \"id\": \"1275174083561388\"\n                }\n            ],\n            \"category\": \"MARKETING\",\n            \"metadata\": {}\n        },\n        \"title\": \"בדיקת בוט\",\n        \"updatedAt\": \"2025-02-20T18:18:32.197Z\",\n        \"usage\": \"bulk\",\n        \"defaults\": {\n            \"he\": {\n                \"header\": {\n                    \"type\": \"image\",\n                    \"url\": \"https://demo.texterchat.com/server/files/shared/67a3bda43453e4536e12554c?t=5bb6681ae84ce382ea4e7c3e2144b31d0df8bcb4fe73be937b936113a937efb9bacfe5789d40efb854a2012810a99c06fea6&noPipe=1\"\n                },\n                \"body\": [\n                    \"גיל אור\",\n                    \"כארם גרה\"\n                ]\n            }\n        },\n        \"replyText\": \"🙂תודה על תשובתך, מייד נחזור אליך\",\n        \"setBotNode\": \"start_q\"\n    }\n]"},{"id":"f2a1cbe3-8d3b-42be-ae8d-119fb2247ec4","name":"Error Get All Templates","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates?accountId=972521234567","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","whatsapp","templates"],"query":[{"key":"hasHeader","value":"","description":"When set to true, returns only templates that include a header. When set to false, excludes all templates that contain a header","disabled":true},{"key":"accountId","value":"972521234567","description":"Filters results to template messages belonging to the specified account"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"WhatsApp account 972521234567 not found\"\n}"}],"_postman_id":"a159ef1b-3376-48ea-978d-782dd987e2d2"}],"id":"730945a6-2a02-4d1a-a895-29a518f67d38","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>This section contains all endpoints related to the creation, management, and delivery of WhatsApp template messages within Texter.</p>\n<p>You can use these endpoints to <strong>create</strong>, <strong>localize</strong>, <strong>submit</strong>, <strong>update</strong>, <strong>delete</strong> and <strong>send</strong> template messages, as well as to <strong>retrieve approved templates</strong> for your connected WhatsApp accounts.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>Send Template Messages</p>\n</li>\n<li><p>View Template Messages</p>\n</li>\n<li><p>Manage WhatsApp Templates</p>\n</li>\n<li><p>Manage All Chats</p>\n</li>\n<li><p>List All Chats</p>\n</li>\n</ul>\n<p>And store it in <strong><code>templatesApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"e0216461-c462-4320-91e0-968c21574cdb","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"99724680-eea4-41d3-908d-6d12631a3ab7","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"730945a6-2a02-4d1a-a895-29a518f67d38"},{"name":"Templates Subscriptions","item":[{"name":"Unsubscribe from Templates","event":[{"listen":"test","script":{"id":"c7253d7e-c834-4e5b-8c00-5f80ba0313cd","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"10f6f939-cd01-471f-b87f-4c190500b02e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"<STRING>\",\r\n    \"accountId\": \"<STRING>\"\r\n}"},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribe","description":"<h3 id=\"description\">Description</h3>\n<p>Unsubscribe a recipient from template messages.<br />A recipient can unsubscribe by replying with <strong>\"הסר\"</strong> to a template message they received, or you can remove them manually in Texter or via the API using this endpoint.</p>\n<p>Once unsubscribed, they will no longer receive template messages. Any attempt to send a template message to an unsubscribed recipient will be skipped automatically.</p>\n<p>You can re-subscribe them at any time using the <a href=\"https://apidocs.texterchat.com/#5eb33274-7745-4a3b-b9fa-dec5a1e4d5b2\">Resubscribe to Templates</a> endpoint.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>✅</td>\n<td>The recipient’s phone number to unsubscribe</td>\n<td></td>\n</tr>\n<tr>\n<td>accountId</td>\n<td>string</td>\n<td>❌</td>\n<td>The WhatsApp channel account ID. If omitted, the unsubscription will apply to all WhatsApp channels</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful API call, will return <strong><code>success</code></strong> = <strong>true</strong></p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","unsubscribe"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"96214e88-bdf2-4fd4-a684-1c698e67f3e6","name":"Unsubscribe Sucessful","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"0521234567\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"},{"id":"4479ee39-07a5-4aa4-b6e6-42d6d45560e0","name":"Error Unsubscribe","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"052\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribe"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data/phone must NOT have fewer than 5 characters\"\n}"}],"_postman_id":"10f6f939-cd01-471f-b87f-4c190500b02e"},{"name":"Resubscribe to Templates","event":[{"listen":"test","script":{"id":"5da247a2-1c14-4d27-a34b-1d23632624d6","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"5eb33274-7745-4a3b-b9fa-dec5a1e4d5b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"<STRING>\",\r\n    \"accountId\": \"<STRING>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/subscribe","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe a recipient to receive template messages.<br />By default, all recipients are subscribed. They become unsubscribed only if they opt out themselves or are removed manually in Texter or via API using the <a href=\"https://apidocs.texterchat.com/#10f6f939-cd01-471f-b87f-4c190500b02e\">Unsubscribe from Templates</a> endpoint.</p>\n<p>While subscribed, they will continue receiving template messages as usual. If unsubscribed, any attempt to send a template message to them will be skipped automatically.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>✅</td>\n<td>The recipient’s phone number to subscribe</td>\n<td></td>\n</tr>\n<tr>\n<td>accountId</td>\n<td>string</td>\n<td>❌</td>\n<td>The WhatsApp channel account ID. If omitted, the subscription will apply to all WhatsApp channels</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful API call, will return <strong><code>success</code></strong> = <strong>true</strong></p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","subscribe"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"215b6fe2-0972-45e5-9757-cd5d29e45cbe","name":"Resubscribe Example","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"0521234567\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/subscribe"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"},{"id":"3b00089c-5b86-4ef3-ac35-d4c9d3de24d5","name":"Error Resubscribe","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"0521234567\",\r\n    \"accountId\": \"0505123456\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/subscribe"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"WhatsApp account 0505123456 not found\"\n}"}],"_postman_id":"5eb33274-7745-4a3b-b9fa-dec5a1e4d5b2"},{"name":"List All Unsubscribed Users","event":[{"listen":"test","script":{"id":"b58d49f7-acc6-4148-89cc-352e5a1b4d66","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"5659ea0f-6d30-4403-9b13-ed7abdba916a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribed","description":"<h3 id=\"description\">Description</h3>\n<p>Retrieve all unsubscribed recipients.<br />This endpoint returns every unsubscribed recipient accross all channels. If you only want to fetch unsubscribed recipients for a specific channel, use the <a href=\"https://apidocs.texterchat.com/#94224455-3ef4-4942-8d32-c13e0ee60d5a\">Unsubscribed from Specific Account</a> endpoint instead.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns an array of unsubscribed recipients across all messaging channels.</p>\n<p>Each object in the array represents an unsubscribed recipient and includes the fields-</p>\n<ul>\n<li><p><strong><code>title</code></strong> - their display name (as shown in WhatsApp or other channels)</p>\n</li>\n<li><p><strong><code>phone</code></strong> - phone number in international format.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","unsubscribed"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>The maximum number of results to return</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>The number of results to skip before starting to return records</p>\n","type":"text/plain"},"key":"skip","value":""}],"variable":[]}},"response":[{"id":"28f257bf-fcc2-43ce-aaa4-d1ffe8980c52","name":"All Unsubscribed Users","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribed?limit=5","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","whatsapp","templates","unsubscribed"],"query":[{"key":"limit","value":"5","description":"The maximum number of results to return"},{"key":"skip","value":"","description":"The number of results to skip before starting to return records","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"title\": \"🌸\",\n        \"phone\": \"+972529876543\"\n    },\n    {\n        \"title\": \"Eli Cohen\",\n        \"phone\": \"+972549431678\"\n    },\n    {\n        \"title\": \"972521234567\",\n        \"phone\": \"+972521234567\"\n    },\n    {\n        \"phone\": \"+972534226703\"\n    },\n    {\n        \"title\": \"Texter Support\",\n        \"phone\": \"+972555026806\"\n    }\n]"},{"id":"fc719924-55b0-490c-b4c4-71ddbb047251","name":"Error Get Unsubscribed","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribed?limit=50000&skip=2","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","whatsapp","templates","unsubscribed"],"query":[{"key":"limit","value":"50000","description":"The maximum number of results to return"},{"key":"skip","value":"2","description":"The number of results to skip before starting to return records"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data/limit must match pattern \\\"^[1-9][0-9]{0,3}$\\\"\"\n}"}],"_postman_id":"5659ea0f-6d30-4403-9b13-ed7abdba916a"},{"name":"Unsubscribed from Specific Account","id":"94224455-3ef4-4942-8d32-c13e0ee60d5a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribed/{{accountID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Retrieve all unsubscribed recipients from a specific account.<br />Use this endpoint to fetch all recipients who have unsubscribed from template messages under a given account (channel), speciified by the account ID.</p>\n<p>If you want to retrieve unsubscribed recipients across all accounts, use the <a href=\"https://apidocs.texterchat.com/#5659ea0f-6d30-4403-9b13-ed7abdba916a\">List All Unsubscribed Users</a> endpoint instead.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>accountID</code></strong> - For WhatsApp channels this would be the phone number associated to the account in Texter.</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns an array of unsubscribed recipients from the account specified in the request.</p>\n<p>Each object in the array represents an unsubscribed recipient and includes the fields-<br /><strong><code>title</code></strong> - their display name (as shown in WhatsApp or other channels)<br /><strong><code>phone</code></strong> - phone number in international format.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","whatsapp","templates","unsubscribed","{{accountID}}"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>The maximum number of results to return</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>The number of results to skip before starting to return records</p>\n","type":"text/plain"},"key":"skip","value":""}],"variable":[]}},"response":[{"id":"0abf00aa-0790-4950-b878-dd91fb56cb59","name":"All Unsubscribed from Account","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribed/{{accountID}}?limit=2","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","whatsapp","templates","unsubscribed","{{accountID}}"],"query":[{"key":"limit","value":"2","description":"The maximum number of results to return\n\n"},{"key":"skip","value":"","description":"The number of results to skip before starting to return records\n\n","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"title\": \"John Doe\",\n        \"phone\": \"+972549431678\"\n    },\n    {\n        \"title\": \"Texter Support\",\n        \"phone\": \"+972555026806\"\n    }\n]"},{"id":"041ba35a-8fdf-4eea-8a1f-65d13ef4baa3","name":"Error Get Unsubscribed from Account","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{templatesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/whatsapp/templates/unsubscribed/{{accountID}}","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","whatsapp","templates","unsubscribed","{{accountID}}"],"query":[{"key":"limit","value":"","disabled":true},{"key":"skip","value":"","description":"The number of results to skip before starting to return records\n\n","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"WhatsApp account 972540202020 not found\"\n}"}],"_postman_id":"94224455-3ef4-4942-8d32-c13e0ee60d5a"}],"id":"7bb05896-8be0-4eee-ab71-a6ae1fe2dbd6","description":"<h3 id=\"overview\">Overview</h3>\n<p>This section contains all endpoints related to managing recipients subscriptions for WhatsApp template messages.</p>\n<p>You can use these endpoints to subscribe or unsubscribe recipients, as well as to retrieve lists of unsubscribed users - either across all channels or for a specific WhatsApp account.</p>\n<h3 id=\"authorization\"><strong>Authorization</strong></h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>Send Template Messages</p>\n</li>\n<li><p>View Template Messages</p>\n</li>\n<li><p>Manage WhatsApp Templates</p>\n</li>\n<li><p>Manage All Chats</p>\n</li>\n<li><p>List All Chats</p>\n</li>\n</ul>\n<p>And store it in <strong><code>templatesApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{templatesApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"8e92e11f-be14-4880-8c1d-f38e36b9d71d"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"01342196-5db7-42f6-89b9-103ca38fbb83"}}],"_postman_id":"7bb05896-8be0-4eee-ab71-a6ae1fe2dbd6"},{"name":"Messages","item":[{"name":"Get Messages of a Chat","id":"390c95b0-ee41-4c96-b97d-2d0370005cf9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{messagesApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/chat/{{chatID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Retrieve all messages from a specific chat.<br />By default, this endpoint returns the last 50 messages in ascending order (from earliest to latest). You can change this limit or apply filters refine the rsults.</p>\n<p><b>Available filters:</b></p>\n<ul>\n<li><p><strong>Bot session</strong> - Retrieve all messages from a specific bot session by providing the <strong><code>botSessionId</code></strong>.<br />  You can obtain this ID via the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint (using the customer's phone number for example), or by calling <a href=\"https://apidocs.texterchat.com/#0888e955-dfc5-4fd5-983d-d7d8ee589101\">Get Chat by Chat ID</a> using the chat ID.<br />  The chat object includes a <strong><code>botState</code></strong> field and a <strong><code>previousBotSession</code></strong> field where you can find the session ID.</p>\n</li>\n<li><p><strong>Before time &amp; before ID</strong> - Both parameters must be provided together:<br />  - <strong><code>beforeId</code></strong> - The message ID to use as a cutoff<br />  - <strong><code>beforeTime</code></strong> - Before a certain timestamp (Unix epoch time in milliseconds)<br />  The response will include all messages before the given message ID <em>and</em> before the specified time.</p>\n</li>\n</ul>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns a <strong><code>messages</code></strong> array containing all <a href=\"https://apidocs.texterchat.com/#message-object\">message objects</a> that match the query paramaters.</p>\n<p>Additionally includes two timestamps values for the chat:</p>\n<ul>\n<li><p><strong><code>minTime</code></strong> - The timestamp (in milliseconds) of the first-ever message in the chat.</p>\n</li>\n<li><p><strong><code>maxTime</code></strong> - The timestamp (in milliseconds) of the most recent message in the chat.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","messages","chat","{{chatID}}"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>The maximum number of results to return</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>Get messages before the spcified timestamp</p>\n<ul>\n<li>Required to use with \"beforeId\"</li>\n</ul>\n","type":"text/plain"},"key":"beforeTime","value":""},{"disabled":true,"description":{"content":"<p>Get messages before the specified message ID</p>\n<ul>\n<li>Required to use with \"beforeTime\"</li>\n</ul>\n","type":"text/plain"},"key":"beforeId","value":""},{"disabled":true,"description":{"content":"<p>Get message within the specified bot session, specified by the bot state ID</p>\n","type":"text/plain"},"key":"botSessionId","value":""}],"variable":[]}},"response":[{"id":"b752d6b7-475b-472f-b7a7-f207cdb5a69c","name":"Messages Before Time","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/messages/chat/{{chatID}}?beforeTime=1757055874154&beforeId=68ba8c904657483ffee3101e","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","messages","chat","{{chatID}}"],"query":[{"key":"limit","value":"","description":"The maximum number of results to return\n\n","disabled":true},{"key":"beforeTime","value":"1757055874154","description":"Get messages before the spcified timestamp\n* Required to use with \"beforeId\""},{"key":"beforeId","value":"68ba8c904657483ffee3101e","description":"Get messages before the specified message ID\n* Required to use with \"beforeTime\""},{"key":"botSessionId","value":"","description":"Get message within the specified bot session, specified by the bot state ID","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messages\": [\n        {\n            \"_id\": \"68ba89f8c909657dffcf267c\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAEhgUM0ExNkMwMzdBN0Q0MDFEN0E4RUUA\",\n                \"metadata\": {\n                    \"frequentlyForwarded\": false\n                }\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"direction\": \"incoming\",\n            \"forwarded\": false,\n            \"incoming\": true,\n            \"outgoing\": false,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757055477000,\n            \"status\": 2,\n            \"statusHistory\": [\n                {\n                    \"status\": 2,\n                    \"timestamp\": 1757055477000\n                }\n            ],\n            \"text\": \"Hi\",\n            \"timestamp\": 1757055477000,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-05T06:58:01.651Z\",\n            \"metadata\": {\n                \"triggeredBot\": true\n            },\n            \"botSessionId\": \"c1125880930b372b0f1047cad91ab5aca4f1171993d8af709497d16f77772fa4\"\n        },\n        {\n            \"_id\": \"68ba89f9c909657dffcf26a6\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSOTQ4RDUzODA3OTgwNkJFOTMyAA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": \"bot\",\n            \"botMsgInfo\": {\n                \"identifier\": \"Niv-test-bot\",\n                \"version\": 35,\n                \"nodeName\": \"start\",\n                \"hideSummary\": false\n            },\n            \"botSessionId\": \"c1125880930b372b0f1047cad91ab5aca4f1171993d8af709497d16f77772fa4\",\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"metadata\": {\n                \"botMsgInfo\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 35,\n                    \"nodeName\": \"start\",\n                    \"hideSummary\": false\n                }\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757055481534,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757055481534\n                },\n                {\n                    \"timestamp\": 1757055482000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757055483000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757055483000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"היי! הגעתם לבוט הAI של פעמוני מותססים \",\n            \"timestamp\": 1757055481534,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-05T06:58:04.571Z\"\n        },\n        {\n            \"_id\": \"68ba89fac909657dffcf26b7\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSMzc3MDczM0M0RkMzMjQzNzQ2AA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": \"bot\",\n            \"botMsgInfo\": {\n                \"identifier\": \"Niv-test-bot\",\n                \"version\": 35,\n                \"nodeName\": \"general_info\",\n                \"hideSummary\": false\n            },\n            \"botSessionId\": \"c1125880930b372b0f1047cad91ab5aca4f1171993d8af709497d16f77772fa4\",\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"metadata\": {\n                \"botMsgInfo\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 35,\n                    \"nodeName\": \"general_info\",\n                    \"hideSummary\": false\n                }\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757055482132,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757055482132\n                },\n                {\n                    \"timestamp\": 1757055483000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757055484000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757055484000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"הבוט שלנו ישמח לתת לכם מענה 24/7\\nחשוב לציין, המידע שניתן הוא מבוסס בינה מלאכותית ולפעמים יש טעויות, המידע המדויק ביותר מתעדכן תמיד באתר שלנו בכתובת-\\nhttps://paamoniferments.com/\\n\\nאנא שלחו את שאלתכם ונשמח לעמוד לשירותכם\",\n            \"timestamp\": 1757055482132,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-05T06:58:05.291Z\"\n        },\n        {\n            \"_id\": \"68ba8a10c909657dffcf27be\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAEhgUM0FEMUIzMzQ0OENBRkQ3MjU1NUIA\",\n                \"metadata\": {\n                    \"frequentlyForwarded\": false\n                }\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"direction\": \"incoming\",\n            \"forwarded\": false,\n            \"incoming\": true,\n            \"outgoing\": false,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757055502000,\n            \"status\": 2,\n            \"statusHistory\": [\n                {\n                    \"status\": 2,\n                    \"timestamp\": 1757055502000\n                }\n            ],\n            \"text\": \"כמה מוצרים בעצם יש לכם?\",\n            \"timestamp\": 1757055502000,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-05T06:58:24.056Z\",\n            \"metadata\": {\n                \"triggeredBot\": true\n            }\n        },\n        {\n            \"_id\": \"68ba8a21c909657dffcf28a5\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSNTVCRTk2NDEwQThENUIwNEI0AA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757055521481,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757055521481\n                },\n                {\n                    \"timestamp\": 1757055521000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757055522000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757150385000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"יש לנו מגוון רחב של מוצרים מתוססים שונים, המותאמים להעדפות ולצרכים שונים. עדיף לבדוק פרטים מדויקים על המוצרים הזמינים באתר שלנו או לפנות ישירות לשירות הלקוחות שלנו לקבלת מידע נוסף.\",\n            \"timestamp\": 1757055521481,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-06T09:19:48.352Z\"\n        },\n        {\n            \"_id\": \"68ba8b82c909657dffcf3667\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSNEMzODlGMzNDODY0QzcyQTlCAA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757055874154,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757055874154\n                },\n                {\n                    \"timestamp\": 1757055874000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757055877000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757150385000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"היי, עדיין פה?\",\n            \"timestamp\": 1757055874154,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-06T09:19:48.834Z\"\n        }\n    ],\n    \"minTime\": 1757055477000,\n    \"maxTime\": 1757056631720\n}"},{"id":"d9572681-b06b-49e8-8a91-969de88f8844","name":"Messages by Bot Session","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/messages/chat/{{chatID}}?botSessionId=694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","messages","chat","{{chatID}}"],"query":[{"key":"limit","value":"","description":"The maximum number of results to return\n\n","disabled":true},{"key":"beforeTime","value":"","description":"Get messages before the spcified timestamp\n* Required to use with \"beforeId\"","disabled":true},{"key":"beforeId","value":"","description":"Get messages before the specified message ID\n* Required to use with \"beforeTime\"","disabled":true},{"key":"botSessionId","value":"694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da","description":"Get message within the specified bot session, specified by the bot state ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messages\": [\n        {\n            \"_id\": \"68ba8c91c909657dffcf409a\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSMEU3NEZCMkZGMTYxQ0NGQjE3AA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": \"bot\",\n            \"botMsgInfo\": {\n                \"identifier\": \"Niv-test-bot\",\n                \"version\": 35,\n                \"nodeName\": \"ai_inactivity_msg\",\n                \"hideSummary\": false\n            },\n            \"botSessionId\": \"694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da\",\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"metadata\": {\n                \"botMsgInfo\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 35,\n                    \"nodeName\": \"ai_inactivity_msg\",\n                    \"hideSummary\": false\n                }\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757056145167,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757056145167\n                },\n                {\n                    \"timestamp\": 1757056145000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757056148000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757150385000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"מכיוון שחלף זמן מה ללא תגובה, החזרנו אותך לבוט הרגיל להמשך טיפול.\",\n            \"timestamp\": 1757056145167,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-06T09:19:48.360Z\"\n        },\n        {\n            \"_id\": \"68ba8c91c909657dffcf40b2\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSMUQ3OTJBRERGRDM0RTAwOTVGAA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": \"bot\",\n            \"botMsgInfo\": {\n                \"identifier\": \"Niv-test-bot\",\n                \"version\": 35,\n                \"nodeName\": \"whats_next\",\n                \"hideSummary\": false\n            },\n            \"botSessionId\": \"694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da\",\n            \"buttons\": [\n                {\n                    \"title\": \"לתפריט הראשי\",\n                    \"payload\": \"1\"\n                },\n                {\n                    \"title\": \"סגירת פנייה\",\n                    \"payload\": \"2\"\n                }\n            ],\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"metadata\": {\n                \"botMsgInfo\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 35,\n                    \"nodeName\": \"whats_next\",\n                    \"hideSummary\": false\n                }\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757056145969,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757056145969\n                },\n                {\n                    \"timestamp\": 1757056146000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757056148000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757150385000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"איך אפשר עוד לעזור?\",\n            \"timestamp\": 1757056145969,\n            \"type\": \"buttons\",\n            \"updatedAt\": \"2025-09-06T09:19:48.832Z\"\n        },\n        {\n            \"_id\": \"68ba8d4cc909657dffcf4814\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSNjZDNjY0QzhEMTExQjQ3QUI1AA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": \"bot\",\n            \"botMsgInfo\": {\n                \"identifier\": \"Niv-test-bot\",\n                \"version\": 35,\n                \"nodeName\": \"whats_next\",\n                \"hideSummary\": false\n            },\n            \"botSessionId\": \"694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da\",\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"metadata\": {\n                \"botMsgInfo\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 35,\n                    \"nodeName\": \"whats_next\",\n                    \"hideSummary\": false\n                }\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757056332449,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757056332449\n                },\n                {\n                    \"timestamp\": 1757056332000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757056334000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757150385000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"לא התקבלה תגובה, אתה עדיין שם?\",\n            \"timestamp\": 1757056332449,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-06T09:19:48.251Z\"\n        },\n        {\n            \"_id\": \"68ba8e77c909657dffcf535b\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTQ0NTU0ODUyFQIAERgSMTE2QjE2QjBBMDhDRTBBQzNEAA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": \"bot\",\n            \"botMsgInfo\": {\n                \"identifier\": \"Niv-test-bot\",\n                \"version\": 35,\n                \"nodeName\": \"close_bot_sequence\",\n                \"hideSummary\": false\n            },\n            \"botSessionId\": \"694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da\",\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"metadata\": {\n                \"botMsgInfo\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 35,\n                    \"nodeName\": \"close_bot_sequence\",\n                    \"hideSummary\": false\n                }\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1757056631574,\n            \"status\": 3,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1757056631574\n                },\n                {\n                    \"timestamp\": 1757056631000,\n                    \"status\": 1\n                },\n                {\n                    \"timestamp\": 1757056632000,\n                    \"status\": 2\n                },\n                {\n                    \"timestamp\": 1757150385000,\n                    \"status\": 3\n                }\n            ],\n            \"text\": \"לא התקבלה תגובה במשך זמן מה, הבוט נסגר. אם תצטרך עזרה נוספת, תוכל לפנות שוב מאוחר יותר.\",\n            \"timestamp\": 1757056631574,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-09-06T09:19:48.256Z\"\n        },\n        {\n            \"_id\": \"68ba8e774657483ffee3103b\",\n            \"systemMessage\": true,\n            \"newChatStatus\": 3,\n            \"timestamp\": 1757056631720,\n            \"received\": 1757056631720,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"botSessionId\": \"694cc065571521039d74a51044e89b932fe3310290d7c7db75fb0ccad343c9da\",\n            \"updatedAt\": \"2025-09-05T07:17:11.720Z\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"channelInfo\": {\n                \"id\": \"c7fc8105-8575-4beb-9a8f-b109acfc6dfd\"\n            },\n            \"agent\": \"Bot\"\n        }\n    ],\n    \"minTime\": 1757055477000,\n    \"maxTime\": 1757056631720\n}"},{"id":"391465ba-ca7d-48c5-9b7c-e9a9d3cf4116","name":"Error Get Messages","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/messages/chat/{{chatID}}?beforeTime=1762179779000","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","messages","chat","{{chatID}}"],"query":[{"key":"limit","value":"","description":"The maximum number of results to return\n\n","disabled":true},{"key":"beforeTime","value":"1762179779000","description":"Get messages before the spcified timestamp\n* Required to use with \"beforeId\""},{"key":"beforeId","value":"","description":"Get messages before the specified message ID\n* Required to use with \"beforeTime\"","disabled":true},{"key":"botSessionId","value":"","description":"Get message within the specified bot session, specified by the bot state ID","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data must have required property 'botSessionId', data must have required property 'beforeId', data must match a schema in anyOf\"\n}"}],"_postman_id":"390c95b0-ee41-4c96-b97d-2d0370005cf9"},{"name":"Send a Message to Chat","id":"ecb157c5-b03a-41b9-9132-8a4a48950bd4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{messagesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"text\",\r\n    \"text\": \"This is an example - check all the examples for more complex message types\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Send a session message to a chat.<br />Use this endpoint to send a regular session message to a chat. Messages can include text or media (image, video, or document).</p>\n<p>⚠ <strong>Important</strong>: Session messages are subject to WhatsApp's 24-hour window. If the customer has not sent a message in the last 24 hours, WhatsApp block session messages and the request will fail. In that case, you can only <a href=\"https://apidocs.texterchat.com/#d10d2cf5-e8f4-4a0b-94ea-1179abd0186d\">Send Template Messages</a>.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<h4 id=\"1-generic-options-all-message-types\">1. Generic Options (All Message Types)</h4>\n<p>These parameters are available for every message request, regardless of the <code>type</code>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>✅</td>\n<td>Defines the message structure and required fields</td>\n<td><code>text</code> <code>media</code> <code>buttons</code> <code>list</code></td>\n</tr>\n<tr>\n<td>context</td>\n<td>string</td>\n<td>❌</td>\n<td>Reply-to a specific message. Use the <strong>provider message ID</strong> (e.g. <code>wamid...</code>) from <code>message.channelInfo.id</code></td>\n<td></td>\n</tr>\n<tr>\n<td>tmpSendId</td>\n<td>string</td>\n<td>❌</td>\n<td>A custom client-side ID for tracking the temporary state of the message</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"2-text-message-specifics\">2. Text Message Specifics</h4>\n<p><strong>Required when</strong> <code>type = \"text\"</code></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>The main content of the message</td>\n<td>Max 4096 characters</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"3-media-message-specifics\">3. Media Message Specifics</h4>\n<p><strong>Required when</strong> <code>type = \"media\"</code></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>media</td>\n<td>array</td>\n<td>✅</td>\n<td>Array of media objects</td>\n<td>Min 1 item, Max 10 items</td>\n</tr>\n<tr>\n<td>media[].mediaType</td>\n<td>string</td>\n<td>✅</td>\n<td>Media category</td>\n<td><code>image</code> <code>video</code> <code>document</code></td>\n</tr>\n<tr>\n<td>media[].url</td>\n<td>string</td>\n<td>✅</td>\n<td>Publicly accessible URL of the media file</td>\n<td></td>\n</tr>\n<tr>\n<td>media[].caption</td>\n<td>string</td>\n<td>❌</td>\n<td>Caption text to accompany the media.  <br />Allowed only when <strong>mediaType</strong> is <code>image</code> or <code>video</code></td>\n<td></td>\n</tr>\n<tr>\n<td>media[].filename</td>\n<td>string</td>\n<td>❌</td>\n<td>The document’s display filename.  <br />Allowed only when <strong>mediaType</strong> is <code>document</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"4-buttons-message-specifics\">4. Buttons Message Specifics</h4>\n<p><strong>Required when</strong> <code>type = \"buttons\"</code></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>The body text displayed above the buttons</td>\n<td></td>\n</tr>\n<tr>\n<td>buttons</td>\n<td>array</td>\n<td>✅</td>\n<td>Array of button objects</td>\n<td>Max 3 options</td>\n</tr>\n<tr>\n<td>buttons[].title</td>\n<td>string</td>\n<td>✅</td>\n<td>The text displayed on the button</td>\n<td>Max 20 characters</td>\n</tr>\n<tr>\n<td>buttons[].payload</td>\n<td>string</td>\n<td>✅</td>\n<td>Unique ID sent to the backend when clicked</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"5-list-message-specifics\">5. List Message Specifics</h4>\n<p><strong>Required when</strong> <code>type = \"list\"</code></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>text</td>\n<td>string</td>\n<td>✅</td>\n<td>The body text displayed above the list button</td>\n<td></td>\n</tr>\n<tr>\n<td>list</td>\n<td>object</td>\n<td>✅</td>\n<td>Container for the list configuration</td>\n<td></td>\n</tr>\n<tr>\n<td>list.button</td>\n<td>string</td>\n<td>✅</td>\n<td>Title of the button that opens the list view</td>\n<td>Max 20 characters</td>\n</tr>\n<tr>\n<td>list.sections</td>\n<td>array</td>\n<td>✅</td>\n<td>Array of section objects grouping the rows</td>\n<td></td>\n</tr>\n<tr>\n<td>list.sections[].title</td>\n<td>string</td>\n<td>✅</td>\n<td>Title of the section header - if only one section is included then this title won't be shown</td>\n<td>Max 24 characters</td>\n</tr>\n<tr>\n<td>list.sections[].rows</td>\n<td>array</td>\n<td>✅</td>\n<td>Array of clickable options within a section</td>\n<td>Max 10 options (total across all sections)</td>\n</tr>\n<tr>\n<td>list.sections[].rows[].title</td>\n<td>string</td>\n<td>✅</td>\n<td>The main text of the row option</td>\n<td>Max 20 characters</td>\n</tr>\n<tr>\n<td>list.sections[].rows[].payload</td>\n<td>string</td>\n<td>✅</td>\n<td>Unique ID sent to the backend when clicked</td>\n<td>Must be unique across all options</td>\n</tr>\n<tr>\n<td>list.sections[].rows[].description</td>\n<td>string</td>\n<td>❌</td>\n<td>Optional context text displayed below the row title</td>\n<td>Max 72 characters</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful call, the API returns a confirmation object containing the sent message(s).</p>\n<p>The response includes a <strong><code>success</code></strong> flag and a <strong><code>messages</code></strong> array with the newly created <a href=\"https://apidocs.texterchat.com/#message-object\">message objects</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","messages","send","{{chatID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"992c3691-ffd9-4fe2-b869-9bdfc728a1e8","name":"Send Text Message","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"text\",\r\n    \"text\": \"Hey there!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"6909177d962e17ab3033fa2a\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSRDI2RjUwMkFFQTNEQjE0MEVBAA==\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1762203517914,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1762203517914\n                }\n            ],\n            \"text\": \"Hey there!\",\n            \"timestamp\": 1762203517914,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-11-03T20:58:37.936Z\"\n        }\n    ]\n}"},{"id":"fa5f4272-230e-4a1a-86f3-8cdfe69f8868","name":"Send Media Message","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"media\",\r\n    \"media\": [\r\n        {\r\n            \"mediaType\": \"document\",\r\n            \"url\": \"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf\",\r\n            \"filename\": \"Dummy PDF\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"69091dc4962e17ab3033fa2d\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSOUNFM0FFNEIzQTc3NTNBMzQxAA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"media\": [\n                {\n                    \"mediaType\": \"document\",\n                    \"filename\": \"Dummy PDF\",\n                    \"fileId\": \"69091dc3962e17ab3033fa2c\"\n                }\n            ],\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1762205124614,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1762205124614\n                }\n            ],\n            \"timestamp\": 1762205124614,\n            \"type\": \"media\",\n            \"updatedAt\": \"2025-11-03T21:25:24.627Z\"\n        }\n    ]\n}"},{"id":"b15ea666-a130-4d32-888a-88fe04f4bd92","name":"Send Multiple Files","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"media\",\r\n    \"media\": [\r\n        {\r\n            \"mediaType\": \"image\",\r\n            \"url\": \"https://picsum.photos/536/354\",\r\n            \"caption\": \"image caption\"\r\n        },\r\n        {\r\n            \"mediaType\": \"video\",\r\n            \"url\": \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"69091e62962e17ab3033fa30\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSQUY1NTUzQ0RFNzFGNTBEOTc1AA==\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"media\": [\n                {\n                    \"mediaType\": \"image\",\n                    \"caption\": \"image caption\",\n                    \"fileId\": \"69091e5e962e17ab3033fa2e\"\n                }\n            ],\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1762205282313,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1762205282313\n                }\n            ],\n            \"timestamp\": 1762205282313,\n            \"type\": \"media\",\n            \"updatedAt\": \"2025-11-03T21:28:02.328Z\"\n        },\n        {\n            \"_id\": \"69091e62962e17ab3033fa31\",\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSMjJGOUI3RkZGNzkxMjZCMjIyAA==\"\n            },\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"media\": [\n                {\n                    \"mediaType\": \"video\",\n                    \"fileId\": \"69091e5e962e17ab3033fa2f\"\n                }\n            ],\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1762205282106,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1762205282106\n                }\n            ],\n            \"timestamp\": 1762205282106,\n            \"type\": \"media\",\n            \"updatedAt\": \"2025-11-03T21:28:02.328Z\"\n        }\n    ]\n}"},{"id":"05f748f2-05d0-4ff1-8cdc-399282623a7d","name":"Send a Reply Message","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"text\",\r\n    \"text\": \"איך אפשר לעזור?\",    \r\n    \"context\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSQUY1NTUzQ0RFNzFGNTBEOTc1AA==\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"69091f1f962e17ab3033fa33\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSNkE0QUFFRDVCNDM4NDZGMzRCAA==\"\n            },\n            \"context\": {\n                \"_id\": \"69091e62962e17ab3033fa30\",\n                \"chatChannelInfo\": {\n                    \"name\": \"whatsapp\",\n                    \"id\": \"972521234567\",\n                    \"accountId\": \"972509876543\"\n                },\n                \"channelInfo\": {\n                    \"id\": \"wamid.HBgMOTcyNTI3NzYwOTg5FQIAERgSQUY1NTUzQ0RFNzFGNTBEOTc1AA==\"\n                },\n                \"direction\": \"outgoing\",\n                \"incoming\": false,\n                \"media\": [\n                    {\n                        \"mediaType\": \"image\",\n                        \"caption\": \"image caption\",\n                        \"fileId\": \"69091e5e962e17ab3033fa2e\"\n                    }\n                ],\n                \"outgoing\": true,\n                \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n                \"received\": 1762205282313,\n                \"status\": 3,\n                \"statusHistory\": [\n                    {\n                        \"status\": 0,\n                        \"timestamp\": 1762205282313\n                    },\n                    {\n                        \"timestamp\": 1762205285000,\n                        \"status\": 1\n                    },\n                    {\n                        \"timestamp\": 1762205287000,\n                        \"status\": 2\n                    },\n                    {\n                        \"timestamp\": 1762205300000,\n                        \"status\": 3\n                    }\n                ],\n                \"timestamp\": 1762205282313,\n                \"type\": \"media\",\n                \"updatedAt\": \"2025-11-03T21:28:21.625Z\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"outgoing\": true,\n            \"parent_chat\": \"67a87067aeedqdee1271ck4d\",\n            \"received\": 1762205471428,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1762205471428\n                }\n            ],\n            \"text\": \"איך אפשר לעזור?\",\n            \"timestamp\": 1762205471428,\n            \"type\": \"text\",\n            \"updatedAt\": \"2025-11-03T21:31:11.447Z\"\n        }\n    ]\n}"},{"id":"9870c3cf-b407-4326-ae05-add44548ab8f","name":"Send Buttons Menu Message","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"buttons\",\r\n    \"text\": \"Please select one of the options below\",\r\n    \"buttons\": [\r\n        {\r\n            \"title\": \"option 1\",\r\n            \"payload\": \"option_1\"\r\n        },\r\n        {\r\n            \"title\": \"option 2\",\r\n            \"payload\": \"option_2\"\r\n        },\r\n        {\r\n            \"title\": \"option 3\",\r\n            \"payload\": \"option_3\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"696657b7g7ee7557128d8ab4\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972555555555\",\n                \"accountId\": \"972521234567\"\n            },\n            \"channelInfo\": {\n                \"id\": \"wamid.HBgMOTcyNTI2NzYwOTg5FQIAERgSRDI2RjUwMlFFQTNEQjE0MEVBAA==\"\n            },\n            \"buttons\": [\n                {\n                    \"title\": \"option 1\",\n                    \"payload\": \"option_1\"\n                },\n                {\n                    \"title\": \"option 2\",\n                    \"payload\": \"option_2\"\n                },\n                {\n                    \"title\": \"option 3\",\n                    \"payload\": \"option_3\"\n                }\n            ],\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"outgoing\": true,\n            \"parent_chat\": \"679a44de1da207e7cb22438f\",\n            \"received\": 1768314807488,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1768314807488\n                }\n            ],\n            \"text\": \"Please select one of the options below\",\n            \"timestamp\": 1768314807488,\n            \"type\": \"buttons\",\n            \"updatedAt\": \"2026-01-13T14:33:27.499Z\"\n        }\n    ]\n}"},{"id":"58269aa8-4145-48f7-a0dc-99000eed8cfd","name":"Simple List Menu","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"list\",\r\n    \"text\": \"Which representitive would you like to be forwarded to?\",\r\n    \"list\": {\r\n        \"button\": \"All Agents\",\r\n        \"sections\": [\r\n            {\r\n                \"title\": \"Will be omitted\",\r\n                \"rows\": [\r\n                    {\r\n                        \"title\": \"Ziv\",\r\n                        \"payload\": \"ziv@texter.com\",\r\n                        \"description\": \"AI Engineer\"\r\n                    },\r\n                    {\r\n                        \"title\": \"Paz\",\r\n                        \"payload\": \"paz@texter.com\",\r\n                        \"description\": \"Product Manager\"\r\n                    },\r\n                    {\r\n                        \"title\": \"Koby\",\r\n                        \"payload\": \"koby@texter.com\",\r\n                        \"description\": \"Software Engineer\"\r\n                    },\r\n                    {\r\n                        \"title\": \"Dor\",\r\n                        \"payload\": \"dor@texter.com\",\r\n                        \"description\": \"IT Specialist\"\r\n                    },\r\n                    {\r\n                        \"title\": \"Noam\",\r\n                        \"payload\": \"noam@texter.com\"\r\n                    }\r\n                ]\r\n            }\r\n        ]\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"69662ceba7ee7557128e8ab6\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972555555555\",\n                \"accountId\": \"972521234567\"\n            },\n            \"channelInfo\": {\n                \"id\": \"wamid.HLgMOTcyMTI3NzYwOTg5FQIAERgSRDI2RjUwMkFFQTNEQjE0MEVBAA==\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"list\": {\n                \"button\": \"All Agents\",\n                \"sections\": [\n                    {\n                        \"title\": \"Will be omitted\",\n                        \"rows\": [\n                            {\n                                \"title\": \"Ziv\",\n                                \"payload\": \"ziv@texter.com\",\n                                \"description\": \"AI Engineer\"\n                            },\n                            {\n                                \"title\": \"Paz\",\n                                \"payload\": \"paz@texter.com\",\n                                \"description\": \"Product Manager\"\n                            },\n                            {\n                                \"title\": \"Koby\",\n                                \"payload\": \"koby@texter.com\",\n                                \"description\": \"Software Engineer\"\n                            },\n                            {\n                                \"title\": \"Dor\",\n                                \"payload\": \"dor@texter.com\",\n                                \"description\": \"IT Specialist\"\n                            },\n                            {\n                                \"title\": \"Noam\",\n                                \"payload\": \"noam@texter.com\"\n                            }\n                        ]\n                    }\n                ]\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"679a44de1ea217e7cb22438f\",\n            \"received\": 1768316139156,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1768316139156\n                }\n            ],\n            \"text\": \"Which representitive would you like to be forwarded to?\",\n            \"timestamp\": 1768316139156,\n            \"type\": \"list\",\n            \"updatedAt\": \"2026-01-13T14:55:39.172Z\"\n        }\n    ]\n}"},{"id":"dca1ab0d-c698-4356-b4b0-a04bcc9b3afe","name":"Multiple Sections List Menu","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"list\",\r\n    \"text\": \"Welcome to support! How can we assist you today?\",\r\n    \"list\": {\r\n        \"button\": \"View Menu\",\r\n        \"sections\": [\r\n            {\r\n                \"title\": \"Order Issues\",\r\n                \"rows\": [\r\n                    {\r\n                        \"title\": \"Track my order\",\r\n                        \"payload\": \"action_track_order\",\r\n                        \"description\": \"Check delivery status for recent items\"\r\n                    },\r\n                    {\r\n                        \"title\": \"Report missing item\",\r\n                        \"payload\": \"action_missing_item\",\r\n                        \"description\": \"Start a claim for incomplete delivery\"\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                \"title\": \"Account Services\",\r\n                \"rows\": [\r\n                    {\r\n                        \"title\": \"Reset Password\",\r\n                        \"payload\": \"action_reset_pw\"\r\n                    },\r\n                    {\r\n                        \"title\": \"Chat with Agent\",\r\n                        \"payload\": \"action_human_handoff\",\r\n                        \"description\": \"Wait time: ~2 mins\"\r\n                    }\r\n                ]\r\n            }\r\n        ]\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"messages\": [\n        {\n            \"_id\": \"696659f9a7ei7557128e8ab5\",\n            \"chatChannelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972555555555\",\n                \"accountId\": \"972521234567\"\n            },\n            \"channelInfo\": {\n                \"id\": \"wamid.LBgMOTcyNTI2NzYwOTr5FQIAERgSRDI2RjUwMkFFQTNEQjE0MEVBAA==\"\n            },\n            \"direction\": \"outgoing\",\n            \"incoming\": false,\n            \"list\": {\n                \"button\": \"View Menu\",\n                \"sections\": [\n                    {\n                        \"title\": \"Order Issues\",\n                        \"rows\": [\n                            {\n                                \"title\": \"Track my order\",\n                                \"payload\": \"action_track_order\",\n                                \"description\": \"Check delivery status for recent items\"\n                            },\n                            {\n                                \"title\": \"Report missing item\",\n                                \"payload\": \"action_missing_item\",\n                                \"description\": \"Start a claim for incomplete delivery\"\n                            }\n                        ]\n                    },\n                    {\n                        \"title\": \"Account Services\",\n                        \"rows\": [\n                            {\n                                \"title\": \"Reset Password\",\n                                \"payload\": \"action_reset_pw\"\n                            },\n                            {\n                                \"title\": \"Chat with Agent\",\n                                \"payload\": \"action_human_handoff\",\n                                \"description\": \"Wait time: ~2 mins\"\n                            }\n                        ]\n                    }\n                ]\n            },\n            \"outgoing\": true,\n            \"parent_chat\": \"679a44de1ea217e7cb22438f\",\n            \"received\": 1768315385083,\n            \"status\": 0,\n            \"statusHistory\": [\n                {\n                    \"status\": 0,\n                    \"timestamp\": 1768315385083\n                }\n            ],\n            \"text\": \"Welcome to support! How can we assist you today?\",\n            \"timestamp\": 1768315385083,\n            \"type\": \"list\",\n            \"updatedAt\": \"2026-01-13T14:43:05.123Z\"\n        }\n    ]\n}"},{"id":"4881f479-6409-4cbd-90a9-cfdc03485742","name":"Error Send Message","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{messagesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"type\": \"media\",\r\n    \"media\": [\r\n        {\r\n            \"mediaType\": \"video\",\r\n            \"url\": \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4\"\r\n        },\r\n        {\r\n            \"mediaType\": \"document\",\r\n            \"url\": \"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf\",\r\n            \"caption\": \"Here's your receipt\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/messages/send/{{chatID}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"media[1]: File caption is unsupported for document media type!\",\n    \"success\": false\n}"}],"_postman_id":"ecb157c5-b03a-41b9-9132-8a4a48950bd4"}],"id":"e99cc65d-2361-4356-b0a7-fddb72429730","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>This section contains all endpoints related to retrieving and sending messages within chats.</p>\n<p>You can use these endpoints to fetch message history from a specific chat or to send new session messages, including text and media, within the active WhatsApp session window.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>Send Session Message</p>\n</li>\n<li><p>View All Chats</p>\n</li>\n</ul>\n<p>And store it in <strong><code>messagesApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{messagesApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"8c03bd8c-85f4-453e-b74f-0a49f1e83fb2"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"2be0d9f3-f67e-46b0-bab3-d0a730b49fab"}}],"_postman_id":"e99cc65d-2361-4356-b0a7-fddb72429730"},{"name":"Chats","item":[{"name":"Get Chat by Chat ID","id":"0888e955-dfc5-4fd5-983d-d7d8ee589101","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Retrieve a chat by its ID - fetch the full chat object using the chatID</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns the <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","chats","{{chatID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"44dd90ca-87f7-4cba-9b37-1fcd6b0b9d37","name":"Get Chat Example","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"title\": \"Niv Shteingart\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972549876543\"\n    },\n    \"departmentId\": null,\n    \"agent\": {\n        \"uid\": null,\n        \"displayName\": \"\"\n    },\n    \"status\": 0,\n    \"created\": \"2025-05-07T11:09:03.295Z\",\n    \"updatedAt\": \"2025-11-03T20:05:15.532Z\",\n    \"lastIncomingMessageTimestamp\": 1762200310000,\n    \"lastMessage\": {\n        \"type\": \"text\",\n        \"text\": \"מה שמך?\"\n    },\n    \"unreadCount\": 2,\n    \"botState\": {\n        \"id\": \"236ef058aa87c90536c33493d2024cd87055bdac4d64a0f22fd84fcb3cea6f8d\"\n    },\n    \"lastMessageTimestamp\": 1762200315209\n}"},{"id":"f95db8c0-454c-48dc-ac51-7525452a1026","name":"Error Get Chat","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Chat not found\",\n    \"success\": false\n}"}],"_postman_id":"0888e955-dfc5-4fd5-983d-d7d8ee589101"},{"name":"Search Chats","id":"5dd68f90-710d-4ffa-9f9b-926d40ed446e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/search","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to search for chats based on various query parameters.<br />The most common use case is searching by the customer's phone number using the <strong><code>search</code></strong> query param.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns an object containing the total number of chats that match the query and an array of the corresponding <a href=\"https://apidocs.texterchat.com/#chat-object\">chat objects</a>.</p>\n<ul>\n<li><p><strong><code>data</code></strong> - Array of chat objects matching the search criteria</p>\n</li>\n<li><p><strong><code>total</code></strong> - Total number of chats found that match the query</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","chats","search"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>Search by customer phone number</p>\n","type":"text/plain"},"key":"search","value":""},{"disabled":true,"description":{"content":"<p>Filter by channel name. Must be used together with channel[accountId]</p>\n","type":"text/plain"},"key":"channel[name]","value":""},{"disabled":true,"description":{"content":"<p>Filter by channel account ID. Must be used together with channel[name]</p>\n","type":"text/plain"},"key":"channel[accountId]","value":""},{"disabled":true,"description":{"content":"<p>Filter chats by label ID. This parameter can be repeated to match multiple labels (e.g., label 1 or label 2 or label 3)</p>\n","type":"text/plain"},"key":"labels[]","value":""},{"disabled":true,"description":{"content":"<p>Filter chats by CHAT_STATUS (BOT / PENDING / ASSIGNED / RESOLVED / BULK). This parameter can also be repeated to include multiple statuses, with the same behavior as labels[]</p>\n","type":"text/plain"},"key":"statuses[]","value":""},{"disabled":true,"description":{"content":"<p>Whether to include chats with no messages. By default, only chats that contain messages are returned</p>\n","type":"text/plain"},"key":"showNoMessages","value":""},{"disabled":true,"description":{"content":"<p>The maximum number of results to return</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>The number of results to skip before starting to return records</p>\n","type":"text/plain"},"key":"skip","value":""}],"variable":[]}},"response":[{"id":"b8b44ff0-83b6-4e7c-a7ce-1296f73a9d3b","name":"Search by Phone","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/chats/search?search=0521234567","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","chats","search"],"query":[{"key":"search","value":"0521234567","description":"Search by customer phone number"},{"key":"skip","value":"","description":"The number of results to skip before starting to return records","disabled":true},{"key":"limit","value":"","description":"The maximum number of results to return","disabled":true},{"key":"showNoMessages","value":"","description":"Whether to include chats with no messages. By default, only chats that contain messages are returned","disabled":true},{"key":"labels[]","value":"","description":"Filter chats by label ID. This parameter can be repeated to match multiple labels (e.g., label 1 or label 2 or label 3)","disabled":true},{"key":"statuses[]","value":"","description":"Filter chats by CHAT_STATUS. This parameter can also be repeated to include multiple statuses, with the same behavior as labels[]","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"_id\": \"67bf11038b24880cc966f799\",\n            \"title\": \"John Doe\",\n            \"agent\": {\n                \"uid\": null,\n                \"displayName\": \"\"\n            },\n            \"channel\": \"whatsapp\",\n            \"entityPhone\": \"+972509876543\",\n            \"clientPhoneE164\": \"+972521234567\",\n            \"clientPhone\": \"+972521234567\",\n            \"created\": \"2025-02-26T13:02:58.353Z\",\n            \"botState\": {},\n            \"last_message_timestamp\": 1762012091000,\n            \"lastIncomingMessageTimestamp\": 1762012091000,\n            \"status\": 3,\n            \"unreadCount\": 6,\n            \"channelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"replyAction\": null,\n            \"sendingBulkAgent\": null,\n            \"departmentId\": null,\n            \"pendingMessageTime\": null,\n            \"pendingUpdateTime\": 1756292160,\n            \"previousBotSession\": {\n                \"latestAgentUid\": null,\n                \"latestAgentName\": \"\",\n                \"node\": \"resolved\",\n                \"idleBotRetry\": null,\n                \"flowVersion\": {\n                    \"identifier\": \"test-bot\",\n                    \"version\": 37\n                },\n                \"id\": \"99f3e9b18b6ae02781db30fb5fb673639d7007210a3280e87b754c44c3e6222c\",\n                \"nodeState\": null,\n                \"promptId\": \"1762011925691_681\",\n                \"userState\": {\n                    \"whats_next\": {\n                        \"choice\": 2,\n                        \"text\": \"סגירת פנייה\",\n                        \"id\": \"סגירת פנייה\"\n                    }\n                },\n                \"failureNode\": \"agent_handoff\",\n                \"lastBotMessage\": \"לא התקבלה תגובה, אתה עדיין שם?\",\n                \"lastBotMessageTime\": \"2025-11-01T15:47:29.878Z\",\n                \"promptChoiceResult\": 2,\n                \"nodeInputRetries\": null\n            },\n            \"resolvedUpdateTime\": 1762012093,\n            \"crmData\": {\n                \"aiTerminateReason\": \"Inactivity\"\n            },\n            \"externalBot\": false,\n            \"updatedAt\": \"2025-11-01T15:48:14.076Z\"\n        }\n    ],\n    \"total\": 1\n}"},{"id":"6b741976-afda-4c54-ad97-5108bc9b41f5","name":"Search by Labels","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/chats/search?labels[]=VIP&labels[]=manager","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","chats","search"],"query":[{"key":"search","value":"","description":"Search by customer phone number","disabled":true},{"key":"skip","value":"","description":"The number of results to skip before starting to return records","disabled":true},{"key":"limit","value":"","description":"The maximum number of results to return","disabled":true},{"key":"showNoMessages","value":"","description":"Whether to include chats with no messages. By default, only chats that contain messages are returned","disabled":true},{"key":"labels[]","value":"VIP","description":"Filter chats by label ID. This parameter can be repeated to match multiple labels (e.g., label 1 or label 2 or label 3)"},{"key":"statuses[]","value":"","description":"Filter chats by CHAT_STATUS. This parameter can also be repeated to include multiple statuses, with the same behavior as labels[]","disabled":true},{"key":"labels[]","value":"manager"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"_id\": \"67bf11028b24880cc966f799\",\n            \"title\": \"Josh Dun\",\n            \"agent\": {\n                \"uid\": \"4d170fc7-5cd6-4496-98e4-f4f03a11456e\",\n                \"displayName\": \"Tyler\"\n            },\n            \"channel\": \"whatsapp\",\n            \"entityPhone\": \"+972509876543\",\n            \"clientPhoneE164\": \"+972521234567\",\n            \"clientPhone\": \"+972521234567\",\n            \"created\": \"2025-02-26T13:02:58.353Z\",\n            \"botState\": {},\n            \"last_message_timestamp\": 1762196484000,\n            \"lastIncomingMessageTimestamp\": 1762196484000,\n            \"status\": 2,\n            \"unreadCount\": 0,\n            \"channelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972521234567\",\n                \"accountId\": \"972509876543\"\n            },\n            \"replyAction\": null,\n            \"sendingBulkAgent\": null,\n            \"departmentId\": null,\n            \"pendingMessageTime\": null,\n            \"pendingUpdateTime\": 1762196423,\n            \"previousBotSession\": {\n                \"latestAgentUid\": null,\n                \"latestAgentName\": \"\",\n                \"node\": \"resolved\",\n                \"idleBotRetry\": null,\n                \"flowVersion\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 37\n                },\n                \"id\": \"99f3e9b18b6ae02781db00fb5fb673639d7007210a3280e87b754c44c3e6222c\",\n                \"nodeState\": null,\n                \"promptId\": \"1762011925691_681\",\n                \"userState\": {\n                    \"whats_next\": {\n                        \"choice\": 2,\n                        \"text\": \"סגירת פנייה\",\n                        \"id\": \"סגירת פנייה\"\n                    }\n                },\n                \"failureNode\": \"agent_handoff\",\n                \"lastBotMessage\": \"לא התקבלה תגובה, אתה עדיין שם?\",\n                \"lastBotMessageTime\": \"2025-11-01T15:47:29.878Z\",\n                \"promptChoiceResult\": 2,\n                \"nodeInputRetries\": null\n            },\n            \"resolvedUpdateTime\": 1762012093,\n            \"crmData\": {\n                \"aiTerminateReason\": \"Inactivity\"\n            },\n            \"externalBot\": false,\n            \"updatedAt\": \"2025-11-03T19:02:17.849Z\",\n            \"labels\": [\n                \"VIP\"\n            ]\n        },\n        {\n            \"_id\": \"673209f9c921c35e04384da3\",\n            \"title\": \"Gil Or\",\n            \"agent\": {\n                \"uid\": \"dbaa4322-ebd1-40ae-85ff-330ee2149ade\"\n            },\n            \"channel\": \"whatsapp\",\n            \"entityPhone\": \"+972509876543\",\n            \"clientPhoneE164\": \"+972541230987\",\n            \"clientPhone\": \"+972541230987\",\n            \"created\": \"2024-11-11T13:43:21.467Z\",\n            \"botState\": {},\n            \"last_message_timestamp\": 1762177887349,\n            \"lastIncomingMessageTimestamp\": 1740589617000,\n            \"status\": 2,\n            \"unreadCount\": 0,\n            \"channelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972541230987\",\n                \"accountId\": \"972509876543\"\n            },\n            \"updatedAt\": \"2025-11-03T15:24:13.195Z\",\n            \"replyAction\": null,\n            \"sendingBulkAgent\": null,\n            \"departmentId\": null,\n            \"pendingMessageTime\": null,\n            \"pendingUpdateTime\": 1762177778,\n            \"previousBotSession\": {\n                \"userState\": {\n                    \"ask_name\": {\n                        \"text\": \"Gi test\"\n                    },\n                    \"ask_issue_type\": {\n                        \"choice\": 1,\n                        \"text\": \"שינוי בוט\",\n                        \"id\": \"שינוי בוט\"\n                    },\n                    \"service_request_zapier\": {\n                        \"attempt\": \"01954339-d806-601a-0bc1-3da7653faed9\",\n                        \"id\": \"01954339-d806-601a-0bc1-3da7653faed9\",\n                        \"request_id\": \"01954339-d806-601a-0bc1-3da7653faed9\",\n                        \"status\": \"success\"\n                    }\n                },\n                \"nodeState\": null,\n                \"node\": \"resolved\",\n                \"lastBotMessage\": \"פרטיך נקלטו במערכת, מייד תענה\",\n                \"lastBotMessageTime\": \"2025-02-26T17:06:59.515Z\",\n                \"initText\": \"אשמח לפרטים\",\n                \"flowVersion\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 9\n                },\n                \"idleBotRetry\": null,\n                \"id\": \"c6e9db952eaf3521477fd619cd2005ebf9dabf65e5f871381ac6089d5affacd4\",\n                \"nodeInputRetries\": null,\n                \"failureNode\": \"post_webhook_confirmation\"\n            },\n            \"hasMessageError\": false,\n            \"crmData\": {\n                \"send_to_make\": \"על פי המלל בפוליסה:\\nהצטרפות לביטוח ללא צורך במילוי הצהרת בריאות ניתן לבצע עבור עובדים חדשים תוך 120 ימים מיום תחילת העבודה. כאשר זוג חדש זכאי להצטרף ללא הצהרת בריאות תוך 120 ימים ממועד הנישואין. ניתן לצרף תינוק שנולד לעובד במהלך התקופה הקשורה להצטרפות לביטוח, באופן אוטומטי. עבור עובדים קיימים, אם עובד או בן משפחה מצטרף לפוליסה לאחר 120 ימים מתחילת ההסכם, הם יצטרכו למלא הצהרת בריאות. להעברת מבוטחים מפוליסה קודמת לפוליסה נוכחית נדרשת מצאת אסמכאת מתאימה. לגבי דמי הביטוח, העלות עבור כל מבוגר משתנה לפי קבוצת הגיל\",\n                \"service_request_zapier\": {\n                    \"attempt\": \"01954339-d806-601a-0bc1-3da7653faed9\",\n                    \"id\": \"01954339-d806-601a-0bc1-3da7653faed9\",\n                    \"request_id\": \"01954339-d806-601a-0bc1-3da7653faed9\",\n                    \"status\": \"success\"\n                }\n            },\n            \"resolvedUpdateTime\": 1740589620,\n            \"labels\": [\n                \"manager\"\n            ]\n        },\n        {\n            \"_id\": \"6846ab0170f86c4b25e53b87\",\n            \"channelInfo\": {\n                \"name\": \"whatsapp\",\n                \"id\": \"972551472580\",\n                \"accountId\": \"972509876543\"\n            },\n            \"agent\": {\n                \"uid\": \"4d170fc7-5cd6-4496-98e4-f4f03a11456e\",\n                \"displayName\": \"ניב\"\n            },\n            \"channel\": \"whatsapp\",\n            \"clientPhone\": \"+972551472580\",\n            \"clientPhoneE164\": \"+972551472580\",\n            \"created\": \"2025-06-09T09:36:01.412Z\",\n            \"entityPhone\": \"+972509876543\",\n            \"lastIncomingMessageTimestamp\": 1761743254000,\n            \"last_message_timestamp\": 1762168449225,\n            \"status\": 2,\n            \"title\": \"Texter Support\",\n            \"unreadCount\": 4,\n            \"updatedAt\": \"2025-11-03T19:00:17.369Z\",\n            \"botState\": {},\n            \"externalBot\": false,\n            \"previousBotSession\": {\n                \"latestAgentUid\": null,\n                \"latestAgentName\": \"\",\n                \"node\": \"resolved\",\n                \"idleBotRetry\": 999,\n                \"flowVersion\": {\n                    \"identifier\": \"Niv-test-bot\",\n                    \"version\": 37\n                },\n                \"id\": \"77d44b41e64bdaf1544d5a303c34587dde32766f58c1dac75d5e0354b797f0f3\",\n                \"nodeState\": null,\n                \"userState\": {},\n                \"failureNode\": null,\n                \"lastBotMessage\": \"לא התקבלה תגובה במשך זמן מה, הבוט נסגר. אם תצטרך עזרה נוספת, תוכל לפנות שוב מאוחר יותר.\",\n                \"lastBotMessageTime\": \"2025-10-29T13:17:19.487Z\"\n            },\n            \"replyAction\": null,\n            \"resolvedUpdateTime\": 1761743840,\n            \"departmentId\": null,\n            \"pendingMessageTime\": null,\n            \"sendingBulkAgent\": null,\n            \"pendingUpdateTime\": 1762196417,\n            \"crmData\": {\n                \"aiTerminateReason\": \"Error\",\n                \"leadId\": 123072,\n                \"leadName\": \"John Doe\"\n            },\n            \"hasMessageError\": true,\n            \"labels\": [\n                \"VIP\",\n                \"error\",\n                \"holiday\",\n                \"manager\"\n            ],\n            \"blockTemplates\": true,\n            \"unsubscribeTime\": 1762170503,\n            \"unsubscribed\": {\n                \"date\": \"2025-11-03T11:48:23.983Z\"\n            }\n        }\n    ],\n    \"total\": 3\n}"},{"id":"76cf3a24-665e-4f3c-af3c-3b25a4e8dd29","name":"Search by Status","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/chats/search?statuses[]=PENDING","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","chats","search"],"query":[{"key":"search","value":"","description":"Search by customer phone number","disabled":true},{"key":"skip","value":"","description":"The number of results to skip before starting to return records","disabled":true},{"key":"limit","value":"","description":"The maximum number of results to return","disabled":true},{"key":"showNoMessages","value":"","description":"Whether to include chats with no messages. By default, only chats that contain messages are returned","disabled":true},{"key":"labels[]","value":"","description":"Filter chats by label ID. This parameter can be repeated to match multiple labels (e.g., label 1 or label 2 or label 3)","disabled":true},{"key":"statuses[]","value":"PENDING","description":"Filter chats by CHAT_STATUS. This parameter can also be repeated to include multiple statuses, with the same behavior as labels[]"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"_id\": \"672c8062f4273b63dae47e9f\",\n            \"channelInfo\": {\n                \"name\": \"messenger\",\n                \"id\": \"9182340088450578\",\n                \"accountId\": \"108851725349355\"\n            },\n            \"agent\": {\n                \"uid\": \"\",\n                \"displayName\": \"\"\n            },\n            \"channel\": \"messenger\",\n            \"created\": \"2024-11-07T08:54:58.631Z\",\n            \"image\": \"672c8062f4273b63dae47e98\",\n            \"lastIncomingMessageTimestamp\": 1745321168942,\n            \"last_message_timestamp\": 1745321174422,\n            \"status\": 1,\n            \"title\": \"Nenad Nash Radovanovic\",\n            \"unreadCount\": 6,\n            \"updatedAt\": \"2025-04-22T11:26:18.477Z\",\n            \"botState\": {},\n            \"pendingMessageTime\": 1745321174,\n            \"pendingUpdateTime\": 1738922660,\n            \"previousBotSession\": {\n                \"flowVersion\": {\n                    \"identifier\": \"whatsper-bot\",\n                    \"version\": 14\n                },\n                \"idleBotRetry\": 999,\n                \"id\": \"fb9b9b16a1714eda4070062da3b96182f2ce9dd6f56cc9c96baf93efc5c89597\",\n                \"nodeState\": null,\n                \"node\": \"handoff\",\n                \"userState\": {},\n                \"lastBotMessage\": \"I did not receive a response, so the request was closed.\\nYou can apply again at any time.\\nThank you and have a nice day.\",\n                \"lastBotMessageTime\": \"2025-02-07T10:04:17.056Z\",\n                \"failureNode\": null\n            },\n            \"departmentId\": null,\n            \"replyAction\": null,\n            \"sendingBulkAgent\": null\n        }\n    ],\n    \"total\": 1\n}"},{"id":"364c3a95-1817-4f1c-a4f4-450dc0dd7de9","name":"Error Search Chats","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/chats/search?statuses[]=SOLVED","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","chats","search"],"query":[{"key":"search","value":"","description":"Search by customer phone number","disabled":true},{"key":"skip","value":"","description":"The number of results to skip before starting to return records","disabled":true},{"key":"limit","value":"","description":"The maximum number of results to return","disabled":true},{"key":"showNoMessages","value":"","description":"Whether to include chats with no messages. By default, only chats that contain messages are returned","disabled":true},{"key":"labels[]","value":"","description":"Filter chats by label ID. This parameter can be repeated to match multiple labels (e.g., label 1 or label 2 or label 3)","disabled":true},{"key":"statuses[]","value":"SOLVED","description":"Filter chats by CHAT_STATUS. This parameter can also be repeated to include multiple statuses, with the same behavior as labels[]"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data/statuses/0 must be equal to one of the allowed values\"\n}"}],"_postman_id":"5dd68f90-710d-4ffa-9f9b-926d40ed446e"},{"name":"Assign Chat","id":"44f07095-4ed1-4270-bf5b-6879c5c0907e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    // Require exactly one -\r\n    \"phone\": \"<STRING>\",\r\n    \"chatId\": \"<STRING>\",\r\n\r\n    // Require exactly one -\r\n    \"agentUid\": \"<STRING>\",\r\n    \"agentEmail\": \"<STRING>\",\r\n    \"agentCrmId\": \"<STRING>\",\r\n\r\n    // and/or\r\n    \"departmentId\": \"<STRING>\",     \r\n\r\n    // Optional\r\n    \"channel\": {\r\n        \"accountId\": \"<STRING>\",\r\n        \"name\": \"<STRING>\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/assign","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to assign a specific chat to a designated agent and/or department.<br />When a chat is assigned, its status is automatically set to <strong>PENDING</strong> for that specific agent and/or department.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>❗ Exactly one of <code>phone</code> or <code>chatId</code> must be provided</td>\n<td>The customer’s phone number in E.164 format</td>\n<td></td>\n</tr>\n<tr>\n<td>chatId</td>\n<td>string</td>\n<td>❗ Exactly one of <code>chatId</code> or <code>phone</code> must be provided</td>\n<td>The unique identifier of the chat to assign</td>\n<td></td>\n</tr>\n<tr>\n<td>agentUid</td>\n<td>string</td>\n<td>❗ One of <code>agentUid</code>, <code>agentEmail</code>, <code>agentCrmId</code>, or <code>departmentId</code> must be provided</td>\n<td>The internal user ID of the agent in Texter. Only one agent identifier can be used</td>\n<td></td>\n</tr>\n<tr>\n<td>agentEmail</td>\n<td>string</td>\n<td>❗ One of <code>agentEmail</code>, <code>agentUid</code>, <code>agentCrmId</code>, or <code>departmentId</code> must be provided</td>\n<td>The agent’s email address in Texter. Only one agent identifier can be used</td>\n<td></td>\n</tr>\n<tr>\n<td>agentCrmId</td>\n<td>string</td>\n<td>❗ One of <code>agentCrmId</code>, <code>agentUid</code>, <code>agentEmail</code>, or <code>departmentId</code> must be provided</td>\n<td>The agent’s CRM identifier in Texter. Only one agent identifier can be used</td>\n<td></td>\n</tr>\n<tr>\n<td>departmentId</td>\n<td>string</td>\n<td>❗ One of <code>departmentId</code>, <code>agentUid</code>, <code>agentEmail</code>, or <code>agentCrmId</code> must be provided</td>\n<td>The department ID to assign the chat to. Can be used alone (to assign to a department only) or together with a single agent identifier</td>\n<td></td>\n</tr>\n<tr>\n<td>channel.name</td>\n<td>string</td>\n<td>❗ Required only when multiple chats exist for the same phone number</td>\n<td>The name of the channel to disambiguate between multiple chats</td>\n<td><code>whatsapp</code>  <br /><code>messenger</code>  <br /><code>instagram</code>  <br /><code>website_chat</code>  <br /><code>email</code></td>\n</tr>\n<tr>\n<td>channel.accountId</td>\n<td>string</td>\n<td>❗ Required only when multiple chats exist for the same phone number</td>\n<td>The account ID associated with the channel. For WhatsApp, this is the phone number registered in Texter</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["server","api","v2","chats","assign"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"5d4c4180-4a10-452d-9dbc-d88fea5094f2","name":"Assign to Agent","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"0521234567\",\r\n    \"agentEmail\": \"demo@texterchat.com\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/assign"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"1339e097-3544-4f12-b43b-4142175d7440","name":"Assign to Department","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"972521234567\",\r\n    \"departmentId\": \"Business\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/assign"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"7c9676f0-40d7-4f14-905c-4a1452b20bcd","name":"Assign to Agent & Department","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"chatId\": \"67a87067aeedqdee1271ck4d\",\r\n    \"agentUid\": \"23026c13-aab1-4368-713d-c507bcfa855e\",\r\n    \"departmentId\": \"customer_service\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/assign"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"d4494211-fc60-47de-9150-e97a0c7b1018","name":"Assign Chat in Specific Channel","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"0521234567\",\r\n    \"agentCrmId\": \"Gil\",\r\n    \"channel\": {\r\n        \"accountId\": \"972509876543\",\r\n        \"name\": \"whatsapp\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/assign"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"42334047-d589-4bb5-9e2c-3a95e115d0ff","name":"Error Assign Chat","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"phone\": \"0521234567\",\r\n    \"agentCrmId\": \"Texter Agent\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/assign"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"User with CRM ID Texter Agent not found\"\n}"}],"_postman_id":"44f07095-4ed1-4270-bf5b-6879c5c0907e"},{"name":"Resolve Chat","id":"3f320613-5065-4c66-b40d-a3866dbbe6e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"notifyClient\": \"<BOOLEAN>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/resolve","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to change the status of a chat to <strong>RESOLVED</strong>. This action can be performed manually in Texter or via this endpoint.</p>\n<p>While it does not depend on the current chat status, it is typically used once a human agent has finished the conversation. After a chat is resolved, any new incoming message from the customer will be routed back to the bot defined in Texter.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>notifyClient</td>\n<td>boolean</td>\n<td>❌</td>\n<td>Defaults to <code>false</code>. If <code>true</code>, sends the default resolution message before resolving</td>\n<td><code>true</code>  <br /><code>false</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["server","api","v2","chats","{{chatID}}","resolve"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"9cf82917-d760-44dd-812e-4b8c5fffe9dc","name":"Resolve Chat Example","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"notifyClient\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/resolve"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"},{"id":"72f88ae7-f7c7-4656-b102-35fbe638a1cc","name":"Error Resolve Chat","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/resolve"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"Not Found"}],"_postman_id":"3f320613-5065-4c66-b40d-a3866dbbe6e1"},{"name":"Update CRM Data","id":"ff807883-4f01-4a9c-8863-e6b0119e3a67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"<KEY>\": \"<VALUE>\"\r\n    },\r\n\r\n    // Optional - default: \"merge\"\r\n    \"mergingMode\": \"merge\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/crm-data","description":"<h3 id=\"description\">Description</h3>\n<p>Update the CRM data attached to a specific chat. Supports multiple merge strategies so you can fully replace, shallow merge, deep merge, or fill in missing fields.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description / Notes</th>\n<th>Allowed Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>object</td>\n<td>No</td>\n<td>The CRM data to write to the chat. Omitting <code>data</code> with <code>mergingMode: \"replace\"</code> will effectively erase all CRM data on the chat.</td>\n<td></td>\n</tr>\n<tr>\n<td>mergingMode</td>\n<td>string</td>\n<td>No</td>\n<td>How <code>data</code> is merged with the chat's existing <code>crmData</code>. Defaults to <code>\"merge\"</code></td>\n<td><code>replace</code> <code>assign</code> <code>merge</code> <code>defaults</code> <code>defaultsDeep</code></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"mergingmode-values\"><code>mergingMode</code> Values</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Behavior</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>replace</code></td>\n<td>Fully replaces existing CRM data with <code>data</code></td>\n</tr>\n<tr>\n<td><code>assign</code></td>\n<td>Shallow merge — replaces top-level keys with values from <code>data</code></td>\n</tr>\n<tr>\n<td><code>merge</code></td>\n<td><strong>(Default)</strong> Deep recursive merge of nested objects and arrays</td>\n</tr>\n<tr>\n<td><code>defaults</code></td>\n<td>Fills in top-level keys from <code>data</code> only for keys that don't already exist</td>\n</tr>\n<tr>\n<td><code>defaultsDeep</code></td>\n<td>Same as <code>defaults</code> but applied recursively to nested values</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns the updated <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","chats","{{chatID}}","crm-data"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"c626527d-735a-4c55-b3ac-549f9d30a73c","name":"Merge CRM Data (Default)","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"plan\": \"premium\",\r\n        \"tags\": [\"vip\", \"whale\"],\r\n        \"customer\": {\r\n            \"first_name\": \"Niv\",\r\n            \"last_name\": \"Shteingart\",\r\n            \"lead_id\": 641225\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/crm-data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"_id\": \"67a87067aeedqdee1271ck4d\",\n    \"title\": \"Niv Shteingart\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972549876543\"\n    },\n    \"departmentId\": null,\n    \"agent\": {\n        \"uid\": null,\n        \"displayName\": \"\"\n    },\n    \"status\": 0,\n    \"created\": \"2025-05-07T11:09:03.295Z\",\n    \"updatedAt\": \"2026-01-15T14:22:10.123Z\",\n    \"lastIncomingMessageTimestamp\": 1762200310000,\n    \"lastMessage\": {\n        \"type\": \"text\",\n        \"text\": \"Hello!\"\n    },\n    \"unreadCount\": 0,\n    \"crmData\": {\n        \"plan\": \"premium\",\n        \"tags\": [\"vip\", \"whale\"],\n        \"customer\": {\n            \"first_name\": \"Niv\",\n            \"last_name\": \"Shteingart\",\n            \"lead_id\": 641225\n        }\n    },\n    \"lastMessageTimestamp\": 1762200315209\n}"},{"id":"26e5bf5f-5f06-42f9-a117-7009f0820069","name":"Replace CRM Data","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"customerId\": \"CRM-9001\",\r\n        \"tier\": \"gold\"\r\n    },\r\n    \"mergingMode\": \"replace\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/crm-data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"_id\": \"67a87067aeedqdee1271ck4d\",\n    \"title\": \"Niv Shteingart\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972549876543\"\n    },\n    \"departmentId\": null,\n    \"agent\": {\n        \"uid\": null,\n        \"displayName\": \"\"\n    },\n    \"status\": 0,\n    \"created\": \"2025-05-07T11:09:03.295Z\",\n    \"updatedAt\": \"2026-01-15T14:25:00.000Z\",\n    \"lastIncomingMessageTimestamp\": 1762200310000,\n    \"lastMessage\": {\n        \"type\": \"text\",\n        \"text\": \"Hello!\"\n    },\n    \"unreadCount\": 0,\n    \"crmData\": {\n        \"customerId\": \"CRM-9001\",\n        \"tier\": \"gold\"\n    },\n    \"lastMessageTimestamp\": 1762200315209\n}"},{"id":"965286c4-886f-4621-828a-69df02c48ba3","name":"Fill Missing Keys (defaults)","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"customerId\": \"CRM-9001\",\r\n        \"source\": \"website\"\r\n    },\r\n    \"mergingMode\": \"defaults\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/crm-data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"_id\": \"67a87067aeedqdee1271ck4d\",\n    \"title\": \"Niv Shteingart\",\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972549876543\"\n    },\n    \"departmentId\": null,\n    \"agent\": {\n        \"uid\": null,\n        \"displayName\": \"\"\n    },\n    \"status\": 0,\n    \"created\": \"2025-05-07T11:09:03.295Z\",\n    \"updatedAt\": \"2026-01-15T14:28:00.000Z\",\n    \"lastIncomingMessageTimestamp\": 1762200310000,\n    \"lastMessage\": {\n        \"type\": \"text\",\n        \"text\": \"Hello!\"\n    },\n    \"unreadCount\": 0,\n    \"crmData\": {\n        \"customerId\": \"CRM-9001\",\n        \"source\": \"website\"\n    },\n    \"lastMessageTimestamp\": 1762200315209\n}"},{"id":"08b36e74-3071-4b61-8467-c1063586c7d0","name":"Error - Chat Not Found","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"plan\": \"premium\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/invalidChatID/crm-data"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Chat invalidChatID not found\"\n}"}],"_postman_id":"ff807883-4f01-4a9c-8863-e6b0119e3a67"},{"name":"Update Chat Properties","id":"1238b009-50cd-4be3-959f-3ea84c009d67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    // Any of -\r\n    \"displayName\": \"<STRING>\",\r\n    \"crmData\": {\r\n        \"key1\": \"<STRING>\",\r\n        \"key2\": \"<STRING>\"\r\n    },\r\n    \"crmDeepLink\": \"<STRING>\",\r\n    \"externalBot\": \"<BOOLEAN>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to modify various attributes of a chat. Its most commonly used to change customer's display name in Texter or to enable/disable an external bot for the chat.</p>\n<p>Note that updating properties <strong>fully overrides</strong> any existing values. For example, if a crmData object already exists, it will be fully replaced by the new object provided in the request.</p>\n<p>If you want to <strong>merge</strong> crmData, use the endpoint <a href=\"https://apidocs.texterchat.com/#ff807883-4f01-4a9c-8863-e6b0119e3a67\">Update CRM Data</a> instead.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>displayName</td>\n<td>string</td>\n<td>❌</td>\n<td>Updates the display name of the chat</td>\n<td>Up to 255 characters</td>\n</tr>\n<tr>\n<td>externalBot</td>\n<td>boolean</td>\n<td>❌</td>\n<td>Indicates whether an external bot is active. Toggling this value will trigger an event, commonly used to enable or disable an external bot integration</td>\n<td><code>true</code>  <br /><code>false</code></td>\n</tr>\n<tr>\n<td>crmData</td>\n<td>object</td>\n<td>❌</td>\n<td>Metadata object containing CRM-related information for the chat (e.g., customer details, lead ID)</td>\n<td></td>\n</tr>\n<tr>\n<td>crmDeepLink</td>\n<td>string</td>\n<td>❌</td>\n<td>A direct link to the customer’s CRM record. This link is used in Texter to let agents quickly jump into the relevant customer profile</td>\n<td></td>\n</tr>\n<tr>\n<td>title</td>\n<td>string</td>\n<td>❌</td>\n<td>Updates the display name of the chat</td>\n<td>🛑 <strong>Deprecated</strong>  <br />use <code>displayName</code> instead</td>\n</tr>\n<tr>\n<td><del>language</del></td>\n<td><del>string</del></td>\n<td>❌</td>\n<td><em>Reserved for future functionality</em></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successfull call this will return the updated <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","chats","{{chatID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"e1d95026-fe8b-4bd2-9e07-6f35256eabc2","name":"Update External Bot","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"externalBot\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"67a87067aeedqdee1271ck4d\",\n    \"title\": \"Josh Dun\",\n    \"agent\": {\n        \"uid\": \"4d170fc7-5cd6-4496-98e4-f4f03a11456e\",\n        \"displayName\": \"Tyler Joesph\"\n    },\n    \"channel\": \"whatsapp\",\n    \"entityPhone\": \"+972509876543\",\n    \"clientPhoneE164\": \"+972521234567\",\n    \"clientPhone\": \"+972521234567\",\n    \"lastText\": \"image\",\n    \"created\": \"2025-02-26T13:02:58.353Z\",\n    \"botState\": {},\n    \"last_message_timestamp\": 1762196484000,\n    \"lastIncomingMessageTimestamp\": 1762196484000,\n    \"status\": 3,\n    \"unreadCount\": 0,\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972509876543\"\n    },\n    \"lastMessage\": {\n        \"type\": \"media\",\n        \"media\": [\n            {\n                \"fileId\": \"6908fc09962e17ab3033fa13\",\n                \"mediaType\": \"image\",\n                \"contentType\": \"image/jpeg\"\n            }\n        ],\n        \"forwarded\": false\n    },\n    \"replyAction\": null,\n    \"sendingBulkAgent\": null,\n    \"departmentId\": null,\n    \"pendingMessageTime\": null,\n    \"pendingUpdateTime\": 1762196423,\n    \"previousBotSession\": {},\n    \"resolvedUpdateTime\": 1762202519,\n    \"crmData\": {\n        \"aiTerminateReason\": \"Inactivity\"\n    },\n    \"externalBot\": true,\n    \"updatedAt\": \"2025-11-03T20:41:59.246Z\",\n    \"labels\": [\n        \"VIP\"\n    ]\n}"},{"id":"44a08437-f329-4567-b990-c1f18f118ef8","name":"Update Crm Data","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"crmData\": {\r\n        \"age\": 18,\r\n        \"email\": \"johnd1@gmail.com\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"67a87067aeedqdee1271ck4d\",\n    \"title\": \"Josh Dun\",\n    \"agent\": {\n        \"uid\": \"4d170fc7-5cd6-4496-98e4-f4f03a11456e\",\n        \"displayName\": \"Tyler Joesph\"\n    },\n    \"channel\": \"whatsapp\",\n    \"entityPhone\": \"+972509876543\",\n    \"clientPhoneE164\": \"+972521234567\",\n    \"clientPhone\": \"+972521234567\",\n    \"lastText\": \"image\",\n    \"created\": \"2025-02-26T13:02:58.353Z\",\n    \"botState\": {},\n    \"last_message_timestamp\": 1762196484000,\n    \"lastIncomingMessageTimestamp\": 1762196484000,\n    \"status\": 3,\n    \"unreadCount\": 0,\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972509876543\"\n    },\n    \"lastMessage\": {\n        \"type\": \"media\",\n        \"media\": [\n            {\n                \"fileId\": \"6908fc09962e17ab3033fa13\",\n                \"mediaType\": \"image\",\n                \"contentType\": \"image/jpeg\"\n            }\n        ],\n        \"forwarded\": false\n    },\n    \"replyAction\": null,\n    \"sendingBulkAgent\": null,\n    \"departmentId\": null,\n    \"pendingMessageTime\": null,\n    \"pendingUpdateTime\": 1762196423,\n    \"previousBotSession\": {},\n    \"resolvedUpdateTime\": 1762202519,\n    \"crmData\": {\n        \"age\": 18,\n        \"email\": \"johnd1@gmail.com\"\n    },\n    \"externalBot\": true,\n    \"updatedAt\": \"2025-11-03T20:46:59.246Z\",\n    \"labels\": [\n        \"VIP\"\n    ]\n}"},{"id":"51f92317-3d3b-4a42-8419-9fa542f51456","name":"Update Multiple Properties","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"displayName\": \"Donald J. Trump\",\r\n    \"crmDeepLink\": \"https://texterchat.com/\",\r\n    \"externalBot\": false\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"67a87067aeedqdee1271ck4d\",\n    \"title\": \"Donald\",\n    \"displayName\": \"Donald J. Trump\",\n    \"agent\": {\n        \"uid\": null,\n        \"displayName\": \"\"\n    },\n    \"channel\": \"whatsapp\",\n    \"entityPhone\": \"+972509876543\",\n    \"clientPhoneE164\": \"+972521234567\",\n    \"clientPhone\": \"+972521234567\",\n    \"lastText\": \"לא התקבלה תגובה, אתה עדיין שם?\",\n    \"created\": \"2025-02-26T13:02:58.353Z\",\n    \"botState\": {\n        \"latestAgentUid\": \"4d170fc7-5cd6-4496-98e4-f4f03a11456e\",\n        \"latestAgentName\": \"ניב\",\n        \"node\": \"whats_next\",\n        \"idleBotRetry\": 1,\n        \"flowVersion\": {\n            \"identifier\": \"Niv-test-bot\",\n            \"version\": 37\n        },\n        \"id\": \"e1f5eb5c7cbd3181bc6ebc012e012bf9cd992055e7ec968aa63519fbb7b75b36\",\n        \"nodeState\": \"in_progress\",\n        \"promptId\": \"1762202585929_468\",\n        \"userState\": {},\n        \"failureNode\": \"agent_handoff\",\n        \"lastBotMessage\": \"לא התקבלה תגובה, אתה עדיין שם?\",\n        \"lastBotMessageTime\": \"2025-11-03T20:47:08.761Z\"\n    },\n    \"last_message_timestamp\": 1762202829601,\n    \"lastIncomingMessageTimestamp\": 1762196484000,\n    \"status\": 0,\n    \"unreadCount\": 0,\n    \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\",\n        \"accountId\": \"972509876543\"\n    },\n    \"lastMessage\": {\n        \"type\": \"text\",\n        \"text\": \"לא התקבלה תגובה, אתה עדיין שם?\"\n    },\n    \"replyAction\": null,\n    \"sendingBulkAgent\": null,\n    \"departmentId\": null,\n    \"pendingMessageTime\": null,\n    \"pendingUpdateTime\": 1762196423,\n    \"previousBotSession\": {},\n    \"resolvedUpdateTime\": 1762202519,\n    \"crmData\": {\n        \"age\": 18,\n        \"email\": \"johnd1@gmail.com\"\n    },\n    \"externalBot\": false,\n    \"updatedAt\": \"2025-11-03T20:47:09.703Z\",\n    \"labels\": [\n        \"VIP\"\n    ],\n    \"crmDeepLink\": \"https://texterchat.com/\"\n}"},{"id":"fa972e93-2d44-4d23-a7ae-d6a455428246","name":"Error Update Chat","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{chatsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"displayName\": \"Nivvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data/title must NOT have more than 255 characters\"\n}"}],"_postman_id":"1238b009-50cd-4be3-959f-3ea84c009d67"}],"id":"2d66b2c4-d64a-4dd1-b244-9cc3b2828424","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>This section contains all endpoints related to retrieving, searching, and managing chats within Texter.</p>\n<p>You can use these endpoints to fetch chat details, search for existing conversations, update chat properties, assign or resolve chats, and manage their associated metadata.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>Manage All Chats</p>\n</li>\n<li><p>List All Chats</p>\n</li>\n<li><p>Resolve Chat</p>\n</li>\n<li><p>Send Session Message</p>\n</li>\n</ul>\n<p>And store it in <strong><code>chatsApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{chatsApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"7bc0ebca-da66-4cba-93b4-b30d84bfd667"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"1f4fefe2-c66d-400e-8de6-fe06996ccf22"}}],"_postman_id":"2d66b2c4-d64a-4dd1-b244-9cc3b2828424"},{"name":"Labels","item":[{"name":"List All Labels","id":"5f5b0c4f-7be7-48f7-8f7c-2eb46f827c92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to retrieve a list of all labels that are defined in Texter.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The response contains a <strong><code>labels</code></strong> array, where each item is a label object with <strong><code>id</code></strong>, <strong><code>name</code></strong>, and <strong><code>color</code></strong> properties.<br />It also includes a <strong><code>total</code></strong> field indicating the total number of labels returned.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","labels"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>The number of results to skip before starting to return records</p>\n","type":"text/plain"},"key":"skip","value":""},{"disabled":true,"description":{"content":"<p>The maximum number of results to return</p>\n","type":"text/plain"},"key":"limit","value":""}],"variable":[]}},"response":[{"id":"e25c2131-019f-43c2-8e0b-576e2d8dcd7d","name":"Get All Labels","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/labels","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","labels"],"query":[{"key":"skip","value":"","description":"The number of results to skip before starting to return records","disabled":true},{"key":"limit","value":"","description":"The maximum number of results to return","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"total\": 6,\n    \"labels\": [\n        {\n            \"id\": \"hp-high-priority\",\n            \"name\": \"High Priority\",\n            \"color\": \"#F47373\"\n        },\n        {\n            \"id\": \"hot_lead\",\n            \"name\": \"HOT LEAD\",\n            \"color\": \"#2CCCE4\"\n        },\n        {\n            \"id\": \"VIP\",\n            \"name\": \"VIP\",\n            \"color\": \"#dce775\"\n        },\n        {\n            \"id\": \"holiday\",\n            \"name\": \"הטבת קמפיין סוכות\",\n            \"color\": \"#123456\"\n        },\n        {\n            \"id\": \"manager\",\n            \"name\": \"מנהל\",\n            \"color\": \"#37D67A\"\n        },\n        {\n            \"id\": \"failed_message\",\n            \"name\": \"שליחה נכשלה\",\n            \"color\": \"#e80303\"\n        }\n    ]\n}"},{"id":"21c27144-a3e0-4eb7-9b44-cae83d34fe80","name":"Error Get All Labels","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/labels?skip=200000","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","labels"],"query":[{"key":"skip","value":"200000","description":"The number of results to skip before starting to return records"},{"key":"limit","value":"","description":"The maximum number of results to return","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"skip: Invalid value. Should be a positive integer less than 100000\"\n}"}],"_postman_id":"5f5b0c4f-7be7-48f7-8f7c-2eb46f827c92"},{"name":"Get Label Data","id":"76dc5490-0e73-4612-b7cd-5046a4d305ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to fetch the full details of a specific label by providing its unique label ID.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>labelID</code></strong> - The unique identifier of the label you want to retrieve.<br />  You can retrieve all existing labels data using <a href=\"https://apidocs.texterchat.com/#5f5b0c4f-7be7-48f7-8f7c-2eb46f827c92\">List All Labels</a> endpoint.</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The response returns a single label object containing its <strong><code>id</code></strong>, <strong><code>name</code></strong>, and <strong><code>color</code></strong>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","labels","{{labelID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"aaaf7b2f-961b-4b9e-b91d-7e7d87196dd1","name":"Get Label Example","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"failed_message\",\n    \"name\": \"שליחה נכשלה\",\n    \"color\": \"#e80303\"\n}"},{"id":"f4f05303-5cff-4cd2-95cb-76628817d5ce","name":"Error Get Label","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"Not Found"}],"_postman_id":"76dc5490-0e73-4612-b7cd-5046a4d305ba"},{"name":"Create Label","id":"dff6ed89-3d4a-4d9d-8fcc-c6599010a837","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"id\": \"<STRING>\",\r\n    \"name\": \"<STRING>\",\r\n    \"color\": \"<STRING>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to create a new label in Texter.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>✅</td>\n<td>Label ID</td>\n<td>Between 1 and 100 characters</td>\n</tr>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>✅</td>\n<td>Label name</td>\n<td>Between 1 and 100 characters</td>\n</tr>\n<tr>\n<td>color</td>\n<td>string</td>\n<td>❌</td>\n<td>Label color in Texter</td>\n<td>Hex color format</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>The response returns the newly created label object, including its <strong><code>id</code></strong>, <strong><code>name</code></strong>, and <strong><code>color</code></strong>.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","labels"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"e21ea522-74ce-4620-a69f-ebad59bb0643","name":"Create Label Example","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id\": \"important\",\r\n    \"name\": \"Important!\",\r\n    \"color\": \"#a83236\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"important\",\n    \"name\": \"Important!\",\n    \"color\": \"#a83236\"\n}"},{"id":"2696d7eb-5802-409f-93aa-488e73b75408","name":"Error Create Label","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id\": \"discount\",\r\n    \"name\": \"Eligible for Discount\",\r\n    \"color\": \"#132a860\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Invalid color format - Should be full HEX format\"\n}"}],"_postman_id":"dff6ed89-3d4a-4d9d-8fcc-c6599010a837"},{"name":"Manage Labels in Chat","id":"42cf9be3-084f-4c07-bf86-c07a33d2c11a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    // One of -\r\n    \"add\": \"<STRING[]>\",\r\n    \"remove\": \"<STRING[]>\",\r\n    \"set\": \"<STRING[]>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/labels","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to manage labels for a specific chat. You can perform one of three actions: <strong>add</strong>, <strong>remove</strong>, or <strong>set</strong> labels (based on their IDs).<br />Using <strong>set</strong> will override any existing labels on the chat and replace them with the new list you provide.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>chatID</code></strong> - The unique identifier of the chat. You can obtain this value by using the <a href=\"https://apidocs.texterchat.com/#5dd68f90-710d-4ffa-9f9b-926d40ed446e\">Search Chats</a> endpoint with the customer's phone number.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>add</td>\n<td>string[]</td>\n<td>❗Exactly one of</td>\n<td>Array of labels to add to the chat</td>\n<td>List of label IDs as defined in Texter</td>\n</tr>\n<tr>\n<td>remove</td>\n<td>string[]</td>\n<td>❗Exactly one of</td>\n<td>Array of labels to remove from the chat</td>\n<td>List of label IDs as defined in Texter</td>\n</tr>\n<tr>\n<td>set</td>\n<td>string[]</td>\n<td>❗Exactly one of</td>\n<td>Array of labels to replace all existing labels</td>\n<td>List of label IDs as defined in Texter</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["server","api","v2","chats","{{chatID}}","labels"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"02696b73-2b97-4489-b222-da1f07d6a83a","name":"Add Labels to Chat","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"add\": [\"manager\", \"VIP\", \"holiday\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/labels"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"c6e80981-c255-4ae7-93ae-82af3c4dae7e","name":"Error Manage Labels","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"add\": [\"VIP\", \"important\"],\r\n    \"remove\": [\"discount\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/chats/{{chatID}}/labels"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data must match exactly one schema in oneOf\"\n}"}],"_postman_id":"42cf9be3-084f-4c07-bf86-c07a33d2c11a"},{"name":"Update Existing Label","id":"8453d0f6-5485-410e-8bbb-aeec97b6e7de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"<STRING>\",\r\n    \"color\": \"<STRING>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to update the details of an existing label. You can modify the label’s <strong>name</strong> or <strong>color</strong>, but not its <strong>id</strong>.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>labelID</code></strong> - The unique identifier of the label you want to update.<br />  You can retrieve all existing labels data using <a href=\"https://apidocs.texterchat.com/#5f5b0c4f-7be7-48f7-8f7c-2eb46f827c92\">List All Labels</a> endpoint.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>❌</td>\n<td>Label name</td>\n<td>Between 1 and 100 characters</td>\n</tr>\n<tr>\n<td>color</td>\n<td>string</td>\n<td>❌</td>\n<td>Label color in Texter</td>\n<td>Hex color format</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["server","api","v2","labels","{{labelID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"8741a1bb-4eeb-4950-b942-bdba5f6cb641","name":"Update Label Name","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Message failed to send\",\r\n    \"color\": \"#a769ff\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"3fa9259c-a245-40f1-bb7f-beedaa9663e0","name":"Error Update Label","originalRequest":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Immediate Attention Required for very Critical Channel or System Problems Affecting Operations!!!!!!!!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Invalid name length - Should be between 1 and 100 characters\"\n}"}],"_postman_id":"8453d0f6-5485-410e-8bbb-aeec97b6e7de"},{"name":"Delete Label","id":"333dbedf-8590-4a6d-9823-b50c3c7798e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to permanently delete a label from Texter.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>labelID</code></strong> - The unique identifier of the label you want to delete.<br />  You can retrieve all existing labels data using <a href=\"https://apidocs.texterchat.com/#5f5b0c4f-7be7-48f7-8f7c-2eb46f827c92\">List All Labels</a> endpoint.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","labels","{{labelID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"64f8c8c5-2b9f-4030-934f-023ed31211b2","name":"Delete Label Example","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"325f7ab0-fbdc-4920-9d65-11e83433e68e","name":"Error Delete Label","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{labelsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/labels/{{labelID}}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Label high_priority not found\"\n}"}],"_postman_id":"333dbedf-8590-4a6d-9823-b50c3c7798e1"}],"id":"5ff7ee5b-ffc5-4fe7-bd68-f61e82d227dc","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>This section contains all endpoints related to creating, updating, and managing labels in Texter.</p>\n<p>You can use these endpoints to create and edit labels, assign or remove them from chats, retrieve label data, or delete labels entirely from your inbox.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>Manage All Chats</p>\n</li>\n<li><p>Manage Labels</p>\n</li>\n</ul>\n<p>And store it in <strong><code>labelsApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{labelsApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"b63b871a-6a08-4c7c-95e7-1b26e01fe228"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"699bbdb1-a88c-453d-8551-187ae17acee6"}}],"_postman_id":"5ff7ee5b-ffc5-4fe7-bd68-f61e82d227dc"},{"name":"Channels","item":[{"name":"List Channel Health Problems","id":"b6ccef3f-5186-427f-95e2-7b844ea5a31a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{channelsApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to retrieve a list of all current channel health problems. You can apply various filters, such as by severity or by specific account, etc.<br />This endpoint is useful for monitoring system health and diagnosing issues that may affect messaging performance.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The response contains a <strong><code>problems</code></strong> array with <a href=\"https://apidocs.texterchat.com/#probelm-object\">problem objects</a> and a <strong><code>total</code></strong> field that indicates the number of problems returned.<br />The problems are sorted by <strong>createdAt</strong> in ascending order.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","channels","health","problems"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>Also include already resolved problems records</p>\n","type":"text/plain"},"key":"includeResolved","value":""},{"disabled":true,"description":{"content":"<p>Filter by problem severity (warning / error)</p>\n","type":"text/plain"},"key":"severity","value":""},{"disabled":true,"description":{"content":"<p>Affected channel account ID</p>\n","type":"text/plain"},"key":"accountId","value":""},{"disabled":true,"description":{"content":"<p>How many results to skip</p>\n","type":"text/plain"},"key":"skip","value":""},{"disabled":true,"description":{"content":"<p>Max results to return</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>Channel type name (whatsapp / messenger / instagram / website_chat / email)</p>\n","type":"text/plain"},"key":"channel","value":""}],"variable":[]}},"response":[{"id":"fc328bf3-fce6-406e-93b5-e993e852b08a","name":"All \"Error\" Level Problems","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{channelsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems?severity=error","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","channels","health","problems"],"query":[{"key":"includeResolved","value":"","description":"Also include already resolved problems records","disabled":true},{"key":"severity","value":"error","description":"Filter by problem severity"},{"key":"accountId","value":"","description":"Affected channel account ID","disabled":true},{"key":"skip","value":"","description":"How many results to skip","disabled":true},{"key":"limit","value":"","description":"Max results to return","disabled":true},{"key":"channel","value":"","description":"Channel type name","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"total\": 1,\n    \"problems\": [\n        {\n            \"_id\": \"68be7a16475a76a869de5987\",\n            \"accountId\": \"972509876543\",\n            \"channel\": \"whatsapp\",\n            \"createdAt\": 1757313558371,\n            \"impairedFunctionality\": {\n                \"send\": false,\n                \"receive\": false\n            },\n            \"message\": \"WhatsApp app ID is not set\",\n            \"name\": \"whatsapp_app_id_error\",\n            \"severity\": \"error\"\n        }\n    ]\n}"},{"id":"850f4d6d-f2f7-4dea-ba4f-38ceb52c99d2","name":"Channel Problems & Resolved","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{channelsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems?includeResolved=true&channel=whatsapp","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","channels","health","problems"],"query":[{"key":"includeResolved","value":"true","description":"Also include already resolved problems records"},{"key":"severity","value":"","description":"Filter by problem severity","disabled":true},{"key":"accountId","value":"","description":"Affected channel account ID","disabled":true},{"key":"skip","value":"","description":"How many results to skip","disabled":true},{"key":"limit","value":"","description":"Max results to return","disabled":true},{"key":"channel","value":"whatsapp","description":"Channel type name"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"total\": 3,\n    \"problems\": [\n        {\n            \"_id\": \"67fe17ee90e28dd18b9f330e\",\n            \"channel\": \"whatsapp\",\n            \"accountId\": \"972509876543\",\n            \"name\": \"Message Delivery Delay\",\n            \"severity\": \"warning\",\n            \"impairedFunctionality\": {\n                \"send\": true,\n                \"receive\": false,\n                \"contactPhoneNumber\": true\n            },\n            \"message\": \"Observed delays in message delivery on WhatsApp.\",\n            \"instruction\": \"Verify server connection and check message queues.\",\n            \"createdAt\": 1680000000000,\n            \"startedAt\": 1680000100000,\n            \"resolvedAt\": 1758447847018\n        },\n        {\n            \"_id\": \"67fe17ee90e28dd18b9f3313\",\n            \"channel\": \"whatsapp\",\n            \"accountId\": \"972509876543\",\n            \"name\": \"Attachment Upload Failure\",\n            \"severity\": \"warning\",\n            \"impairedFunctionality\": {\n                \"attachments\": true,\n                \"send\": true\n            },\n            \"message\": \"Attachments fail to upload on WhatsApp messages.\",\n            \"instruction\": \"Check file size limits and network stability.\",\n            \"createdAt\": 1680500000000,\n            \"resolvedAt\": 1745324531457\n        },\n        {\n            \"_id\": \"688bc5f30c36e71b1d8cdb4a\",\n            \"accountId\": \"972541346790\",\n            \"channel\": \"whatsapp\",\n            \"createdAt\": 1753990643507,\n            \"impairedFunctionality\": {\n                \"send\": false,\n                \"receive\": false\n            },\n            \"message\": \"WhatsApp app ID is not set\",\n            \"name\": \"whatsapp_app_id_error\",\n            \"severity\": \"error\",\n            \"resolvedAt\": 1757313440790\n        }\n    ]\n}"},{"id":"3cb21430-72a7-4b9a-ad60-4a403faba6e3","name":"Error Get Channel Health Problems","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{channelsApiToken}}","type":"text"}],"url":{"raw":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems?channel=facebook","protocol":"https","host":["{{projectID}}","texterchat","com"],"path":["server","api","v2","channels","health","problems"],"query":[{"key":"includeResolved","value":"","description":"Also include already resolved problems records","disabled":true},{"key":"severity","value":"","description":"Filter by problem severity","disabled":true},{"key":"accountId","value":"","description":"Affected channel account ID","disabled":true},{"key":"skip","value":"","description":"How many results to skip","disabled":true},{"key":"limit","value":"","description":"Max results to return","disabled":true},{"key":"channel","value":"facebook","description":"Channel type name"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"data/channel must be equal to one of the allowed values\"\n}"}],"_postman_id":"b6ccef3f-5186-427f-95e2-7b844ea5a31a"},{"name":"Resolve Channel Health Problem","id":"f467b6fa-8b55-4806-9d43-85ef3acc3b05","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{channelsApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems/{{problemID}}/resolve","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to mark a specific channel health problem as resolved in Texter. Once resolved, the problem will no longer appear in active health problem listings.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>problemID</code></strong> - The unique identifier of the problem you want to resolve. You can obtain the problem ID by first calling the <a href=\"https://apidocs.texterchat.com/#b6ccef3f-5186-427f-95e2-7b844ea5a31a\">List Channel Health Problems</a> endpoint.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","channels","health","problems","{{problemID}}","resolve"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"f9d92a57-5173-49dc-8ea0-22deb36bb3e3","name":"Resolve Problem","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{channelsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems/{{problemID}}/resolve"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"ce6fb036-df17-47b4-aa29-050f4cd1e32d","name":"Error Resolve Problem","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{channelsApiToken}}","type":"text"}],"url":"https://{{projectID}}.texterchat.com/server/api/v2/channels/health/problems/{{problemID}}/resolve"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Problem already resolved before\"\n}"}],"_postman_id":"f467b6fa-8b55-4806-9d43-85ef3acc3b05"}],"id":"66bf2685-2df9-4d40-b6ea-7ac5e32674c6","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>This section contains all endpoints related to monitoring and maintaining the health of connected messaging channels.</p>\n<p>You can use these endpoints to retrieve active channel health problems, filter them by severity or account, and mark specific issues as resolved once addressed.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li>Manage Channels</li>\n</ul>\n<p>And store it in <strong><code>channelsApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{channelsApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"813242e7-c753-4b41-a4d1-019ee8f9eb26"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"9fe1a04b-a673-4ef1-84b9-0c7b16df3b43"}}],"_postman_id":"66bf2685-2df9-4d40-b6ea-7ac5e32674c6"},{"name":"Files","item":[{"name":"Generate Public Media URL","id":"b0d8e425-36d0-4df5-8bbc-2cef6d98e979","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{filesApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"ttl\": \"<NUMBER>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/files/share/{{fileID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Use this endpoint to generate a public URL for a media file stored in Texter.</p>\n<p>The generated link provides read-only access and remains valid according to the TTL (time-to-live) specified in the request, if provided. If no TTL is specified, the link does not expire.</p>\n<p>Generating a new link does not override existing ones - multiple public URLs can coexist for the same file.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>fileID</code></strong> - This can be obtained from the media[].fileId field within a message object, which you can retrieve using the <a href=\"https://apidocs.texterchat.com/#390c95b0-ee41-4c96-b97d-2d0370005cf9\">Get Messages of a Chat</a> endpoint.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th><strong>Required</strong></th>\n<th><strong>Description / Notes</strong></th>\n<th><strong>Allowed Values</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ttl</td>\n<td>number</td>\n<td>❌</td>\n<td>Time to live (in seconds). Defines how long the link remains valid before it expires</td>\n<td>from 10 to 630720000 (20 years)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expected-response\">Expected Response</h3>\n<p>The response includes a <strong><code>token</code></strong> and a <strong><code>url</code></strong> field. The <strong><code>url</code></strong> is a public link that incorporates the token and can be used to access the file until it expires.</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","files","share","{{fileID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[{"id":"e6561546-d3a8-4ad1-99d8-57071a0417b6","name":"Generate URL for 24 hours","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{filesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"ttl\": 86400\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/files/share/{{fileID}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"586c5aaebb8cfd628639f46d304b1b516b1d6365278455f6328c53a93b89833ff0f742127eb57c3b2de8dce83d4d8b873adb\",\n    \"url\": \"https://sandbox.texterchat.com/server/files/shared/6908fc09962e17ab3033fa13/586c5aaebb8cfd628639f46d304b1b516b1d6365278455f6328c53a93b89833ff0f742127eb57c3b2de8dce83d4d8b873adb\"\n}"},{"id":"695df436-fdb1-4e54-af34-d7acf4f59c74","name":"Error Generate URL","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{filesApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/files/share/{{fileID}}"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"Not Found"}],"_postman_id":"b0d8e425-36d0-4df5-8bbc-2cef6d98e979"}],"id":"059caeaa-5e67-4c29-a451-5f882465ed7d","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>This section contains the endpoint for generating public access links to media files stored in Texter.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>View All Files</p>\n</li>\n<li><p>View All Chats</p>\n</li>\n</ul>\n<p>And store it in <strong><code>filesApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{filesApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"34d7825c-642f-4c77-8462-e0cfe5dd2447","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"0abe2e88-0200-4414-b5aa-f58a0560afdc","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"059caeaa-5e67-4c29-a451-5f882465ed7d"},{"name":"Subscribe to Events","item":[{"name":"Manage Event Subscriptions","item":[{"name":"List All Subscriptions","id":"4f1e41a3-707c-47da-8c85-a91c1c53e983","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage","description":"<h3 id=\"description\">Description</h3>\n<p>Retrieve a list of all existing event subscriptions and scenarios in Texter.<br />All subsription scenarios will start with the prefix \"(SUB)\" in their name.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns an object containing the total number of scenarios that match the query and an array of the corresponding scenario objects.</p>\n<ul>\n<li><p><strong><code>scenarios</code></strong> - Array of scenario objects matching the search criteria</p>\n</li>\n<li><p><strong><code>total</code></strong> - Total number of scenarios found that match the query</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>The number of results to skip before starting to return records</p>\n","type":"text/plain"},"key":"skip","value":null},{"disabled":true,"description":{"content":"<p>The maximum number of results to return</p>\n","type":"text/plain"},"key":"limit","value":null},{"disabled":true,"description":{"content":"<p>Return only scenarios having one of these triggers in active revision</p>\n","type":"text/plain"},"key":"triggerEvents[]","value":null},{"disabled":true,"description":{"content":"<p>Return only scenarios with active revision</p>\n","type":"text/plain"},"key":"onlyActive","value":""},{"disabled":true,"description":{"content":"<p>Return only scenarios created by this user</p>\n","type":"text/plain"},"key":"draftsAuthor","value":null},{"disabled":true,"description":{"content":"<p>Sort the scenarios by modified time</p>\n","type":"text/plain"},"key":"sortLatestModified","value":null},{"disabled":true,"description":{"content":"<p>Sort the scenarios by activated time</p>\n","type":"text/plain"},"key":"sortLatestActivated","value":null}],"variable":[]}},"response":[],"_postman_id":"4f1e41a3-707c-47da-8c85-a91c1c53e983"},{"name":"Inactivate Subscription","id":"59946f95-6527-43ca-8cd3-d0a9742eb97e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/{{scenarioID}}/revisions/inactivate","description":"<h3 id=\"description\">Description</h3>\n<p>Pause a subscription. The scenario remains in your account but will stop triggering webhooks until reactivated</p>\n<h3 id=\"path-parameters\">Path Parameters:</h3>\n<ul>\n<li><strong><code>scenarioID</code></strong> - The unique identifier of the subscription. You can use the <a href=\"https://apidocs.texterchat.com/#4f1e41a3-707c-47da-8c85-a91c1c53e983\">List All Subscriptions</a> endpoint to get the relevant scenario ID under <code>scenarios[]._id</code></li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns the new scenario object</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","{{scenarioID}}","revisions","inactivate"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"59946f95-6527-43ca-8cd3-d0a9742eb97e"},{"name":"Activate Subscription","id":"83509784-e2e8-4d4e-adbd-876520e8379c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/{{scenarioID}}/revisions/{{scenarioVersion}}/activate","description":"<h3 id=\"description\">Description</h3>\n<p>Resume a paused subscription or revert to a specific version of the scenario</p>\n<h3 id=\"path-parameters\">Path Parameters:</h3>\n<ul>\n<li><p><strong><code>scenarioID</code></strong> - The unique identifier of the subscription. You can use the <a href=\"https://apidocs.texterchat.com/#4f1e41a3-707c-47da-8c85-a91c1c53e983\">List All Subscriptions</a> endpoint to get the relevant scenario ID under <code>scenarios[]._id</code></p>\n</li>\n<li><p><strong><code>scenarioVersion</code></strong> - The scenario version to activate. Can be found under <code>scenarios[].inactiveRevisions[].version</code></p>\n</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Returns the new scenario object</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","{{scenarioID}}","revisions","{{scenarioVersion}}","activate"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"83509784-e2e8-4d4e-adbd-876520e8379c"},{"name":"Delete Subscription","id":"61ab173b-eff6-46cb-9994-8bc6a5760d7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/{{scenarioID}}","description":"<h3 id=\"description\">Description</h3>\n<p>Permanently remove a subscription and all its history</p>\n<h3 id=\"path-parameters\">Path Parameters:</h3>\n<ul>\n<li><strong><code>scenarioID</code></strong> - The unique identifier of the subscription. You can use the <a href=\"https://apidocs.texterchat.com/#4f1e41a3-707c-47da-8c85-a91c1c53e983\">List All Subscriptions</a> endpoint to get the relevant scenario ID under <code>scenarios[]._id</code></li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p><code>204 No Content</code> (Empty body) on success</p>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","{{scenarioID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"61ab173b-eff6-46cb-9994-8bc6a5760d7c"}],"id":"0e0c6920-d89d-418b-81e9-fc34e87d139f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"5de081d8-665b-4dc7-9b86-85a616de9047","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"c660e3a8-7c3e-48fe-a82f-0741f68acf7c","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"0e0c6920-d89d-418b-81e9-fc34e87d139f","description":""},{"name":"Subscribe to Message Events","item":[{"name":"All Messages","id":"eede22a9-5a28-4f18-a8e6-526c82500ad0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) All Messages\",\r\n        \"description\": \"Sends a webhook for each new message (incoming & outgoing)\",\r\n        \"triggerEvents\": [\r\n            \"domain.message.created\"\r\n        ],\r\n        \"loaders\": {\r\n            \"beforeConditions\": [\r\n                {\r\n                    \"name\": \"chat\",\r\n                    \"alias\": \"chat\",\r\n                    \"params\": {\r\n                        \"id\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"parent_chat\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        },\r\n        \"conditions\": [],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"newMessage\",\r\n                        \"eventData\": {\r\n                            \"message\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"message\",\r\n                                    \"key\": \"message\"\r\n                                }\r\n                            },\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL for each new message event. This includes both <strong>incoming</strong> and <strong>outgoing</strong> messages.</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture message and chat data. You only need to modify the following specific fields within the JSON body:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>newMessage</code>) and an <code>eventData</code> object containing the specific resource details.</p>\n<ul>\n<li><p><strong><code>message</code></strong>: The <a href=\"https://apidocs.texterchat.com/#message-object\">message object</a></p>\n</li>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> the message belongs to</p>\n</li>\n</ul>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"newMessage\",\n    \"eventData\": {\n        \"message\": {\n            \"_id\": \"64de3b15398a8o09c47a9f62\",\n            \"text\": \"Hello world\",\n            \"direction\": \"outgoing\",\n            ...\n        },\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"displayName\": \"Tyler Joseph\",\n            ...\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"eede22a9-5a28-4f18-a8e6-526c82500ad0"},{"name":"New Incoming Messages","id":"1d47f02e-3471-41b2-83a7-bde40f910e43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) New Incoming Messages\",\r\n        \"description\": \"Sends a webhook for each new incoming message\",\r\n        \"triggerEvents\": [\r\n            \"domain.message.created\"\r\n        ],\r\n        \"loaders\": {\r\n            \"beforeConditions\": [],\r\n            \"afterConditions\": [\r\n                {\r\n                    \"name\": \"chat\",\r\n                    \"alias\": \"chat\",\r\n                    \"params\": {\r\n                        \"id\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"parent_chat\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        },\r\n        \"conditions\": [\r\n            [\r\n                {\r\n                    \"name\": \"filtrex\",\r\n                    \"params\": {\r\n                        \"expression\": \"direction == \\\"incoming\\\"\",\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"message\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        ],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"newIncomingMessage\",\r\n                        \"eventData\": {\r\n                            \"message\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"message\",\r\n                                    \"key\": \"message\"\r\n                                }\r\n                            },\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL for each new incoming message event. This excludes outgoing messages.</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture message and chat data. You only need to modify the following specific fields within the JSON body:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>newIncomingMessage</code>) and an <code>eventData</code> object containing the specific resource details.</p>\n<ul>\n<li><p><strong><code>message</code></strong>: The incoming <a href=\"https://apidocs.texterchat.com/#message-object\">message object</a></p>\n</li>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> the message belongs to</p>\n</li>\n</ul>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"newIncomingMessage\",\n    \"eventData\": {\n        \"message\": {\n            \"_id\": \"64de3b15398a8o09c47a9f62\",\n            \"text\": \"Hey, can someone call me back?\",\n            \"direction\": \"incoming\",\n            ...\n        },\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"displayName\": \"Josh Dun\",\n            ...\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"1d47f02e-3471-41b2-83a7-bde40f910e43"},{"name":"Messages with Specific Text","id":"16cfa8ed-75b1-47ba-b719-07c589dc3619","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Messages with Specific Text\",\r\n        \"description\": \"Sends a webhook when a new incoming message includes a specific word(s).\",\r\n        \"triggerEvents\": [\r\n            \"domain.message.created\"\r\n        ],\r\n        \"loaders\": {\r\n            \"beforeConditions\": [],\r\n            \"afterConditions\": [\r\n                {\r\n                    \"name\": \"chat\",\r\n                    \"alias\": \"chat\",\r\n                    \"params\": {\r\n                        \"id\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"parent_chat\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        },\r\n        \"conditions\": [\r\n            [\r\n                {\r\n                    \"name\": \"filtrex\",\r\n                    \"params\": {\r\n                        \"expression\": \"direction == \\\"incoming\\\"\",\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"message\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                },\r\n                {\r\n                    \"name\": \"filtrex\",\r\n                    \"params\": {\r\n                        \"expression\": \"text == \\\"{{word1}}\\\" or text == \\\"{{word2}}\\\" \",\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"message\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        ],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"newMatchedMessage\",\r\n                        \"eventData\": {\r\n                            \"message\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"message\",\r\n                                    \"key\": \"message\"\r\n                                }\r\n                            },\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL whenever a new incoming message matches specific text criteria. This allows you to filter events based on keywords, phrases, or complex logic.</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture message and chat data. You need to modify the <code>url</code> and define your matching logic in the <code>expression</code> field:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>expression</code></strong> <em>(Required)</em>: Located under <code>data.conditions[0][1].params.expression</code>. You must replace the placeholder logic with your specific matching criteria using the syntax <code>text == \"your keyword\"</code>.</p>\n<ul>\n<li><p><strong>Single Keyword:</strong> <code>\"text == \\\"help\\\"\"</code></p>\n</li>\n<li><p><strong>Multiple Keywords (OR):</strong> <code>\"text == \\\"buy\\\" or text == \\\"purchase\\\"\"</code></p>\n</li>\n<li><p><strong>Complex Logic:</strong> Supports <code>and</code>, <code>or</code>, <code>not</code>, and parentheses <code>()</code>.</p>\n<ul>\n<li><em>Example:</em> <code>\"(text == \\\"urgent\\\" and text == \\\"error\\\") or text == \\\"critical\\\"\"</code></li>\n</ul>\n</li>\n<li><p><strong>Whole Sentences:</strong> Matches the exact string. <code>\"text == \\\"I want to speak to a human\\\"\"</code></p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers (i.e., a message arrives that matches your expression), your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>newMatchedMessage</code>) and an <code>eventData</code> object containing the specific resource details.</p>\n<ul>\n<li><p><strong><code>message</code></strong>: The incoming <a href=\"https://apidocs.texterchat.com/#message-object\">message object</a></p>\n</li>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> the message belongs to</p>\n</li>\n</ul>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"newMatchedMessage\",\n    \"eventData\": {\n        \"message\": {\n            \"_id\": \"64de3b15398a8o09c47a9f62\",\n            \"text\": \"I need help with my billing\",\n            \"direction\": \"incoming\",\n            ...\n        },\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"displayName\": \"Niv Shtein\",\n            ...\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"16cfa8ed-75b1-47ba-b719-07c589dc3619"},{"name":"Messages with Attachments","id":"49932bde-5a78-4275-a6fb-97683b5e918f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Messages with Attachments\",\r\n        \"description\": \"Sends a webhook when a new incoming message includes a media item (image / video / document / audio / sticker)\",\r\n        \"triggerEvents\": [\r\n            \"domain.message.created\"\r\n        ],\r\n        \"loaders\": {\r\n            \"beforeConditions\": [],\r\n            \"afterConditions\": [\r\n                {\r\n                    \"name\": \"chat\",\r\n                    \"alias\": \"chat\",\r\n                    \"params\": {\r\n                        \"id\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"parent_chat\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        },\r\n        \"conditions\": [\r\n            [\r\n                {\r\n                    \"name\": \"filtrex\",\r\n                    \"params\": {\r\n                        \"expression\": \"direction == \\\"incoming\\\"\",\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"message\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                },\r\n                {\r\n                    \"name\": \"filtrex\",\r\n                    \"params\": {\r\n                        \"expression\": \"type == \\\"media\\\"\",\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"message\",\r\n                                \"key\": \"message\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        ],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"newMediaMessage\",\r\n                        \"eventData\": {\r\n                            \"message\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"message\",\r\n                                    \"key\": \"message\"\r\n                                }\r\n                            },\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL whenever a new incoming message contains a media attachment. This triggers for images, videos, audio files, documents, or stickers.</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture message and chat data, and filters specifically for messages where <code>type == \"media\"</code>. You only need to modify the following fields:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>newMediaMessage</code>) and an <code>eventData</code> object containing the specific resource details.</p>\n<ul>\n<li><p><strong><code>message</code></strong>: The incoming <a href=\"https://apidocs.texterchat.com/#message-object\">message object</a>. This will contain the media details.</p>\n</li>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> the message belongs to.</p>\n</li>\n</ul>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"newMediaMessage\",\n    \"eventData\": {\n        \"message\": {\n            \"_id\": \"64de3b15398a8o09c47a9f62\",\n            \"type\": \"media\",\n            \"media\": [\n                {\n                    \"mediaType\": \"image\",\n                    \"caption\": \"how much does it cost?\",\n                    \"fileId\": \"696325cb1bc02c8a8a9f383a\",\n                    \"filename\": \"image.png\"\n                }\n            ],\n            \"direction\": \"incoming\",\n            ...\n        },\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"displayName\": \"Noa Yoter\",\n            ...\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"49932bde-5a78-4275-a6fb-97683b5e918f"},{"name":"Messages Failed to Deliver","id":"91386108-a1b2-4e8d-9492-55aefb323e49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Messages Failed to Deliver\",\r\n        \"description\": \"Sends a webhook when an outgoing message fails to deliver (blocked by Meta)\",\r\n        \"triggerEvents\": [\r\n            \"app.message.statusRequest\"\r\n        ],\r\n        \"loaders\": {\r\n            \"afterConditions\": [\r\n                {\r\n                    \"name\": \"chat\",\r\n                    \"alias\": \"chat\",\r\n                    \"params\": {\r\n                        \"name\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"chat.name\"\r\n                            }\r\n                        },\r\n                        \"accountId\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"chat.accountId\"\r\n                            }\r\n                        },\r\n                        \"idByChannel\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"chat.id\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        },\r\n        \"conditions\": [\r\n            [\r\n                {\r\n                    \"name\": \"compare\",\r\n                    \"params\": {\r\n                        \"comparison\": \"Equal\",\r\n                        \"compareTo\": 4,\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"status\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ],\r\n            [\r\n                {\r\n                    \"name\": \"compare\",\r\n                    \"params\": {\r\n                        \"comparison\": \"Equal\",\r\n                        \"compareTo\": 5,\r\n                        \"value\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"status\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        ],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"messageFailed\",\r\n                        \"eventData\": {\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            },\r\n                            \"error\": \"%messageStatusRequest:error%\",\r\n                            \"timestamp\": \"%messageStatusRequest:timestamp%\",\r\n                            \"externalId\": \"%messageStatusRequest:ids%\"\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL whenever an outgoing message fails to deliver (e.g., blocked by Meta/WhatsApp, invalid number, or network failure).</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture status requests where the status indicates failure (Codes 4 or 5). You only need to modify the following specific fields:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>messageFailed</code>) and an <code>eventData</code> object containing the failure details.</p>\n<ul>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> associated with the failed message.</p>\n</li>\n<li><p><strong><code>error</code></strong>: The error message or code received from the provider.</p>\n</li>\n<li><p><strong><code>timestamp</code></strong>: The timestamp (Unix Epoch milliseconds) when the failure occurred.</p>\n</li>\n<li><p><strong><code>externalId</code></strong>: An array of unique IDs assigned to the message(s) by the external provider (e.g., WhatsApp).</p>\n</li>\n</ul>\n<h4 id=\"⚠️-how-to-identify-the-failed-message\">⚠️ How to Identify the Failed Message</h4>\n<p>Because this event is triggered by the external provider (e.g., Meta/WhatsApp), the payload <strong>does not</strong> contain the internal <code>message._id</code>. Instead, it provides the <code>externalId</code>.</p>\n<p>To find the specific message details within your system:</p>\n<ol>\n<li><p>Take the <code>_id</code> from the <strong><code>chat</code></strong> object in the payload.</p>\n</li>\n<li><p>Use the <a href=\"https://apidocs.texterchat.com/#390c95b0-ee41-4c96-b97d-2d0370005cf9\">Get Messages of a Chat</a> endpoint.</p>\n</li>\n<li><p>Filter the results to find the message where its <code>channelInfo.id</code> matches one of the values in the <strong><code>externalId</code></strong> array received in this webhook.</p>\n</li>\n</ol>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"eventName\": \"messageFailed\",\n  \"eventData\": {\n    \"chat\": {\n      \"_id\": \"69072b0233aea8a47f8bad9f\",\n      \"hasMessageError\": true,\n      \"title\": \"972521234567\",\n      ...\n    },\n    \"error\": \"Message undeliverable\\nMessage Undeliverable.\",\n    \"timestamp\": 1768141074000,\n    \"externalId\": [\n      \"wamid.HBgMOTcyNTIxMjM0NTY3FQIAERgSMDhGRTVGNEY1MTA0Q0NBMzNEAA==\"\n    ]\n  }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"91386108-a1b2-4e8d-9492-55aefb323e49"},{"name":"Message Status Changed","id":"012aee75-f6fa-4974-8647-3c4ca8c79736","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Messages Status Changed\",\r\n        \"description\": \"Sends a webhook for all outgoing messages status changes (e.g., from \\\"Delivered\\\" to \\\"Seen\\\")\",\r\n        \"triggerEvents\": [\r\n            \"app.message.statusRequest\"\r\n        ],\r\n        \"loaders\": {\r\n            \"beforeConditions\": [\r\n                {\r\n                    \"name\": \"chat\",\r\n                    \"alias\": \"chat\",\r\n                    \"params\": {\r\n                        \"name\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"chat.name\"\r\n                            }\r\n                        },\r\n                        \"accountId\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"chat.accountId\"\r\n                            }\r\n                        },\r\n                        \"idByChannel\": {\r\n                            \"##provide\": {\r\n                                \"provider\": \"messageStatusRequest\",\r\n                                \"key\": \"chat.id\"\r\n                            }\r\n                        }\r\n                    },\r\n                    \"confidentialData\": false\r\n                }\r\n            ]\r\n        },\r\n        \"conditions\": [],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"messageStatusChanged\",\r\n                        \"eventData\": {\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            },\r\n                            \"messageStatus\": \"%messageStatusRequest:status%\",\r\n                            \"error\": \"%messageStatusRequest:error%\",\r\n                            \"timestamp\": \"%messageStatusRequest:timestamp%\",\r\n                            \"externalId\": \"%messageStatusRequest:ids%\"\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL whenever the status of an outgoing message changes. This allows you to track the lifecycle of a message (e.g., \"Sent\" to \"Delivered\" to \"Seen\").</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture all status change events. You only need to modify the following specific fields:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>messageStatusChanged</code>) and an <code>eventData</code> object containing the status details.</p>\n<ul>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> associated with the message.</p>\n</li>\n<li><p><strong><code>messageStatus</code></strong>: An integer representing the new status. See the <strong>Status Codes</strong> below.</p>\n</li>\n<li><p><strong><code>error</code></strong>: The error message (only present if status is <code>4</code> or <code>5</code>, otherwise <code>null</code>).</p>\n</li>\n<li><p><strong><code>timestamp</code></strong>: The timestamp (Unix Epoch milliseconds) when the status changed.</p>\n</li>\n<li><p><strong><code>externalId</code></strong>: An array of unique IDs assigned to the message(s) by the external provider (e.g., WhatsApp).</p>\n</li>\n</ul>\n<h4 id=\"status-codes\">Status Codes</h4>\n<p>The <code>messageStatus</code> field will contain one of the following integer values:</p>\n<ul>\n<li><p><strong>0 - Sent</strong>: Message sent from the platform.</p>\n</li>\n<li><p><strong>1 - Accepted</strong>: Accepted by the provider (e.g., Meta received it).</p>\n</li>\n<li><p><strong>2 - Delivered</strong>: Delivered to the recipient's device.</p>\n</li>\n<li><p><strong>3 - Seen</strong>: Read/Opened by the recipient (Blue ticks).</p>\n</li>\n<li><p><strong>4 - Failed</strong>: Failed to deliver (e.g., invalid number).</p>\n</li>\n<li><p><strong>5 - Channel Failed</strong>: System/Channel level failure.</p>\n</li>\n<li><p><strong>6 - Deleted</strong>: Message was deleted.</p>\n</li>\n</ul>\n<h4 id=\"⚠️-how-to-identify-the-message\">⚠️ How to Identify the Message</h4>\n<p>Because this event is triggered by the external provider (e.g., Meta/WhatsApp), the payload <strong>does not</strong> contain the internal <code>message._id</code>. Instead, it provides the <code>externalId</code>.</p>\n<p>To find the specific message details within your system:</p>\n<ol>\n<li><p>Take the <code>_id</code> from the <strong><code>chat</code></strong> object in the payload.</p>\n</li>\n<li><p>Use the <a href=\"https://apidocs.texterchat.com/#390c95b0-ee41-4c96-b97d-2d0370005cf9\">Get Messages of a Chat</a> endpoint.</p>\n</li>\n<li><p>Filter the results to find the message where its <code>channelInfo.id</code> matches one of the values in the <strong><code>externalId</code></strong> array received in this webhook.</p>\n</li>\n</ol>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"eventName\": \"messageStatusChanged\",\n  \"eventData\": {\n    \"chat\": {\n      \"_id\": \"69072b0233aea8a47f8bad9f\",\n      \"displayName\": \"Josh Dun\",\n      \"channelInfo\": {\n        \"name\": \"whatsapp\",\n        \"id\": \"972521234567\"\n      },\n      ...\n    },\n    \"messageStatus\": 3,\n    \"error\": null,\n    \"timestamp\": 1768141074000,\n    \"externalId\": [\n      \"wamid.HBgMOTcyNTIxMjM0NTY3FQIAERgSMDhGRTVGNEY1MTA0Q0NBMzNEAA==\"\n    ]\n  }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"012aee75-f6fa-4974-8647-3c4ca8c79736"}],"id":"e77b18ff-49d8-48ac-b7af-562506356799","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"af52babf-8dff-488e-937e-72a69942cfe6","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"d2f3ffe3-2a79-4f46-8788-8bbbf1e62dbb","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"e77b18ff-49d8-48ac-b7af-562506356799","description":""},{"name":"Subscribe to Chat Events","item":[{"name":"Chat Unsubscribed from Template Messages","id":"5e47d968-2943-4d14-a92b-6c2ff5bbf483","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Chat Unsubscribed\",\r\n        \"description\": \"Sends a webhook when a chat unsubscribed from receiving template messages (e.g., by replying \\\"הסר\\\")\",\r\n        \"triggerEvents\": [\r\n            \"domain.chat.unsubscribed\"\r\n        ],\r\n        \"loaders\": {},\r\n        \"conditions\": [],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"chatUnsubscribed\",\r\n                        \"eventData\": {\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL when a <strong>chat unsubscribes from template messages</strong> - for example when the customer sends an opt-out keyword such as <strong>\"הסר\"</strong> or when an agent in Texter manually unsubcribes the chat.</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture chat data. You only need to modify the following specific fields within the JSON body:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>chatUnsubscribed</code>) and an <code>eventData</code> object containing the specific resource details.</p>\n<ul>\n<li><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> for the conversation that unsubscribed. When this event fires, the chat typically includes template-unsubscribe metadata such as <strong><code>unsubscribed.date</code></strong> and <strong><code>unsubscribed.bulkSendId</code></strong> (see the Chat Object reference).</li>\n</ul>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"chatUnsubscribed\",\n    \"eventData\": {\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"displayName\": \"Tyler Joseph\",\n            \"unsubscribed\": {\n                \"date\": \"2025-10-30T21:01:48.989Z\",\n                \"bulkSendId\": \"97337f16-e717-4ac9-b2dd-8552909b9252\"\n            },\n            ...\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"5e47d968-2943-4d14-a92b-6c2ff5bbf483"},{"name":"Chat Subscribed to Template Messages","id":"4e2f1cb3-9b4d-468c-997a-a90c4a6a0a0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Chat Subscribed\",\r\n        \"description\": \"Sends a webhook when a chat subscribes or opts back in to receiving template messages.\",\r\n        \"triggerEvents\": [\r\n            \"domain.chat.subscribed\"\r\n        ],\r\n        \"loaders\": {},\r\n        \"conditions\": [],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"chatSubscribed\",\r\n                        \"eventData\": {\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL when a <strong>chat subscribes or opts back in</strong> to template messages.</p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture chat data. You only need to modify the following specific fields within the JSON body:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. Replace the placeholder <code>{{yourWebhookURL}}</code> with the URL that should receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Use <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When the event fires, your webhook receives a <strong>POST</strong> with JSON:</p>\n<ul>\n<li><p><strong><code>eventName</code></strong>: <code>chatSubscribed</code></p>\n</li>\n<li><p><strong><code>eventData.chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a> for the conversation.</p>\n</li>\n</ul>\n<p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"chatSubscribed\",\n    \"eventData\": {\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"title\": \"Tyler Joseph\",\n            \"...\"\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4e2f1cb3-9b4d-468c-997a-a90c4a6a0a0d"},{"name":"Chat Taken","id":"62a17891-a502-4741-8589-d0a9c9c3cdbc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"version\": \"v1\",\r\n        \"name\": \"(SUB) Chat Assigned\",\r\n        \"description\": \"Sends a webhook when a chat is assigned, with full chat data and a narrowed agent object.\",\r\n        \"triggerEvents\": [\r\n            \"domain.chat.assigned\"\r\n        ],\r\n        \"loaders\": {},\r\n        \"conditions\": [],\r\n        \"actions\": [\r\n            {\r\n                \"name\": \"request\",\r\n                \"params\": {\r\n                    \"url\": \"{{yourWebhookURL}}\",\r\n                    \"method\": \"post\",\r\n                    \"json\": true,\r\n                    \"data\": {\r\n                        \"eventName\": \"chatAssigned\",\r\n                        \"eventData\": {\r\n                            \"chat\": {\r\n                                \"##provide\": {\r\n                                    \"provider\": \"chat\",\r\n                                    \"key\": \"chat\"\r\n                                }\r\n                            },\r\n                            \"agent\": {\r\n                                \"id\": {\r\n                                    \"##provide\": {\r\n                                        \"provider\": \"agent\",\r\n                                        \"key\": \"_id\"\r\n                                    }\r\n                                },\r\n                                \"crmId\": {\r\n                                    \"##provide\": {\r\n                                        \"provider\": \"agent\",\r\n                                        \"key\": \"crmId\"\r\n                                    }\r\n                                },\r\n                                \"email\": {\r\n                                    \"##provide\": {\r\n                                        \"provider\": \"agent\",\r\n                                        \"key\": \"email\"\r\n                                    }\r\n                                },\r\n                                \"displayName\": {\r\n                                    \"##provide\": {\r\n                                        \"provider\": \"agent\",\r\n                                        \"key\": \"displayName\"\r\n                                    }\r\n                                },\r\n                                \"roles\": {\r\n                                    \"##provide\": {\r\n                                        \"provider\": \"agent\",\r\n                                        \"key\": \"roles\"\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                },\r\n                \"confidentialData\": false\r\n            }\r\n        ],\r\n        \"options\": {\r\n            \"unorderedActions\": false\r\n        }\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","description":"<h3 id=\"description\">Description</h3>\n<p>Subscribe to receive notifications to your specified webhook URL when a chat is <strong>taken by an agent.</strong></p>\n<h3 id=\"body-params\">Body Params</h3>\n<p>The request body is pre-configured to capture chat and agent data. You only need to modify the following specific fields within the JSON body:</p>\n<ul>\n<li><p><strong><code>url</code></strong> <em>(Required)</em>: Located under <code>data.actions[0].params.url</code>. You must replace the placeholder <code>{{yourWebhookURL}}</code> with the actual destination URL where you want to receive the events.</p>\n</li>\n<li><p><strong><code>asStatus</code></strong>: Located at the root. Keep this <code>\"active\"</code> to enable the subscription immediately, or <code>\"inactive\"</code> to save it as an inactive revision.</p>\n</li>\n</ul>\n<h3 id=\"expected-payload\">Expected Payload</h3>\n<p>When an event triggers, your webhook URL will receive a <code>POST</code> request.</p>\n<p>The payload structure contains an <code>eventName</code> (set to <code>chatAssigned</code>) and an <code>eventData</code> object containing the specific resource details.</p>\n<ul>\n<li><p><strong><code>chat</code></strong>: The <a href=\"https://apidocs.texterchat.com/#chat-object\">chat object</a></p>\n</li>\n<li><p><strong><code>agent</code></strong>: A narrowed agent object with <code>id</code>, <code>crmId</code>, <code>email</code>, <code>displayName</code>, and <code>roles</code></p>\n</li>\n</ul>\n<p><strong>Example Payload received by your Webhook:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"eventName\": \"chatAssigned\",\n    \"eventData\": {\n        \"chat\": {\n            \"_id\": \"69062b15262e17ab3033f886\",\n            \"displayName\": \"Josh Dun\",\n            ...\n        },\n        \"agent\": {\n            \"id\": \"333aed7a-b3ea-4e5c-acbc-d8499be509c3\",\n            \"crmId\": \"alex1999\",\n            \"email\": \"agent@example.com\",\n            \"displayName\": \"Alex\",\n            \"roles\": [\"admin\"]\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"62a17891-a502-4741-8589-d0a9c9c3cdbc"},{"name":"Chat Resolved","id":"bfb43ced-32d4-41c1-9eeb-35bbaa209ef8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"bfb43ced-32d4-41c1-9eeb-35bbaa209ef8"},{"name":"Chat Resolved by Bot","id":"a7326486-7de9-48b2-97e4-f4bfbf704071","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a7326486-7de9-48b2-97e4-f4bfbf704071"},{"name":"Chat Labels Changed","id":"34aafedc-1d32-4da7-aec2-fe8355922543","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"34aafedc-1d32-4da7-aec2-fe8355922543"},{"name":"Specific Label Added to Chat","id":"723363cc-57c7-4c13-8ef3-3c092fe169e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"723363cc-57c7-4c13-8ef3-3c092fe169e8"},{"name":"Chat externalBot Set to True","id":"4053e315-632d-42c7-bdbb-7bb956e7cedf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4053e315-632d-42c7-bdbb-7bb956e7cedf"},{"name":"Chat externalBot Set to False","id":"7fd56430-2bfe-4de7-929d-65a5dfa7c2a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"7fd56430-2bfe-4de7-929d-65a5dfa7c2a5"}],"id":"541c8c16-dc65-4e15-86ba-f66685fcaab3","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"11f47bb7-2f94-4ea6-8301-baf1d628fed5","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"c86e4334-26fd-441f-b71b-69d617d85858","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"541c8c16-dc65-4e15-86ba-f66685fcaab3","description":""},{"name":"Subscribe to Channel Health Events","item":[{"name":"Channel Health Problem Created","id":"9637ea2b-4b6a-406e-9907-451da8b84ffc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"9637ea2b-4b6a-406e-9907-451da8b84ffc"},{"name":"Channel Health Problem Resolved","id":"a7147d18-3eeb-4375-9f18-da9c9ce700ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{scenariosApiToken}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": \r\n    { \r\n        // Coming Soon\r\n    },\r\n    \"asStatus\": \"active\" // inactive/active\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/scenarios/manage/import","urlObject":{"protocol":"https","path":["server","api","v2","scenarios","manage","import"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a7147d18-3eeb-4375-9f18-da9c9ce700ce"}],"id":"87c87a4a-b738-4c54-8712-224e6eee58fe","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"f459b61f-d3fd-4da6-ad07-6184f4fb5c4e","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"5b86f26e-f2a1-453a-84a5-67c1018b1fdd","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"87c87a4a-b738-4c54-8712-224e6eee58fe","description":""}],"id":"d4d1c5da-ad39-4870-b328-0b36a74f3468","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>The <strong>Subscribe to Events</strong> API allows you to register webhooks for specific events occurring in your Texter environment.</p>\n<p>Under the hood, this system utilizes <strong>Scenarios -</strong> a workflow automation type feature within Texter. However, to make integration easy, we provide <strong>pre-defined templates</strong>. You simply \"Import\" a scenario JSON (which we provide in the sub-folders below), plug in your webhook url, and the subscription is active.</p>\n<p>On top of importing the scenario, provided below are several endpoints to help you manage your subscriptions.</p>\n<p>If the provided template events don't satisfy your needs, please contact the <a href=\"https://wa.me/972586640430\">Texter Support</a> team and we'd gladly help modify any triggers/conditions/actions needed for your webhook.</p>\n<h3 id=\"authorization\"><strong>Authorization</strong></h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li><p>View Scenarios</p>\n</li>\n<li><p>Create Scenarios</p>\n</li>\n<li><p>Delete Scenarios</p>\n</li>\n<li><p>Activate/Inactivate Scenarios</p>\n</li>\n<li><p>Manage Scenarios on behalf of User</p>\n</li>\n</ul>\n<p>And store it in <strong><code>scenariosApiToken</code></strong></p>\n<h3 id=\"scenario-object\"><strong>Scenario Object</strong></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique identifier of the subscription/scenario</td>\n</tr>\n<tr>\n<td><code>drafts</code></td>\n<td>array</td>\n<td>Array of scenarios still in draft</td>\n</tr>\n<tr>\n<td><code>inactiveRevisions</code></td>\n<td>array</td>\n<td>Array of inactive revisions</td>\n</tr>\n<tr>\n<td><code>activeRevision</code></td>\n<td>object</td>\n<td>The currently active version of the scenario</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"revision-object\"><strong>Revision Object</strong></h3>\n<p>The <code>activeRevision</code> and items inside <code>inactiveRevisions</code> follow this structure. It represents a specific snapshot of the scenario logic.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique identifier of this specific revision</td>\n</tr>\n<tr>\n<td><code>scenarioId</code></td>\n<td>string</td>\n<td>Reference to the parent Scenario ID</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Human-readable name of the subscription/scenario</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>Optional description of what this scenario does</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>The state of this specific revision - <code>active</code> or <code>inactive</code></td>\n</tr>\n<tr>\n<td><code>version</code></td>\n<td>number</td>\n<td>The version number of this revision</td>\n</tr>\n<tr>\n<td><code>parentVersion</code></td>\n<td>number</td>\n<td>The version number this revision was based on</td>\n</tr>\n<tr>\n<td><code>revisionComment</code></td>\n<td>string</td>\n<td>Comment explaining changes in this specific revision</td>\n</tr>\n<tr>\n<td><code>triggerEvents</code></td>\n<td>string[]</td>\n<td>List of internal events that trigger this scenario</td>\n</tr>\n<tr>\n<td><code>conditions</code></td>\n<td>array</td>\n<td>Condition / filters applied before actions are taken</td>\n</tr>\n<tr>\n<td><code>loaders</code></td>\n<td>object</td>\n<td>Data loaders required for the scenario context</td>\n</tr>\n<tr>\n<td><code>actions</code></td>\n<td>object[]</td>\n<td>The list of actions (e.g., Webhook requests) to execute</td>\n</tr>\n<tr>\n<td><code>options.unorderedActions</code></td>\n<td>boolean</td>\n<td>If <code>true</code>, actions may run in parallel. If <code>false</code>, actions run sequentially</td>\n</tr>\n<tr>\n<td><code>metadata.authorUid</code></td>\n<td>string</td>\n<td>The User ID of the person who created this revision</td>\n</tr>\n<tr>\n<td><code>metadata.created</code></td>\n<td>number</td>\n<td>Timestamp (ms) of revision creation</td>\n</tr>\n<tr>\n<td><code>metadata.modified</code></td>\n<td>number</td>\n<td>Timestamp (ms) of the last draft modification before it became a revision</td>\n</tr>\n<tr>\n<td><code>metadata.activated</code></td>\n<td>number</td>\n<td>Timestamp (ms) of the most recent activation</td>\n</tr>\n<tr>\n<td><code>metadata.activations</code></td>\n<td>array</td>\n<td>History of when and by whom this revision was activated</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{scenariosApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"016062e4-111e-4d4f-a42a-2938d06cee51","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"3f57bad0-f6a6-4502-a570-e477835399f5","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"d4d1c5da-ad39-4870-b328-0b36a74f3468"},{"name":"Quick Replies - Coming Soon","item":[{"name":"Get Existing Quick Replies","id":"89770251-3e66-47be-9f86-725c25428960","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/quick-replies","description":"<h3 id=\"description\">Description</h3>\n<p>-</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<p>-</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>-</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>-</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{quickRepliesApiToken}}"}]},"isInherited":true,"source":{"_postman_id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","name":"Quick Replies - Coming Soon","type":"folder"}},"urlObject":{"protocol":"https","path":["server","api","v2","quick-replies"],"host":["{{projectID}}","texterchat","com"],"query":[{"disabled":true,"description":{"content":"<p>How many results to skip</p>\n","type":"text/plain"},"key":"skip","value":""},{"disabled":true,"description":{"content":"<p>Max results to return</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>Sort alphabetically by display.title</p>\n","type":"text/plain"},"key":"sortTitle","value":""},{"disabled":true,"description":{"content":"<p>Sort by metadata.created</p>\n","type":"text/plain"},"key":"sortCreated","value":""},{"disabled":true,"description":{"content":"<p>Sort by metadata.updated</p>\n","type":"text/plain"},"key":"sortUpdated","value":""},{"disabled":true,"description":{"content":"<p>Channel type name</p>\n","type":"text/plain"},"key":"forChat.name","value":""},{"disabled":true,"description":{"content":"<p>Channel accound ID</p>\n","type":"text/plain"},"key":"forChat.accountId","value":""},{"disabled":true,"description":{"content":"<p>Specific chat ID</p>\n","type":"text/plain"},"key":"forChat.id","value":""},{"disabled":true,"description":{"content":"<p>Filter by display position</p>\n","type":"text/plain"},"key":"position","value":""},{"disabled":true,"description":{"content":"<p>Only quick-replies that include at least one message of the listed content types</p>\n","type":"text/plain"},"key":"hasContentsType","value":"['text', 'media', 'contacts', 'location', 'buttons', 'list', 'postback', 'special']"}],"variable":[]}},"response":[],"_postman_id":"89770251-3e66-47be-9f86-725c25428960"},{"name":"Create Quick Reply","id":"23ac2b82-32d1-4374-987b-af2e9913f351","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"send\": {\r\n        \"contents\": [\r\n            { /* MessageContents object */ }\r\n        ],\r\n        \"betweenMessagesDelay\": 1000,       // Delay in ms\r\n        \"target\": [\r\n            {\r\n                \"name\": \"<channel>\",        // e.g. \"whatsapp\", \"messenger\"\r\n                \"accountId\": \"<accountId>\", \r\n                \"id\": \"<chatId?>\"           // Optional - restrict to a single chat\r\n            }\r\n        ]\r\n    },\r\n    \"displayPosition\": \"top\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{projectID}}.texterchat.com/server/api/v2/quick-replies","description":"<h3 id=\"description\">Description</h3>\n<p>-</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<p>-</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>-</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>-</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{quickRepliesApiToken}}"}]},"isInherited":true,"source":{"_postman_id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","name":"Quick Replies - Coming Soon","type":"folder"}},"urlObject":{"protocol":"https","path":["server","api","v2","quick-replies"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"23ac2b82-32d1-4374-987b-af2e9913f351"},{"name":"Update Existing Quick Reply","id":"303b6793-0688-4cb5-ab55-1824ce478558","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/quick-replies/{{quickReplyID}}","description":"<h3 id=\"description\">Description</h3>\n<p>-</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<p>-</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>-</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>-</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{quickRepliesApiToken}}"}]},"isInherited":true,"source":{"_postman_id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","name":"Quick Replies - Coming Soon","type":"folder"}},"urlObject":{"protocol":"https","path":["server","api","v2","quick-replies","{{quickReplyID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"303b6793-0688-4cb5-ab55-1824ce478558"},{"name":"Delete Quick Reply","id":"f213cf08-5ead-4c4a-92a7-3819164327c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://{{projectID}}.texterchat.com/server/api/v2/quick-replies/{{quickReplyID}}","description":"<h3 id=\"description\">Description</h3>\n<p>-</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<p>-</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>-</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>-</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{quickRepliesApiToken}}"}]},"isInherited":true,"source":{"_postman_id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","name":"Quick Replies - Coming Soon","type":"folder"}},"urlObject":{"protocol":"https","path":["server","api","v2","quick-replies","{{quickReplyID}}"],"host":["{{projectID}}","texterchat","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f213cf08-5ead-4c4a-92a7-3819164327c4"}],"id":"400f1a24-b0ff-4e01-ae6f-7f171a149794","description":"<h3 id=\"overview\"><strong>Overview</strong></h3>\n<p>Coming Soon...</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Generate a token with the following scopes:</p>\n<ul>\n<li>Manage Quick Replies</li>\n</ul>\n<p>And store it in <strong><code>quickRepliesApiToken</code></strong></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{quickRepliesApiToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"29dff0ca-42e2-48e2-9f6f-a16d17a20c36"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"053e41d0-b8ee-4888-8113-117d0167c7e0"}}],"_postman_id":"400f1a24-b0ff-4e01-ae6f-7f171a149794"}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]}},"event":[{"listen":"prerequest","script":{"id":"968d1d12-59d6-42a7-bf65-9690d8dea5bc","type":"text/javascript","requests":{},"exec":[""]}},{"listen":"test","script":{"id":"baa61a64-7aa3-4015-a14a-ca7c0cffc55c","type":"text/javascript","requests":{},"exec":[""]}}]}