Wrike Integrate - Example process for business travel requests with dynamic approvals

I hesitated in posting this example solution. It's complicated, and I'm not sure I've done an adequate job of explaining all the requirements/components.

I decided to post what I have in case it's helpful to anyone, and I'm happy to answer any questions.


Provide a Wrike Request Form that allows employees to request approval for business travel, with appropriate workflow automations to support functional requirements.

Functional Requirements

  1. Employees should use a Wrike Request Form to submit requests for business travel, where the form collects all relevant information required for approval (including estimates trip expenses).
  2. All business travel requests must be approved by the manager of the employee who submits the request.
  3. If the total estimated travel cost is greater than $1000, one secondary approval is required from a pool of "secondary approvers". (This example assumes that a single pool of secondary approvers is used for all travel requests.)
  4. If any assigned approver rejects the request, the request status should be changed to "Rejected", and the rejection should be communicated immediately to the employee.
  5. For any request that requires secondary approval, as soon as both the manager and a single secondary approver have approved the request (with no rejections from anyone else), the request status should be changed to "Approved" and all remaining secondary approvers should be removed from the task approval. (Once both the manager and a single secondary approver have approved the request, the remaining secondary approvers are no longer needed, and removing them allows Wrike to recognize the task approval as complete/approved.)
  6. A Slack direct message should be sent to alert each approver when a new travel request approval is created.

Solution Components

1) Wrike Business or Wrike Enterprise

2) Wrike Custom Workflow

     - Active statuses
          * Pending Approval
          * Info Needed
     - Completed statuses
          * Approved
          * Rejected
     - Deferred statuses
     - Cancelled statuses
          * Cancelled

3) Wrike Custom Fields

The following custom fields are defined for the folder/tasks where business travel request tasks are created. In our case, we've restricted access to these fields to just our Wrike Admins and the Wrike account used by the Wrike Connector in Wrike Integrate. This restriction avoids confusion for other staff and prevents manual changes to these fields.

Custom Field Name (Custom Field Type)
Wrike Integrate (Text)
Mgr ID (Text)
$ Airfare (Number)
$ Hotel (Number)
$ Car (Number)
$ Transport (Number)
$ Meals (Number)
$ Registration (Number)
$ Other (Number)

4) Wrike Request Form

This form requires that the employee enter the total estimated cost for the travel request.

In this example, the form asks for individual estimates for the following line items. Each of these line item estimates are recorded to custom fields on the resulting task. The Wrike Integrate recipe totals these estimates to come up with the total travel expense, and inserts a table in the task description to make these figures more readable.

Line Item (Mapped Wrike Custom Field)
Airfare ($ Airfare)
Hotel ($ Hotel)
Rental Car ($ Car)
Other Transportation ($ Transport)
Meals ($ Meals)
Registration/Fees ($ Registration)
Other ($ Other)

5) Wrike Integrate recipes (4)

- https://www.workato.com/recipes/1051817

Recipe that adds the approval for new requests, with appropriate approvers based on who submits the request and the total estimated trip cost

- https://www.workato.com/recipes/1051624

Recipe that periodically loops through all active travel requests to determine approval status/changes on each

- https://www.workato.com/recipes/1051796

Callable recipe used to get the Wrike ID of any employee's manager, based on the employee's email address. This example recipe relies on organizational information stored in Azure AD, so your mileage may vary.

- https://www.workato.com/recipes/1051830

Scheduled recipe that runs once per day to truncate/repopulate the "Wrike Users" lookup table

6) Wrike Integrate lookup tables (2)

- Wrike Users

We use this lookup table to map Wrike User IDs with the unique email address for each of our employees. Maintaining this lookup table allows us to reduce API calls to Wrike for every job that needs to identify the same user across multiple systems.

This table is truncated and repopulated on a daily basis to ensure accuracy as staff changes occur (see recipe list above).

Column Name (Description)
Account ID (Wrike user account ID for API)
Email (Wrike user account email address)
Name (Full name of the Wrike user)

- Secondary Approvers for Travel Requests

This table is used to maintain information about the pool of secondary approvers for business travel requests over $1000. It's also used to maintain user IDs for test accounts that should be used when testing/debugging the recipe that creates task approvals.

Column Name (Description)
Name (Full name of the approver (e.g. Jane Doe))
Wrike ID (Wrike account ID of the approver (e.g. KUAEABCD))
Wrike Email (Wrike email address of the approver (must match the email address for the approver's Slack account))
Active? (Yes or No (is this approver active?) Set this to No for all test/debug accounts)
Debug Manager? (Yes or No (set to Yes for a single row, to be used as the employee's "manager" when testing/debugging))
Debug Secondary? (Yes or No (set to Yes for multiple rows, to be used) as the pool of secondary approvers when testing/debugging))

7) Azure AD (used to look up the travel requester's manager)

8) Slack (used to send a direct message to each task approver to alert them of the new request)



👍 Spot On 💡 Innovative Approach 💪 Stellar Advice ✅ Solved 🪄 Remove Kudos
1 комментарий

One additional note... for the estimated trip expenses, we wanted a more concise way to display this information within the task description than currently possible just with the Request Form. Each expense is mapped to a custom field in the form, and the Wrike Integrate recipe totals these individual line item expenses and also adds a table containing this information at the bottom of the existing task description. Example:

👍 Spot On 💡 Innovative Approach 💪 Stellar Advice ✅ Solved 🪄 Remove Kudos

Folllowing List for Post: Wrike Integrate - Example process for business travel requests with dynamic approvals
[this list is visible for admins and agents only]

Didn’t find what you were looking for? Write new post