Develop your own integration on the Wrike API (2022)

Webhooks allow you to subscribe to notifications about changes in Wrike instead of having to rely on periodic polling. When webhooks are in place, a small package of information (“payload”) is sent to your HTTP endpoint when specific changes occur.

We support the following scopes for webhooks:

  1. Folder webhooks- Fire notifications about changes to tasks within a single folder or project. You can subscribe tofolder/project individually, or use “recursive” webhooks to subscribe to folder/project and its subfolders/subprojects.

  2. Account webhooks- Fire notifications about task, folder, and project-related events in the Account. Includes changes to all tasks that are shared with you in the account.

  3. Space webhooks - Fire notifications about changes to tasks, folders, and projects within a single space.

API Methods

REST-style API methods allow you to create webhooks, get lists of your webhooks and their states, update webhook states, and delete webhooks.

Create Webhooks

  • [POST] /folders/{folderId}/webhooks— Creates a webhook for a target folder/project.

    Parameters:

    • hookUrl- URL of the server that will receive the payload.

    • secret (optional)- Client secret to check authenticity of the events later. See Secure Webhooks section below.

    • events (optional)- Comma-separated list of events that client wants to subscribe to, in square brackets.

      Example: [AttachmentAdded,AttachmentDeleted]. If not specified, all events will be received. See supported eventshere.

    • recursive (optional)- Specifies whether hook should listen to events for subfolders or tasks anywhere in the hierarchy. Default value is false, set to true for tracking all nested elements.

  • [POST] /spaces/{spaceId}/webhooks— Creates a webhook for a target space.

    Parameters:

    • hookUrl- URL of the server that will receive the payload.

    • secret (optional)- Client secret to check authenticity of the events later. See Secure Webhooks section below.

    • events (optional)- Comma-separated list of events that client wants to subscribe to, in square brackets.

      Example: [AttachmentAdded,AttachmentDeleted]. If not specified, all events will be received. See supported eventshere.

    • recursive (optional)- Specifies whether hook should listen to events for subfolders or tasks anywhere in the hierarchy. Default value is false, set to true for tracking all nested elements.

  • [POST] /webhooks— Creates a webhook for a current account.

    Parameters:

    • hookUrl- URL of the server that will receive the payload.

    • secret (optional)- Client secret to check authenticity of the events later. See Secure Webhooks section below.

    • events (optional)- Comma-separated list of events that client wants to subscribe to, in square brackets.

      Example: [AttachmentAdded,AttachmentDeleted]. If not specified, all events will be received. See supported eventshere.

Get Webhook(s) State

  • [GET] /webhooks— Returns a list of webhooks for current account.

  • [GET] /webhooks/{webhookId},{webhookId},...[up to 100 IDs] — Returns information for the specified webhooks.

  • The response model for these methods includes the following data for each hook:
    webhook ID, account ID, Folder ID (optional), your server's URL and status (Active | Suspended).

Update Webhook State

  • [PUT] /webhooks/{webhookId}— Modifies the webhooks state to suspend or resume. Suspended webhooks do not send notifications.

    Parameters:

    • status = Active | Suspended

Delete Webhooks

  • [DELETE] /webhooks/{webhookId}— Deletes webhook by ID.

Sample Payloads

Below is an example of the most basic payload which can be received. This payload is sent when a new task is created (note the “eventType”):

[{ "webhookId": "IEAADQQLKQAKAOPB", "eventAuthorId": "KQAKAOPB", "eventType": "TaskCreated", "taskId": "IEAADQQLKQAKAOPB", "lastUpdatedDate": "2016-10-10T11:33:28Z"}]

Note, even single notifications are sent as JSON-array. For simplicity, we’ll write payloads as single JSON-objects in the text below.

Some payloads can contain values that designate what the data was before the change. For example, for the TaskTitleChanged event you see the old and new task title:

{ "oldValue": "Old task title", "title": "New task title", "taskId": "IEAADQQLKQAKOFAB", "webhookId": "IEAADQQLJAAAAULL", "eventAuthorId": "KUAALDRX" "eventType": "TaskTitleChanged" "lastUpdatedDate": "2016-11-22T10:25:50Z"}

Another example with old/new values is TaskStatusChanged:

{ "oldStatus": "Active", "status": "Completed", "taskId": "IEAADQQLKQAKOFAB", "webhookId": "IEAADQQLJAAAAULL", "eventAuthorId": "KUAALDRX" "eventType": "TaskStatusChanged" "lastUpdatedDate": "2016-11-22T11:09:58Z"}

Task statuses mentioned in “oldStatus” and “status” fields are described for “status” parameter of“query-tasks” API method.

(Video) API (Application Programming Interface), Explained

For events related to task child entities, (that is, attachments), payload will contain corresponding entity ID. Example is AttachmentAdded event:

{ "webhookId": "IEAADQQLJAAAAULL", "eventAuthorId": "KUAALDRX" "eventType": "AttachmentAdded" "lastUpdatedDate": "2016-10-10T11:33:28Z" "taskId": "IEAADQQLKQAKAOPB" "attachmentId": "IEAADQQLKQAKAOPD"}

To get detailed information about the attachment, use theGet Attachments methodwith the ID you'd received.

Event Types

The following table lists supported webhooks events. Events on tasks, folders, projects, attachments, timelogs, and comments changes are supported. Folder events are also fired on projects.

EVENT

DESCRIPTION

OLD VALUE

TaskCreated

Fired when a user creates a new task

Develop your own integration on the Wrike API (1)

TaskDeleted

Fired when task is deleted

Develop your own integration on the Wrike API (2)

TaskTitleChanged

Fired when a task title changes

Develop your own integration on the Wrike API (3)

TaskImportanceChanged

Fired when a task importance changes

Develop your own integration on the Wrike API (4)

TaskStatusChanged

Fired when a task status changes

Develop your own integration on the Wrike API (5)

TaskDatesChanged

Fired when start, finish dates, duration, or the “Work on weekends” flag is changes

Develop your own integration on the Wrike API (6)

TaskParentsAdded

Fired when a task is added to a folder

Develop your own integration on the Wrike API (7)

TaskParentsRemoved

Fired when a task is removed from a folder

Develop your own integration on the Wrike API (8)

TaskResponsiblesAdded

Fired when any new assignee is added to a task, including all Wrike users (and collaborators) and users with pending invitations

Develop your own integration on the Wrike API (9)

TaskResponsiblesRemoved

Fired when someone is unassigned from a task

Develop your own integration on the Wrike API (10)

TaskSharedsAdded

Fired when a task is shared

(Video) How to Integrate Wrike with Salesforce

Develop your own integration on the Wrike API (11)

TaskSharedsRemoved

Fired when a task is unshared

Develop your own integration on the Wrike API (12)

TaskDescriptionChanged

Fired when a task’s description is changed. Note: Notifications related to description field changes are fired with approximately a 5-minute delay.

Develop your own integration on the Wrike API (13)

TaskCustomFieldChanged

Fired when a custom field value on a custom field is changed

Develop your own integration on the Wrike API (14)

AttachmentAdded

Fired when a new attachment is added to a task

Develop your own integration on the Wrike API (15)

AttachmentDeleted

Fired when an attachment was deleted from task or a comment with attachment was deleted

Develop your own integration on the Wrike API (16)

CommentAdded

Fired when a new comment is added. Not fired for comments without text (that is, comments with attachments only).

Develop your own integration on the Wrike API (17)

CommentDeleted

Fired when a comment is deleted

Develop your own integration on the Wrike API (18)

TimelogChanged

Fired when a timelog record is added, updated, or removed

Develop your own integration on the Wrike API (19)

FolderCreated

Fired when a folder or project is created

Develop your own integration on the Wrike API (20)

FolderDeleted

Fired when a folder or project is deleted

Develop your own integration on the Wrike API (21)

FolderTitleChanged

Fired when a user changes the title of a folder or project

Develop your own integration on the Wrike API (22)

FolderParentsAdded

Fired when a folder or project is added to another folder

Develop your own integration on the Wrike API (23)

FolderParentsRemoved

(Video) What's New In Wrike: June 2022

Fired when a folder or project is removed from another folder

Develop your own integration on the Wrike API (24)

FolderSharedsAdded

Fired when a folder or project is shared

Develop your own integration on the Wrike API (25)

FolderSharedsRemoved

Fired when a folder or project is unshared

Develop your own integration on the Wrike API (26)

FolderDescriptionChanged

Fired when a user changes the description of a folder or project

Develop your own integration on the Wrike API (27)

FolderCommentAdded

Fired when a comment is added to a folder or project

Develop your own integration on the Wrike API (28)

FolderCommentDeleted

Fired when a comment is removed from a folder or project

Develop your own integration on the Wrike API (29)

FolderAttachmentAdded

Fired when an attachment is added to a folder or project

Develop your own integration on the Wrike API (30)

FolderAttachmentDeleted

Fired when an attachment is removed from a folder or project

Develop your own integration on the Wrike API (31)

FolderCustomFieldChanged

Fired when a custom field value is changed for folder or project

Develop your own integration on the Wrike API (32)

ProjectDatesChanged

Fired when the start or end dates of a project are changed

Develop your own integration on the Wrike API (33)

ProjectOwnersAdded

Fired when any new owner is assigned to a project, including all Wrike users (and Collaborators) and users with pending invitations

Develop your own integration on the Wrike API (34)

ProjectOwnersRemoved

Fired when an owner is unassigned from a project

Develop your own integration on the Wrike API (35)

ProjectStatusChanged

Fired when a project status changes

{ "oldStatus": "In Progress", "status": "Completed", "oldCustomStatusId": "IEABPELHJMAMIUZO", "customStatusId": "IEABPELHJMAMIUZF", "taskId": "IEABPELHI4AQE2MM", "webhookId": "IEABPELHJAAABATM", "eventAuthorId": "KUGEUT27", "eventType": "ProjectStatusChanged", "lastUpdatedDate": "2019-06-17T11:42:28Z",}

Develop your own integration on the Wrike API (36)

(Video) Wrike Gdrive API

TaskApprovalStatusChanged

Fired when a Task's Approval Status is changed

[ { "approvalId": "IEADGRKWMEAD3QBO", "status": "Approved", "folderId": "IEADGRKWI4TNQLAI", "webhookId": "IEADGRKWJAAAY2DH", "eventAuthorId": "KUAG52VT", "eventType": "FolderApprovalDecisionChanged", "lastUpdatedDate": "2021-03-03T14:21:04Z" }]

Develop your own integration on the Wrike API (37)

TaskApprovalDecisionChanged

Fired when a user gives his decision on approval

[ { "approvalId": "IEADGRKWMEAD3QBO", "decision": "Approved", "folderId": "IEADGRKWI4TNQLAI", "webhookId": "IEADGRKWJAAAY2DH", "eventAuthorId": "KUAG52VT", "eventType": "FolderApprovalDecisionChanged", "lastUpdatedDate": "2021-03-03T14:21:04Z" }]

Develop your own integration on the Wrike API (38)

TaskApprovalDecisionReset

Fired when a user's actions reset a previous Decision. For example, if a Task's files have been Rejected and the Approval Rejected, when a user uploads a new version of a file the Approval Decision is reset, and this event is triggered.

Develop your own integration on the Wrike API (39)

FolderApprovalStatusChanged

Fired when a Folder's Approval Status is changed

Develop your own integration on the Wrike API (40)

FolderApprovalDecisionChanged

Fired when a Folder's Approval Final Decision is changed

Develop your own integration on the Wrike API (41)

FolderApprovalDecisionReset

Fired when a user's actions reset a previous Decision. For example, if a Folder's files have been Rejected and the Approval Rejected, when a user uploads a new version of an Approval file the Approval Decision is reset, and this event is triggered.

Develop your own integration on the Wrike API (42)

The following events are not yet supported (and do not trigger notifications):

  • Changes made with mass actions, including importing tasks

Secure Webhooks

Wrike optionally supports signing event payloads with a secret, pre-shared between client and Wrike, as describedon this page. This provides a mechanism to check authenticity of the request and make sure it is indeed coming from Wrike and goes to the client who registered it.

The general flow looks like follows:

  1. Upon webhook registration, client sendssecretparameter:
    https://www.wrike.com/api/v4/webhooks?hookUrl=<url>&secret=<some_secret>.

  2. Wrike sends request tohookUrlwith headerX-Hook-Secret, which contains random alphanumeric string

  3. Client should calculate hmacSha256(key:secret, value: receivedX-Hook-Secretvalue) and add calculated value to the responseX-Hook-Secretheader.

  4. All events from webhook will containX-Hook-Secretheader with value hmacSha256(key:secret, value: request body) so client can check authenticity of the events.

Example of Usage

Use Case Example

Let’s assume a task is related to the development process, and a “Completed” status means that all code was committed/pushed to the source repository. This change could trigger a CI build via some CI REST endpoint.

Step 1

Create an account-wide webhook.

Get your accountId using the following CURL command:

curl -g -X GET -H 'Authorization: bearer <access_token>' 'https://www.wrike.com/api/v4/account'

The response contains a list of your accounts:

{ "kind": "accounts", "data": [ { "id": "IEAADQQL", "name": "My Personal Account", "dateFormat": "MM/dd/yyyy", "firstDayOfWeek": "Mon", "workDays": [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", ], "rootFolderId": "IEAAAOVII7777777", "recycleBinId": "IEAAAOVII7777776", "createdDate": "2013-12-30T12:17:24Z", "joinedDate": "2015-08-04T13:56:13Z", } ]}

You will need “id” field for future requests (“IEAADQQL” in the example above).

Step 2

Execute the following CURL command to create a new account-wide webhook and subscribe your endpoint (https://yourwebhookserver.com/event-handler) to notifications.

Get your accountId using the following CURL command:

curl -g -X POST -H 'Authorization: bearer <access_token>' -d 'hookUrl=https://yourwebhookserver.com/event-handler' 'https://www.wrike.com/api/v4/webhooks'

You’ll see the following response:

{ "kind": "webhooks", "data": [ { "id": "IEAADQQLJAAAAULN", "accountId": "IEAADQQL", "hookUrl": "https://yourwebhookserver.com/event-handler", "status": "Active", } ]}

Step 3

Next, change a task in the account (for example, change a task’s status from “Active” to “Completed”). You’ll receive the following payload on your endpoint:

{ "oldStatus": "Active", "status": "Completed", "webhookId": "IEAADQQLJAAAAULN", "eventAuthorId": "KUAALDRX", "eventType": "TaskStatusChanged", "lastUpdatedDate": "2016-11-22T11:09:58Z",}

Suspended Webhooks

If you shut down your endpoint or it is not accessible via the internet, then we automatically suspend the webhook after 3 retries. In this case, the following request by given webhook ID returns the “Suspended” state for webhook:

curl -g -X GET -H 'Authorization: bearer <access_token>' 'https://www.wrike.com/api/v4/webhooks/IEAADQQLJAAAAULN'

Response reflecting “Suspended” state:

{ "kind": "webhooks", "data": [ { "id": "IEAADQQLJAAAAULN", "accountId": "IEAADQQL", "hookUrl": "https://yourwebhookserver.com/event-handler", "status": "Suspended", } ]}

Restart Webhooks

Restart the webhook using the following PUT request:

(Video) What does an API Integration Developer do at APIANT?

curl -g -X PUT -H 'Authorization: bearer <access_token>' 'https://www.wrike.com/api/v4/webhooks/IEAADQQLJAAAAULN'

Response:

{ "kind": "webhooks", "data": [ { "id": "IEAADQQLJAAAAULN", "accountId": "IEAADQQL", "hookUrl": "https://yourwebhookserver.com/event-handler", "status": "Active", } ]}

You can get a list of your webhooks (and their states) at any time:

curl -g -X GET -H 'Authorization: bearer <access_token>' 'https://www.wrike.com/api/v4/webhooks'

Response will contain JSON with all of webhooks created by you. Similar to:

{ "kind": "webhooks", "data": [ { "id": "IEAADQQLJAAAAULN", "accountId": "IEAADQQL", "hookUrl": "https://yourwebhookserver.com/event-handler", "status": "Active", } ]}

FAQs

Does wrike have an API? ›

Wrike API can be used by all user types (via the Developer portal) and makes it easier to develop apps that work with Wrike. Use Wrike API to: Configure how your app works with the Wrike API through OAuth.

Who does wrike integrate with? ›

That's where Wrike's integrations with Slack and Gmail come in handy. Wrike integrates with the two to make project management and communication more fluid.

How do you use Wrike effectively? ›

Putting it into practice: How to create a project in Wrike
  1. Establish your team. Go to the left-side Navigation Panel and click on the team name relevant to the project. ...
  2. Create a folder. ...
  3. Name your new folder. ...
  4. Start adding projects. ...
  5. Determine project details. ...
  6. Add tasks and assignees. ...
  7. Name your task. ...
  8. Add task details.
5 Sept 2019

What is Wrike app used for? ›

At its core, Wrike is an easy-to-use tool for streamlining the internal project management and collaboration processes between team members, whether they're in the same office or separated by an ocean.

What type of tool is Wrike? ›

Wrike is a digital work management tool that lets users track and coordinate projects, combining a simple user experience and interface with enough depth for power users.

Does Wrike integrate with Gmail? ›

With Wrike for Gmail, you can create Wrike tasks from emails, view and edit tasks, and send and receive Wrike comments, all without leaving Gmail. Managing work by email can be a challenge, especially when multiple people are collaborating through multiple email threads that tie back to a project.

How do I manage a project in Wrike? ›

How to manage multiple projects with Wrike
  1. Save time searching for status updates. ...
  2. Use Wrike Spaces to build a project control center. ...
  3. Use Wrike Gantt Charts to visualize and manage project timelines and dependencies. ...
  4. Track individual team workloads with resource management and Dashboards.

How do I create a Wrike task? ›

You can create a task on the Home page or in any other Wrike view.
...
Create a task from the Home page
  1. Click the + button at the top of your workspace.
  2. Select Task from the list.
  3. In the pop-up that opens type the title of the new task and press Enter on your keyboard.

How do I create a project plan in Wrike? ›

How to build a project plan template
  1. Step 1: Create a project folder. ...
  2. Step 2: Create a project. ...
  3. Step 3: List tasks and due dates. ...
  4. Step 4: Add subtask details. ...
  5. Step 1: Copy over your template and adjust the dates. ...
  6. Step 2: Assign tasks to project team members. ...
  7. Step 3: Check resource allocation.
27 Feb 2021

What are the key features of Wrike? ›

Key benefits of using Wrike

Project and task management: Create, schedule, and delegate tasks, visualize your plans on the Gantt chart, track time and budgets spent on projects.

Why is it called Wrike? ›

The brand owner (Wrike, Inc.) apparently intended WRIKE to evoke the words “write” and “work,” but I'm not alone in having a different impression of the brand name.

Is Wrike hard to learn? ›

Overwhelming for new users

Wrike has a long learning curve and not easy to use. In fact, it takes a while for a new user to learn the basics and start using the app correctly. In fact, the number one complaint from users is the difficulty of learning to use Wrike effectively.

Does Wrike have Jira integration? ›

The Wrike and Jira sync allows for automatic updates between Wrike tasks and Jira issues and epics. Both two-way and one-way syncs are available. Select or create a Wrike project and select the Jira project that you'd like to sync with Wrike and: Wrike creates a task for each issue or epic in the Jira project.

Does Wrike use AWS? ›

Wrike Lock

Stored via the AWS Key Management Service, administrators can use a master encryption key and individual keys to protect account data.

Does Wrike have automation? ›

Start automating your work today

Wrike's Automation Engine automates everyday workflows with simple rules. If you're new to Wrike, you can start a Business or Enterprise trial, and existing customers can start using the Automation Engine today.

Does Wrike have Salesforce integration? ›

Yes! Wrike and Salesforce have a direct integration that lets you manage all the tasks associated with closing deals and streamline internal processes like requesting work from other teams, reporting on work both requested and delivered, and more.

Does Wrike integrate with Gmail? ›

With Wrike for Gmail, you can create Wrike tasks from emails, view and edit tasks, and send and receive Wrike comments, all without leaving Gmail. Managing work by email can be a challenge, especially when multiple people are collaborating through multiple email threads that tie back to a project.

What type of tool is Wrike? ›

Wrike is a digital work management tool that lets users track and coordinate projects, combining a simple user experience and interface with enough depth for power users.

Does Wrike integrate with Outlook? ›

Yes, it is possible to access Wrike through Outlook. In fact, users can work within Wrike without ever leaving Outlook and even create tasks through the email client.

Is Wrike an agile tool? ›

Wrike has built the best Agile project management software to enable your team to prioritize tasks, share information, and collaborate with ease.

Where is Wrike data stored? ›

Wrike hosts its mission-critical servers in dedicated cages within data centers located in the US and EU: Coresite, our primary datacenter in the US is ISO 27001, SOC1, and SOC2 compliant. The facility is located in San Jose, California.

Why is it called Wrike? ›

The brand owner (Wrike, Inc.) apparently intended WRIKE to evoke the words “write” and “work,” but I'm not alone in having a different impression of the brand name.

Is Wrike hard to learn? ›

Overwhelming for new users

Wrike has a long learning curve and not easy to use. In fact, it takes a while for a new user to learn the basics and start using the app correctly. In fact, the number one complaint from users is the difficulty of learning to use Wrike effectively.

Does Wrike integrate with Monday? ›

monday.com + Wrike Integrations

Zapier lets you send info between monday.com and Wrike automatically—no code required. automatically do this!

Does Wrike integrate with Microsoft teams? ›

Use Wrike's Microsoft Teams integration to view and work with tasks, folders, projects, and spaces directly from an MS Team channel. After linking a Wrike account with MS Teams, you can add individual folders/projects to channels.

Does Wrike integrate with SharePoint? ›

Yes! The MS SharePoint integration is available on all active Wrike accounts. You must provide credentials and be logged in to SharePoint to start using the features.

Does Wrike integrate with Google Calendar? ›

Google Calendar + Wrike Integrations

Zapier lets you send info between Google Calendar and Wrike automatically—no code required. Triggers when an event is cancelled or deleted. automatically do this!

Does Wrike integrate with slack? ›

By bringing Wrike into Slack, you enable your team to convert informal chats into structured work and more easily collaborate on Wrike projects. With the Wrike integration you can:• Create new tasks to quickly get work into Wrike, where it can be better managed, tracked, and reported on.

Videos

1. Uipath Integration with Wrike | Complete Configuration steps
(Deepak Rai)
2. How to integrate Wrike with profit.co
(Profit OKR Software)
3. Googlesheets to Wrike integration
(Citrix)
4. Google Suite Out of the Box Wrike Integrations
(Citrix)
5. HappyFox + Wrike Integration
(HappyFoxApp)
6. WRIKE: Ask the Expert Importing Your Data
(Andreas Riechmann)

Top Articles

Latest Posts

Article information

Author: Fr. Dewey Fisher

Last Updated: 01/18/2023

Views: 6475

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Fr. Dewey Fisher

Birthday: 1993-03-26

Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

Phone: +5938540192553

Job: Administration Developer

Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.