We have Email-To-Case configured, and once a case is created (case origin = email), the incoming EmailMessage is saved within the 'Case Description' field, and also create a 'feed item': enter image description here

This allows our Support agent to reply with the Email Composer, and the original EmailMessage appears in the Email Thread.

I would like to achieve the same functionality with other originated cases, such as 'Web' (via Web-To-Case), Portal, etc. These cases are not creating a 'feed item', and only sets the 'Case Description' field: enter image description here

I know that I can use the 'Case Description' as a merge field with an Email Template when replying, but I wanted to understand if there is a better solution, which might involve creating the 'feed item' (Trigger perhaps?).

Thank you.


With your requirement, it seems you need to write a trigger on case object, and check "Case Origin". Sample trigger code would be

trigger CaseTrg on Case (after Insert) {
    List<FeedItem> FeedItems = new List<FeedItem>();
    for(Case c: trigger.new)
        // don't check other stuff if the origin is Email-to-Case as it is already running tip-top
        if (c.Case_Origin != 'Email')
            if (c.Case_Origin == 'Web' OR c.Case_Origin == 'Portal' ) // add more cases with OR as per your need
                //create and insert Feeditem
                FeedItem post = new FeedItem();
                post.Body = 'blah.blah....';
                post.ParentId = [ID_OF_CASE];
                post.Title = '[Case Subject? or any other Case related field you feel suitable]';
    if(FeedItems.size() > 0) Insert FeedItems;
  • Thanks Mahmood. I implemented the trigger, and added 'c.ParentId' as the Case Parent ID, but am receiving an error upon case creation 'Required fields are missing: [ParentId]'. Below is the feeditem creation portion: FeedItem post = new FeedItem(); post.Body = c.Description; post.ParentId = c.ParentId; post.Title = c.Subject; FeedItems.add(post); – iDog Feb 25 '17 at 15:35
  • c.parentid is referring to the parent case. You need to make it c.id Which refers to case id. – Mahmood Feb 25 '17 at 15:38
  • Thanks. I changed to "post.ParentId = 'c.ParentId';" and now receive an error: "Invalid id: c.ParentId". – iDog Feb 25 '17 at 15:45
  • 1
    Use post.parentid = c.id – Mahmood Feb 25 '17 at 15:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.