Calculate Project planned duration based on two dates

Requisites

For the execution of this rule, there must be 3 previously created fields.

  • Start date: Date field

  • End date: Date field

  • Planned Duration (natural days): Number field


Configure the rule trigger

Create a new trigger → Incoming webhook 

Copy the autogenerated url for the incoming webhook.

Set the field “Execute this automation rule with“ with “No issues from the webhook“

Create a Projectrak outgoing webhook

In order to the rule will be executed when a project field changed we need to create a outgoing webhook pointing to the Automation Incoming webhook url.

Go to: Administration → Apps → Projectrak → Projectrak outgoing webhooks

Create a new webhook

Set the name of the webhook and the url with the previously copied url from the Automation incoming webhook and save.

Now you have linked Projectrak with Automation rule.

Now, when a Projectrak field value is edited in any project, the Automation rule will be triggered.

 

Configure the rule steps

You can see the information that will be sent to the rule every time a field is updated in a project here: https://deiser-apps.atlassian.net/wiki/spaces/PROJECTRAKCLOUD/pages/48824321

1. Getting the project id

 

2. Check if the start date is edited

  • Create an action: Create variable

  • Variable name: hasStartDate

  • Smart value: {{#webhookData.fields}}{{#if(equals(name,"Start date"))}}{{value.current}}{{/}}{{/}}

3. Check if the end date is edited

  • Create an action: Create variable

  • Variable name: hasEndDate

  • Smart value: {{#webhookData.fields}}{{#if(equals(name,"End date"))}}{{value.current}}{{/}}{{/}}

 

4. Check if the rule should be executed

  • Create an action: Create variable

  • Variable name: shouldExecute

  • Smart value: {{or(hasStartDate.isNotEmpty(),hasEndDate.isNotEmpty())}}

 

5. If the rule should be executed continue

  • Create a condition: Advanced compare condition

  • First value: {{shouldExecute}}

  • Condition: equals

  • Second value: true

 

6. Get the Projectrak authorisation JWT

7. Get the value of the field Start date in the project

  • Create an action: Send web request

  • Web request URL: https://profields-cloud.deiser.com/values/projects/{{projectId}}/fields/<START_DATE_FIELD_ID>

  • Headers:

    • Content-Type: application/json

    • Authorization: Bearer {{projectrakJwt}} 

  • HTTP method: GET

  • Web request body: Empty

  • Check: Delay execution of subsequent rule actions until we've received a response for this web request

8. Set the value in a variable

  • Create an action: Create variable

  • Variable name: startDate

  • Smart value: {{webResponse.body.value.value}}

9. Get the value of the field Start date in the project

 

10. Set the value in a variable

  • Create an action: Create variable

  • Variable name: endDate

  • Smart value: {{webResponse.body.value.value}}

 

11. Calculate the planned duration days

  • Create an action: Create variable

  • Variable name: plannedDurationDays

  • Smart value: {{startDate.toDate("yyyy-MM-dd").diff(endDate.toDate("yyyy-MM-dd")).days}}

12. Set the value in the Planned Duration field

  • Create an action: Send web request

  • Web request URL: https://profields-cloud.deiser.com/values/projects/{{projectId}}/fields/<PLANNED_DURATION_FIELD_ID>

  • Headers:

    • Content-Type: application/json

    • Authorization: {{projectrakJwt}} 

  • HTTP method: POST

  • Web request body: Custom

  • Custom data: {"value": "{{plannedDurationDays}}"}

  • Check: Delay execution of subsequent rule actions until we've received a response for this web request



This example uses an incoming webhook trigger and two date fields to calculate the period but more options can be used.

I.e. You can calculate the remaining time of a project with a scheduled trigger that executes every day and the end date of the project and the current date (see Jira smart values - date and time )