# Plaud Recordings to Google Drive Sync

> Keeps a Google Sheet and Drive folder called "Plaud Recordings" in sync with your Plaud account, with transcripts. Finds or creates the sheet (Recording ID, Recording Link, Status, Recording Type, Transcript Link, Recorded At) and the Drive folder, lists every Plaud recording, and for each one not already logged (matched on Plaud's durable recording id): downloads the audio to Drive, obtains a transcript — reusing Plaud's own diarized transcript when one exists, otherwise transcribing through Speech-to-Text's background tasks (submit, then poll get_task; diarization on for recordings up to 20 minutes) — saves the transcript to the same folder as "<id> - transcription.json", distills the recording's purpose from the first ~30 seconds of speech into a Recording Type, and records the id, Drive audio link, status, type, transcript link, and the recording's original date and time. Re-runnable and idempotent: already-logged recordings are skipped; recordings over 60 minutes are downloaded but not transcribed.

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-07-22T14:18:12.299Z
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 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. Output the set o...
4. List Plaud Recordings: List ALL of the user's Plaud recordings with action 'list_files' and page_size 100 (page_size must be at least 10), paginating through every page until no results remain. For each...
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: download audio, obtain a transcript (Plaud's own when it exists, Speech-to-Text otherwise), save the transcript...
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. A '500 Internal Server Error'...
8. Summarize Run: Goal: Report the results of the sync run. | Inputs: The list of new recordings processed and, for each, whether the audio uploaded (or was skipped for a null presigned_url), which transcript source was used (plaud or sp...
9. Upload Audio to Drive: If presigned_url is missing/null for this recording, skip the upload entirely and output an empty Drive audio link — do not treat this as a failure. Otherwise upload the recording...
10. Log Row in Sheet: Append one row to the Plaud Recordings spreadsheet (spreadsheet_id and sheet_name from the Find or Create Sheet step) using action 'append_rows' with an object row keyed by header...
11. Get Transcript (Plaud or STT): Obtain a transcript for the current recording, preferring Plaud's own. IF has_plaud_transcript is true: do NOT call this tool at all — output {used_plaud_transcript: true} and reu...
12. Save Transcript to Drive: If transcription was skipped, do nothing and output {skipped: true}. Otherwise save the transcript JSON into the Plaud Recordings folder (parent_folder_id from the Ensure Drive Fo...
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 (each with 'content', 'speaker', a...
14. Update Status & Type: Update the row for this recording in the Plaud Recordings spreadsheet (spreadsheet_id and sheet_name from the Find or Create Sheet step) using action 'update_row' with key_column...

## 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").