Импорт существующей переписки

Данный пример демонстрирует возможность импорта в amoCRM существующей переписки на стороне интеграции между клиентом и менеджером.
С точки зрения бизнес логики клиент уже существующий, поэтому нам не нужно что бы создавалось неразобранное.
Контакт для клиента создадим для наглядности процесса.

Подключаем канал к аккаунту

Пример запроса

        
POST https://amojo.amocrm.ru/v2/origin/custom/f90ba33d-c9d9-44da-b76c-c349b0ecbe41/connect
Date: Mon, 03 Oct 2020 15:11:21 +0000
Content-Type: application/json
Content-MD5: a5e8ae04332a6d0aac15f01ad05d40e3
X-Signature: 85d94e7f21bdd3971c2721ca22793e45a96d0c75
        
    

Ответ

        
{
  "account_id": "af9945ff-1490-4cad-807d-945c15d88bec",
  "scope_id": "f90ba33d-c9d9-44da-b76c-c349b0ecbe41_af9945ff-1490-4cad-807d-945c15d88bec",
  "title": "ChatIntegration",
  "hook_api_version": "v2"
}
        
    

Создаем новый чат

Пример запроса

        
POST https://amojo.amocrm.ru/v2/origin/custom/f90ba33d-c9d9-44da-b76c-c349b0ecbe41_af9945ff-1490-4cad-807d-945c15d88bec/chats
Date: Mon, 03 Oct 2020 15:17:55 +0000
Content-Type: application/json
Content-MD5: 28623103cc158fde408e6ecd1965d437
X-Signature: 7cc462e28eadbb842a2a49edb469f15f24c56676
        
    

Ответ

        
{
    "conversation_id": "skc-8e3e7640-49af-4448-a2c6-d5a421f7f217",
    "user": {
        "id": "sk-1376265f-86df-4c49-a0c3-a4816df41af9",
        "avatar": "https:/example.com/users/avatar.png",
        "name": "Example Client",
        "profile": {
            "phone": "79151112233",
            "email": "example.client@example.com"
        },
        "profile_link": "https://example.com/profile/example.client"
    }
}
        
    

Создаем контакт

Пример запроса

        
POST /api/v4/contacts HTTP/1.1
Host: https://onlinechat.amocrm.ru
Content-Type: application/json
Authorization: Bearer xxxx

[
    {
        "first_name": "Jack200803",
        "last_name": "Tester"
    }

]
        
    

Ответ

        
{
    "_links": {
        "self": {
            "href": "https://onlinechat.amocrm.ru/api/v4/contacts"
        }
    },
    "_embedded": {
        "contacts": [
            {
                "id": 3102959,
                "request_id": "0",
                "_links": {
                    "self": {
                        "href": "https://onlinechat.amocrm.ru/api/v4/contacts/3102959"
                    }
                }
            }
        ]
    }
}
        
    

Привязка чата к контакту

Пример запроса

        
POST /api/v4/contacts/chats HTTP/1.1
Host: https://onlinechat.amocrm.ru


[
	{
		"contact_id": 3102959,
		"chat_id":"6cbab3d5-c4c1-46ff-b710-ad59ad10805f"
	}

]
        
    

Ответ

        
{
    "_total_items": 1,
    "_embedded": {
        "chats": [
            {
                "chat_id": "6cbab3d5-c4c1-46ff-b710-ad59ad10805f",
                "contact_id": 3102959,
                "id": 26219,
                "request_id": "0"
            }
        ]
    }
}
        
    

Проверим привязку чата к контакту

Этот шаг необязателен, только для демонстрации возможности получить привязку по чата к контактам. Подробнее можно ознакомится на странице метода

Пример запроса

        
POST /api/v4/contacts/chats HTTP/1.1
Host: https://onlinechat.amocrm.ru


[
	{
		"contact_id": 3102959,
		"chat_id":"6cbab3d5-c4c1-46ff-b710-ad59ad10805f"
	}

]
        
    

Ответ

        
{
    "_total_items": 1,
    "_embedded": {
        "chats": [
            {
                "chat_id": "6cbab3d5-c4c1-46ff-b710-ad59ad10805f",
                "contact_id": 3102959,
                "id": 26219,
                "request_id": "0"
            }
        ]
    }
}
        
    

Импорт сообщения от клиента

Пример запроса

        
POST https://amojo.amocrm.ru/v2/origin/custom/f90ba33d-c9d9-44da-b76c-c349b0ecbe41_af9945ff-1490-4cad-807d-945c15d88bec
Date: Mon, 03 Oct 2020 16:06:48 +0000
Content-Type: application/json
Content-MD5: 204dc99bcaa899db72954f16de987022
X-Signature: 6201ab8b5154bfa2af847920f1dfeab74b125489

{
  "account_id": "af9945ff-1490-4cad-807d-945c15d88bec",
  "event_type": "new_message",
  "payload": {
    "timestamp": 1596470808,
    "msgid": "5f283618af2c8",
    "conversation_id": "skc-8e3e7640-49af-4448-a2c6-d5a421f7f217",
    "sender": {
      "id": "sk-1376265f-86df-4c49-a0c3-a4816df41af9",
      "avatar": "https:/example.com/users/avatar.png",
      "name": "Example Client",
      "profile": {
          "phone": "79151112233",
          "email": "example.client@example.com"
      },
      "profile_link": "https://example.com/profile/example.client"
    },
    "message": {
      "type": "text",
      "text": "Можно ли оплатить заказ при получении ?"
    },
    "silent": true
  }
}
        
    

Ответ

        
{
  "new_message": {
    "msgid": "1bf6a765-ec6f-4680-8cd5-6f2d31f78ebc"
  }
}
        
    

Импорт сообщения от пользователя аккаунта

Пример запроса

        
POST https://amojo.amocrm.ru/v2/origin/custom/f90ba33d-c9d9-44da-b76c-c349b0ecbe41_af9945ff-1490-4cad-807d-945c15d88bec
Date: Mon, 03 Oct 2020 16:09:12 +0000
Content-Type: application/json
Content-MD5: 671efccd7cedf63b72823faf9a8037ff
X-Signature: 61a129968e586e8a021c2dfcc6be08e896a4fd77

{
  "account_id": "af9945ff-1490-4cad-807d-945c15d88bec",
  "event_type": "new_message",
  "payload": {
    "timestamp": 1596470952,
    "msgid": "skm-5f2836a8ca468",
    "conversation_id": "skc-8e3e7640-49af-4448-a2c6-d5a421f7f217",
    "sender": {
      "id": "sk-e1982bb8-bdf1-4fa5-841d-7d5cebd77f7b",
      "ref_id": "d8d9f9c4-9611-4794-a136-a253a13e1bb5",
      "name": "Менеджер Василий"
    },
    "receiver": {
      "id": "sk-1376265f-86df-4c49-a0c3-a4816df41af9",
      "avatar": "https:/example.com/users/avatar.png",
      "name": "Example Client",
      "profile": {
          "phone": "79151112233",
          "email": "example.client@example.com"
      },
      "profile_link": "https://example.com/profile/example.client"
    },
    "message": {
      "type": "text",
      "text": "Да, конечно. Вы можете оплатить наличными и картой курьеру при получении."
    },
    "silent": true
  }
}
        
    

Ответ

        
{
  "new_message": {
    "msgid": "3985523d-78b3-45b7-aeaf-142405bbf1dc"
  }
}

        
    

Получаем историю сообщений по чату

Пример запроса

        
GET https://amojo.amocrm.ru/v2/origin/custom/f90ba33d-c9d9-44da-b76c-c349b0ecbe41_af9945ff-1490-4cad-807d-945c15d88bec/chats/6cbab3d5-c4c1-46ff-b710-ad59ad10805f/history?limit=50&offset=0
Date: Mon, 03 Oct 2020 16:23:14 +0000
Content-Type: application/json
Content-MD5: d41d8cd98f00b204e9800998ecf8427e
X-Signature: 5693447e362dcb3bc77abeb27888ff4a0ca53a1c
        
    

Ответ

        
{
  "messages": [
    {
      "timestamp": 1596470953,
      "sender": {
        "id": "d8d9f9c4-9611-4794-a136-a253a13e1bb5",
        "name": "Менеджер Василий"
      },
      "receiver": {
        "id": "86a0caef-41ec-49ac-814b-b27da2cea267",
        "client_id": "sk-1376265f-86df-4c49-a0c3-a4816df41af9",
        "avatar": "https:/example.com/users/avatar.png",
        "name": "Example Client",
        "phone": "79151112233",
        "email": "example.client@example.com"
      },
      "message": {
        "id": "3985523d-78b3-45b7-aeaf-142405bbf1dc",
        "client_id": "skm-5f2836a8ca468",
        "type": "text",
        "text": "Да, конечно. Вы можете оплатить наличными и картой курьеру при получении."
        "media": "",
        "thumbnail": "",
        "file_name": "",
        "file_size": 0
      }
    },
    {
      "timestamp": 1596470809,
      "sender": {
        "id": "86a0caef-41ec-49ac-814b-b27da2cea267",
        "client_id": "sk-1376265f-86df-4c49-a0c3-a4816df41af9",
        "avatar": "https:/example.com/users/avatar.png",
        "name": "Example Client",
        "phone": "79151112233",
        "email": "example.client@example.com"
      },
      "message": {
        "id": "1bf6a765-ec6f-4680-8cd5-6f2d31f78ebc",
        "client_id": "5f283618af2c8",
        "type": "text",
        "text": "Можно ли оплатить заказ при получении ?"
        "media": "",
        "thumbnail": "",
        "file_name": "",
        "file_size": 0
      }
    }
  ]
}