Я использую Android SDK, функции чата, в настоящее время я могу создать новый контакт, дело и связать эти два. Как связать созданный контакт/обращение с существующей учетной записью?

Следующий код способен создать новое дело, но не устанавливает связь с учетной записью.

// Account 
val accountEntity = ChatEntity.Builder()
                .showOnCreate(true)
                .linkToTranscriptField("Account")
                .addChatEntityField(
                        ChatEntityField.Builder()
                                .doFind(true)
                                .isExactMatch(true)
                                .doCreate(false)
                                .build("AccountNumber", erpCustomerNumber))
                .build("Account")

// Map Subject to a field in a Case record
val caseEntity = ChatEntity.Builder()
                .showOnCreate(true)
                .linkToTranscriptField("Case")
                .linkToAnotherSalesforceObject(accountEntity, "AccountId")
                .addChatEntityField(
                        ChatEntityField.Builder()
                                .doFind(true)
                                .isExactMatch(true)
                                .doCreate(true)
                                .build("Subject", subject))
                .build("Case")

Следующий код способен связать контакт с делом:

val contactEntity = ChatEntity.Builder()
                .showOnCreate(true)
                .linkToTranscriptField("Contact")
                .linkToAnotherSalesforceObject(caseEntity, "ContactId")
                .addChatEntityField(firstNameField)
                .addChatEntityField(lastNameField)
                .addChatEntityField(emailField)
                .addChatEntityField(descriptionField)
                .build("Contact")
2
Ideasforce 20 Апр 2020 в 18:05

2 ответа

На основе документация, метод linkToAnotherSalesforceObject должен вызываться указанным объектом в отношении поиска (точно так же, как вы сделали в рабочем примере с контактами).

Таким образом, вы можете попробовать сначала объявить caseEntity, а затем сослаться на него в экземпляре Account ChatEntity:

// Map Subject to a field in a Case record
val caseEntity = ChatEntity.Builder()
                .showOnCreate(true)
                .linkToTranscriptField("Case")
                .addChatEntityField(
                        ChatEntityField.Builder()
                                .doFind(true)
                                .isExactMatch(true)
                                .doCreate(true)
                                .build("Subject", subject))
                .build("Case")
// Account 
val accountEntity = ChatEntity.Builder()
                .showOnCreate(true)
                .linkToTranscriptField("Account")
                .linkToAnotherSalesforceObject(caseEntity, "AccountId")
                .addChatEntityField(
                        ChatEntityField.Builder()
                                .doFind(true)
                                .isExactMatch(true)
                                .doCreate(false)
                                .build("AccountNumber", erpCustomerNumber))
                .build("Account")
1
Ideasforce 20 Апр 2020 в 19:44
Это хороший момент, уже попробуйте это, но от учетной записи к сущности контакта. Ни то, ни другое не сработало.
 – 
skimos
20 Апр 2020 в 20:18
code .linkToAnotherSalesforceObject(contactEntity, "AccountId") code
 – 
skimos
20 Апр 2020 в 20:20

Получил код для работы. Мне пришлось связать Аккаунт с контактом, а не с делом. Спасибо за помощь.

 // Conatct creatation
    val contactEntity = ChatEntity.Builder()
            .showOnCreate(true)
            .linkToTranscriptField("Contact")
            .linkToAnotherSalesforceObject(caseEntity, "ContactId")
            .addChatEntityField(firstNameField)
            .addChatEntityField(lastNameField)
            .addChatEntityField(emailField)
            .addChatEntityField(descriptionField)
            .build("Contact")

    // Load account
    val accountEntity = ChatEntity.Builder()
            .showOnCreate(true)
            .linkToTranscriptField("Account")
            .linkToAnotherSalesforceObject(contactEntity, "AccountId")
            .addChatEntityField(
                    ChatEntityField.Builder()
                            .doFind(true)
                            .isExactMatch(true)
                            .doCreate(true)
                            .build("AccountNumber", erpCustomerNumber))
            .build("Account")



chatConfigurationBuilder.chatUserData(firstName, lastName, email, subject, description, erpCustomerNumber)
        chatConfigurationBuilder.chatEntities(contactEntity, caseEntity, accountEntity)
0
skimos 22 Апр 2020 в 17:32