download dots
Utility Helpers Deep Dive: JSONPath, Templating, Regex

Utility Helpers Deep Dive: JSONPath, Templating, Regex

Updated 2026-05-06·5 min read
On this page (9)

Overview

Most automations need a few small data tweaks before the interesting work happens: pull a value out of nested JSON, format a timestamp for Slack, clean up a string before it lands in a Project title. Utility actions cover those one-liners, so you do not need a custom script or a separate AI call.

TL;DR: Five utility actions cover most data-shaping work in Taskade automations: utils.jsonExtract (JSONPath), utils.formatDate, utils.textReplace, utils.textRegexMatch, and taskade.setProjectTitle. They are deterministic, fast, and cheaper than asking AI. Pair them with the HTTP Webhook trigger and Branch to build pipelines end to end. See the Utility Actions overview for the full catalogue.

utils.jsonExtract

Pull values out of nested JSON with a JSONPath expression. Taskade uses the jsonpath-plus library under the hood, so any standard JSONPath query works (the dollar-sign root, dot/bracket child access, wildcards, filters). Note: JSONPath is a different language from jq; queries written for jq will not work here.

Sample input:

Json
{
  "user": { "id": 42, "email": "[email protected]" },
  "items": [
    { "sku": "TSK-001", "qty": 2 },
    { "sku": "TSK-002", "qty": 1 }
  ]
}

Common queries:

Path Returns
$.user.email "[email protected]"
$.items[0].sku "TSK-001"
$.items[*].sku ["TSK-001", "TSK-002"]
$..qty [2, 1]

Pipe the result into the next action with the @ reference picker, or with {{ }} syntax in any string field.

utils.formatDate

Convert a date or timestamp into the format your downstream step expects. Lives in the same Utilities piece as jsonExtract.

Common patterns:

Input Format string Result
2026-05-06T10:30:00Z MMM D, YYYY May 6, 2026
2026-05-06T10:30:00Z dddd, h:mma Wednesday, 10:30am
1715000000 (Unix seconds) YYYY-MM-DD 2024-05-06

Use it before posting to Slack, writing into a Project's Table view, or stamping a project title with the date the automation ran.

utils.textReplace

Find a literal string or a regex and swap it. Both modes are supported in the same action.

Mode Find Replace Input Output
Literal staging production https://staging.example.com https://production.example.com
Regex \s+ (with g flag) - Order Number 42 Order-Number-42

Regex follows the standard JavaScript syntax with flags, so global, case-insensitive, and multiline replacements all work as expected.

utils.textRegexMatch

Test whether a value matches a regular expression. Returns true or false, so you can drop the result straight into a Branch condition without an extra step.

Pattern Input Result
^urgent urgent: prod down true
\d{4}-\d{2}-\d{2} 2026-05-06 true
@example\.com$ [email protected] false

Pair textRegexMatch with Branch to route on free-form text fields like email subjects, ticket categories, or webhook bodies.

taskade.setProjectTitle

Rename the project a step is acting on. This action lives in the Taskade piece (not Utilities), but it pairs so often with the four above that we cover it here.

Most useful when a webhook trigger creates a fresh project and you want to label it after a customer or order ID.

Title template:  Onboarding for {{trigger.body.customer_name}}
Resulting title: Onboarding for Globex

Run it right after the action that creates the project, so the new title is visible everywhere the project appears.

End-to-end: webhook → branch in six steps

Most real automations chain two or three utilities together. Here is the canonical pattern: a webhook arrives, you pull a field, build a title, rename the project, then branch on a flag.

  1. HTTP Webhook trigger receives the payload.
  2. utils.jsonExtract pulls $.customer.name out of the body.
  3. utils.formatDate turns the trigger timestamp into May 6, 2026.
  4. taskade.setProjectTitle applies a title built from name and date.
  5. utils.textRegexMatch tests priority against ^p[01]$.
  6. Branch routes the high-priority path to Slack and the rest to the backlog.

Six steps, zero AI credits, finishes in well under a second. This is the pattern that powers most production webhooks at Taskade.

When to use a utility instead of AI

Utility actions are deterministic, fast, and cheap. Reach for them when:

  • The transform is well-defined (JSON extraction, formatting, regex matching).
  • You need the same answer every run.
  • You want to keep credits low on the hot path.

Reach for Ask AI only when the transform needs reasoning, summarization, or pattern recognition that does not fit a regex.