{
  "item": [
    {
      "id": "ec95e33b-36f6-410a-b4cd-8b7f91630f73",
      "name": "Conversations",
      "description": {
        "content": "Obtain or create a `conversationId` for **in-conversation** messaging.\n\n**Three options:** (1) `POST /api/conversations/getConversationByPhoneAndEmail` — find or create contact + conversation from phone/email. (2) `POST /api/contacts/create-new-conversation` — create contact (if needed) and conversation in one request. (3) `POST /api/conversations` — create conversation when you already have a `contactId`.\n\n**Optional:** you can skip these and send standalone messages with `to` / `recipientId` — the send APIs auto-resolve contact and conversation.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e58422c0-42e4-47b5-8612-2d5191951a3e",
          "name": "Resolve conversation by phone or email (find or create)",
          "request": {
            "name": "Resolve conversation by phone or email (find or create)",
            "description": {
              "content": "Returns `{ data: { _id: conversationId, contactId: { ... } } }`. Creates contact/conversation if missing.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "conversations",
                "getConversationByPhoneAndEmail"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+1234567890\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c759c15a-6dbe-412a-b4f6-9b96380f88fa",
          "name": "Create contact and conversation",
          "request": {
            "name": "Create contact and conversation",
            "description": {
              "content": "Creates contact if missing, then creates conversation. Returns `data._id` as `conversationId`. Reuses existing contact/conversation when phone or email matches.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "contacts",
                "create-new-conversation"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+1234567890\",\n  \"lifecycleStage\": \"Lead\",\n  \"groupId\": \"64f91a7d28ae948d8e9e8435\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4b44bb5e-468f-419d-abce-9ecedde2ccb0",
          "name": "Create conversation (by contactId)",
          "request": {
            "name": "Create conversation (by contactId)",
            "description": {
              "content": "`POST /api/conversations` — requires an existing `contactId`. Returns `201` with new conversation or `200` if one already exists for that contact.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "conversations"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contactId\": \"64f91a7d28ae948d8e9e8430\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e24d46bb-381e-4644-80cb-7337a55fd186",
          "name": "Get conversation by id",
          "request": {
            "name": "Get conversation by id",
            "description": {
              "content": "Fetch a single conversation with populated contact.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "conversations",
                ":conversationId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "conversationId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "87346169-da0b-4917-b451-b9977b497ed2",
          "name": "List conversations for a contact",
          "request": {
            "name": "List conversations for a contact",
            "description": {
              "content": "All conversations linked to a contact id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "conversations",
                "getAllConversationsOfContact",
                ":contactId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "contactId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e5aa2663-8914-4fd6-9973-d557d8edb2f1",
          "name": "List messages in a conversation",
          "request": {
            "name": "List messages in a conversation",
            "description": {
              "content": "Paginated message history for a conversation (`?page=1&limit=10`, optional `channel`).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                ":conversationId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "conversationId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "6e4b2caf-dded-4d91-a9b4-871c299f664c",
      "name": "Send Live Chat",
      "description": {
        "content": "Send live chat on channel `chat`. **Two ways to target the recipient:** (1) **In conversation** — pass `conversationId` (and optionally `contactId`). (2) **Standalone** — omit `conversationId`; pass `contactId` or `to` (phone). (`recipientId` is accepted as an alias for `contactId`.)\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "5663ab9f-9700-452c-b57d-c269bbfb8a94",
          "name": "Send a live chat message",
          "request": {
            "name": "Send a live chat message",
            "description": {
              "content": "Supports **in-conversation** (`conversationId`) or **standalone** (`contactId` or `to`). `channel` must be `chat`. Attachment `mediaType`: image, video, audio, file, or empty string.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendLiveMessage"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"64f91a7d28ae948d8e9e8430\",\n  \"contactId\": \"64f91a7d28ae948d8e9e8432\",\n  \"content\": \"Hello, {{contact.name}}! Please find the attached file.\",\n  \"channel\": \"chat\",\n  \"mediaUrl\": null,\n  \"mediaType\": null,\n  \"source\": \"widget\",\n  \"attachments\": [\n    {\n      \"fileName\": \"document.pdf\",\n      \"fileSize\": \"120 KB\",\n      \"mimeType\": \"application/pdf\",\n      \"mediaUrl\": \"https://your-s3-bucket.s3.amazonaws.com/document.pdf\",\n      \"mediaType\": \"file\"\n    },\n    {\n      \"fileName\": \"image.jpg\",\n      \"fileSize\": \"450 KB\",\n      \"mimeType\": \"image/jpeg\",\n      \"mediaUrl\": \"https://your-s3-bucket.s3.amazonaws.com/image.jpg\",\n      \"mediaType\": \"image\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "5b023593-99b8-402e-a1e4-366e8df0dbb6",
      "name": "Send Email",
      "description": {
        "content": "Send email on channel `email`. **In conversation:** `conversationId` + `recipientIds`. **Standalone:** omit `conversationId`; use `to` (email) and/or `recipientIds`. `providerId` = provider id or provider email.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "581e02b0-57ce-4127-a7be-47f18ad7b44a",
          "name": "Send an email message",
          "request": {
            "name": "Send an email message",
            "description": {
              "content": "**In conversation** or **standalone** — see folder description. `providerId` = provider id or provider email.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendEmailMessage"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"64d82f8f90b04f2b9c343b7a\",\n  \"recipientIds\": [\n    \"64c1e942d0911c73920693bd\"\n  ],\n  \"channel\": \"email\",\n  \"subject\": \"Test Email Subject\",\n  \"content\": \"<p>Hello {{contact.firstName}}, this is a test email.</p>\",\n  \"mediaUrl\": \"\",\n  \"mediaType\": \"\",\n  \"source\": \"web\",\n  \"providerId\": \"64db8124cb0a330f257cb0c2\",\n  \"attachments\": [\n    {\n      \"fileName\": \"document.pdf\",\n      \"fileSize\": \"120 KB\",\n      \"mimeType\": \"application/pdf\",\n      \"mediaUrl\": \"https://your-s3-bucket.s3.amazonaws.com/document.pdf\",\n      \"mediaType\": \"file\"\n    }\n  ],\n  \"replyToMessageId\": \"64e90fa89e24f248d9a36e5b\",\n  \"quotedMessageId\": \"<quoted-msg-id@example.com>\",\n  \"threadId\": \"<thread-id-from-gmail>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "6cd7d318-cc3a-4200-9043-84acb7470fde",
      "name": "Send SMS",
      "description": {
        "content": "Send SMS via `POST /api/messages/sendMessage` (`channel: \"sms\"`). **In conversation:** `conversationId` (+ optional `contactId`). **Standalone:** `to` (phone) — contact/conversation created if needed. `providerId` = provider id or sending number.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "a8e79179-e453-4d9f-9694-1b6ef181912e",
          "name": "Send an SMS message",
          "request": {
            "name": "Send an SMS message",
            "description": {
              "content": "**Standalone example** in body; see docs for **in-conversation** variant with `conversationId`. `channel` must be `sms`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendMessage"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"+15551234567\",\n  \"channel\": \"sms\",\n  \"content\": \"Hello {{contact.firstName}}, your appointment is scheduled.\",\n  \"mediaUrl\": \"\",\n  \"mediaType\": \"\",\n  \"source\": \"HelloCRM\",\n  \"providerId\": \"+15559876543\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "3a942e3a-55d9-42d1-a190-bba0a865ea7f",
      "name": "Send WhatsApp",
      "description": {
        "content": "Send WhatsApp via `POST /api/messages/sendMessage` (`channel: \"whatsapp\"`). Same targeting as SMS: **in conversation** (`conversationId`) or **standalone** (`to`). Template fields for approved templates.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "c2b2ad4b-536a-4402-af7c-c1bbd4eb3374",
          "name": "Send a WhatsApp message",
          "request": {
            "name": "Send a WhatsApp message",
            "description": {
              "content": "**Standalone example** in body; see docs for **in-conversation** variant. Template fields optional when using approved templates.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendMessage"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"+15551234567\",\n  \"channel\": \"whatsapp\",\n  \"content\": \"Hello {{contact.firstName}}, your appointment is scheduled.\",\n  \"mediaUrl\": \"\",\n  \"mediaType\": \"\",\n  \"source\": \"HelloCRM\",\n  \"providerId\": \"+15559876543\",\n  \"templateId\": \"646b8124cb0a330f257cb010\",\n  \"headerParameters\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Hey\"\n    }\n  ],\n  \"bodyParameters\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Hey body\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "93d58558-e9b1-4840-874e-726ba2ec9887",
      "name": "Bulk Email",
      "description": {
        "content": "Bulk email campaign. Endpoint: `POST /api/messages/sendBulkNewMessages` with `channel: \"email\"` and comma-separated emails in `to`.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "b27cfd63-13ec-4149-9eda-dfa1127d1367",
          "name": "Bulk send email",
          "request": {
            "name": "Bulk send email",
            "description": {
              "content": "Queues a bulk email campaign. `to` is comma-separated emails; requires `providerId`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendBulkNewMessages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"alice@example.com,bob@example.com\",\n  \"channel\": \"email\",\n  \"subject\": \"Bulk campaign subject\",\n  \"preheader\": \"\",\n  \"content\": \"<p>Hello {{contact.firstName}}, this is a bulk email.</p>\",\n  \"mediaUrl\": \"\",\n  \"mediaType\": \"\",\n  \"source\": \"HelloCRM\",\n  \"providerId\": \"64db8124cb0a330f257cb0c2\",\n  \"attachments\": [],\n  \"scheduleType\": \"now\",\n  \"scheduleTime\": {\n    \"date\": \"\",\n    \"time\": \"\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "faf858fe-1ec8-449b-b940-bdfb7b54e82b",
      "name": "Bulk SMS",
      "description": {
        "content": "Bulk SMS campaign. Endpoint: `POST /api/messages/sendBulkNewMessages` with `channel: \"sms\"` and comma-separated phone numbers in `to`.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "8faaa724-72f4-4303-b226-c5960d683710",
          "name": "Bulk send SMS",
          "request": {
            "name": "Bulk send SMS",
            "description": {
              "content": "Queues bulk SMS. `to` is comma-separated phone numbers; `channel` must be `sms`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendBulkNewMessages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"+15551234567,+15559876543\",\n  \"channel\": \"sms\",\n  \"content\": \"Hello {{contact.firstName}}, your appointment is scheduled.\",\n  \"mediaUrl\": \"\",\n  \"mediaType\": \"\",\n  \"source\": \"HelloCRM\",\n  \"providerId\": \"64db8124cb0a330f257cb0c2\",\n  \"attachments\": [],\n  \"scheduleType\": \"now\",\n  \"scheduleTime\": {\n    \"date\": \"\",\n    \"time\": \"\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "58c52ad6-27d6-4bd7-bdfb-7e1a1e974e3e",
      "name": "Bulk WhatsApp",
      "description": {
        "content": "Bulk WhatsApp campaign. Endpoint: `POST /api/messages/sendBulkNewMessages` with `channel: \"whatsapp\"` and comma-separated phone numbers in `to`.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "cd278778-d80e-47c3-8281-ad9c4444ded8",
          "name": "Bulk send WhatsApp",
          "request": {
            "name": "Bulk send WhatsApp",
            "description": {
              "content": "Queues bulk WhatsApp. Same endpoint as bulk SMS; set `channel` to `whatsapp`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "messages",
                "sendBulkNewMessages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"+15551234567,+15559876543\",\n  \"channel\": \"whatsapp\",\n  \"content\": \"Hello {{contact.firstName}}, your appointment is scheduled.\",\n  \"mediaUrl\": \"\",\n  \"mediaType\": \"\",\n  \"source\": \"HelloCRM\",\n  \"providerId\": \"64db8124cb0a330f257cb0c2\",\n  \"templateId\": \"646b8124cb0a330f257cb010\",\n  \"headerParameters\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Hey\"\n    }\n  ],\n  \"bodyParameters\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Hey body\"\n    }\n  ],\n  \"attachments\": [],\n  \"scheduleType\": \"now\",\n  \"scheduleTime\": {\n    \"date\": \"\",\n    \"time\": \"\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "d41c0ef5-93a2-494d-9e61-d9389794a8b9",
      "name": "Templates",
      "description": {
        "content": "CRUD for message templates. **Create** endpoints are split by channel (SMS, email, WhatsApp). WhatsApp create/update often uses `multipart/form-data` when a header media `file` is required; SMS and email use JSON.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "31343800-e360-4310-903b-7554d9750a07",
          "name": "List templates",
          "request": {
            "name": "List templates",
            "description": {
              "content": "Paginated list. Agents see only their templates; admins see team templates.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "page",
                  "value": "1",
                  "description": "Page number"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "20",
                  "description": "Page size"
                },
                {
                  "disabled": false,
                  "key": "types",
                  "value": "sms",
                  "description": "Filter: sms, email, whatsapp (repeat or array per server)"
                },
                {
                  "disabled": false,
                  "key": "statuses",
                  "value": "approved",
                  "description": "Filter: pending, approved, rejected"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c3b2d28f-082f-4782-95ee-5bfe267ed278",
          "name": "Get template by id",
          "request": {
            "name": "Get template by id",
            "description": {
              "content": "Fetch one template by id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates",
                ":templateId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "646b8124cb0a330f257cb010",
                  "key": "templateId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "15282b4b-5f3d-45fa-96ac-eb5381cb00e6",
          "name": "Create SMS template",
          "request": {
            "name": "Create SMS template",
            "description": {
              "content": "`templateType` must be `sms`. Returns `data._id` — use as `templateId` when sending messages.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"templateType\": \"sms\",\n  \"name\": \"Appointment reminder\",\n  \"uniqueName\": \"appointment_reminder_sms\",\n  \"content\": \"Hello {{contact.firstName}}, your appointment is on {{appointment.date}}.\",\n  \"category\": \"UTILITY\",\n  \"language\": \"en\",\n  \"provider\": \"64db8124cb0a330f257cb0c2\",\n  \"variables\": [\n    \"contact.firstName\",\n    \"appointment.date\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c52305b9-458c-40b7-9275-296f9cf2c5f0",
          "name": "Create email template",
          "request": {
            "name": "Create email template",
            "description": {
              "content": "`templateType` must be `email`. Include `subject` and HTML `content`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"templateType\": \"email\",\n  \"name\": \"Welcome email\",\n  \"uniqueName\": \"welcome_email\",\n  \"subject\": \"Welcome to {{company.name}}\",\n  \"content\": \"<p>Hello {{contact.firstName}}, welcome aboard.</p>\",\n  \"language\": \"en\",\n  \"provider\": \"64db8124cb0a330f257cb0c2\",\n  \"variables\": [\n    \"contact.firstName\",\n    \"company.name\"\n  ],\n  \"preheader\": \"We're glad you're here\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "72cf1416-eeae-48df-a607-6b5759d68ab5",
          "name": "Create WhatsApp template",
          "request": {
            "name": "Create WhatsApp template",
            "description": {
              "content": "`templateType` must be `whatsapp`. Submitted to Meta for approval. For image/video/document headers, send `multipart/form-data` with a `file` field (see schema notes).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"templateType\": \"whatsapp\",\n  \"name\": \"Appointment reminder\",\n  \"uniqueName\": \"appointment_reminder_wa\",\n  \"content\": \"Hello {{1}}, your appointment is on {{2}}.\",\n  \"category\": \"UTILITY\",\n  \"language\": \"en\",\n  \"provider\": \"64db8124cb0a330f257cb0c2\",\n  \"variables\": [\n    \"{{1}}\",\n    \"{{2}}\"\n  ],\n  \"bodyVariableSampleValues\": [\n    \"Jane\",\n    \"May 20\"\n  ],\n  \"isHeader\": false,\n  \"headerType\": \"text\",\n  \"footer\": \"Reply STOP to opt out\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "699b2cbe-3b95-4ee1-a513-661292ad070c",
          "name": "Update template",
          "request": {
            "name": "Update template",
            "description": {
              "content": "Updates template by id. WhatsApp templates sync to Meta when edited.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates",
                ":templateId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "646b8124cb0a330f257cb010",
                  "key": "templateId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"templateType\": \"sms\",\n  \"name\": \"Appointment reminder (updated)\",\n  \"content\": \"Hi {{contact.firstName}}, reminder: appointment on {{appointment.date}}.\",\n  \"category\": \"UTILITY\",\n  \"language\": \"en\",\n  \"variables\": [\n    \"contact.firstName\",\n    \"appointment.date\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "035c2d45-ffe2-4375-8e76-fee8e59caecd",
          "name": "Delete template",
          "request": {
            "name": "Delete template",
            "description": {
              "content": "Deletes template by id. WhatsApp templates are removed from Meta when applicable.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "templates",
                ":templateId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "646b8124cb0a330f257cb010",
                  "key": "templateId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "d71f79b6-eda4-4fda-ae65-546afb413bbc",
      "name": "Contacts",
      "description": {
        "content": "Create, update, upsert, and delete contacts.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "67d0f5cd-51d0-4856-aaa8-b2b014d55081",
          "name": "Create a new contact",
          "request": {
            "name": "Create a new contact",
            "description": {
              "content": "`status`: open, in-progress, closed. `lifecycleStage`: Form, Live Chat, Ads, Event, CRM, Other.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+1234567890\",\n  \"status\": \"open\",\n  \"source\": \"Website\",\n  \"lifecycleStage\": \"Lead\",\n  \"groupIds\": [\n    \"64f91a7d28ae948d8e9e8435\"\n  ],\n  \"additionalFields\": {\n    \"job_title\": \"Marketing Manager\",\n    \"city\": \"New York\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "67598e4e-b9fd-480c-be41-fe1a9a28b18e",
          "name": "Update an existing contact",
          "request": {
            "name": "Update an existing contact",
            "description": {
              "content": "Updates a contact by id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "contacts",
                ":contactId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "contactId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Doe\",\n  \"email\": \"jane.doe@example.com\",\n  \"phone\": \"+19876543210\",\n  \"status\": \"open\",\n  \"source\": \"LinkedIn\",\n  \"lifecycleStage\": \"Customer\",\n  \"groupIds\": [\n    \"64f91a7d28ae948d8e9e8435\"\n  ],\n  \"company\": \"64f91a7d28ae948d8e9e9999\",\n  \"additionalFields\": {\n    \"job_title\": \"CTO\",\n    \"location\": \"San Francisco\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0a7f2d68-d07d-46a7-9c91-be58cacedd52",
          "name": "Delete a contact by id",
          "request": {
            "name": "Delete a contact by id",
            "description": {
              "content": "Deletes a contact.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "contacts",
                ":contactId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "contactId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ecefba8e-14cb-4d98-9f18-64feaab6e7e3",
          "name": "Upsert a contact by matching rules (email/phone)",
          "request": {
            "name": "Upsert a contact by matching rules (email/phone)",
            "description": {
              "content": "Use `Content-Type: application/json` (not `text/plain`).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "contacts",
                "createOrUpdateContact"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+1234567890\",\n  \"status\": \"open\",\n  \"source\": \"CRM\",\n  \"lifecycleStage\": \"Lead\",\n  \"additionalFields\": {\n    \"job_title\": \"Marketing Manager\",\n    \"city\": \"New York\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7363a33e-b36a-4d0e-b907-9514793d844f",
          "name": "Delete contacts matching an email address",
          "request": {
            "name": "Delete contacts matching an email address",
            "description": {
              "content": "Deletes contacts for the given `email` query parameter.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "contacts",
                "deleteContactsByEmail"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "email",
                  "value": "test@gmail.com",
                  "description": "(Required) "
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "28116c3f-4cdc-4fe1-b81d-f018b0e2fd96",
      "name": "Companies",
      "description": {
        "content": "Public API: `POST /api/companies/create`, `PUT /api/companies/edit/{companyId}`, `DELETE /api/companies/delete/{companyId}`.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e42a5495-f94c-400e-85f6-f40d844e1cc3",
          "name": "Create company",
          "request": {
            "name": "Create company",
            "description": {
              "content": "Creates a company.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "companies",
                "create"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Corporation\",\n  \"domain\": \"acme.com\",\n  \"industry\": \"Technology\",\n  \"email\": \"info@acme.com\",\n  \"phoneNumber\": \"+1234567890\",\n  \"logoUrl\": \"https://logo.clearbit.com/acme.com\",\n  \"address\": \"123 Main St\",\n  \"city\": \"San Francisco\",\n  \"state\": \"CA\",\n  \"postalCode\": \"94105\",\n  \"country\": \"USA\",\n  \"employeeCount\": 200,\n  \"annualRevenue\": 5000000,\n  \"contacts\": [\n    \"64f91a7d28ae948d8e9e8431\"\n  ],\n  \"additionalFields\": {\n    \"founded\": \"2005\",\n    \"website\": \"https://www.acme.com\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "25ccef8c-55c0-4cf5-be65-d7aecf5a5509",
          "name": "Update company",
          "request": {
            "name": "Update company",
            "description": {
              "content": "Updates a company by id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "companies",
                "edit",
                ":companyId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "companyId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Corp International\",\n  \"domain\": \"acme.com\",\n  \"industry\": \"Enterprise Software\",\n  \"additionalFields\": {\n    \"updated_by\": \"Admin\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "703e0c89-7492-4d72-b6f6-ce5ecf353b4e",
          "name": "Delete company",
          "request": {
            "name": "Delete company",
            "description": {
              "content": "Deletes a company by id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "companies",
                "delete",
                ":companyId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "companyId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "b215748b-7d3c-4339-a161-5a81edac6fbd",
      "name": "Products",
      "description": {
        "content": "Create, update, and delete products.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "083dbfe7-89e0-4663-b08d-bde74a7ea758",
          "name": "Create a product",
          "request": {
            "name": "Create a product",
            "description": {
              "content": "`billingFrequency`: one-time, weekly, every-two-weeks, monthly, quarterly, semi-annually, annually, etc.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "products"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Pro CRM Subscription\",\n  \"sku\": \"PRO-CRM-001\",\n  \"description\": \"Advanced CRM plan with automation and reporting\",\n  \"billingFrequency\": \"monthly\",\n  \"term\": \"12 months\",\n  \"productType\": \"subscription\",\n  \"imageUrl\": \"https://example.com/images/product.png\",\n  \"url\": \"https://example.com/products/pro-crm\",\n  \"unitCost\": 20,\n  \"unitPrice\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c640fdb5-2b2a-4776-9ad6-8a546149dba2",
          "name": "Update a product",
          "request": {
            "name": "Update a product",
            "description": {
              "content": "Updates a product by id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "products",
                ":productId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "productId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Pro CRM Plus\",\n  \"sku\": \"PRO-CRM-002\",\n  \"description\": \"Updated plan with more integrations\",\n  \"billingFrequency\": \"monthly\",\n  \"term\": \"12 months\",\n  \"productType\": \"subscription\",\n  \"imageUrl\": \"https://example.com/images/pro-crm-plus.png\",\n  \"url\": \"https://example.com/products/pro-crm-plus\",\n  \"unitCost\": 25,\n  \"unitPrice\": 60\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "555fc492-9a4d-4d03-b84b-2553bbc92e55",
          "name": "Delete a product",
          "request": {
            "name": "Delete a product",
            "description": {
              "content": "Deletes a product.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "products",
                ":productId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "productId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "f3d2888e-533c-403c-99a3-12e9a950dffd",
      "name": "Deals",
      "description": {
        "content": "Public API: `POST /api/deals/create`, `PUT /api/deals/edit/{dealId}`, `DELETE /api/deals/delete/{dealId}`.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "fd981afb-6cfa-4c5d-b6af-3de04637ad57",
          "name": "Create deal",
          "request": {
            "name": "Create deal",
            "description": {
              "content": "Creates a deal.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "deals",
                "create"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Enterprise CRM Deal\",\n  \"description\": \"Annual CRM contract\",\n  \"amount\": 50000,\n  \"currency\": \"USD\",\n  \"pipeline\": \"PIPELINE_ID_HERE\",\n  \"stage\": \"STAGE_ID_HERE\",\n  \"closeDate\": \"2025-08-30\",\n  \"contacts\": [\n    \"CONTACT_ID_1\",\n    \"CONTACT_ID_2\"\n  ],\n  \"company\": \"COMPANY_ID_HERE\",\n  \"owner\": \"USER_ID_HERE\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c67d17f1-6c24-43fa-9658-34fa3744711e",
          "name": "Update deal",
          "request": {
            "name": "Update deal",
            "description": {
              "content": "Updates a deal by id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "deals",
                "edit",
                ":dealId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "dealId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Updated CRM Enterprise Deal\",\n  \"description\": \"Updated description for annual enterprise deal\",\n  \"amount\": 60000,\n  \"currency\": \"USD\",\n  \"pipeline\": \"PIPELINE_ID_HERE\",\n  \"stage\": \"STAGE_ID_HERE\",\n  \"closeDate\": \"2025-12-31\",\n  \"contacts\": [\n    \"CONTACT_ID_1\",\n    \"CONTACT_ID_3\"\n  ],\n  \"company\": \"COMPANY_ID_HERE\",\n  \"owner\": \"USER_ID_HERE\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "901759ed-ae3e-4bf9-9eb8-538bcdf6fedd",
          "name": "Delete deal",
          "request": {
            "name": "Delete deal",
            "description": {
              "content": "Deletes a deal (`DELETE /api/deals/delete/{dealId}`).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "deals",
                "delete",
                ":dealId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "64f91a7d28ae948d8e9e8430",
                  "key": "dealId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "fb8ddc76-1800-4aa2-9753-74d1fe579e6e",
      "name": "Quotes",
      "description": {
        "content": "Create, update, delete quotes. `signatureOption`: no-signature, written-signature. `status`: draft, published, expired. `template`: default-basic.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "6771ef13-37ba-48e4-a538-b9e4f80fc195",
          "name": "Create a quote from a deal",
          "request": {
            "name": "Create a quote from a deal",
            "description": {
              "content": "Creates a quote for a deal.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "quotes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"dealId\": \"YOUR_DEAL_ID\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b149b570-4a34-4851-a9c7-cdb250c54f7c",
          "name": "Update quote presentation and terms",
          "request": {
            "name": "Update quote presentation and terms",
            "description": {
              "content": "Updates quote fields.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "quotes",
                ":quoteId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "YOUR_QUOTE_ID",
                  "key": "quoteId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Unique key for safe retries on creates and message sends.",
                "key": "Idempotency-Key",
                "value": "01HZY8QX3K9V2B4C6D8E0F2G4H6J8K0L"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signatureOption\": \"written-signature\",\n  \"name\": \"Updated Quote Name\",\n  \"url\": \"https://quotes.example.com/q-123\",\n  \"template\": \"default-basic\",\n  \"expirationDate\": \"2025-10-10T00:00:00Z\",\n  \"commentsToBuyer\": \"Please review this quote.\",\n  \"purchaseTerms\": \"Net 30\",\n  \"status\": \"published\",\n  \"acceptOnlinePayment\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e4e63cee-1af9-4a18-b10c-94edc74b6e80",
          "name": "Delete a quote",
          "request": {
            "name": "Delete a quote",
            "description": {
              "content": "Deletes a quote.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "quotes",
                ":quoteId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "YOUR_QUOTE_ID",
                  "key": "quoteId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "type": "string",
      "value": "https://api.hellocrm.ai",
      "key": "baseUrl"
    }
  ],
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "x-api-key"
      },
      {
        "key": "value",
        "value": "{{apiKey}}"
      },
      {
        "key": "in",
        "value": "header"
      }
    ]
  },
  "info": {
    "_postman_id": "f6bafd93-3563-4db5-ba86-04493125505c",
    "name": "HelloCRM API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "HelloCRM **documented public API** for integrators: conversations, messaging (live chat, email, SMS, WhatsApp, bulk), templates, contacts, companies, products, deals, and quotes.\n\n**Messaging — two modes (both supported):** **In conversation** — pass `conversationId` (from Conversations APIs or your CRM). **Standalone** — omit `conversationId`; pass `to` (phone or email) or `contactId` and the API finds or creates the contact and conversation. `providerId` = provider id or sending phone/email on file.\n\n**Authentication:** `x-api-key` (team API key) or `Authorization: Bearer <jwt>` on protected routes.\n\n**Standard success envelope** (target contract; some handlers may omit fields):\n`{\"success\":true,\"message\":\"string\",\"data\":{},\"meta\":{}}`\n\n**Idempotency:** Send `Idempotency-Key` on creates and sensitive sends when you retry.\n\n**Bulk outbound:** `POST /api/messages/sendBulkNewMessages` — comma-separated `to`, `channel` one of `email`, `sms`, `whatsapp` (see Bulk Email / Bulk SMS / Bulk WhatsApp folders).\n\nRegenerated by `hellocrm-backend/scripts/generate-postman-collection.mjs` (documented routes only).",
      "type": "text/plain"
    }
  }
}