custom approval table?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2017 12:14 PM
Hey everyone,
I trying to figure out a way to condense the number of emails that are sent out for approvals for an app I am creating on ServiceNow. The purpose of the app is to onboard new users to an application we use for project development. It sounds like doing some sort of batch approval is difficult and not exactly native to SN. So what I am thinking of doing is creating a separate table for this app only (we have many other applications created by other teams within in the company and only want to see approvals for this specific application). I would like this table to have all of the requested items waiting for approval such that a link can be sent out at variable times during the week that approvers can click on to get to the table and then approve and reject requests at their leisure without being bombarded by an email for each and every request made.
I have created a table and made it extend the task table. What I am unsure of how to do is within my workflow, how would I go about redirecting the approval-user activity to this custom table rather than the global approvals table?
Thank you,
Devlin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2017 12:40 PM
Here's another idea, off the top of my head (save you building a new layer on top of the existing approval platform).
- Go to the default approval notifications and make sure the table the approvable record is in is not <YourCustomTable>
- Create a scheduled job on your app that queries the number of approvals for that table, and fires an event with Approver as Parm1 and array of records as Parm2 (you'll need to be fancy here because you only want to capture the approver once). Have the job run once every morning.
- Create a notification based on your event. Destination will be Parm1. A mail script will take Parm2 and break the numbers into hyperlinks to the actual Tasks, but also render a link to the My Approvals list.
Once that's done all you have to do is train approvers to select multiple records, and make sure "Approve" is a UI Action with List Choice as an option.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2017 01:09 PM
Hey Robert,
I like that idea, however there are other requests for different applications that also ask for approval. Wouldn't all of these approvals be in the same table then? I only want to be able to view the approvals for my specific application.
Is that possible this way?
Thanks,
Devlin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2017 01:20 PM
Yeah there's a number of different ways to pull that off. I personally have a bias not to separate approval experiences though, as its likely any given user will approve in a number of different contexts.
You could, for example, hyperlink them to a pre-filtered list: "my approvals AND approval object = your-task-type".
Or you could hyperlink them to an overview page that has counts of approvals for each task type the approval is for.
You just don't want to get into a paradigm where you're explaining to users...
"If you want to approve a change, perform the following sequence of clicks, BUT, if you're approving XYZ, do something completely different..."
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2017 02:23 PM
Hey Robert,
I'm trying your idea, however there may be a slight issue with this. I have to make this application outside of the global scope so I don't have access to the sysapproval_approver table. It seems like I may have to find a way to redirect these approvals to a custom table afterall.
However, I'm not sure how to go about doing that. It seems like I can get the actual approval from the sysapproval_approver table using GlideRecord. So I'm thinking from there, I would then have to create a whole new variable using GlideRecord to point it to my custom table and then insert the request item into my custom table that way? Followed by then doing what you mentioned above and creating an event that is fired once a day with a list of items waiting for approval.
Sorry for all the questions, still fairly new to SN.
Thanks,
Devlin