Kaizen 217 Actions APIs Tasks

Kaizen 217 Actions APIs Tasks



Welcome to another week of Kaizen!

In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard. In this post, we will discuss the Automation Tasks API.
Zylker's admin have set up the email notification that notifies the team for different triggers. Team is notified when a deal is lost. But then, what should be the course of action? Does someone know to follow up? Is the reason for the loss being logged? Often, notifications create awareness but not accountability. That is the significance of tasks. Including Task details to Zylker's dashboard ensure the right people receive the right instructions.

This update to the dashboard will allow system admins to:
  1. audit the existing tasks,
  2. create new tasks,
  3. update existing tasks, and
  4. clean up inactive and unwanted tasks.

STEP 1: Discover and audit existing tasks

To get details of existing tasks in the system and audit them the admins at Zylker use GET Automation Tasks API.

Request to fetch all automation tasks:
GET {api-domain}/crm/v8/settings/automation/tasks

Request to fetch a specific automation task:
GET {api-domain}/crm/v8/settings/automation/tasks/{task_ID}

Zylker's admin has created an automation task for investigating the reason behind a lost deal. Below output JSON shows the details of the automation task such as name, id. Note that whenever an automation task is created in the system a new task is created in the task module. 

{
    "tasks": [
        {
            "created_time": "2025-11-07T12:29:18+05:30",
            "lock_status": {
                "locked": false
            },
            "editable": true,
            "module": {
                "api_name": "Deals",
                "id": "5843104000000002181"
            },
            "related_module": null,
            "deletable": true,
            "source": "crm",
            "created_by": {
                "name": "Patricia Boyle",
                "id": "5843104000000424672"
            },
            "notify": false,
            "feature_type": "workflow",
            "field_mappings": [
                {
                    "display_value": "Investigate loss reason for ${Deals.Deal Name}",
                    "field": {
                        "api_name": "Subject",
                        "id": "5843104000000002271"
                    },
                    "type": "merge_field",
                    "value": "Investigate loss reason for ${!Deals.Deal_Name}"
                },
                {
                    "display_value": "Trigger Date plus 3 day(s)",
                    "field": {
                        "api_name": "Due_Date",
                        "id": "5843104000000002273"
                    },
                    "type": "execution_time",
                    "value": {
                        "period": "days",
                        "unit": "3",
                        "trigger_field": "${CURRENTTIME}",
                        "sign": "plus"
                    }
                },
                {
                    "display_value": "Patricia Boyle",
                    "field": {
                        "api_name": "Owner",
                        "id": "5843104000000002269"
                    },
                    "type": "static",
                    "value": {
                        "name": "Patricia Boyle",
                        "id": "5843104000000424672"
                    }
                },
                {
                    "display_value": "Not Started",
                    "field": {
                        "api_name": "Status",
                        "id": "5843104000000002279"
                    },
                    "type": "static",
                    "value": "Not Started"
                },
                {
                    "display_value": "Highest",
                    "field": {
                        "api_name": "Priority",
                        "id": "5843104000000002281"
                    },
                    "type": "static",
                    "value": "Highest"
                }
            ],
            "modified_time": "2025-11-07T12:29:18+05:30",
            "associated": true,
            "modified_by": {
                "name": "Patricia Boyle",
                "id": "5843104000000424672"
            },
            "name": "Investigate loss reason for ${Deals.Deal Name}",
            "id": "5843104000006662001"
        }
    ]
}

This task makes sure that the reason for loss is properly analyzed and logged. This ensures that the same mistakes are not repeated and corrective action can be taken.
 

STEP 2: Create new automation task

At any company, proactive engagement with customers is crucial for customer retention, especially when they are new. At Zylker, the management decided to check in with the customer after 30 days of onboarding. The admin created an Automation Task to engage with the customer using the Create Automation Task API

Request to create an automation task for a follow up task: 
POST {api-domain}/crm/v8/settings/automation/tasks

{
  "tasks": [
    {
      "module": {
        "api_name": "Accounts",
        "id": "5843104000000002177"
      },
      "feature_type": "workflow",
      "field_mappings": [
        {
          "field": {
            "api_name": "Subject",
            "id": "5843104000000002271"
          },
          "type": "static",
          "value": "Customer Success Check-in"
        },
        {
          "field": {
            "api_name": "Due_Date",
            "id": "5843104000000002273"
          },
          "type": "execution_time",
          "value": {
            "period": "days",
            "unit": "30",
            "trigger_field": "${!Accounts.Created_Time}",
            "sign": "plus"
          }
        },
        {
          "field": {
            "api_name": "Owner",
            "id": "5843104000000002269"
          },
          "type": "static",
          "value": {
            "name": "John Smith",
            "id": "5843104000000424688"
          }
        },
        {
          "field": {
            "api_name": "Status",
            "id": "5843104000000002279"
          },
          "type": "static",
          "value": "Not Started"
        },
        {
          "field": {
            "api_name": "Priority",
            "id": "5843104000000002281"
          },
          "type": "static",
          "value": "Highest"
        },
        {
          "field": {
            "api_name": "Description",
            "id": "5843104000000002291"
          },
          "type": "merge_field",
          "value": "30-day follow-up with ${!Accounts.Account_Name}.Check adoption metrics and gather feedback."
        }
      ],
      "name": "Customer Success Check-in"
    }
  ]
}

Key fields 
  1. name : indicates the name of the automation task
  2. module: indicates the module for which the automation task is created
  3. field_mappings: consists of the field mappings of the fields to a record in tasks module. This consists of three main keys:
    1. field: indicates the API name and ID of the field  in the Tasks module records
    2. value: indicates the value of the field in the Tasks record
    3. type: denotes the type of value. The possible values for this field are merge_field, static, execution_time

For the field `Due_Date`, type is `execution_time` and value is `Account Created Time + 30 Days` as:

 "value": {
 "period": "days",
 "unit": "30",
 "trigger_field": "${!Accounts.Created_Time}",
 "sign": "plus"
 }

It forms the core of our solution to create a task 30 days after onboarding.

This ensures customer success team automatically follow up with new customers after their first month. It helps them to:
  1. measure product adoption,
  2. gather early feedback,
  3. identify potential issues, and
  4. strengthen customer relationships.

The task is automatically created, assigned, and scheduled without manual intervention.

STEP 3: Updating an automation task 

After using the customer success check-in for a while, the customer success gave their feedback to admin. They feel that the 30 day follow up is too soon and assigning the task as Highest priority is overwhelming. 
The admin updates the automation tasks to accommodate their feedback using the Update Automation Tasks API.

Request to update an automation task: 
PUT {api-domain}/crm/v8/settings/automation/tasks/5843104000006646001


{
  "tasks": [
    {
      "field_mappings": [
        {
          "field": {
            "api_name": "Due_Date",
            "id": "5843104000000002273"
          },
          "type": "execution_time",
          "value": {
            "period": "days",
            "unit": "60",//Changed from 30 to 60.
            "trigger_field": "${!Accounts.Created_Time}",
            "sign": "plus"
          }
        },
        {
          "field": {
            "api_name": "Priority",
            "id": "5843104000000002281"
          },
          "type": "static",
          "value": "High"///Changed from Highest to High.
        },
        {
          "field": {
            "api_name": "Description",
            "id": "5843104000000002291"
          },
          "type": "merge_field",
          "value": "60-day follow-up with ${!Accounts.Account_Name}.Check adoption metrics and gather feedback."// Description changed to account for the update to the task.
        }
      ]
    }
  ]
}


The admin has changed the execution time to `Account Created Time + 60 Days`, the priority from `Highest` to `High` and also the description to reflect the change in execution time.

STEP 4: Deleting tasks notifications 

Any unwanted or redundant task can be deleted using Delete Automation Tasks API.

Request to delete an automation tasks: 
DELETE {api-domain}/crm/v8/settings/automation/tasks/5843104000006678001
DELETE {api-domain}/crm/v8/settings/automation/tasks?ids=5843104000006646001,5843104000006646002

We hope that you find this post on Actions - Tasks APIs useful. If you have any feedback, please let us know in the comments, or reach out to us via support@zohocrm.com

    • Sticky Posts

    • Kaizen #217 - Actions APIs : Tasks

      Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
    • Kaizen #216 - Actions APIs : Email Notifications

      Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
    • Kaizen #152 - Client Script Support for the new Canvas Record Forms

      Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
    • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

      Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
    • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

      Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the