Lägg automatiskt till rättigheter i kundcase från webb, e-post och upplevelser
Rättigheter gäller automatiskt inte för kundcase skapade med webb-till-kundcase, e-post-till-kundcase eller upplevelser. Du kan dock lägga till rättigheter till dessa funktioner med hjälp av Apex-kod.
Versioner som krävs
| Visa versioner som stöds. |
| Användarbehörigheter som krävs för att | |
|---|---|
| Definiera Apex-utlösare: | Apex-författare |
När ett kundcase skapas via Webb-till-kundcase, E-post-till-kundcase eller upplevelser, associeras det inte automatiskt med en rättighet. När ett kundcases Rättigheter-fält är tomt kontrollerar denna exempelutlösare om kundcasekontakten har en aktiv rättighet. Om kontakten har en aktiv rättighet läggs rättigheten till för kundcaset. Om kontakten inte har en aktiv rättighet kontrollerar sedan utlösaren om kundcasekontot har en aktiv rättighet. Om kundcasekontot har en aktiv rättighet läggs rättigheten till för kundcaset. Utlösaren hjälper till att säkerställa att kundcase löses enligt ditt kundsupportavtal.
- I Classic: i Inställningar, skriv Kundcaseutlösare i rutan Snabbsökning och välj sedan Kundcaseutlösare.
- Klicka på Ny.
- Kopiera koden nedan och klistra in den i textfältet.
- Klicka på Spara.
- För Lightning, från Developer Console, välj Arkiv > Ny > Apex-utlösare.
- Ange ett namn på utlösaren och välj sedan Objekt som Kundcase.
- Klicka på Skicka.
- Kopiera koden nedan och klistra in den i textfältet.
- Klicka på Spara.
trigger DefaultEntitlement on Case (Before Insert, Before Update) {
Set<Id> contactIds = new Set<Id>();
Set<Id> acctIds = new Set<Id>();
for (Case c : Trigger.new) {
contactIds.add(c.ContactId);
acctIds.add(c.AccountId);
}
List <EntitlementContact> entlContacts =
[Select e.EntitlementId,e.ContactId,e.Entitlement.AssetId
From EntitlementContact e
Where e.ContactId in :contactIds
And e.Entitlement.EndDate >= Today
And e.Entitlement.StartDate <= Today];
if(entlContacts.isEmpty()==false){
for(Case c : Trigger.new){
if(c.EntitlementId == null && c.ContactId != null){
for(EntitlementContact ec:entlContacts){
if(ec.ContactId==c.ContactId){
c.EntitlementId = ec.EntitlementId;
if(c.AssetId==null && ec.Entitlement.AssetId!=null)
c.AssetId=ec.Entitlement.AssetId;
break;
}
}
}
}
} else{
List <Entitlement> entls = [Select e.StartDate, e.Id, e.EndDate,
e.AccountId, e.AssetId
From Entitlement e
Where e.AccountId in :acctIds And e.EndDate >= Today
And e.StartDate <= Today];
if(entls.isEmpty()==false){
for(Case c : Trigger.new){
if(c.EntitlementId == null && c.AccountId != null){
for(Entitlement e:entls){
if(e.AccountId==c.AccountId){
c.EntitlementId = e.Id;
if(c.AssetId==null && e.AssetId!=null)
c.AssetId=e.AssetId;
break;
}
}
}
}
}
}
}
