Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Processing Social25__Heroku_Message__c records

As soon as message arrive in the Salesforce environment Social25 has triggers that will be executed. These triggers will process the messages for you if this is enabled in the active Social25 config. Please refer to the Flow Chart for the message flow.

The entire flow is customisable since every Salesforce environment is different. This existing flow is applicable to most Salesforce environments that have a standard Sales for Service cloud implementation. For more information how to configure the standard trigger, go to:

Configure the Social25 Multi Chat

Field Mapping

1. Lead

Lead(
	Heroku_Conversation_Id__c = Heroku_Message__c.Chat_Identifier__c,
	LastName = Heroku_Message__c.User_Full_Name__c,
	Phone = Heroku_Message__c.User_Phone_Number__c,
	LeadSource = Heroku_Message__c.Conversation_Medium__c,
	RecordTypeId = Social25_Config__c.Default_Lead_Recordtype__c
)

2. Person Account

Account(
    FirstName = Heroku_Message__c.User_First_Name__c,
    LastName = Heroku_Message__c.User_Last_Name__c,//When User_Last_Name__c is empty, use User_Full_Name__c
    Phone = Heroku_Message__c.User_Phone_Number__c,
    RecordTypeId = Social25_Config__c.Default_Account_Recordtype__c
)

3. Business Account

Account(
    Name = Social25_Config__c.Default_Account_Name__c,
    RecordTypeId = Social25_Config__c.Default_Account_Recordtype__c
)

4. Contact

Contact(
    FirstName = Heroku_Message__c.User_First_Name__c,
    LastName = Heroku_Message__c.User_Last_Name__c,//When User_Last_Name__c is empty, use User_Full_Name__c
    Phone = Heroku_Message__c.User_Phone_Number__c,
    AccountId = {Id of Default or Created Account},
    RecordTypeId = Social25_Config__c.Default_Contact_Recordtype__c
)

5. Social Post

SocialPost(
    Name = 'Message to/from' + Heroku_Message__c.User_Full_Name__c,
    ExternalPostId = Heroku_Message__c.Identifier__c,
    IsOutbound = Heroku_Message__c.Outbound__c,
    Content = Heroku_Message__c.Text__c,
    Provider = Heroku_Message__c.Conversation_Medium__c,
    Posted = Heroku_Message__c.Timestamp__c,
    Headline = Heroku_Message__c.Text__c,//First 255 characters
    AttachmentUrl = Heroku_Message__c.Content_Url__c,
    ParentId = {Id of the found/created Case}, //Only when existing
    Opportunity__c = {Id of the found/created Opportunity}, //Only when existing
    PersonaId = {Id of the found/created Social Persona},
    Conversation__c = {Id of the found/created Conversation__c},
    WhoId = {Id of the Parent from the Social Persona}, //Only when the parent is not a Social Post
    OwnerId = Heroku_Message__c.Agent_Identifier__c //Only for Outbound messages
)

6. Social Persona

SocialPersona(
    Name = Heroku_Message__c.User_Full_Name__c, //When User_Full_Name__c is empty, use User_Last_Name__c
    Provider = Heroku_Message__c.Conversation_Medium__c,
    ExternalId = Heroku_Message__c.Heroku_User_Identifier__c,
    ParentId = {Id of the found New Person Type} //Can be Account/Contact/Lead/SocialPost
)

7. Conversation

Conversation__c(
    Heroku_Conversation_Id__c = Heroku_Message__c.Chat_Identifier__c,
    Channel__c = Heroku_Message__c.Conversation_Medium__c,
    Account__c = {Id of the found/created Account},//Only when existing
    Contact__c = {Id of the found/created Contact},//Only when existing,
    Lead__c = {Id of the found/created Lead},//Only when existing,
    Social_Persona__c = {Id of the found/created Social Persona},
)

8. Case

Case(
    Heroku_Conversation_Id__c = Heroku_Message__c.Chat_Identifier__c,
    Platform_Identifier__c = Heroku_Message__c.Platform_Identifier__c,
    Origin = Heroku_Message__c.Conversation_Medium__c,
    Opportunity__c = {Id of found Opportunity},//Only when existing
    Lead__c = {Id of found Lead},//Only when existing
    RecordTypeId = Social25_Config__c.Default_Case_Recordtype__c,
    SourceId = {When parent of Social Persona is Social Post, Id of that parent},
    Subject = Heroku_Message__c.Text__c,//Only first 255 characters
    Description = Heroku_Message__c.Text__c,
    AccountId = {When parent of Social Persona is Account, Id of that parent},//Or AccountId of Contact when Parent is Contact
    ContactId = {When parent of Social Persona is Contact, Id of that parent},//Or PersonContactId of Account when Parent is Account
    AssignmentRuleId = {Heroku_Message__c.Use_Case_Assignment_Rules__c is True, use Id of Active AssignmentRule}
)

9. Opportunity

Opportunity(
    StageName = 'Prospecting',
    Name = Heroku_Message__c.User_Full_Name__c,
    Heroku_Conversation_Id__c = Heroku_Message__c.Chat_Identifier__c,
    CloseDate = {Date.today() + Social25_Config__c.Opportunity_Duration_In_Days__c},//When Opportunity_Duration_In_Days__c empty, then Date.today()
    AccountId = {When parent of Social Persona is Account, Id of that parent},//Or AccountId of Contact when Parent is Contact
    Opportunity_Source__c = Heroku_Message__c.Conversation_Medium__c,
    RecordTypeId = Social25_Config__c.Default_Opportunity_Recordtype__c,
    Source_Post__c = {When parent of Social Persona is Social Post, Id of that parent}
)

10. Heroku Message

Heroku_Message__c(
    Account__c = {When parent of Social Persona is Account, Id of that parent},//Or AccountId of Contact when Parent is Contact
    Contact__c = {When parent of Social Persona is Contact, Id of that parent},//Or PersonContactId of Account when Parent is Account
    Related_Lead__c = {Id of found Lead},//Only when existing
    Conversation__c = {Id of found/created Conversation__c},
    Related_Case__c = {Id of found/created Case},//Only when existing
    Related_Opportunity__c = {Id of found/created Opportunity},//Only when existing
    Social_Persona__c = {Id of the found/created Social Persona},
)
  • No labels