Skip to main content
Was this helpful?

Smart Values

Smart values are dynamic placeholders that pull real data into your automation conditions. Instead of writing rules that match everything, smart values let you inspect the actual content of the event or webhook payload that triggered the rule — so you can be precise about what gets acted on.

What Are Smart Values?

When an automation rule fires, it has access to the data that caused it to trigger. Smart values give you a way to reach into that data inside your conditions.

There are two sources of smart values:

  • Event fields — data from the calendar event itself (title, description, duration, calendar name, etc.)
  • Webhook payload fields — data from the JSON body that was posted to your rule's webhook URL

You reference these in the Condition section of your rule when you set up the field to match against.

Event Smart Values

When your trigger is event.created, event.updated, event.deleted, event.starts_in, or event.ends_in, the condition fields map directly to event data:

Condition FieldWhat It Checks
titleThe event's title/name
descriptionThe event's description text
locationThe event's location field
notesAny additional notes on the event
durationDuration in minutes
is_all_dayWhether the event is an all-day event
colorThe event's current color
statusEvent status (confirmed, tentative, etc.)
calendar.idID of the calendar the event belongs to
calendar.nameName of the calendar the event belongs to

Example: May wants a rule that colors any event containing "School" in the title with a yellow background. She sets up:

  • Trigger: event.created
  • Condition: title contains School
  • Action: Set event color → Yellow

The word "School" in the condition is checked against the live title of each created event. That's a smart value at work.

Example: Will wants to flag long meetings. He sets:

  • Condition: duration greater_than 60

This matches any event longer than 60 minutes.

Webhook Smart Values

When your trigger is webhook.incoming, the JSON body posted to your webhook URL is available inside conditions using the webhook.data field with dot notation.

How Dot Notation Works

If an external system sends this payload:

{
"event": "order.created",
"data": {
"priority": "high",
"customer_id": "cust_123",
"order": {
"status": "pending",
"total": 149.99
}
}
}

You can access nested values like this:

Dot Notation PathValue from Example
webhook.data.priorityhigh
webhook.data.customer_idcust_123
webhook.data.order.statuspending
webhook.data.order.total149.99

You can go as deep as needed — webhook.data.a.b.c.d works for deeply nested objects.

Using Webhook Smart Values in a Condition

In the condition builder:

  1. Set the Field to webhook.data
  2. Enter the dot-notation path in the field that appears (e.g., priority)
  3. Choose an operator (equals, contains, greater_than, etc.)
  4. Enter the value to match against
Use dot notation for nested JSON

webhook.data.order.customer.email works for deeply nested objects. Just follow the structure of the JSON you're receiving.

Practical Example: Web Store Integration

A web store fires a webhook to PrimeCal when a high-priority order comes in. The payload looks like:

{
"event": "order.created",
"data": {
"priority": "high",
"customer_id": "cust_789",
"product": "Premium Membership"
}
}

You want to create a follow-up event only for high-priority orders. Set up the rule:

  1. Trigger: webhook.incoming
  2. Condition: webhook.data.priority equals high
  3. Action: Set event color → Red (to flag it visually)

With this in place, only webhooks where data.priority is exactly "high" will trigger the action. Orders with "normal" or "low" priority are ignored.

Combining Multiple Conditions

Smart values become more powerful when you combine conditions. Use the rule-level AND/OR logic setting:

  • AND: every condition must match (more restrictive)
  • OR: any condition can match (more permissive)

Example: Match urgent, long meetings on a specific calendar:

  • Condition 1: title contains Urgent
  • Condition 2: duration greater_than 30
  • Condition 3: calendar.name equals Work
  • Logic: AND

All three must be true for the rule to act.


Last updated: 2026-06-30 | PrimeCal v1.3.4