Azure Enterprise SSO Application - User Provisioning mapping expression issue

Craig Dyson 20 Reputation points
2024-10-23T12:35:46+00:00

I have a Entra ID enterprise application created and configured for SSO and automated user provisioning to our Salesforce production org.

I am creating an expression to map the Job Title of a user in Entra ID to a Permission Set Group in Salesforce for automated user provisioning but I'm hitting a very strange issue.

My expression is 3,639 characters long so won't be affected by the 10,000 character limit.

The expression is as follows:

IIF([jobTitle]="Head of Commercial", "HeadofCommercial", IIF([jobTitle]="Head of Digital Marketing", "HeadofCommercial", IIF([jobTitle]="Head of Partnerships & Events", "HeadofCommercial", IIF([jobTitle]="Digital Product Manager", "HeadofCommercial", IIF([jobTitle]="Partnership Manager", "HeadofCommercial", IIF([jobTitle]= "Digital Marketing Manager", "HeadofCommercial", IIF([jobTitle]="Inbound Marketing Manager", "HeadofCommercial", IIF([jobTitle]="Chief Financial Officer", "ChiefFinancialOfficer", IIF([jobTitle]="Financial Controller", "ChiefFinancialOfficer", IIF([jobTitle]="Financial Transaction Manager", "ChiefFinancialOfficer", IIF([jobTitle]="Head of Commercial Finance", "ChiefFinancialOfficer", IIF([jobTitle]="Senior Finance Assistant - Sales Ledger & Cashbook", "ChiefFinancialOfficer", IIF([jobTitle]="Senior Finance Assistant", "ChiefFinancialOfficer", IIF([jobTitle]="Finance Assistant", "ChiefFinancialOfficer", IIF([jobTitle]="Assistant Management Accountant", "ChiefFinancialOfficer", IIF([jobTitle]="Commercial Financial Analyst", "ChiefFinancialOfficer", IIF([jobTitle]="Director of English Regions", "DirectorofEnglishRegions", IIF([jobTitle]="Field Operations and Training Manager", "DirectorofEnglishRegions", IIF([jobTitle]="Project Co-Ordinator", "DirectorofEnglishRegions", IIF([jobTitle]="Regional Development Manager", "DirectorofEnglishRegions", IIF([jobTitle]="Development Manager", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator", "DirectorofEnglishRegions", IIF([jobTitle]="Deputy Head of English Regions", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - Midlands", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - South East", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - South (English Regions)", "DirectorofEnglishRegions", IIF([jobTitle]="Senior External Affairs Manager (London)", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - South (London)", "DirectorofEnglishRegions", IIF([jobTitle]="Director of Sales", "SalesSupportManager", IIF([jobTitle]="Divisional Sales Manager (North)", "SalesSupportManager", IIF([jobTitle]="Divisional Sales Manager (South)", "SalesSupportManager", IIF([jobTitle]="Sales Support Manager", "SalesSupportManager", IIF([jobTitle]="Regional Sales Manager", "SalesSupportManager", IIF([jobTitle]="Director of Membership", "ContactCentreTeamManager", IIF([jobTitle]="Contact Centre Manager", "ContactCentreTeamManager", IIF([jobTitle]="Contact Centre Team Manager", "ContactCentreTeamManager", IIF([jobTitle]="Operations Administrator", "ContactCentreTeamManager", IIF([jobTitle]="Quality and Development Manager", "ContactCentreTeamManager", IIF([jobTitle]="Contact Centre Quality Analyst", "ContactCentreTeamManager", IIF([jobTitle]="Customer Services Team Manager", "ContactCentreTeamManager", IIF([jobTitle]="Customer Services Advisor", "ContactCentreTeamManager", IIF([jobTitle]="Sales & Retention Team Manager", "ContactCentreTeamManager", IIF([jobTitle]="Sales & Retention Advisor", "ContactCentreTeamManager", IIF([jobTitle]="Data Insight Manager", "ContactCentreTeamManager", IIF([jobTitle]="Campaign Selections Analyst", "ContactCentreTeamManager", IIF([jobTitle]="Data Insight Administrator", "ContactCentreTeamManager", IIF([jobTitle]="Director of Devolved Nations", "DirectorofEnglishRegions", IIF([jobTitle]="Senior Development Manager (Wales)", "DirectorofEnglishRegions", IIF([jobTitle]="Development Manager (Wales)", "DirectorofEnglishRegions", "")))))))))))))))))))))))))))))))))))))))))))))))))

Adding this to the Expression displays "The expression you entered is not valid."

Adding a smaller set of expressions makes it a valid expression.

Example:

IIF([jobTitle]="Head of Commercial", "HeadofCommercial", IIF([jobTitle]="Head of Digital Marketing", "HeadofCommercial", IIF([jobTitle]="Head of Partnerships & Events", "HeadofCommercial", IIF([jobTitle]="Digital Product Manager", "HeadofCommercial", IIF([jobTitle]="Partnership Manager", "HeadofCommercial", IIF([jobTitle]= "Digital Marketing Manager", "HeadofCommercial", IIF([jobTitle]="Inbound Marketing Manager", "HeadofCommercial", IIF([jobTitle]="Chief Financial Officer", "ChiefFinancialOfficer", IIF([jobTitle]="Financial Controller", "ChiefFinancialOfficer", IIF([jobTitle]="Financial Transaction Manager", "ChiefFinancialOfficer", IIF([jobTitle]="Head of Commercial Finance", "ChiefFinancialOfficer", IIF([jobTitle]="Senior Finance Assistant - Sales Ledger & Cashbook", "ChiefFinancialOfficer", IIF([jobTitle]="Senior Finance Assistant", "ChiefFinancialOfficer", IIF([jobTitle]="Finance Assistant", "ChiefFinancialOfficer", IIF([jobTitle]="Assistant Management Accountant", "ChiefFinancialOfficer", IIF([jobTitle]="Commercial Financial Analyst", "ChiefFinancialOfficer", IIF([jobTitle]="Director of English Regions", "DirectorofEnglishRegions", IIF([jobTitle]="Project Co-Ordinator", "DirectorofEnglishRegions", IIF([jobTitle]="Regional Development Manager", "DirectorofEnglishRegions", IIF([jobTitle]="Development Manager", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator", "DirectorofEnglishRegions", IIF([jobTitle]="Deputy Head of English Regions", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - Midlands", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - South East", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - South (English Regions)", "DirectorofEnglishRegions", IIF([jobTitle]="Senior External Affairs Manager (London)", "DirectorofEnglishRegions", IIF([jobTitle]="Operational Support Co-Ordinator - South (London)", "DirectorofEnglishRegions", IIF([jobTitle]="Director of Sales", "SalesSupportManager", IIF([jobTitle]="Divisional Sales Manager (North)", "SalesSupportManager", IIF([jobTitle]="Divisional Sales Manager (South)", "SalesSupportManager", IIF([jobTitle]="Sales Support Manager", "SalesSupportManager", IIF([jobTitle]="Regional Sales Manager", "SalesSupportManager", ""))))))))))))))))))))))))))))))))

If I add one more Job Title to Permission Set Group mapping to the expression it returns a "The expression you entered is not valid." error.

Is there a limit to the amount of IIF arguments you can use in an expression?

Is there a more efficient way to build this expression?

Microsoft Security Microsoft Entra Microsoft Entra ID
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. David Lundell 86 Reputation points
    2025-06-08T03:28:09.27+00:00

    You could try using a Switch statement. Warning it does a case sensitive compare, if you want a case insensitive you could do the following:

    Switch([ToLower(jobTitle]),"","head of commercial", "HeadofCommercial", "head of digital marketing", "HeadofCommercial")

    Here is your original converted to a switch (I have tested this solution) in the ExpressionBuilder and it works.

    Switch([jobTitle],"","Head of Commercial", "HeadofCommercial", "Head of Digital Marketing", "HeadofCommercial", "Head of Partnerships & Events", "HeadofCommercial", "Digital Product Manager", "HeadofCommercial", "Partnership Manager", "HeadofCommercial",  "Digital Marketing Manager", "HeadofCommercial", "Inbound Marketing Manager", "HeadofCommercial", "Chief Financial Officer", "ChiefFinancialOfficer", "Financial Controller", "ChiefFinancialOfficer", "Financial Transaction Manager", "ChiefFinancialOfficer", "Head of Commercial Finance", "ChiefFinancialOfficer", "Senior Finance Assistant - Sales Ledger & Cashbook", "ChiefFinancialOfficer", "Senior Finance Assistant", "ChiefFinancialOfficer", "Finance Assistant", "ChiefFinancialOfficer", "Assistant Management Accountant", "ChiefFinancialOfficer", "Commercial Financial Analyst", "ChiefFinancialOfficer", "Director of English Regions", "DirectorofEnglishRegions", "Field Operations and Training Manager", "DirectorofEnglishRegions", "Project Co-Ordinator", "DirectorofEnglishRegions", "Regional Development Manager", "DirectorofEnglishRegions", "Development Manager", "DirectorofEnglishRegions", "Operational Support Co-Ordinator", "DirectorofEnglishRegions", "Deputy Head of English Regions", "DirectorofEnglishRegions", "Operational Support Co-Ordinator - Midlands", "DirectorofEnglishRegions", "Operational Support Co-Ordinator - South East", "DirectorofEnglishRegions", "Operational Support Co-Ordinator - South (English Regions)", "DirectorofEnglishRegions", "Senior External Affairs Manager (London)", "DirectorofEnglishRegions", "Operational Support Co-Ordinator - South (London)", "DirectorofEnglishRegions", "Director of Sales", "SalesSupportManager", "Divisional Sales Manager (North)", "SalesSupportManager", "Divisional Sales Manager (South)", "SalesSupportManager", "Sales Support Manager", "SalesSupportManager", "Regional Sales Manager", "SalesSupportManager", "Director of Membership", "ContactCentreTeamManager", "Contact Centre Manager", "ContactCentreTeamManager", "Contact Centre Team Manager", "ContactCentreTeamManager", "Operations Administrator", "ContactCentreTeamManager", "Quality and Development Manager", "ContactCentreTeamManager", "Contact Centre Quality Analyst", "ContactCentreTeamManager", "Customer Services Team Manager", "ContactCentreTeamManager", "Customer Services Advisor", "ContactCentreTeamManager", "Sales & Retention Team Manager", "ContactCentreTeamManager", "Sales & Retention Advisor", "ContactCentreTeamManager", "Data Insight Manager", "ContactCentreTeamManager", "Campaign Selections Analyst", "ContactCentreTeamManager", "Data Insight Administrator", "ContactCentreTeamManager", "Director of Devolved Nations", "DirectorofEnglishRegions", "Senior Development Manager (Wales)", "DirectorofEnglishRegions", "Development Manager (Wales)", "DirectorofEnglishRegions")
    
    
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.