• Clara Prom
  • NEWBIE
  • 0 Points
  • Member since 2021
  • Altosaxo

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 3
    Replies
I am stuck on Step 4 of the Process Automation Specialist Superbadge. I am receiving the following error:
Challenge Not yet complete... here's what's wrong: 
There was an unexpected error while verifying this challenge. Usually this is due to some pre-existing configuration or code in the challenge Org. We recommend using a new Developer Edition (DE) to check this challenge. If you're using a new DE and seeing this error, please post to the developer forums and reference error id: GTJRSNVZ

Here are the Challenge Requirements: 
Create Sales Process and Validate Opportunities
Create a sales process with the required stages and name it RB Robotics Sales Process. Create a record type named RB Robotics Process RT. Add a field to the opportunity page layout as described in the business requirements and create the appropriate validation rule for high-value opportunities.

Hey, nice work on the setup records! Now let’s talk about our sales process. Most of the stages we use are already in Salesforce, but one of the stages we track doesn’t come standard so it would be great if you’d add it. These are the stages we use:  Prospecting, Qualification, Proposal/Price Quote, Negotiation/Review, Awaiting Approval, Closed Won, and Closed Lost. We want all our reps to follow the same process, so everyone should see those stages for every opportunity. 
Oh, and the biggest deals--anything over $100K--have to be approved before they can close. We should have a way to show on the record that the deal is approved--maybe you can add an “Approved” checkbox to the opportunity. Obviously the sales reps shouldn’t be able to check that box. Only system administrators like you and sales managers should be able to check it. By the way, all of us sales managers here have the Custom: Sales Profile in Salesforce.

I have created the following:
  1. Created a new Opportunity Stage: Awaiting Approval (Open, 95%, Pipeline)
  2. Created the following Opportunity Fields:
    1. Approved (Checkbox) Defaulted FALSE
  3. Sales Process:
    1. NAMED: RB Robotics Sales Process
    2. Stages Added:
      1. Prospecting (Open, 10%, Pipeline)
      2. Qualification (Open, 10%, Pipeline)
      3. Proposal/Price Quote (Open, 75%, Pipeline)
      4. Negotiation/Review (Open, 90%, Pipeline)
      5. Awaiting Approval (Open, 95%, Pipeline)
      6. Closed Won (Closed/Won, 100%, Closed)
      7. Closed Lost (Closed/Lost, 0%, Omitted)
  4. Opportunity Record Type:
    1. NAMED: RB Robotics Process RT
    2. Sales Process: RB Robotics Sales Process
    3. This is the only record type and assigned to all profiles. Also using the Opportunity Layout. 
  5. Opportunity Validation Rules:
    1. Approved_Field_Validation
      AND( 
      ISCHANGED(Approved__c), 
      OR( 
      $Profile.Name <> 'System Administrator', 
      $Profile.Name <> 'Custom: Sales Profile' 
      ) 
      )

      2. High_Value_Opportunity_Validation
      AND(
          ISCHANGED( IsClosed ),
          IsClosed = TRUE,
          Amount  > 100000,
          Approved__c  <> TRUE
          )
Im not sure what I am missing. Can anyone assist?
These boards have numerous threads about sending emails from s-controls.  Having just wrestled with a variant of the problem for a customer, I thought I'd post the solution I used, which (now!) seems fairly straightforward (although it took some bobbing & weaving to get here).

Problem Statement
:  With one click, allow a user to create an object, then send a template-based email to a Contact associated with that object.  The email template must populate with correct values from the just-created object.

Solution:  Save the following code as an s-control snippet.  Then include the snippet, and call the function from anywhere in your main s-control.  (I won't cover the part about creating a new object here - let's assume you can do that, and then retrieve the object ID of your newly created object.)

function sendEmail(templateId, contactIdForToAddress, relatedObjectId) {

  var url = "https://na3.salesforce.com/email/author/emailauthor.jsp?";
  url += "p2_lkid=" + contactIdForToAddress;
  url += "&p3_lkid=" + relatedObjectId;
  url += "&template_id=" + templateId;
  url += "&new_template=1";
  url += "&retURL=%2F" + relatedObjectId;
  url += "&nosave=0";   // not sure what this parameter does, or if it's really needed
  url += "&save=1";   // send it now - don't just bring us to the "send email" page

  window.open(url);
}


The net effect here is that a new window (actually, a tab in Firefox) will open up, pointing at the newly created object.  If it has an Activity History related list, the just-sent email will appear there. 

This all worked rather elegantly for me.  The actual use case is a Google Map showing the location of various Communities (a custom object).  The user can select several Communities (from a sidebar with a list of accounts & checkboxes), then click a single button to create "Referrals" (a custom object) to each selected Community, and email each Community's primary contact with their Referral data.  After the click, the user waits a moment, and then multiple tabs open up, one for each newly-created Referral.

I'm happy to discuss further if anyone is interested or needs help doing something similar - glenn@appirio.com.


Message Edited by GlennAtAppirio on 02-18-2007 01:05 PM

Message Edited by GlennAtAppirio on 02-18-2007 01:05 PM