# Plaud Recordings to Google Drive Sync

> Automatically backs up your Plaud recordings to Google Drive and keeps a tracking spreadsheet in Google Sheets. Each time you run this workflow, it downloads any new recordings from your Plaud account to a "Plaud Recordings" folder in Drive, creates a transcript for each recording (using Plaud's built-in transcripts when available, or automatic speech-to-text otherwise), saves the transcript alongside the audio file, identifies what each recording is about (meeting, interview, note, etc.), and logs everything in a spreadsheet with links to the audio and transcript files. You can run this as often as you like - it only processes new recordings and won't duplicate anything. Just connect your Plaud, Google Drive, and Google Sheets accounts and run it whenever you want to sync your latest recordings.

Content type: workflow
Source URL: https://www.agentpmt.com/agent-workflow-skills/plaud-recordings-to-google-drive-sync
Markdown URL: https://www.agentpmt.com/api/agent/workflows/plaud-recordings-to-google-drive-sync?format=agent-md
Updated: 2026-08-07T14:43:24.041Z
Author: firef1ie

---

Estimated time saved: 45 minutes.

## Tools

- Google Sheets
- Google Drive
- Plaud
- Speech to Text With Speakers

## Workflow Outline

1. Find or Create Sheet: Locate the tracking spreadsheet. First run action 'search' with query 'Plaud Recordings'. If a spreadsheet named exactly 'Plaud Recordings' exists, use its spreadsheet_id; if none...
2. Ensure Drive Folder: Run action 'ensure_folder_path' with ensure_path 'Plaud Recordings' to create the folder at My Drive root if it does not already exist. Output the resulting folder_id for the uplo...
3. Read Logged IDs: Using the spreadsheet_id and sheet_name from the Find or Create Sheet step, run action 'read' with range 'A2:A' to get every value in the 'Recording ID' column below the header. O...
4. List Plaud Recordings: List ALL of the user's Plaud recordings with action 'list_files' and page_size 100 (the tool's default page_size is only 20, so always pass it explicitly), paginating with 'page'...
5. Find New Recordings: Goal: Determine which Plaud recordings are not yet logged in the spreadsheet. | Inputs: The full list of Plaud recordings (each with a durable 'id', 'start_at', and 'duration') from the List Plaud Recordings step, and t...
6. For Each New Recording: Repeat this section for each recording. Process each new recording: claim it in the sheet, download audio, obtain a transcript (Plaud's own when it exists, Speech-to-Text otherwis...
7. Get Plaud File: For the current recording, call action 'get_file' with file_id copied EXACTLY from the current recording's 'id' in the List Plaud Recordings output. ERRORS: a '500 Internal Server...
8. Summarize Run: Goal: Report the results of the sync run. | Inputs: The list of new recordings processed and, for each, whether it was claimed or already owned by a concurrent run, whether the audio uploaded (or was skipped because no...
9. Claim Row in Sheet: Claim this recording in the sheet BEFORE doing any expensive upload or transcription work, so a second run executing at the same time cannot process it as well. This step is the w...
10. Upload Audio to Drive: If already_claimed is true, do nothing and output an empty Drive audio link. If presigned_url was still unavailable after the retries in the Get Plaud File step, skip the upload a...
11. Get Transcript (Plaud or STT): Obtain a transcript for the current recording, preferring Plaud's own. IF already_claimed is true: do nothing, output {skipped: true, reason: 'claimed by another run'}. IF has_pla...
12. Save Transcript to Drive: If transcription was skipped for any reason (including already_claimed), do nothing and output {skipped: true}. Otherwise save the transcript JSON into the Plaud Recordings folder...
13. Distill Recording Type: Goal: Determine the recording's purpose/type from what the speaker says at the very beginning. | Inputs: The transcript utterances for the current recording — either Plaud's utterances from get_transcript (each with 'co...
14. Update Status & Type: If already_claimed is true, do nothing — the row belongs to another run and must not be touched. Otherwise finalise this recording's row in the Plaud Recordings spreadsheet (sprea...

## Frequently Asked Questions

### How do I connect this workflow to my local agent like OpenClaw or Claude Code?

You can install the local MCP server by opening a terminal and running:

```
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

This will connect you to local agents like Claude Code, Windsurf, Grok Build, Cursor, etc.

Alternatively you can connect to the hosted version with this config block, no installation required:

```
{
  "mcpServers": {
    "agentpmt": {
      "type": "streamable-http",
      "url": "https://api.agentpmt.com/mcp",
      "headers": {
        "Authorization": "Bearer <AGENTPMT_BEARER_TOKEN>",
        "x-instance-metadata": "{\"client\":\"generic-mcp\",\"platform\":\"remote\"}"
      }
    }
  }
}
```

[View MCP Connection Instructions](/docs/mcp-reference/connection) for more details.

### How do I trigger this workflow?

You can use it here in the browser by clicking the 'Try It' button.

If you 'star' the workflow it will save to your dashboard for quick access.

To use the workflow in an external agent, make sure you have followed the steps to connect it to the MCP server and then copy / paste this prompt, or just tell it to use the AgentPMT MCP server and use this workflow.

> Call the AgentPMT-Workflow-Skills tool with action 'get\_workflow\_skill' and skill\_id 6a5ebba86f463aa64f4f7f95 ("Plaud Recordings to Google Drive Sync").