Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Can a Catalog trigger another catalog form?

Shree Nag
Tera Expert

Hello,

We have  a requirement that we build a catalog form( Catalog A) for user request.

Once the request is submitted, a reviewer will record another set of inputs based on the information provided by the requestor.

Once the Request is submitted( from catalog A), can a workflow trigger another catalog( catalog B) form for the reviewer inputs?.

Catalog A's information should be displayed on catalog B. based on the information from catalog A, reviewer will input more information in catalog B's input fields.

 

What are the best possible ways to achieve this.

Please help. Any thoughts, KB articles, YT videos are all appreciated.

 

-Thanks

Shree

6 REPLIES 6

Najmuddin Mohd
Mega Sage

Hello @Shree Nag ,
There is Cart API in ServiceNow, which you can utilise in your script.

You can check the below Youtube link,

https://www.youtube.com/watch?v=1vBh7X5WTvg

If the above information helps you, Kindly mark this post as Helpful and Accept the solution.

Regards,
Najmuddin

adityahubli
Tera Contributor

Hello @Shree Nag ,

Yes, this requirement can be achieved using an Order Guide. An Order Guide allows you to combine multiple catalog items—such as Catalog A for the requestor and Catalog B for the reviewer—into a single request. By using the Cascade Variables feature, you can automatically pass values from Catalog A into Catalog B simply by creating the shared variables with the same names in the Order Guide. This ensures that the reviewer sees all of the requestor’s information without the need for additional scripting. Catalog B can also contain extra fields specifically for the reviewer to complete. After the user submits the Order Guide, both Catalog A and Catalog B generate separate RITMs, and the workflow for Catalog B can assign tasks to the reviewer to gather the additional information. This approach is clean, efficient, and one of the best ways to handle multi-stage catalog input in ServiceNow.

 

If this helps you then marks it as helpful and accept as solution for future queries of other peoples.

Regards,

Aditya 

Vishal_Jaiswal
Mega Guru

Hi @Shree Nag ,

It is generally not the recommended best practice in ServiceNow architecture.
Approach 1: The Single Item
Instead of creating a separate "Catalog B," you create all the variables (User inputs + Reviewer inputs) on "Catalog A," but you hide the reviewer variables from the initial requester.
 
Steps:
- Create Variables: On Catalog A, create the fields for the user. Then, create a container (or just a list of variables) for the Reviewer inputs.
- Hide Reviewer Variables: Create a Catalog UI Policy on Catalog A.
Condition: None (or "Always").
Action: Set the Reviewer variables to Visible = False.
Applies to: Check "Catalog Item view" and "Target Record". Uncheck "Catalog Task".
- The Workflow/Flow:
The user submits Catalog A.
The Flow creates a Catalog Task assigned to the Reviewer group.
In the Catalog Task configuration, you select which variables to display. You include the User's variables (Read-only) and the Reviewer's variables (Editable).
 
Approach 2: The "Child Request" Strategy (If you must use two items)
If "Catalog B" is a completely distinct process with its own complex lifecycle, or if the reviewer is actually requesting a new service based on the first one, you can trigger Catalog B automatically.
 
Steps: You will use Flow Designer to automatically submit the second request.
- Create Catalog B: Build this form with all the fields the reviewer needs to fill in.
- Create the Flow:
Trigger: Service Catalog > Item Requested > Catalog A.
Action: Use the "Submit Catalog Item Request" action (available in the Service Catalog Spoke).
 
- Configure the Action:
Catalog Item: Select "Catalog B".
Requested For: Select the reviewer (or the original user, depending on the need).
Variables: Map the data pills from Catalog A (Trigger) into the variables of Catalog B. This passes the information across.
 
Regards,
Vishal

Thank you Vishal,

I will give it a try.