# Changelog (v2.11) For changes that have been updated across all version, see the [Unversioned changes](/docs/build-an-integration/learn-more/rest-apis/unversioned-changes) page. Breaking Changes This version of the API includes [breaking changes](/docs/build-an-integration/learn-more/rest-apis/api-changelog#about-breaking-changes-in-the-intercom-api). They are listed below. ## Breaking Changes ## New messenger writable flag on Data Attributes The Data Attribute model now includes the flag `messenger_writable`, which allows you to control if the Messenger can update a specific attribute via the [Messenger Javascript API](https://developers.intercom.com/installing-intercom/web/methods/). When the flag is set to `false` the attribute won't be writable. If you need your attributes to be writable by the Messenger, pass `messenger_writable: true` when creating the attribute ```curl curl -i -X POST \ https://api.intercom.io/data_attributes \ -H 'Authorization: Bearer ' \ -H 'Content-Type: application/json' \ -H 'Intercom-Version: Unstable' \ -d '{ "name": "version211", "model": "contact", "data_type": "string", "messenger_writable": true }' ``` You should then get a response that looks like the following: ```json { "id": 9524852, "type": "data_attribute", "name": "version211", "full_name": "custom_attributes.version211", "label": "version211", "data_type": "string", "api_writable": true, "ui_writable": false, "messenger_writable": true, "custom": true, "archived": false, "admin_id": "6807982", "created_at": 1714738724, "updated_at": 1714738724, "model": "contact" } ``` Then, in your JavaScript or Mobile SDK code, you can call the `update()` method with the ID of your attribute to attach it to the contact or company of the contact who is creating the message. ```javascript Intercom("update", { version211: "howdy" }); ``` Now in your Help Desk, you should see the data attribute attached to the contact. Default Setting by Version The flag is set to `false` by default in versions >= 2.11. On versions 2.10 and earlier, it is `true` by default. ## Set created_at field when creating a Conversation The request body of the [Create a conversation endpoint](https://developers.intercom.com/docs/references/2.11/rest-api/api.intercom.io/conversations/createconversation) now accepts a UTC Unix epoch timestamp field created_at. If not provided, the current time will be used. This field is only recommneded for migrating past conversations from another source into Intercom. ## Backwards Compatible Changes ## AI Agent Conversation Metadata in Conversations You can now access additional metadata for conversations where an AI Agent was involved as part of the [Conversations API](https://developers.intercom.com/docs/references/rest-api/api.intercom.io/Conversations/searchConversations/) across versions 2.7 - 2.11. See more details in [unversioned changes](/docs/build-an-integration/learn-more/rest-apis/unversioned-changes). ## Define your own created at values in Conversations When you create or reply to a conversation via the API, you now have the option to define your own `created_at` timestamps. This is available across versions 2.9 - 2.11. See more details in [unversioned changes](/docs/build-an-integration/learn-more/rest-apis/unversioned-changes). ## Add a company ID when you create a Ticket Now when you create a Ticket, you can add the `company_id` that should be associated with the Ticket. This is available across versions 2.9 - 2.11. See more details in [unversioned changes](/docs/build-an-integration/learn-more/rest-apis/unversioned-changes). ## Access Ticket states through the API Now when you retrieve a Ticket, you can access the state visible internally and externally. See more details in [unversioned changes](/docs/build-an-integration/learn-more/rest-apis/unversioned-changes).