---
title: "Actions"
description: "The Speak Upload automation action ingests a file and transcribes it with no manual upload. Pair it with an inbound webhook trigger, choose which fields a Speak AI Chat step extracts, and set how it analyzes media."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.speakai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Actions

The **Speak Upload** action ingests a file into Speak AI and transcribes it automatically inside an automation, with no manual upload. Pair it with the **Catch inbound webhook** trigger to send a file URL from an outside tool and have Speak AI transcribe it hands-free. For how to build and trigger automations, see [How to use automations in Speak AI](/help/automations/).

![The AI Summary automation open on its canvas in Speak with its action step selected. Step 1 is a Speak trigger, Media analyzed in folder, connected by a passes media - transcript link to step 2, a Speak AI Chat step, which passes insight - text to END. The panel on the right reads Step 2, Speak AI Chat, on the Configure tab of its App, Action and Configure sequence. It holds a Prompt Title of AI Summary, the prompt itself, an AI Model set to Default model, an Assistant Type of General, and an Extract Fields box holding AI_Summary.](/help/media/automations/automations-actions.jpg)
## When you can add Speak Upload

The **Speak Upload** action appears in the step list once a trigger earlier in the automation passes data downstream, such as the **Catch inbound webhook** trigger. Add the webhook trigger first, then add **Speak Upload** as a later step.

## Configure the Speak Upload step

Open the step to set these fields:

- **Name**: an optional name for the uploaded media. You can use a token here, for example a value from the webhook payload.
- **Folder**: the destination folder for the media. This is required.
- **Source**: choose **From URL** or **Uploaded file**. To ingest a file URL from the webhook, choose **From URL**.
- **File URL**: the link to the file to upload. Use the captured value picker to insert a value from the webhook payload, for example a token like `#{{trigger.payload.&lt;path&gt;}}`.
- **Processing language**: the language used to transcribe the file. Pick from the language list.

## Map custom fields

Below the main form, the **Map custom fields** section lets you write captured webhook values into your custom fields on the media. The empty state reads **Map a captured webhook value into one of your custom fields**. Use this to carry metadata, such as a contact name or record ID, straight from the request onto the transcribed media.

## How the flow runs end to end

1. An external tool POSTs a request, including a file URL, to your inbound webhook URL.
1. The **Speak Upload** step reads the **File URL** from the payload, uploads the file into the chosen **Folder**, and transcribes it in the selected **Processing language**.
1. Any values set in **Map custom fields** are written onto the new media.

You can watch each run land under the trigger’s **Recent deliveries** list, where a successful run shows the **Ran** status.

## Extract fields on a Speak AI Chat step

A **Speak AI Chat** step can write its answers straight into your custom fields. Open the step and
pick the fields under **Extract Fields (optional)**.

One step extracts up to 25 fields. The picker keeps count at the bottom of the list, reading
"3 of 25 selected" as you go. At the cap the fields you have not picked grey out, **Select all**
fills only the room that is left, and a note appears under the picker: "This AI step can extract up
to 25 fields. Add another AI step for the rest."

The fields you already picked stay clickable at the cap, so you can deselect one to free a slot
without clearing the whole list.

To pull more than 25 fields off the same file, add a second **Speak AI Chat** step and split the
rubric across the two.

## Set the analysis input on a Speak AI Chat step

A **Speak AI Chat** step reads the transcript by default. If your account is enabled for
[audio analysis](/help/ai-chat/audio-analysis/) or
[video analysis](/help/ai-chat/video-analysis/), the step also offers an
**Analysis input** field:

- **Transcript only**, the default. Reads the transcript. No extra cost.
- **Transcript + audio**. Also hears tone and delivery. Costs extra per hour of media.
- **Transcript + audio + visual**. Also sees what is on screen. Costs extra per hour of media.

Setting anything other than transcript only removes the **AI Model** field. Speak uses a model that
can read the recording, so there is no choice left to make and the field does not appear. Switch back to transcript only and it returns.

The option applies to a step handling exactly one file. A step that accumulates several files, or
runs across a whole folder at once, falls back to the transcript. The cost applies per file on
every run, so price a representative file in AI Chat before turning it on across a busy watch
folder.

**Transcript + audio** on a video file extracts the audio track before the model reads it. The run
pauses while that happens and resumes on its own once the track is ready, so a run showing
"Extracting the audio track before analysis" is still working.

A run does not wait forever when that track never arrives. Speak retries the step a few times, then
stops it and settles the answer card with "The audio for this file could not be prepared in time, so
this automation step was stopped." Run the automation again once the file plays back correctly.

The fastest way to reach us is the live chat in the app (the chat bubble in the bottom corner). You can also email [success@speakai.co](mailto:success@speakai.co).

Want a hand setting this up? [Book a free consult](https://calendly.com/speak-ai/consult?utm_source=docs&utm_campaign=consult) and we'll do it together on your account.

---
Related: [Automations](/help/automations/) · [Filters](/help/automations/filters/)

Source: https://docs.speakai.co/help/automations/actions/index.mdx
