Коммуникации с кандидатом
Получение отклика кандидата с чатами коммуникаций
Чтобы получить отклик кандидата на вакансию с чатами коммуникаций, выполните запрос:
- graphql
- cURL
query ResponseWithCommunications {
response(personId: 1, vacancyId: 1) {
... on ResponseItem {
updatedAt
workflowStatus {
... on WorkflowStatusItem {
id
name
}
}
person {
id
firstName
lastName
communications {
item(type: AVITO_CHAT) {
... on AvitoChat {
count
hasUnread
pageInfo {
hasNextPage
endCursor
}
items {
__typename
id
createdAt
text
... on ThirdPartyChatMessageItem {
authorType
authorName
}
... on ManagerChatMessageItem {
manager {
id
firstName
lastName
}
}
}
}
... on PersonCommunicationError {
errorType
message
}
}
}
}
}
... on ResponseError {
errorType
message
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"query ResponseWithCommunications {\\n response(personId: 1, vacancyId: 1) {\\n ... on ResponseItem {\\n updatedAt\\n workflowStatus {\\n ... on WorkflowStatusItem {\\n id\\n name\\n }\\n }\\n person {\\n id\\n firstName\\n lastName\\n communications {\\n item(type: AVITO_CHAT) {\\n ... on AvitoChat {\\n count\\n hasUnread\\n pageInfo {\\n hasNextPage\\n endCursor\\n }\\n items {\\n __typename\\n id\\n createdAt\\n text\\n ... on ThirdPartyChatMessageItem {\\n authorType\\n authorName\\n }\\n ... on ManagerChatMessageItem {\\n manager {\\n id\\n firstName\\n lastName\\n }\\n }\\n }\\n }\\n ... on PersonCommunicationError {\\n errorType\\n message\\n }\\n }\\n }\\n }\\n }\\n ... on ResponseError {\\n errorType\\n message\\n }\\n }\\n}\"}"
В примере запроса получение чата осуществляется через person.communications.item(type: AVITO_CHAT),
где AVITO_CHAT — канал коммуникаций.
Доступные каналы перечислены в списке каналов коммуникаций.
В запросе необходимо указать personId и vacancyId:
personIdможно получить из списка кандидатов.vacancyIdможно получить из списка вакансий.
Сообщения в чате возвращаются постранично. Для навигации по страницам используются параметры after и first у поля item,
а в ответе — объект pageInfo с полями hasNextPage и endCursor.
Пагинация — подробное описание работы пагинации.
Результат запроса
{
"data": {
"response": {
"updatedAt": "2026-04-18T10:12:08.000Z",
"workflowStatus": {
"id": 123,
"name": "Разбор откликов"
},
"person": {
"id": 8057081,
"firstName": "Иван",
"lastName": "Иванов",
"communications": {
"item": {
"count": 2,
"hasUnread": true,
"pageInfo": {
"hasNextPage": false,
"endCursor": "2"
},
"items": [
{
"__typename": "ThirdPartyChatMessageItem",
"id": 2,
"createdAt": "2026-04-18T10:10:00.000Z",
"text": "Здравствуйте, подскажите формат работы",
"authorType": "PERSON",
"authorName": "Иван Иванов"
},
{
"__typename": "ManagerChatMessageItem",
"id": 3,
"createdAt": "2026-04-18T10:11:05.000Z",
"text": "Добрый день! Работаем в гибридном формате",
"manager": {
"id": 42,
"firstName": "Мария",
"lastName": "Петрова"
}
}
]
}
}
}
}
}
}
Отправка сообщения кандидату в чат коммуникаций
Отправить сообщение кандидату можно с помощью мутации sendMessageToPerson.
- graphql
- cURL
mutation SendMessageToPerson {
sendMessageToPerson(
personId: 8057081
channel: AVITO_CHAT
vacancyId: 12345
message: {text: "Добрый день! Уточним детали по вакансии"}
) {
__typename
... on PersonCommunicationSentSuccess {
messageId
}
... on PersonCommunicationSendError {
errorType
message
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"mutation SendMessageToPerson {\\n sendMessageToPerson(\\n personId: 8057081\\n channel: AVITO_CHAT\\n vacancyId: 12345\\n message: {text: \\\"Добрый день! Уточним детали по вакансии\\\"}\\n ) {\\n __typename\\n ... on PersonCommunicationSentSuccess {\\n messageId\\n }\\n ... on PersonCommunicationSendError {\\n errorType\\n message\\n }\\n }\\n}\"}"
Значения personId и vacancyId можно получить в списке кандидатов и списке вакансий.
Доступные каналы перечислены в списке каналов коммуникаций.
Успешная отправка
В случае успешной отправки сообщения запрос вернет ответ с идентификатором сообщения.
{
"data": {
"sendMessageToPerson": {
"__typename": "PersonCommunicationSentSuccess",
"messageId": 9876543210
}
}
}
Ошибка отправки
В случае ошибки в ответе запроса вернется ответ c типом ошибки.
{
"data": {
"sendMessageToPerson": {
"__typename": "PersonCommunicationSendError",
"errorType": "VACANCY_ID_REQUIRED",
"message": null
}
}
}
Типы ошибок перечислены в PersonCommunicationSendErrorType.
Отправка письма кандидату
Тот же метод sendMessageToPerson отправляет письмо, если в channel передать EMAIL.
В message можно указать тему (subject).
- graphql
- cURL
mutation SendMessageToPersonEmail {
sendMessageToPerson(
personId: 8057081
channel: EMAIL
vacancyId: 12345
message: {subject: "Вакансия разработчика", text: "Добрый день! Приглашаем вас на собеседование."}
) {
__typename
... on PersonCommunicationSentSuccess {
messageId
}
... on PersonCommunicationSendError {
errorType
message
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"mutation SendMessageToPersonEmail {\\n sendMessageToPerson(\\n personId: 8057081\\n channel: EMAIL\\n vacancyId: 12345\\n message: {subject: \\\"Вакансия разработчика\\\", text: \\\"Добрый день! Приглашаем вас на собеседование.\\\"}\\n ) {\\n __typename\\n ... on PersonCommunicationSentSuccess {\\n messageId\\n }\\n ... on PersonCommunicationSendError {\\n errorType\\n message\\n }\\n }\\n}\"}"
Для канала EMAIL поле vacancyId необязательно. Тема письма (subject) рекомендуется, если письмо уходит не из шаблона.
Успешная отправка письма
{
"data": {
"sendMessageToPerson": {
"__typename": "PersonCommunicationSentSuccess",
"messageId": 18452
}
}
}
Удаление сообщения кандидата
Удалить сообщение кандидата (архивация переписки) можно с помощью следующего запроса.
- graphql
- cURL
mutation DeletePersonMessage {
deletePersonMessage(personId: 2937738, messageId: "outbox_18452") {
__typename
... on PersonMessageDeletedSuccess {
message
}
... on PersonMessageDeleteError {
errorType
message
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"mutation DeletePersonMessage {\\n deletePersonMessage(personId: 2937738, messageId: \\\"outbox_18452\\\") {\\n __typename\\n ... on PersonMessageDeletedSuccess {\\n message\\n }\\n ... on PersonMessageDeleteError {\\n errorType\\n message\\n }\\n }\\n}\"}"
messageId — строка вида inbox_<id> или outbox_<id>. Её возвращает поле id в переписке кандидата.
При успешном выполнении запрос вернёт
{
"data": {
"deletePersonMessage": {
"__typename": "PersonMessageDeletedSuccess",
"message": null
}
}
}
В случае ошибки вернётся json с типом ошибки
{
"data": {
"deletePersonMessage": {
"__typename": "PersonMessageDeleteError",
"errorType": "MESSAGE_NOT_FOUND",
"message": null
}
}
}
Возможные типы ошибок:
ACCESS_DENIED— нет доступа к кандидату или к его сообщениюMESSAGE_NOT_FOUND— сообщение не найдено