For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Logo
DeveloperAcademyCommunityStatus
  • Service Management
    • Overview
    • Concierge & Ticketing Capabilities Overview
    • Forms
    • Forms - Integration Specific Guides
    • Live Agent Chat / Handoff
    • Triage
    • Approval Mirroring
      • Configure Approval Mirroring
      • How To Guide for Approvals Configurations
      • ServiceNow Approvals
      • Approvals : Configuration Examples
    • Ticket Interception
    • Generic Ticketing Integration: Ticket Gateway
  • Administration
    • MyMoveworks
    • Organization Information
    • Roles and Permissions
    • MyMoveworks SSO
  • Moveworks Setup
    • Accessing Moveworks Setup
    • First-Time Login via Magic Link
    • Moveworks Setup Modules
    • Moveworks Setup: Module How To Guides
    • Plugin Management
    • Monitor Alerts
    • Audit Logs
    • DSL Fields Defaults
    • Data Crawling View
    • API Playground
    • Setup Homepage
    • Troubleshooting Hub
    • Security and Privacy Settings
    • Configuration Delete
    • Advanced Config Editor
    • Identity configuration
    • Onboarding Stage
  • Security
    • Security
    • Hyperlink & Button Expiry
    • Attachment Handling
    • Moveworks Subprocessors
  • Provision Management
    • Overview
    • Access Software
    • Access Groups
    • Access Account
  • Access Requirements
    • Overview
    • Update Set Modules
    • Ticketing Systems & ITSMs Access
    • Identity and Access Management Systems Access
    • Multi-Factor Authentication (MFA) Systems Access
    • Knowledge Access Requirements
    • Email Distribution List Systems Access
    • Facilities Management Access
    • Live Agent Chat Access
    • HR Information System Access
    • Expense Management Access
    • Calendar Management Access
  • Core Platform
    • User Identity
    • Moveworks On-Prem Agent
    • Approvals Engine
    • Entity Catalog
    • Configuration Languages
    • Moveworks Data Objects
    • SIEM
  • Employee Experience Insights
    • Overview
    • Breaking Down the Dashboard
    • Understanding Industry Benchmarks
    • Apps & Services
    • Impact Module
    • EXI Common Use Cases
    • Configure EXI
    • Ticket Backpolling
  • Knowledge Studio
    • Overview
    • Knowledge Studio Configuration
    • AI Powered Recommendations
    • Inspecting & Verifying Sources
    • Publishing Articles
    • Creating Knowledge Articles
    • Resolving IT Tickets Guidance
DeveloperAcademyCommunityStatus
On this page
  • Pre-requisite
  • Service Now
  • INCIDENT / RITM / TASK / KNOWLEDGE
  • SERVICE REQUEST
  • CHANGE REQUEST
  • HR CASE
  • POLICY EXCEPTION
  • Workday
  • Leave of Absence
  • Expense
  • Sailpoint
  • ACCESS REVIEW
  • REQUEST_ITEM
Service ManagementApproval Mirroring

Approvals : Configuration Examples

This page provides examples of the Default Approval Mappers for specific Integrations which are able to Mirror the Approvals from the External System.
||View as Markdown|
Was this page helpful?
Edit this page
Previous

Ticket Interception

Next
Built with

Pre-requisite

Before leveraging any of these Default Mappers, we need to understand how Approvals are configured. You can follow this guide to learn How to Configure Approvals.

Service Now

The below Mappers can be leveraged based on the Ticket type you are trying to configure for Mirroring, in this integration since they all have the same Attributes in the API response which Moveworks.

INCIDENT / RITM / TASK / KNOWLEDGE

1{
2 "requested_for.user_id": "requested_for.user_id.$TRIM() OR $[\"b@nner_augmenting_data\"].ticket.requested_for.record_id.$TRIM() OR NULL",
3 "requested_for.type": {
4 "COALESCE()": {
5 "items": [
6 {
7 "CONDITIONAL()": {
8 "condition": "val",
9 "context": {
10 "val": "requested_for.user_id"
11 },
12 "on_fail": "NULL",
13 "on_pass": "\"ITSM_USER_ID\""
14 }
15 },
16 "\"RECORD_ID\""
17 ]
18 }
19 },
20 "requester.user_id": "requester.user_id.$TRIM() OR $[\"b@nner_augmenting_data\"].ticket.created_by.record_id.$TRIM() OR NULL",
21 "requester.type": {
22 "COALESCE()": {
23 "items": [
24 {
25 "CONDITIONAL()": {
26 "condition": "val",
27 "context": {
28 "val": "requester.user_id"
29 },
30 "on_fail": "NULL",
31 "on_pass": "\"ITSM_USER_ID\""
32 }
33 },
34 "\"RECORD_ID\""
35 ]
36 }
37 },
38 "short_description": "$[\"b@nner_augmenting_data\"].ticket.short_description",
39 "display_pairs": [
40 {
41 "value": "display_pairs"
42 },
43 {
44 "value": {
45 "MAP()": {
46 "converter": {
47 "CONDITIONAL()": {
48 "condition": "item.display_value != \"false\"",
49 "on_pass": {
50 "key": "item.label",
51 "value": "item.display_value"
52 }
53 }
54 },
55 "items": {
56 "SORT()": {
57 "items": "$[\"b@nner_augmenting_data\"].ticket.ticket_vars",
58 "key": "item.order or 0"
59 }
60 }
61 }
62 }
63 }
64 ]
65}

SERVICE REQUEST

1{
2 "short_description": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].req_table_data[0].short_description THEN $[\"b@nner_augmenting_data\"].req_table_data[0].short_description.display_value OR \"\" ELSE NULL)))",
3 "display_pairs": [
4 {
5 "value": "display_pairs"
6 },
7 {
8 "value": {
9 "MAP()": {
10 "converter": {
11 "CONDITIONAL()": {
12 "condition": "item.display_value != \"false\"",
13 "on_pass": {
14 "key": "item.label",
15 "value": "item.display_value"
16 }
17 }
18 },
19 "items": {
20 "SORT()": {
21 "items": "$[\"b@nner_augmenting_data\"].ticket.ticket_vars",
22 "key": "item.order or 0"
23 }
24 }
25 }
26 }
27 },
28 {
29 "key": "\"Opened by\"",
30 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].req_table_data[0].opened_by THEN $[\"b@nner_augmenting_data\"].req_table_data[0].opened_by.display_value OR \"\" ELSE NULL)))"
31 },
32 {
33 "key": "\"Opened\"",
34 "value": "$TIMECONV($TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].req_table_data[0].opened_at THEN $[\"b@nner_augmenting_data\"].req_table_data[0].opened_at.display_value OR \"\" ELSE NULL))), NULL, \"%b. %d, %Y - %I:%M %p %Z\", NULL, \"UTC\")"
35 },
36 {
37 "key": "\"Request State\"",
38 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].req_table_data[0].request_state THEN $[\"b@nner_augmenting_data\"].req_table_data[0].request_state.display_value OR \"\" ELSE NULL)))"
39 },
40 {
41 "key": "\"Description\"",
42 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].req_table_data[0].description THEN $[\"b@nner_augmenting_data\"].req_table_data[0].description.display_value OR \"\" ELSE NULL)))"
43 },
44 {
45 "key": "\"Total Price\"",
46 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].req_table_data[0].price THEN $[\"b@nner_augmenting_data\"].req_table_data[0].price.display_value OR \"\" ELSE NULL)))"
47 },
48 {
49 "key": "\"List of RITMs\"",
50 "value": {
51 "MAP()": {
52 "converter": {
53 "value": [
54 {
55 "key": "\"----\"",
56 "value": "\"----\""
57 },
58 {
59 "key": "item.number.display_value",
60 "value": "$TRIM($TEXT($TRIM(IF item.short_description THEN item.short_description.display_value OR \"\" ELSE NULL)))"
61 },
62 {
63 "key": "\"Item\"",
64 "value": "$TRIM($TEXT($TRIM(IF item.cat_item THEN item.cat_item.display_value OR \"\" ELSE NULL)))"
65 },
66 {
67 "key": "\"Quantity\"",
68 "value": "$TRIM($TEXT($TRIM(IF item.quantity THEN item.quantity.display_value OR \"\" ELSE NULL)))"
69 },
70 {
71 "key": "\"Price\"",
72 "value": "$TRIM($TEXT($TRIM(IF item.price THEN item.price.display_value OR \"\" ELSE NULL)))"
73 }
74 ]
75 },
76 "items": {
77 "SORT()": {
78 "items": "$[\"b@nner_augmenting_data\"].req_item_table_data",
79 "key": "item.number.display_value"
80 }
81 }
82 }
83 }
84 }
85 ]
86}

CHANGE REQUEST

1{
2 "short_description": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].short_description THEN $[\"b@nner_augmenting_data\"].ticket_data[0].short_description.display_value OR \"\" ELSE NULL)))",
3 "display_pairs": [
4 {
5 "value": "display_pairs"
6 },
7 {
8 "key": "\"Priority\"",
9 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].priority THEN $[\"b@nner_augmenting_data\"].ticket_data[0].priority.display_value OR \"\" ELSE NULL)))"
10 },
11 {
12 "key": "\"Change Type\"",
13 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].type THEN $[\"b@nner_augmenting_data\"].ticket_data[0].type.display_value OR \"\" ELSE NULL)))"
14 },
15 {
16 "key": "\"Assignment Group\"",
17 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0][\"assignment_group.name\"] THEN $[\"b@nner_augmenting_data\"].ticket_data[0][\"assignment_group.name\"].display_value OR \"\" ELSE NULL)))"
18 },
19 {
20 "key": "\"Configuration Item\"",
21 "value": "$CONCAT([$[\"b@nner_augmenting_data\"].ticket_data[0].cmdb_ci.display_value, $[\"b@nner_augmenting_data\"].ticket_data[0][\"cmdb_ci.install_status\"].display_value], \" - \", TRUE)"
22 },
23 {
24 "key": "\"Business Justification\"",
25 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].justification THEN $[\"b@nner_augmenting_data\"].ticket_data[0].justification.display_value OR \"\" ELSE NULL)))"
26 },
27 {
28 "key": "\"Change scheduled from\"",
29 "value": "$TIMECONV($TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].start_date THEN $[\"b@nner_augmenting_data\"].ticket_data[0].start_date.display_value OR \"\" ELSE NULL))), NULL, \"%b. %d, %Y - %I:%M %p %Z\", NULL, \"UTC\")"
30 },
31 {
32 "key": "\"Change scheduled until\"",
33 "value": "$TIMECONV($TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].end_date THEN $[\"b@nner_augmenting_data\"].ticket_data[0].end_date.display_value OR \"\" ELSE NULL))), NULL, \"%b. %d, %Y - %I:%M %p %Z\", NULL, \"UTC\")"
34 },
35 {
36 "key": "\"Approver(s) List\"",
37 "value": {
38 "CONDITIONAL()": {
39 "condition": "$LENGTH(items) <= 5",
40 "context": {
41 "items": {
42 "FILTER()": {
43 "items": {
44 "MAP()": {
45 "converter": "item[\"approver.name\"].display_value.$TRIM()",
46 "items": "$[\"b@nner_augmenting_data\"].additional_approvers"
47 }
48 }
49 }
50 }
51 },
52 "on_fail": {
53 "RENDER()": {
54 "args": {
55 "items": "$CONCAT(items[:5], \", \")",
56 "num_extra": "$LENGTH(items) - 5"
57 },
58 "template": "{{ items }} (+{{ num_extra }})"
59 }
60 },
61 "on_pass": "$CONCAT(items, \", \")"
62 }
63 }
64 }
65 ]
66}

HR CASE

1{
2 "short_description": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].short_description THEN $[\"b@nner_augmenting_data\"].ticket_data[0].short_description.display_value OR \"\" ELSE NULL)))",
3 "display_pairs": [
4 {
5 "value": "display_pairs"
6 },
7 {
8 "key": "\"Priority\"",
9 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0].priority THEN $[\"b@nner_augmenting_data\"].ticket_data[0].priority.display_value OR \"\" ELSE NULL)))"
10 },
11 {
12 "key": "\"Assignment Group\"",
13 "value": "$TRIM($TEXT($TRIM(IF $[\"b@nner_augmenting_data\"].ticket_data[0][\"assignment_group.name\"] THEN $[\"b@nner_augmenting_data\"].ticket_data[0][\"assignment_group.name\"].display_value OR \"\" ELSE NULL)))"
14 },
15 {
16 "key": "\"Configuration Item\"",
17 "value": "NULL"
18 }
19 ]
20}

POLICY EXCEPTION

1[
2 {
3 "value": "display_pairs"
4 },
5 {
6 "value": {
7 "CONDITIONAL()": {
8 "condition": "$LENGTH(items) <= 5",
9 "context": {
10 "items": {
11 "FILTER()": {
12 "items": {
13 "MAP()": {
14 "converter": "item[\"approver.name\"].display_value.$TRIM()",
15 "items": "$[\"b@nner_augmenting_data\"].additional_approvers"
16 }
17 }
18 }
19 }
20 },
21 "on_fail": {
22 "RENDER()": {
23 "args": {
24 "items": "$CONCAT(items[:5], \", \")",
25 "num_extra": "$LENGTH(items) - 5"
26 },
27 "template": "{{ items }} (+{{ num_extra }})"
28 }
29 },
30 "on_pass": "$CONCAT(items, \", \")"
31 }
32 }
33 }
34]

Workday

Leave of Absence

1{
2 "display_pairs": [
3 {
4 "value": "display_pairs"
5 },
6 {
7 "key": "\"Person taking leave\"",
8 "value": "$[\"b@nner_augmenting_data\"].workday_absence_management.worker_descriptor"
9 },
10 {
11 "key": "\"Last day of work\"",
12 "value": "$TIMECONV($[\"b@nner_augmenting_data\"].workday_absence_management.last_day_of_work, \"%Y-%m-%d\", \"%b. %d, %Y\")"
13 },
14 {
15 "key": "\"Leave type\"",
16 "value": "($SPLIT($[\"b@nner_augmenting_data\"].workday_absence_management.leave_type, \" > \"))[-1]"
17 },
18 {
19 "key": "\"Time requested\"",
20 "value": {
21 "CONDITIONAL()": {
22 "condition": "start AND end",
23 "context": {
24 "end": "$TIMECONV($[\"b@nner_augmenting_data\"].workday_absence_management.estimated_last_day_of_leave, \"%Y-%m-%d\", \"%A %b. %d, %Y\", NULL, NULL, FALSE)",
25 "start": "$TIMECONV($[\"b@nner_augmenting_data\"].workday_absence_management.first_day_of_leave, \"%Y-%m-%d\", \"%A %b. %d, %Y\", NULL, NULL, FALSE)"
26 },
27 "on_fail": "\"\"",
28 "on_pass": {
29 "RENDER()": {
30 "template": "{{ start }} :arrow_right: {{ end }}"
31 }
32 }
33 }
34 }
35 },
36 {
37 "key": "\"Note\"",
38 "value": "$[\"b@nner_augmenting_data\"].workday_absence_management.latest_leave_comment"
39 }
40 ]
41}

Expense

1{
2 "display_pairs": [
3 {
4 "value": "display_pairs"
5 },
6 {
7 "key": "\"Transaction date\"",
8 "value": "$TIMECONV($[\"b@nner_augmenting_data\"].expense_details.Transaction_Date, \"%Y-%m-%d\", \"%b. %d, %Y\")"
9 },
10 {
11 "key": "\"Total cost\"",
12 "value": "$CURRENCY_FORMAT($DECIMAL($[\"b@nner_augmenting_data\"].expense_details.Transaction_Amount_Signed) * 100, \"USD\")"
13 },
14 {
15 "value": {
16 "CONDITIONAL()": {
17 "condition": "$[\"b@nner_augmenting_data\"].expense_details.Expense_Report_Lines_group",
18 "on_pass": {
19 "FILTER()": {
20 "items": {
21 "FLATTEN()": [
22 {
23 "key": {
24 "RENDER()": {
25 "args": "$LENGTH($[\"b@nner_augmenting_data\"].expense_details.Expense_Report_Lines_group)",
26 "template": "Line items ({{ . }})"
27 }
28 },
29 "value": "\":point_down: ----------\""
30 },
31 {
32 "FLATTEN()": {
33 "MAP()": {
34 "converter": [
35 {
36 "key": {
37 "RENDER()": {
38 "template": ":book: Item {{ loop.index1 }}"
39 }
40 },
41 "value": "item.Transaction_Description OR \" N/A \""
42 },
43 {
44 "CONDITIONAL()": {
45 "condition": "item.Expense_Report_Line_Memo",
46 "on_pass": {
47 "key": "\"Description\"",
48 "value": "item.Expense_Report_Line_Memo"
49 }
50 }
51 },
52 {
53 "key": "\"Cost\"",
54 "value": "$CURRENCY_FORMAT($DECIMAL(item.Transaction_Amount) * 100, \"USD\")"
55 }
56 ],
57 "items": "$[\"b@nner_augmenting_data\"].expense_details.Expense_Report_Lines_group"
58 }
59 }
60 }
61 ]
62 }
63 }
64 }
65 }
66 }
67 }
68 ]
69}

Sailpoint

ACCESS REVIEW

1{
2 "identifier": {
3 "id": "$[\"@id\"]",
4 "domain": "\"IT_DOMAIN\""
5 },
6 "requested_for.user_id": "$[\"@targetId\"]",
7 "requested_for.type": "\"IDM_USER_ID\"",
8 "approver.user_id": "$[\"@WorkItem__owner__id\"]",
9 "approver.type": "\"IDM_USER_ID\"",
10 "status": {
11 "COALESCE()": {
12 "items": [
13 {
14 "LOOKUP()": {
15 "key": "$[\"@summaryStatus\"]",
16 "mapping": {
17 "Challenged": "\"DENIED\"",
18 "Complete": "\"APPROVED\"",
19 "Delegated": "\"NO_ANSWER\"",
20 "Open": "\"PENDING\"",
21 "Returned": "\"NO_ANSWER\"",
22 "WaitingReview": "\"PENDING\""
23 }
24 }
25 },
26 "\"UNKNOWN\""
27 ]
28 }
29 },
30 "created_at": "$TIMECONV($[\"@created\"], \"MILLIS\")",
31 "updated_at": "$TIMECONV($[\"@modified\"].$TRIM() OR $[\"@created\"].$TRIM() OR NULL, \"MILLIS\")",
32 "display_pairs": [
33 {
34 "key": "\"Need action by\"",
35 "value": "$TIMECONV($TIMECONV($[\"@WorkItem__expiration\"], \"MILLIS\"), NULL, \"%b. %d, %Y - %I:%M %p %Z\", NULL, \"UTC\")"
36 },
37 {
38 "key": "\"Type\"",
39 "value": "\"Access Review\""
40 },
41 {
42 "value": {
43 "MAP()": {
44 "converter": {
45 "key": {
46 "RENDER()": {
47 "args": {
48 "loop": "loop",
49 "type": "item[\"@type\"].$REPLACE(\"([a-z])([A-Z])\", \"\\1 \\2\")"
50 },
51 "template": "{{& type }} ({{ loop.index1 }}/{{ loop.length }})"
52 }
53 },
54 "value": {
55 "LOOKUP()": {
56 "default": "item[\"@targetDisplayName\"] OR \"<Unknown>\"",
57 "key": "item[\"@type\"]",
58 "mapping": {
59 "Account": {
60 "RENDER()": {
61 "args": {
62 "account": "item.ExceptionEntitlements.EntitlementSnapshot[\"@displayName\"]",
63 "application": "item[\"@exceptionApplication\"] OR \"<Unknown Application>\""
64 },
65 "template": "Account {{& account }} on {{& application }}"
66 }
67 },
68 "AccountGroupMembership": {
69 "RENDER()": {
70 "args": {
71 "account": "item[\"@targetDisplayName\"] OR \"<Unknown Account>\"",
72 "application": "item[\"@exceptionApplication\"] OR \"<Unknown Application>\""
73 },
74 "template": "Account {{& account }} on {{& application }}"
75 }
76 },
77 "Bundle": "item[\"@bundle\"]",
78 "BusinessRoleProfile": {
79 "CONCAT()": {
80 "items": {
81 "MAP()": {
82 "converter": "item",
83 "items": "item.ApplicationNames"
84 }
85 },
86 "separator": "\", \""
87 }
88 },
89 "DataOwner": {
90 "RENDER()": {
91 "args": {
92 "application": "item[\"@exceptionApplication\"] OR \"<Unknown Application>\"",
93 "target": "item[\"@targetName\"] OR \"<Unknown Account>\""
94 },
95 "template": "Account {{& target }} on {{& application }}"
96 }
97 },
98 "Exception": {
99 "RENDER()": {
100 "args": {
101 "application": "item[\"@exceptionApplication\"] OR \"<Unknown Application>\"",
102 "relationship": "item[\"@exceptionAttributeName\"] OR \"<Unknown Relationship>\"",
103 "value": "item[\"@exceptionAttributeValue\"] OR \"<Unknown>\""
104 },
105 "template": "{{& relationship }} for application {{& application }} ({{& value }})"
106 }
107 },
108 "PolicyViolation": "item[\"@violationSummary\"] OR \"<Unknown Violation>\""
109 }
110 }
111 }
112 },
113 "items": "$[\"CertificationItem/..\"]"
114 }
115 }
116 }
117 ],
118 "short_description": "IF $[\"@type\"] THEN $CONCAT([$[\"@type\"], \" Access Review\"]) ELSE NULL",
119 "domain": "\"IT_DOMAIN\"",
120 "parent_id": "$[\"@certification__id\"]"
121}

REQUEST_ITEM

1{
2 "identifier": {
3 "id": "$[\"@id\"].$TRIM() OR $[\"@workItemId\"].$TRIM() OR NULL",
4 "display_value": "$[\"@name\"]",
5 "domain": "\"IT_DOMAIN\""
6 },
7 "requester.user_id": "$[\"Requester/Reference\"][\"@id\"]",
8 "requester.type": "\"IDM_USER_ID\"",
9 "requested_for.user_id": "$[\"@targetId\"].$TRIM() OR $[\"@targetName\"].$TRIM() OR NULL",
10 "requested_for.type": "\"IDM_USER_ID\"",
11 "approver.user_id": "$[\"Owner/Reference\"][\"@id\"].$TRIM() OR $[\"@owner\"].$TRIM() OR NULL",
12 "approver.type": "\"IDM_USER_ID\"",
13 "status": {
14 "COALESCE()": {
15 "items": [
16 {
17 "LOOKUP()": {
18 "key": "$[\"@state\"]",
19 "mapping": {
20 "Canceled": "\"NO_ANSWER\"",
21 "Expired": "\"NO_ANSWER\"",
22 "Finished": "\"APPROVED\"",
23 "Pending": "\"PENDING\"",
24 "Rejected": "\"DENIED\"",
25 "Returned": "\"NO_ANSWER\""
26 }
27 }
28 },
29 "\"PENDING\""
30 ]
31 }
32 },
33 "created_at": "$TIMECONV($[\"@created\"].$TRIM() OR $[\"@startDate\"].$TRIM() OR NULL, \"MILLIS\")",
34 "updated_at": "$TIMECONV($[\"@modified\"].$TRIM() OR $[\"@endDate\"].$TRIM() OR $[\"@created\"].$TRIM() OR $[\"@startDate\"].$TRIM() OR NULL, \"MILLIS\")",
35 "display_pairs": [
36 {
37 "value": {
38 "MAP()": {
39 "converter": {
40 "key": {
41 "RENDER()": {
42 "template": "Request Item - {{ loop.index1 }}/{{ loop.length }}"
43 }
44 },
45 "value": {
46 "CONCAT()": {
47 "items": [
48 {
49 "CONDITIONAL()": {
50 "condition": "item[\"@\"].operation",
51 "on_pass": {
52 "RENDER()": {
53 "template": "\\n\\tOperation: {{& item.@.operation }}"
54 }
55 }
56 }
57 },
58 {
59 "CONDITIONAL()": {
60 "condition": "item[\"@\"].displayname OR item[\"@\"].name",
61 "on_pass": {
62 "CONDITIONAL()": {
63 "condition": "item[\"@\"].displayname",
64 "on_fail": {
65 "RENDER()": {
66 "template": "Role Type: {{& item.@.name }}"
67 }
68 },
69 "on_pass": {
70 "RENDER()": {
71 "template": "Role Type: {{& item.@.displayname }}"
72 }
73 }
74 }
75 }
76 }
77 },
78 {
79 "CONDITIONAL()": {
80 "condition": "item[\"@\"].displayValue or item[\"@\"].value",
81 "on_pass": {
82 "CONDITIONAL()": {
83 "condition": "item[\"@\"].displayValue",
84 "on_fail": {
85 "RENDER()": {
86 "template": "Role Name: {{& item.@.value }}"
87 }
88 },
89 "on_pass": {
90 "RENDER()": {
91 "template": "Role Name: {{& item.@.displayValue }}"
92 }
93 }
94 }
95 }
96 }
97 },
98 {
99 "CONDITIONAL()": {
100 "condition": "item[\"@\"].application",
101 "on_pass": {
102 "RENDER()": {
103 "template": "Application: {{& item.@.application }}"
104 }
105 }
106 }
107 }
108 ],
109 "separator": "\"\\n\\t\""
110 }
111 }
112 },
113 "items": "$[\"Attributes/Map/entry[@key='approvalSet']/value/ApprovalSet\"] OR ApprovalSet"
114 }
115 }
116 },
117 {
118 "key": "\"Priority\"",
119 "value": "$[\"@level\"]"
120 },
121 {
122 "key": "\"Type\"",
123 "value": "\"Access Request\""
124 }
125 ],
126 "short_description": {
127 "COALESCE()": {
128 "items": [
129 {
130 "RENDER()": {
131 "template": "{{& Description }}"
132 }
133 },
134 "$[\"@request\"]"
135 ]
136 }
137 },
138 "domain": "\"IT_DOMAIN\"",
139 "parent_id": "$[\"@identityRequestId\"]",
140 "metadata": {
141 "record_id": "$[\"@id\"].$TRIM() OR $[\"@workItemId\"].$TRIM() OR NULL"
142 }
143}