# Convert a visitor You can merge a Visitor to a Contact of role type or . > 📘 What happens upon a visitor being converted? > > If the User exists, then the Visitor will be merged into it, the Visitor deleted and the User returned. If the User does not exist, the Visitor will be converted to a User, with the User identifiers replacing it's Visitor identifiers. Endpoint: POST /visitors/convert Version: 2.13 Security: bearerAuth ## Header parameters: - `Intercom-Version` (string) Intercom API version.By default, it's equal to the version set in the app package. Enum: "1.0", "1.1", "1.2", "1.3", "1.4", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "Unstable" ## Request fields (application/json): - `type` (string, required) Represents the role of the Contact model. Accepts or . Example: "user" - `user` (object, required) The unique identifiers retained after converting or merging. - `user.id` (string) The unique identifier for the contact which is given by Intercom. Example: "8a88a590-e1c3-41e2-a502-e0649dbf721c" - `user.user_id` (string) A unique identifier for the contact which is given to Intercom, which will be represented as external_id. Example: "8a88a590-e1c3-41e2-a502-e0649dbf721c" - `user.email` (string) The contact's email, retained by default if one is present. Example: "winstonsmith@truth.org" - `visitor` (object, required) The unique identifiers to convert a single Visitor. - `visitor.user_id` (string) A unique identifier for the contact which is given to Intercom. Example: "8a88a590-e1c3-41e2-a502-e0649dbf721c" - `visitor.email` (string) The visitor's email. Example: "winstonsmith@truth.org" ## Response 200 fields (application/json): - `type` (string) The type of object. Example: "contact" - `id` (string) The unique identifier for the contact which is given by Intercom. Example: "5ba682d23d7cf92bef87bfd4" - `external_id` (string,null) The unique identifier for the contact which is provided by the Client. Example: "70" - `workspace_id` (string) The id of the workspace which the contact belongs to. Example: "ecahpwf5" - `role` (string) The role of the contact. Example: "user" - `email` (string) The contact's email. Example: "joe@example.com" - `email_domain` (string) The contact's email domain. Example: "example.com" - `phone` (string,null) The contacts phone. Example: "+1123456789" - `name` (string,null) The contacts name. Example: "John Doe" - `owner_id` (integer,null) The id of an admin that has been assigned account ownership of the contact. Example: 123 - `has_hard_bounced` (boolean) Whether the contact has had an email sent to them hard bounce. Example: true - `marked_email_as_spam` (boolean) Whether the contact has marked an email sent to them as spam. Example: true - `unsubscribed_from_emails` (boolean) Whether the contact is unsubscribed from emails. Example: true - `created_at` (integer) (UNIX timestamp) The time when the contact was created. Example: 1571672154 - `updated_at` (integer) (UNIX timestamp) The time when the contact was last updated. Example: 1571672154 - `signed_up_at` (integer,null) (UNIX timestamp) The time specified for when a contact signed up. Example: 1571672154 - `last_seen_at` (integer,null) (UNIX timestamp) The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually). Example: 1571672154 - `last_replied_at` (integer,null) (UNIX timestamp) The time when the contact last messaged in. Example: 1571672154 - `last_contacted_at` (integer,null) (UNIX timestamp) The time when the contact was last messaged. Example: 1571672154 - `last_email_opened_at` (integer,null) (UNIX timestamp) The time when the contact last opened an email. Example: 1571672154 - `last_email_clicked_at` (integer,null) (UNIX timestamp) The time when the contact last clicked a link in an email. Example: 1571672154 - `language_override` (string,null) A preferred language setting for the contact, used by the Intercom Messenger even if their browser settings change. Example: "en" - `browser` (string,null) The name of the browser which the contact is using. Example: "Chrome" - `browser_version` (string,null) The version of the browser which the contact is using. Example: "80.0.3987.132" - `browser_language` (string,null) The language set by the browser which the contact is using. Example: "en-US" - `os` (string,null) The operating system which the contact is using. Example: "Mac OS X" - `android_app_name` (string,null) The name of the Android app which the contact is using. Example: "Intercom" - `android_app_version` (string,null) The version of the Android app which the contact is using. Example: "5.0.0" - `android_device` (string,null) The Android device which the contact is using. Example: "Pixel 3" - `android_os_version` (string,null) The version of the Android OS which the contact is using. Example: "10" - `android_sdk_version` (string,null) The version of the Android SDK which the contact is using. Example: "28" - `android_last_seen_at` (integer,null) (UNIX timestamp) The time when the contact was last seen on an Android device. Example: 1571672154 - `ios_app_name` (string,null) The name of the iOS app which the contact is using. Example: "Intercom" - `ios_app_version` (string,null) The version of the iOS app which the contact is using. Example: "5.0.0" - `ios_device` (string,null) The iOS device which the contact is using. Example: "iPhone 11" - `ios_os_version` (string,null) The version of iOS which the contact is using. Example: "13.3.1" - `ios_sdk_version` (string,null) The version of the iOS SDK which the contact is using. Example: "13.3.1" - `ios_last_seen_at` (integer,null) (UNIX timestamp) The last time the contact used the iOS app. Example: 1571672154 - `custom_attributes` (object) The custom attributes which are set for the contact. - `avatar` (object,null) - `avatar.type` (string) The type of object Example: "avatar" - `avatar.image_url` (string,null) An image URL containing the avatar of a contact. Example: "https://example.org/128Wash.jpg" - `tags` (object,null) An object containing tags meta data about the tags that a contact has. Up to 10 will be displayed here. Use the url to get more. - `tags.data` (array) This object represents the tags attached to a contact. - `tags.data.type` (string) The addressable object type Example: "note" - `tags.data.id` (string) The id of the addressable object Example: "123" - `tags.data.url` (string) Url to get more company resources for this contact Example: "/contacts/5ba682d23d7cf92bef87bfd4/notes" - `tags.url` (string) url to get more tag resources for this contact Example: "/contacts/5ba682d23d7cf92bef87bfd4/tags" - `tags.total_count` (integer) Int representing the total number of tags attached to this contact Example: 100 - `tags.has_more` (boolean) Whether there's more Addressable Objects to be viewed. If true, use the url to view all Example: true - `notes` (object) An object containing notes meta data about the notes that a contact has. Up to 10 will be displayed here. Use the url to get more. - `notes.data` (array) This object represents the notes attached to a contact. - `notes.total_count` (integer) Int representing the total number of companyies attached to this contact Example: 100 - `companies` (object) An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more. - `companies.data` (array) An array of company data objects attached to the contact. - `companies.data.id` (string) The unique identifier for the company which is given by Intercom. Example: "5ba682d23d7cf92bef87bfd4" - `companies.data.type` (string) The type of the object. Always company. Enum: "company" - `companies.data.url` (string) The relative URL of the company. Example: "/companies/5ba682d23d7cf92bef87bfd4" - `location` (object) An object containing location meta data about a Intercom contact. - `location.type` (string,null) Always location Example: "location" - `location.country` (string,null) The country that the contact is located in Example: "Ireland" - `location.region` (string,null) The overal region that the contact is located in Example: "Dublin" - `location.city` (string,null) The city that the contact is located in Example: "Dublin" - `social_profiles` (object) An object containing social profiles that a contact has. - `social_profiles.data` (array) A list of social profiles objects associated with the contact. - `social_profiles.data.type` (string) value is "social_profile" Example: "social_profile" - `social_profiles.data.name` (string) The name of the Social media profile Example: "Facebook" - `social_profiles.data.url` (string) The name of the Social media profile Example: "http://twitter.com/th1sland" ## Response 401 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email"