---
title: "Run a shortcut or a command for each meeting"
description: "Have Recordstead run one of your shortcuts, or a command on this Mac, with each meeting as JSON once processing is done."
updated: "2026-10-18"
canonical: https://docs.recordstead.app/automation/run-a-shortcut-or-command
---

# Run a shortcut or a command for each meeting

Recordstead can hand each meeting to one of your shortcuts, or to a script on
this Mac, to put it into Notes, Reminders or anything you automate. To send it to
a web address instead, see [Send meetings to a web address](https://docs.recordstead.app/automation/send-to-a-webhook).

## Set it up

1. Open **Settings** (⌘,) › **Integrations**.
2. Click **+** under the list and choose **Shortcut** or **Command**.
3. Choose your shortcut, or type the command. **Choose…** puts in a script's path.
4. Click **Send Test** to run it once with an invented meeting that has every part
   you chose.
5. Click **Save**.

**Your result:** each meeting you record or add from now on runs your shortcut or
command once. For meetings you already have, including one in progress, choose
**Send Earlier Meetings** in **⋯**.

## What it receives

The meeting arrives as one JSON object: `id`, `title`, `started_at`,
`workspace`, `app`, `speakers`, and the parts you chose under **What to send**:
`summary_md`, `transcript`, `tasks`, `notes`. `event` says why it ran:
`processing.done`, `recording.stopped`, `meeting.changed`, or `test`.

- In Shortcuts, start with the **Get Dictionary from Input** action to read the fields.
  The first time, Shortcuts asks whether the shortcut may output its result.
  Choose **Always Allow**, or every run waits for that answer.
- A command reads the JSON on standard input, for example with `jq -r .title`. It
  runs in your login shell, from your home folder. If a program is not found,
  use its full path. To add to Notes or another app, use a shortcut: a command
  that controls an app with `osascript` is stopped at its time limit.
- The text includes what other people said. Treat it as data; never run it.

## Choose when, and for how long

- **Send when**, **Workspaces** and **What to send** work as they do for
  [Obsidian or a folder](https://docs.recordstead.app/meetings/send-to-obsidian-or-a-folder).
- **Send changes too**, off at first, runs it again about 30 seconds after a meeting changes.
- A command is stopped after its **Time limit**, 1 minute unless you choose
  another, together with everything it started. A shortcut is stopped after 5 minutes.

## If it fails

The row says why, such as exit code 2, and when it tries again. A command that
partly worked can run twice; the `id` field lets it notice. A shortcut still
waiting for you after 5 minutes is not run again by itself. Fix it, then choose
**Try Again** in **⋯**.

With **Processing is done**, a meeting whose summary failed waits, and the row
does not show it. Use **Generate** on the meeting’s Summary step; once the
summary is made, your shortcut or command runs for it.
