1

I need to embed a flow on a public Salesforce Site.

I have enabled flow access for specific flow under the Site's Profile, but it still doesn't seem to show.

I found this super helpful post that looked promising, but as you can see from the screenshot, only the regular Sales Cloud's VF page loads. The Salesforce Site is not showing my flow at all, let alone the display text 'Lead Id: 00QDC000007xp1X2AQ'

Enable Lightning runtime for flows

enter image description here

Visualforce page:

<apex:page lightningStylesheets="true">
   <html>
      <head>
         <apex:includeLightning />
      </head>
      <body class="slds-scope">
        <h1>testing1</h1>
         <div id="flowContainer" />
         <script>
            var statusChange = function (event) {
               if(event.getParam("status") === "FINISHED") {
                  // Control what happens when the interview finishes
 
                  var outputVariables = event.getParam("outputVariables");
                  var key;
                  for(key in outputVariables) {
                     if(outputVariables[key].name === "myOutput") {
                        // Do something with an output variable
                     }
                  }
               }
            };
            $Lightning.use("c:exposeFlows", function() {
               // Create the flow component and set the onstatuschange attribute
               $Lightning.createComponent("lightning:flow", {"onstatuschange":statusChange},
                  "flowContainer",
                  function (component) {
                     // Set the input variables
                     var inputVariables = [
                        {
                           name : 'recordId',
                           type : 'String',
                           value : "00QDC000007xp1X2AQ"
                        }
                     ];
                     
                     // Start an interview in the flowContainer div, and 
                     // initializes the input variables.
                     component.startFlow("debugFlow", inputVariables);
                  }
               );
            });
         </script>
         <h1>testing2</h1>
      </body>
   </html>
</apex:page>

Aura App:

<aura:application access="global" extends="ltng:outApp" >
    <aura:dependency resource="lightning:flow"/>
</aura:application>

I should note that I also tried the following but got an error: We can’t display component 'flowruntime:debugFlow', because it isn't supported in Classic runtime.

<apex:page lightningStylesheets="true">
    <flow:interview name="Upload_Files">
    </flow:interview>
</apex:page>
2
  • 1
    did you grant explicit access to the Flow F to the Guest User Profile (this is done in the Flow's security settings)?
    – cropredy
    Aug 16, 2023 at 1:24
  • Yes I did, excellent suggestion.
    – rmarq423
    Aug 16, 2023 at 12:19

1 Answer 1

2

Figured it out. The Aura App container needed two additional parameters to be exposed: access=GLOBAL and implements="ltng:allowGuestAccess"

<aura:application extends="ltng:outApp" access="GLOBAL"  implements="ltng:allowGuestAccess">
      <aura:dependency resource="c:customFileUpload" type="COMPONENT"/>
</aura:application>

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .