Some PDIs are currently unavailable, and PDI actions are paused. View the latest updates here. Read More

Flow designer

Zuri
Tera Expert

I need help to create RITM approval in flow designer based on user's profile location. If user if located on certain location approval will be created on different assignment groups.

4 REPLIES 4

Ankur Bawiskar
Tera Patron

@Zuri 

you can configure decision table for this which stores location and approval group

Use Decision Builder with Flow Designer to pick Approvers 

OR

You can use scripted flow approval

Scripted Approvals in Flow Designer with Flow Variables 

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

yashkamde
Giga Sage

Hello @Zuri ,

 

I would recommend using a Decision Table in Flow Designer. You can configure the table with user profile locations as inputs and assignment groups as outputs. Then, in your flow, call the decision table to dynamically determine the approval group.

 

Refer this for detailed understanding :

Smarter Assignment Using Decision Tables + Flow Designer 

Screenshot 2026-07-11 153202.png

 

Although If you’d like to proceed with your current approach, you can add condition checks in Flow Designer based on the user’s profile location. For each branch, configure the approval action to the respective assignment group.

Screenshot 2026-07-11 154724.png

 

If my response helped mark as helpful and accept the solution.

Tanushree Maiti
Tera Patron

Hi @Zuri 

 

  1. Configure the Trigger
  • Create a new Flow.
  • Set the Trigger to Service Catalog.
  • Select the appropriate Catalog Item (or trigger on Requested Item [sc_req_item], depending on your requirement).

 

  1. Evaluate the User's Location

Use Flow Logic to determine the requester's location.

  • Add an If (or Switch) condition.
  • Dot-walk to the requester's location:

Condition:

Trigger → Requested For → Location

  • Select the appropriate operator (for example, is or is one of).
  • Compare it against the required location (e.g., India, USA, UK).

If there are many locations, avoid creating multiple If conditions. Instead, use a Look Up Records, Decision Table, or Script Action/Subflow to dynamically determine the appropriate approval group.

 

  1. Configure the "Ask for Approval" Action

Inside the matching If branch:

  • Add the Ask for Approval action.
  • Set Record = Trigger → Requested Item (sc_req_item).
  • Configure the approval rule:
    • Anyone Approves
    • Everyone Approves (formerly "All Users Approve")
  • Specify the approver(s):
    • Assignment Group
    • User
    • Manager
    • Or dynamically determined group

Example:

  • India → IT India Approval Group
  • USA → IT USA Approval Group

 

  1. Configure Post-Approval Actions

After the approval action:

If Approved

  • Check whether Approval State = Approved.
  • Perform the required actions, such as:
    • Update the RITM State to Work in Progress
    • Create one or more Catalog Tasks (SCTASK)
    • Trigger another Flow or Subflow
    • Send a notification

If Rejected

  • Update the RITM State to Closed Incomplete or Closed Skipped (based on your organization's process).
  • Add comments explaining the rejection.
  • Notify the requester.
  • End the flow.

Refer:

Flow Designer approval based on location 

Scripted Approvals in Flow Designer with Flow Variables

Please Accept the solution if it assisted you with your question & Mark this response as Helpful.
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti

Ehab Pilloor
Mega Sage

Hi @Zuri,

 

You can script this in Rules field toggle code for Approval action or use decision table.

Use fd_data method to fetch location and map to each assignment group. Here is a sample code.

 // Get the location from the trigger record
    var location = fd_data.trigger.requested_item.variables.location.getDisplayValue();

    // Location -> Approver Group Sys ID mapping
    var LocationMap= {
        "New York": "46d44c98db1a3010b7d5f2b6ca9619d2",
        "London": "9a1f7d90db5e3010b7d5f2b6ca9619d4",
        "Bangalore": "b4b7f0d8db5e3010b7d5f2b6ca9619d5",
        "Tokyo": "d73d5f98db5e3010b7d5f2b6ca9619d6",
        "Sydney": "d83d5f98db5e3010b7d5f2b6ca9619d7"
    };

    // Return the mapped Assignment Group sys_id
if (LocationMap[location])
    return ApprovesG[LocationMap[location]] ;

 

Please Accept this response as Solution if it assisted you with your question & Mark this response as Helpful.

 

Kind Regards,

Ehab Pilloor