Zoho CRM: Trigger Workflows & Assignment Rules from Deluge

Wed Jan 22 2025
Zoho CRM · Automation

Trigger Workflows & Assignment Rules from Deluge

How to trigger workflow/approval/blueprint and assignment ruleswhen creating or updating CRM records — using both Deluge tasks and raw REST (invokeurl).

Mostafa Badawy··5 min read

Use Deluge tasks when…

  • You’re inside Creator/CRM functions and want simpler auth via Connections.
  • You need to pass the trigger flags and (optionally) an assignment rule ID.

Use invokeurl when…

  • You want fine control over headers/params or you’re mixing with other APIs.
  • You’re orchestrating bulk or special cases not exposed as Deluge tasks.

Trigger workflows/approval/blueprint via Deluge tasks

// Create Lead and trigger workflow + approval + blueprint
lead = Map();
lead.put("Last_Name", "Nasser");
lead.put("Company", "Skyline LLC");

triggers = Map();
triggers.put("trigger", {"workflow","approval","blueprint"}); // <— flags

resp = zoho.crm.createRecord("Leads", lead, triggers);
info resp;

// Update + trigger workflow only
updateMap = Map();
updateMap.put("Phone", "971-4-555-1212");

resp2 = zoho.crm.updateRecord("Leads", resp.get("id").toLong(), updateMap, {"trigger":{"workflow"}});
info resp2;

Fire an Assignment Rule (e.g., for Leads)

Pass the assignment rule ID using lar_id along with the trigger flags.

lead2 = Map();
lead2.put("Last_Name","Hana");
lead2.put("Company","Nova Trading");

// IMPORTANT: replace with your real Assignment Rule ID
ruleId = "1234567890123456789";

params = Map();
params.put("trigger", {"workflow"}); // workflow still fires
params.put("lar_id", ruleId);        // <— assignment rule

resp3 = zoho.crm.createRecord("Leads", lead2, params);
info resp3;
Notes: The Assignment Rule must be active and applicable to the module (commonly Leads). If you explicitly set Owner on the record, the assignment rule may not reassign it.

Doing the same with REST (invokeurl)

Use your correct data center host (www/eu/in/au/jp.zohoapis.com) and a CRM connection.

row = Map();
row.put("Last_Name","Rayan");
row.put("Company","Vertex Co.");

rows = List(); rows.add(row);
body = Map(); body.put("data", rows);

// triggers via query param; add lar_id to fire assignment rule
ruleId = "1234567890123456789";
urlStr = "https://www.zohoapis.com/crm/v8/Leads?trigger=workflow,approval,blueprint&lar_id=" + ruleId;

resp = invokeurl
[
  url        : urlStr
  type       : POST
  parameters : body.toString()
  connection : "zoho_crm_all"
];
info resp;

Common pitfalls

  • Inactive rule: your lar_id points to an inactive rule.
  • Owner set: explicitly setting Owner can short-circuit assignment.
  • Permissions: the Connection’s user must have rights to run the rule/workflows.

SEO mini-FAQ

  • “How do I trigger workflows from Deluge?” Pass {trigger:{workflow,approval,blueprint}} as the 3rd arg in zoho.crm.createRecord/updateRecord.
  • “How do I trigger assignment rules?” Include lar_id with a valid Assignment Rule ID.
  • “Can I do this with invokeurl?” Yes — use ?trigger=... and (optionally) &lar_id=... and POST the record in data.