Create policy tags

Prev Next

Configure and use policy operation tags (policy tags) to route records (like Leads or Accounts) to help match records, like Leads, to the correct routing queues in Fullcast. Policy tags reference specific record fields—such as Lead Source, Industry, or Lead Score. For instance, you would route leads from a demo request differently than those from an event, or apply different routing rules for high score leads in the tech industry compared to low score ones.

Policy tags connect record data from Salesforce to Fullcast routing logic through three components:

  • Tag string: A combined string of multiple record field values created within a Salesforce flow.

  • Tag expression: An expression defined in a Fullcast routing policy that uses specific syntax to match incoming tag values to determine which policy runs.

  • Tag value: The actual string generated by the flow at runtime for a specific record (Demo||Tech||High). This value is passed to Fullcast.

Step 1: Construct the Tag String in Salesforce Flow

To enable Fullcast to evaluate multiple fields for routing, combine their values into a single tag string within your Salesforce flow. This string is then passed to the Fullcast Policy Handler Apex action.

  1. Identify Routing Fields: Determine which fields on the record you need to evaluate for routing decisions.  

  2. Combine Fields in Flow:

    • Use a Flow Formula resource or the CONCAT() function to join the API names of the desired fields.  

    • Separate each field value in the string with double pipes (||).

      • Example Formula (Lead Source, Industry, Lead Score): CONCAT({!$Record.LeadSource}, "||", {!$Record.Industry}, "||", TEXT({!$Record.Lead_Score__c}))

      • Note

        • Ensure numeric or other non-text fields are converted to text, use TEXT() .

        • The order you place fields in the tag string matters. You must use the same order when you create tag expressions.

  3. Pass String to Fullcast: Map the output of your formula resource to the inputVal1 field within the Fullcast Policy Handler Apex action in your Flow.

    Example of Formula Editor for inputVal1.

    Example of Policy Handler Apex Action in Flow Builder.

  4. Optional. Store tag string on record: Use a Flow assignment step to save the concatenated string to a custom text field on the Salesforce object (Lead.Tag_String__c), then reference this custom field in inputVal1.  

  5. Optional. Enable wildcards: To use wildcard matching (*) in your Fullcast tag expressions, set the inputVal4 field in the Fullcast Policy Handler action:

    • Type: String

    • Value: *

Step 2: Create Tag Expressions in the Fullcast Routing Policy

Within your Fullcast Routing Policy, define tag expressions to match the incoming tag values from Salesforce. This determines which specific policy or queue the record should be routed to.

Important considerations for tag expressions

  • Matching precedence: Fullcast evaluates more specific tag expressions before broader ones. If one policy uses the tag expression RouteLead||USA||[*] and another uses RouteLead||*||[*], a lead with the tag value RouteLead||USA||50 will match the first, more specific tag expression.

  • First element restriction: The very first item of a concatenated tag expression must be a static string for direct comparison; it cannot be a numeric range, list, or wildcard. Example: RouteLead is valid, but [>=,50]||Technology is not a valid start.

  • Concatenation separator: Always use || to separate segments in the tag expression. Do not use commas between concatenated groups.

Tag expression values

Tag expressions evaluate the tag value passed from Salesforce via inputVal1. They can match numeric values, string values, or use wildcards.

Match numeric values

Use this for conditions like Lead Score is greater than 50 or Lead Score is between 25 and 75.

  • Syntax:

    • Enclose numeric expressions in square brackets [].

    • Use commas to separate operators and values.

    • Do not use spaces.  

  • Supported Operators:

    • equals =

    • not equals !=

    • less than <

    • less than or equal to <=

    • greater than >

    • greater than or equal to>=

    • between (exclusive)  

  • Examples:

    • [>=,1000]: Matches values greater than or equal to 1000.

    • [between,0,1000]: Matches values greater than 0 and less than 1000.

    • [*]: Matches any numeric value, including null (use only if inputVal4 is set to WILDCARD in the Flow).

    • [~]: Matches only null values.  

Match string values

Use this for conditions like Industry is Technology or Lead Source is Web or Event.

  • Syntax:

    • For a single value, just enter the string (case-sensitive). Example, Technology  

    • For OR conditions (that is, scenarios where multiple values are acceptable), enclose a comma-separated list of strings within curly brackets { }. Example, {Web,Event}  

    • Do not use spaces.

  • Case Sensitivity: String matching is case-sensitive. Web will not match web.  

  • Special Characters: For string values containing special characters, enclose them in double quotes "" . If a string value contains single quotes ', you may encounter errors.

  • Examples:

    • Hot: Matches only the exact string "Hot".

    • {Hot,Warm}: Matches either "Hot" or "Warm".

    • {*}: Matches any string value, including null

    • {~}: Matches only null values.

Concatenate string and numeric expressions

Combine different match types using double pipes || , mirroring the structure of your Tag String from the Flow.

  • Syntax Examples:

    • FixedString||[NUMERIC_EXPRESSION]||{STRING_LIST}

    • FixedString||{STRING_LIST}||[NUMERIC_EXPRESSION]

  • Example Usage

    Assuming a Tag String like RouteLead||{!$Record.Industry}||{!$Record.Lead_Score__c}:

    • To match leads in the technology industry with a score >= 75: RouteLead||Technology||[>=,75]

    • To match leads from finance or banking industries with any score: RouteLead||{"Finance","Banking"}||[*]

    • To match leads from any industry except healthcare with a score between 50 and 100: RouteLead||[*]||[between,50,100] (requires a separate policy or logic to exclude healthcare).