Каким образом связать чат и бизнес процесс, а также обрабатывать сообщения из него?

Начал разбираться в стандартных чатах и возникли вопросы
1. Как я могу отправить сообщение автоматически к примеру с помощью бизнес процесса, какое действие мне надо отслеживать и в какую таблицу инсертить
2. Как я могу обработать сообщение и давать на них автоматические ответы7 
К примеру человек ввел /status ему выдается сообщение о статусе груза к примеру. Или он  ввел номер записи и ему выдало данные по ней из системы?

Нравится

2 комментария

Добрый день!

По п.1. В данный момент данный функционал отсутствует в продукте, есть пожелание на доработку.

По п.2, данный вопрос лежит в плоскости интеграций по API и настройки чат-ботов, к сожалению, не располагаю такой информацией.

Здравствуйте! Я пробовал делать отправку из задания-сценария. Перехатить сообщения пока не получилось, но если есть у кого-то есть пример, то буду признателен.

 

Пример кода на отправку, что бы сообщение отправилось, необходим чат с контактом, собственно переменная chatId:

using Terrasoft.Configuration.Omnichannel.Messaging
using System.Linq
using OmnichannelMessaging
using OmnichannelProviders.Domain.Entities
using MessageDirection = OmnichannelProviders.Domain.Entities.MessageDirection
 
//Сам код:
 
UserConnection userConnection = Get<UserConnection>("UserConnection");
Guid chatId = Get<Guid>("ChatId");
string textMessage = Get<string>("TextMessage");
 
DateTime foo = DateTime.Now;
long unixTime = ((DateTimeOffset)foo).ToUnixTimeSeconds();
 
var messageManager = new MessageManager(userConnection);
var messages = messageManager.GetMessagesByChatId(chatId);
var unifiedMessage = messages.FirstOrDefault();
 
if (unifiedMessage != null) {
	UnifiedMessage message = new UnifiedMessage {
		Recipient = unifiedMessage.MessageDirection == MessageDirection.Incoming ? unifiedMessage.Sender : unifiedMessage.Recipient,
		Sender = unifiedMessage.MessageDirection == MessageDirection.Incoming ?	unifiedMessage.Recipient : unifiedMessage.Sender,
		MessageDirection = MessageDirection.Outcoming,
		ChatId = chatId.ToString(),
		ChannelId = unifiedMessage.ChannelId,
		Source = unifiedMessage.Source,
		MessageType = OmnichannelProviders.Domain.Entities.MessageType.Text,
		Message = textMessage,
		Timestamp = unixTime
	};
    messageManager.Send(message);
}

 

Показать все комментарии