Partner portal approval workflow stuck at external user step

We’ve implemented an approval workflow for partner deal registrations using Flow Builder in our Spring '25 org. The process works fine internally, but consistently fails when it reaches our external partner portal users at the approval step.

The flow assigns the approval to the partner account manager (external user with Partner Community license), but they never receive the approval request. Internal approvers work perfectly. We’ve verified partner portal user permissions include the standard approval access, and the Deal Registration object has proper sharing rules.

Current Flow assignment logic:

Get_Partner_Manager [Get Records]
  Object: User
  Filter: ContactId = {Deal.Partner_Contact__c}
Assign_Approval [Submit for Approval]
  Approver: {Get_Partner_Manager.Id}

Deals are piling up in our pipeline because partners can’t approve their registrations. This is blocking our Q3 channel strategy. Has anyone solved approval flow assignment for external portal users? What permission sets or sharing configurations are we missing?

The root cause here involves three interconnected issues with partner portal user permissions, approval flow assignment mechanics, and deal registration automation timing.

Partner Portal User Permissions Fix: Your partner users need a custom permission set beyond standard Partner Community access. Create ‘Partner_Approver_Extended’ with these critical permissions:

  • API Enabled (required for approval processing)
  • Approve Contract Requests (enables approval UI even for custom objects)
  • View All Data on Deal_Registration__c object
  • Modify All on Deal_Registration__c (required for approval state changes)

Add this to your partner user profiles. The standard Partner Community license doesn’t include approval infrastructure by default.

Approval Flow Assignment Correction: Your current Flow assignment has a critical flaw - it doesn’t establish proper record sharing before approval submission. Modify your Flow:

// Before Submit for Approval action, add:
Create_Share_Record [Create Records]
  Object: Deal_Registration__Share
  Fields:
    ParentId: {Deal.Id}
    UserOrGroupId: {Get_Partner_Manager.Id}
    AccessLevel: Edit
    RowCause: Manual

This explicitly grants the partner approver edit access before the approval request. External users require explicit sharing - role hierarchy doesn’t apply to them.

Deal Registration Automation Enhancement: Implement a two-phase approval strategy:

Phase 1: Pre-approval validation (synchronous)

  • Verify partner user has active Community license
  • Confirm permission set assignments
  • Validate sharing rules are established

Phase 2: Approval submission (asynchronous via @future)

  • Prevents governor limit issues with external user operations
  • Allows proper notification delivery
  • Add custom notification as backup:
Send_Custom_Notification [Send Email]
  To: {Get_Partner_Manager.Email}
  Template: Partner_Approval_Required
  Related To: {Deal.Id}

Additional Configuration:

  1. In Approval Process settings, verify ‘Allow submitters to approve’ is checked if partners might submit their own deals
  2. Set approval email template to use ‘Send Using’ = ‘Current User’s Email’ to avoid org-wide address restrictions
  3. Add a scheduled Flow (daily) to catch any stuck approvals and reassign to an internal queue after 48 hours
  4. Enable ‘Approval History Related List’ on partner portal page layouts so users can track status

Testing Protocol: Before deploying, test with a partner sandbox user:

  1. Submit test deal as internal user
  2. Verify partner receives email notification within 5 minutes
  3. Confirm partner can see approval request in their Community portal
  4. Validate approval/rejection updates deal status correctly

This comprehensive approach addresses all three focus areas - permissions, assignment logic, and automation reliability. Your Q3 channel pipeline should unblock within 24 hours of implementing these changes. Monitor the first week closely and adjust notification timing based on partner feedback.


This draft is based on general Salesforce knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

I’ve seen this exact issue. The problem is that standard approval processes don’t fully support external users in the same way as internal users. Even with proper permissions, the approval notification mechanism doesn’t trigger correctly for portal users. You need to add explicit sharing on the Deal Registration record to the approver before submitting for approval. Also check if your partner users have the ‘API Enabled’ permission - it’s required for some approval operations even though it’s not documented clearly.

We had the same blocking issue last quarter. The core problem is the approval assignment targeting external users directly. What worked for us was creating a hybrid approach - assign to an internal queue first, then notify the partner user through a custom notification. The internal user can then reassign or the partner can claim from a custom Lightning component we built. Not ideal, but it unblocked our pipeline within days. Check your partner user’s profile - ‘Manage Cases’ and ‘View All’ on the object are often missing.

The issue is definitely permission-based, but it’s more nuanced than standard object permissions. Partner Community users need explicit approval permissions that aren’t in the default license. Beyond ‘API Enabled’, verify these: 1) Custom permission set with ‘Approve Contract Requests’ (even for non-contract objects, this enables approval functionality), 2) Sharing rule giving Read/Write to the approval object, 3) Process Automation user permission. Also, Flow Builder’s Submit for Approval action has limitations with external users - consider using Apex action instead for better control. Your Deal Registration automation might need manual sharing recalculation too.

Quick diagnostic - run this in Developer Console as your partner user:

User u = [SELECT Id, IsPortalEnabled FROM User WHERE Id = :UserInfo.getUserId()];
System.debug('Portal Enabled: ' + u.IsPortalEnabled);

If false, that’s your smoking gun. Partner portal users need the Community license properly activated, not just assigned. Also verify the approval process itself allows external users in the ‘Initial Submitters’ section. This is a checkbox that’s easy to miss during setup.

I’d also check the approval email template settings. External users often don’t receive approval notifications because the template references internal-only fields or uses organization-wide email addresses that block external delivery. Switch to a custom email template that explicitly handles external recipients. Additionally, your Flow’s assignment might be hitting governor limits if you’re processing multiple deals simultaneously - external user approval assignments count against different limits than internal ones. Consider batching your deal registration automation to avoid this.