> For the complete documentation index, see [llms.txt](https://docs.codewords.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codewords.ai/automations/schedules-and-triggers.md).

# Schedules and triggers

### Overview

You’ve already seen how to [run automations](https://docs.codewords.ai/automations/running-automations) manually. You can also set up schedules and triggers so automations run in the background.

* **Schedules** — run at a specific time and frequency (for example, every day at 9am)
* **Triggers** — start when something happens (for example, a Slack reaction)

Together, they let you build systems that keep running around your day-to-day work.

### Schedules

Schedules run workflows automatically at set intervals — ideal for reports, reminders, or maintenance tasks.

Set your timezone in [Settings → Account](https://codewords.agemo.ai/#settings/profile) so scheduled workflows match your local time. The Activity **Scheduled Runs** list still shows times in UTC.

You can choose how often the automation should run:

* Hourly
* Daily
* Weekly
* Monthly
* Custom interval

#### Setting up schedules

Open your automation’s run page and select **Schedule** in the top-right corner.

From there:

* Decide how often it should run — once at a specific time, or on a recurring schedule
* Finish adding any inputs
* Choose whether you want email confirmations when the workflow runs
* Click **Save**

While you’re building with Cody in chat, you can also ask Cody to set up the schedule for you.

<figure><img src="/files/7CENKJFNUNWhTabm0aFm" alt=""><figcaption></figcaption></figure>

#### Managing schedules

Find all your schedules on the [**Scheduled Runs**](https://codewords.agemo.ai/workflows/schedule) page.

From there you can:

* See when a workflow last ran and when it’s next scheduled
* Search for schedules
* Toggle a schedule on or off
* Use the three-dot menu to edit, resume, delete, or disable email notifications

### Triggers

Triggers start an automation when a specific action happens — for example, a message is sent, a form is submitted, or a new record is created.

Ask Cody to set up a trigger while you’re building, or later as an edit. Once it’s set up, you can test it with Cody using real or sample data.

#### Examples of triggers

* **Slack** — new messages, reactions, or when someone joins a channel
* **WhatsApp** — messages to the shared CodeWords DM bot, group messages where the shared group bot is a member, messages from your connected WhatsApp number, and reactions
* **Gmail** — new emails, label changes, or draft creation
* **Google Calendar** — event creation, updates, or deletions
* **GitHub** — code pushes, new issues, pull requests
* **Notion** — page or database updates
* **Discord, HubSpot, Stripe, Airtable**, and many more

You don’t need to check support beforehand. Ask Cody to set a trigger up, or ask for examples. If your app supports event-based actions, CodeWords can likely trigger from it.

#### Managing triggers

Find all your triggers on the [**Triggers**](https://codewords.agemo.ai/workflows/triggers) page.

From there you can:

* Check whether a trigger is active and when it last ran
* Search for triggers
* See how often a trigger has fired
* Toggle a trigger on or off
* Use the three-dot menu to pause, delete, or disable email notifications

#### Custom webhooks

If your system isn’t natively supported, CodeWords can give you a custom webhook URL for external events. Any platform that can send HTTP POST requests with JSON data can call it.

Tell Cody which external system you want to connect — Cody generates and configures the webhook for you.

For more detail, see [Webhooks](https://docs.codewords.ai/automations/webhooks).

### When to use each

| Use case                                   | Best option          |
| ------------------------------------------ | -------------------- |
| Reacting instantly to new data or messages | Event-driven trigger |
| Running recurring reports or reminders     | Schedule             |
| Connecting unsupported systems             | Custom webhook       |

Event-driven triggers are best for responsive workflows. Schedules are ideal for predictable, time-based automation.

### FAQs

<details>

<summary>What if my app isn’t supported?</summary>

Use a custom webhook. Cody creates a URL you can connect to any system that sends HTTP POST requests with JSON data.

</details>

<details>

<summary>What apps can I use as triggers?</summary>

CodeWords supports thousands of event sources, including Gmail, Notion, GitHub, Stripe, and HubSpot. You can set up triggers for most popular apps without extra configuration.

</details>

<details>

<summary>Can I see or edit my active triggers?</summary>

Yes. Open the [Triggers](https://codewords.agemo.ai/workflows/triggers) page to manage, pause, or delete any active event-based automation.

</details>

<details>

<summary>Do triggers run even when I’m offline?</summary>

Yes. Once set up, triggers and schedules run in the background — no manual action needed.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.codewords.ai/automations/schedules-and-triggers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
