Skip to main content

#Trailhead Challenges1,894 人正在讨论

Hands-on challenges are the “secret sauce” of Trailhead. Before searching for solutions to superbadge challenges, review the Salesforce Certification Program Agreement and Policies. ** NOTE ** : If you were able to get a response that solved your issue, please mark it as the 'Best Answer' to help other Trailblazers. If the issue persists after 48 hours, create a Trailhead Help case at https://help.salesforce.com/s/support for further assistance.

Dear Forum  

I have a query that Can we add "Specify the time criteria for this rule" other than 0min or 30 min like (12min,20 min) in esclationn rule. 

 

#Service Cloud  #Trailhead Challenges

1 个回答
  1. 8月22日 10:16

    Short answer: no - native Case Escalation Rules only let you pick 0 or 30 minutes for 'Age Over' (you enter the hours, then choose 0 or 30 from the dropdown). Custom values like 12 or 20 minutes are not possible there; it is a fixed platform limit. 

     

    For minute-precise escalation, use one of these instead: 

     

    1. Record-Triggered Flow with a Scheduled Path (easiest): add a scheduled path set to run, say, 12 or 20 minutes after your date/time field (or after the case is created / meets criteria), and put the escalation action - reassign to a queue, send an email, update a field - in that path. Scheduled paths accept any custom minute value. 

     

    2. Entitlements + Milestones (the full SLA framework): 'Minutes to Complete Milestone' accepts any number, and Milestone Actions fire at exactly that time - ideal if you are tracking support SLAs. 

     

    Go with the Flow scheduled path if you just need custom timing; use Milestones if you want a proper SLA model on Cases. 

     

    If this helps, please mark it as the Best Answer so it helps the next person - thanks 🙂

0/9000

i am currently working on the scheduled flow modules which in under the developer intermediate course , i have completed all the task which is given to me , but still it shows not completed , help me in this  

 

#Trailhead Challenges  #Flow

9 个回答
  1. 8月13日 13:29

    Hi,

    I’m currently working through the Scheduled Flow modules in the Developer Intermediate course. I have completed all the tasks and automation steps required by the module, but Trailhead is still showing the module as Not Completed.

    Could you please help me understand what might be causing this issue and what I need to check or update so that Trailhead recognizes the completed work?

    I would really appreciate your guidance.

    Thank you!

0/9000

Hi everyone,

I’m using a Scheduled Flow that calls an Invocable Apex action to send contract expiration reminder emails.

The flow passes the correct Contract Ids to Apex, and the Apex code creates Messaging.SingleEmailMessage records using setToAddresses() for both the Relationship Manager (User email) and Party Contact (Contact email).

Here is the email sending part of my Apex code:

public class ContractReminderController {    // Wrapper class to accept a collection of Contract Ids from Flow    public class ContractRequest {        @InvocableVariable(required=true)        public List<Id> contractIds;    }    @InvocableMethod(label='Send Contract Expiration Reminders')    public static void sendReminders(List<ContractRequest> requests) {        if (requests == null || requests.isEmpty()) {            return;        }        Set<Id> contractIds = new Set<Id>();        // Collect all Contract Ids from the Flow collection        for (ContractRequest req : requests) {            if (req.contractIds != null) {                contractIds.addAll(req.contractIds);            }        }        if (contractIds.isEmpty()) {            return;        }        // Query Contracts        List<Contract__c> contracts = [            SELECT Id,                   Name,                   Contract_End_Date__c,                   Send_Expiration_Reminder_Days_Before__c,                   Relationship_Manager__c,                   Relationship_Manager__r.Name,                   Relationship_Manager__r.Email,                   Party_Contact__c,                   Party_Contact__r.Name,                   Party_Contact__r.Email            FROM Contract__c            WHERE Id IN :contractIds        ];        List<Messaging.SingleEmailMessage> emailList = new List<Messaging.SingleEmailMessage>();        for (Contract__c con : contracts) {            // Relationship Manager Email            if (con.Relationship_Manager__c != null &&                String.isNotBlank(con.Relationship_Manager__r.Email)) {                Messaging.SingleEmailMessage rmEmail = new Messaging.SingleEmailMessage();                rmEmail.setToAddresses(new List<String>{                    con.Relationship_Manager__r.Email                });                rmEmail.setSubject('Action Required: Contract Expiration Reminder - ' + con.Name);                rmEmail.setPlainTextBody(                    'Dear ' + con.Relationship_Manager__r.Name + ',\n\n' +                    'This is a reminder that the contract "' + con.Name +                    '" is scheduled to expire in ' +                    String.valueOf(con.Send_Expiration_Reminder_Days_Before__c) +                    ' days.\n\n' +                    'Contract Details:\n' +                    '- Contract Name: ' + con.Name + '\n' +                    '- End Date: ' + String.valueOf(con.Contract_End_Date__c) + '\n\n' +                    'Please review the contract and initiate the renewal or closure process before the expiration date.\n\n' +                    'Regards,\n' +                    'Contract Management System'                );                emailList.add(rmEmail);            }            // Party Contact Email            if (con.Party_Contact__c != null &&                String.isNotBlank(con.Party_Contact__r.Email)) {                Messaging.SingleEmailMessage contactEmail = new Messaging.SingleEmailMessage();                contactEmail.setToAddresses(new List<String>{                    con.Party_Contact__r.Email                });                contactEmail.setSubject('Upcoming Contract Expiration Notice - ' + con.Name);                contactEmail.setPlainTextBody(                    'Dear ' + con.Party_Contact__r.Name + ',\n\n' +                    'This is a reminder that the contract "' + con.Name +                    '" is scheduled to expire in ' +                    String.valueOf(con.Send_Expiration_Reminder_Days_Before__c) +                    ' days.\n\n' +                    'Contract Details:\n' +                    '- Contract Name: ' + con.Name + '\n' +                    '- End Date: ' + String.valueOf(con.Contract_End_Date__c) + '\n\n' +                    'If you wish to continue the agreement, please contact your Relationship Manager to discuss the renewal process before the contract expires.\n\n' +                    'Regards,\n' +                    'Contract Management System'                );                emailList.add(contactEmail);            }        }        // Send all emails        if (!emailList.isEmpty()) {            Messaging.sendEmail(emailList);        }    }}

The Apex debug log shows:

  • Messaging.sendEmail() returns Success: true
  • The Salesforce Email Log File shows Mail Event = D (Delivered) for the recipient email addresses

However, the emails never appear in either the Gmail inbox or the company Outlook inbox (including Spam/Junk folders).

A simple Anonymous Apex email using the same setToAddresses() approach is delivered successfully.

Has anyone seen a case where emails sent from an Invocable Apex method triggered by a Scheduled Flow are marked as Delivered in the Email Log File but are not received by the recipients? Are there any limitations, sender context differences (Automated Process), or additional settings I should check?

Thanks! 

 

#Salesforce Developer

 

@* Salesforce Developers *

5 个回答
  1. 8月4日 06:35

    I found the solution.

    The issue was not with the Flow or the Invocable Apex logic. The emails were being sent from a Scheduled Flow, which runs as the Automated Process user. Although Messaging.sendEmail() returned success and the Email Log File showed Delivered, the recipients were not receiving the emails.

    The fix was to send the emails using a verified Organization-Wide Email Address.

    I updated the Apex code to retrieve the Organization-Wide Email Address dynamically and set it as the sender:

    OrgWideEmailAddress owea = [

    SELECT Id

    FROM OrgWideEmailAddress

    LIMIT 1

    ];

    email.setOrgWideEmailAddressId(owea.Id);

    After setting the From Address to a verified Organization-Wide Email Address, the reminder emails were delivered successfully to the recipients.

    Hopefully this helps anyone facing the same issue with Scheduled Flows and Invocable Apex email delivery.

0/9000

Getting this Error: Error 'contact' is not defined in outputs line: 123 Error 'contact' is not defined in outputs  

'contact' is not defined in outputsagentscript-compiler 

 

How to solve this Error? 

 

#Trailhead Challenges

14 个回答
  1. 6月12日 10:21

    Okay @Deepshikha Shaw

    , looks like the code to be copied from the section 'Import a New Agent with Agent Builder' has some issue. The code to the copied has fiew lines, which are different in your screenshots. 

    You can try from this step again, create a new agent using scitpt, and follow the steps onwards again. AFter that, it is just saving that agent, append some new instructions (not replace, but added those 5 lines) and done.

0/9000

What are your favorite Trailhead modules for improving Flow skills? 

 

I've been spending more time learning Salesforce Flow and have completed several beginner Trailhead modules. As I move into more advanced automation, I'm looking for recommendations from the community.

 

Which Trailhead modules or hands-on projects helped you the most in understanding topics like:

  • Record-Triggered Flows
  • Scheduled Flows
  • Screen Flows
  • Error handling
  • Best practices for building scalable Flows

I'm also interested in knowing whether you prefer learning through Trailhead alone or by building projects in a Developer Edition org.

 

Looking forward to hearing which resources made the biggest difference in your Salesforce journey! 

 

Get more info

Click Here

 

#Flow  #Trailhead Challenges

0/9000
2 个回答
  1. Eric Burté (DEVOTEAM) Forum Ambassador
    6月4日 22:40

    Hello @Thomas Boxall have you tried flows or apex triggers ? Make sure those are very optimized. Otherwise bypass those mechanisms and leverage scheduled flows / jobs. Eric

0/9000

as per the tail expected behavior and i can't able to complete the below steps, i followed all the sted and verifed multiple time, but i can complete like below  

unable to complete my Sales Pipeline Management with Agents -   Test Your Agent

 

reference 

 

image.png

 

 

 

 

#Trailhead Challenges  #Trailhead

6 个回答
  1. 5月13日 21:51

    @Sainath Gutthikonda I had the same issue where the Update button did not appear for me either.

    In my case, it only appeared after I ran the flow in Debug mode. Before that, even though I had scheduled the flow, it looked like the scheduled flow never actually ran.

    So I suspect the issue may be related to the scheduled flow timing or timezone, even though I followed the instructions carefully and updated the timezone for both the company and the user.

    I ran the Testing Zoom Call flow in Debug mode, and after I refreshed the Opportunities list page, the Agent Activity entry was created and the Update button appeared for review.

    I hope this helps. Please let me know if you have any additional questions.

0/9000
4 个回答
  1. 5月4日 12:58

    Hi @Bola Thanuja,  

    Update your chatterBody text template to include the exact mention syntax: @[{!$Record.OwnerId}]

    Key steps to fix it:

    1. Open your chatterBody Text Template in the Flow toolbox.
    2. Change the template dropdown from "View as Rich Text" to View as Plain Text. (Rich Text can sometimes add hidden HTML tags that break the Trailhead checker).
    3. Type the mention syntax exactly as @[{!$Record.OwnerId}]. Because you are in a Schedule-Triggered Flow running on the Contact object, $Record is the global variable that represents the current Contact in the batch.
0/9000

Module -  Autolaunched and Scheduled Flows 

Trail -  Schedule a Flow

 

Full error message -  We can’t find the 'Missing Data' field on the Contact object. Make sure you saved the field with 'Missing_Data' as the API name.

 

I have created Missing Data field on contact object properly with field name as Missing_Data but how can Api name would be  Missing_Data without __c. API name will have  Missing_Data__c as its custom field. 

 

Any suggestion would be appreciated, thanksGetting Error- We can’t find the 'Missing Data' field on the Contact object

Error.png

6 个回答
  1. 2023年4月18日 11:54

    Hi @M K MANOJ,

     

    Hope you are doing well.

     

    I am from the Trailhead help team. We tried checking this from our end in the backend and see that you have successfully completed 'Autolaunched and Scheduled Flows' Trailhead.

    May I request you please let us know if any of the above responses helped you resolve the issue? If yes, kindly share the solution that helped you resolve the issue so that it might help the fellow Trailblazer's who are facing the similar issue.

     

    Thank you!

     

    ++CreateClosedTrailheadCase ← You can ignore this command, it is a tool used by our Agents to tell the system to create your case.

0/9000

 

I am not sure what is wrong

 

 

Screenshot 2025-10-14 170800.png

 

 

This is the module called Autolaunched and Scheduled Flows and the 3 excecise called

Run an Autolaunched Flow from a Custom Button

 

 

#Trailhead Challenges

6 个回答
0/9000