> This page is for Tools.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.moveworks.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.moveworks.com/_mcp/server.

# Automation

Automation in Tool Studio has two parts. **Actions** are the individual operations an agent performs: call an API, run a script, generate text with an LLM, look up a user, or chain several steps together. **System triggers** decide when a plugin runs without a user asking, either when an event arrives from another system or on a schedule. A plugin that pairs a system trigger with a compound action is an **ambient agent**: it listens for a signal, interprets it, and acts, and it can still reach users by sending notifications.

## Actions

Every [action](/tool-studio/actions) type accepts input arguments, so one action can be reused across plugins. When an action is invoked, those values come from a parent context such as a conversation process or a compound action.

#### [HTTP Actions](/tool-studio/actions/http-actions)

Call REST or SOAP APIs on your business systems through a connector. Import a request from cURL or configure it by hand.

#### [Script Actions](/tool-studio/actions/script-actions)

Write APIthon, a variation of Python, to transform data, perform calculations, or implement custom logic.

#### [Compound Actions](/tool-studio/actions/compound-actions)

Chain actions, data transformations, and logic into one reusable workflow with branching, loops, parallel steps, error handling, and user notifications.

#### [LLM Actions](/tool-studio/actions/llm-actions)

generate_text_action and generate_structured_value_action for summarization, classification, extraction, and content generation inside a workflow.

#### [Built-in Actions](/tool-studio/actions/built-in-actions)

Ready-made platform operations such as user lookups, notifications, and approvals, with no connector or HTTP action to create.

## System Triggers

| Trigger                                                      | Fires when                                               | Typical use                      | Example                                                             |
| ------------------------------------------------------------ | -------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------- |
| [Webhook](/tool-studio/system-triggers/webhook-triggers)     | A specific event occurs in a source system, in real time | Respond to key business events   | "Gong call completed" → extract key details and propose CRM updates |
| [Scheduled](/tool-studio/system-triggers/scheduled-triggers) | A Cron, Interval, or Calendar schedule comes due         | Keep time-based workflows moving | Every Monday 9am → review feature requests and route to PM          |

For webhooks, you create a **Listener** that receives requests from a provider such as Salesforce or Asana; Moveworks validates the request, supporting signed secrets and one-time challenge verification, then parses it into an event and dispatches it to matching plugins. Scheduled triggers are time-based only: they do not poll an external system for state changes and do not react to real-time events, so use a webhook for those. The [System Triggers overview](/tool-studio/system-triggers) covers how a trigger connects to a plugin's process and the end-to-end execution flow.

#### [Webhook Triggers](/tool-studio/system-triggers/webhook-triggers)

Listeners, webhook URLs, authentication and signature verification, and payload parsing.

#### [Scheduled Triggers](/tool-studio/system-triggers/scheduled-triggers)

Cron, Interval, and Calendar schedules with time zones and start and stop conditions.

## How They Combine Into Ambient Agents

In Tool Studio, you create an ambient agent by setting a plugin's **Trigger Type** to **System** (Webhook or Schedule). The run then follows the Listen → Understand → Act cycle:

1. **Listen.** The system trigger detects the event or the schedule comes due, and Moveworks validates and parses it.
2. **Understand.** The event is routed to the matching plugin, whose compound action analyzes it, for example with an LLM action, to interpret context and assess impact.
3. **Act.** The compound action executes actions: API calls, scripts, or approvals. To message users, use the [`notify`](/tool-studio/actions/compound-actions/notify) expression, which supports rich text and action buttons.
4. **Log.** Each stage is recorded so you can trace the run during development and operations. See [Logs](/tool-studio/agent-telemetry/logs).

[Ambient Agents](/ai-assistant/ambient-agents) explains the pattern in depth, and the [Ambient Agents Cookbook](/tool-studio/cookbooks/ambient-agents-cookbook) shows the architecture for each trigger type.

## Build One

Each quickstart builds a complete ambient agent against the Purple Suite mock APIs.

#### [Quickstart #5: Notification Ambient Agent](/tool-studio/quickstart-guide/webhook-triggers-quickstart-guide)

Build a simple, proactive notification from a webhook event.

#### [Quickstart #6: Expense Approval Ambient Agent](/tool-studio/quickstart-guide/quickstart-6-expense-approval-ambient-agent)

Build an approval flow that runs when an expense event arrives.

#### [Quickstart #7: Scheduled Trigger Ambient Agent](/tool-studio/quickstart-guide/quickstart-7-scheduled-trigger-ambient-agent)

Build an analysis notification that runs on a schedule.

## Related

[Data Types](/tool-studio/core-concepts/data-types) defines what action input arguments and slots can hold: actions use a fixed set of primitive and built-in types, and slots also support custom types. The [Content Ingestion Platform](/tool-studio/enterprise-search/content-ingestion-platform) is Moveworks-run automation of a different kind: the mirroring, processing, and loading pipeline that keeps indexed search connectors current without a plugin.