> ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Register Livechat Visitor > Register a visitor's information before creating a new Omnichannel room. You can set basic information such as name, phone, custom fields, and the initial department. The response may include `externalIds` when the visitor has been linked to an external system by an omnichannel app. This field cannot be set through this endpoint's request body. ### Changelog | Version | Description | | ------- | ----------- | | 8.4.0 | Added `externalIds` field to the visitor response. | ## OpenAPI ````json POST /api/v1/livechat/visitor { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Omnichannel" }, "servers": [ { "url": "https://apiexplorer.support.rocket.chat" } ], "tags": [ { "name": "Omnichannel Users" }, { "name": "Omnichannel Agents" }, { "name": "Omnichannel Monitors" }, { "name": "Omnichannel Visitors" }, { "name": "Omnichannel Contacts" }, { "name": "Omnichannel Rooms" }, { "name": "Omnichannel Departments" }, { "name": "Omnichannel Custom Fields" }, { "name": "Omnichannel Business Hours" }, { "name": "Omnichannel Priorities" }, { "name": "Omnichannel Tags" }, { "name": "Omnichannel Units" }, { "name": "SLA Policies" }, { "name": "Canned Responses" }, { "name": "Omnichannel Transcript" }, { "name": "Omnichannel Statistics" }, { "name": "Omnichannel Agent Stats" }, { "name": "Omnichannel Dashboards" }, { "name": "Reports" }, { "name": "Omnichannel Inquiries" }, { "name": "Omnichannel Webhooks" }, { "name": "Livechat" }, { "name": "Livechat Appearance" }, { "name": "Livechat Triggers" }, { "name": "Livechat Messages" }, { "name": "Livechat Page Visited" } ], "paths": { "/api/v1/livechat/visitor": { "post": { "summary": "Register Livechat Visitor", "operationId": "post-api-v1-livechat-visitor", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "visitor": { "type": "object", "properties": { "_id": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string" }, "ts": { "type": "string" }, "_updatedAt": { "type": "string" }, "name": { "type": "string" }, "phone": { "type": "array", "items": { "type": "object", "properties": { "phoneNumber": { "type": "string" } } } }, "token": { "type": "string" }, "visitorEmails": { "type": "array", "items": { "type": "object", "properties": { "address": { "type": "string" } } } }, "department": { "type": "string" }, "externalIds": { "type": "array", "description": "Channel-specific external identifiers (e.g. WhatsApp BSUID). Set by omnichannel apps via apps-engine, not through this REST endpoint's request body.", "items": { "type": "object", "properties": { "appId": { "type": "string", "description": "ID of the omnichannel app that registered this identifier." }, "entityId": { "type": "string", "description": "External identifier value (e.g. Meta BSUID)." }, "metadata": { "type": "object", "additionalProperties": true, "description": "Optional app-specific metadata (e.g. WhatsApp username)." } } } } } }, "success": { "type": "boolean" } } }, "examples": { "Success Example": { "value": { "visitor": { "_id": "6a22b1765528fa64dd29de70", "username": "guest-10", "status": "online", "ts": "2026-06-05T11:22:30.664Z", "_updatedAt": "2026-06-05T11:22:30.665Z", "name": "Postman Test Visitor", "phone": [ { "phoneNumber": "+15551234567" } ], "token": "test-token-12345", "visitorEmails": [ { "address": "postman-test@example.com" } ] }, "success": true } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } } }, "examples": { "Example 1": { "value": { "success": false, "error": "Match error: Missing key 'visitor'" } }, "Example 2": { "value": { "success": false, "error": "Match error: Missing key 'token' in field visitor" } } } } } } }, "description": "Register a visitor's information before creating a new Omnichannel room. You can set basic information such as name, phone, custom fields, and the initial department.\n\nThe response may include `externalIds` when the visitor has been linked to an external system by an omnichannel app. This field cannot be set through this endpoint's request body.\n\n### Changelog\n| Version | Description |\n| ------- | ----------- |\n| 8.4.0 | Added `externalIds` field to the visitor response. |", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "visitor": { "type": "object", "description": "Enter the body parameters in the `visitor` object.", "required": [ "token" ], "properties": { "name": { "type": "string", "description": "The visitor's name." }, "email": { "type": "string", "description": "The visitor's email." }, "department": { "type": "string", "description": "The department that the visitor wants to register to." }, "token": { "type": "string", "description": "Enter a random unique string as the visitor token." }, "phone": { "type": "string", "description": "The visitor's phone number." }, "username": { "type": "string", "description": "The agent's username." }, "customFields": { "type": "array", "description": "Enter the custom field key, value, and whether you want to overwrite this information.", "items": { "type": "object", "properties": { "key": { "type": "string", "example": "address" }, "value": { "type": "string", "example": "Rocket.Chat street" }, "overwrite": { "type": "boolean" } } } } } } }, "required": [ "visitor" ] }, "examples": { "Example 1": { "value": { "visitor": { "name": "Livechat Visitor", "email": "visitor@rocket.chat", "department": "Support", "token": "iNKE8a6k6cjbqWhWd", "phone": "55 51 5555-5555", "customFields": [ { "key": "address", "value": "Rocket.Chat street", "overwrite": true } ] } } } } } } }, "tags": [ "Omnichannel Visitors" ] } } } } ````