Agent skill

Service Native Voice Recording Transcription Configure

by forcedotcom in forcedotcom/sf-skills

Configure (enable OR disable) call recording and call transcription for Native Voice (Thunderbird Voice) programmatically via the Metadata API, for headless / API-driven support where no human uses…

Apache-2.0Auto-check passedMedia & Creative

Install Service Native Voice Recording Transcription Configure

skills CLI
$ npx skills add forcedotcom/sf-skills --skill service-native-voice-recording-transcription-configure -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install forcedotcom/sf-skills service-native-voice-recording-transcription-configure --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/service-native-voice-recording-transcription-configure .claude/skills/service-native-voice-recording-transcription-configure && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
service-native-voice-recording-transcription-configure
GitHub stars
1.1k
Token cost
~2.9k tokens
SKILL.md length
1,338 words
Files
5 (incl. scripts, references, assets)
Skills in repo
252
Repo updated
First seen
Licence
Apache-2.0

At a glance

Configure (enable OR disable) call recording and call transcription for Native Voice (Thunderbird Voice) programmatically via the Metadata API, for headless / API-driven support where no human uses…

  • Works in 5 steps: Confirm the two preferences are modeled… → Run the configure script. Run → For the Metadata API contract, read… → …
  • A user asks to turn on/off
  • SKILL.md covers Scope, Required Inputs, Workflow and Rules / Constraints, plus 3 more sections
  • Runs Shell scripts from its folder; calls sf

What it does

Service Native Voice Recording Transcription Configure is an agent skill from forcedotcom/sf-skills. Configure (enable OR disable) call recording and call transcription for Native Voice (Thunderbird Voice) programmatically via the Metadata API, for headless / API-driven support where no human uses the Service Console UI. Either preference can be turned on or off independently. Use this skill when a user asks to turn on/off, enable/disable, or configure Native Voice recording and/or transcription for headless or automated voice calls. TRIGGER when: users mention Thunderbird Voice, Native Voice…

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts, reference files and assets (for example `assets/confirmation-output.json`, `references/thunderbird-voice-settings.md` and `scripts/enable-recording-transcription.sh`).

It sits in Media & Creative, covering Transcription. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.

When your agent uses it

  • A user asks to turn on/off
  • Configure Native Voice recording and/or transcription for headless
  • Automated voice calls
  • : users mention Thunderbird Voice

Example prompts

  • “enable recording and transcription”
  • “turn off call recording”
  • “disable transcription”
  • “/service-native-voice-recording-transcription-configure”

Requirements

  • A Bash shell

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Confirm the two preferences are modeled separately. Recording
  2. Run the configure script. Run
  3. For the Metadata API contract, read references/thunderbird-voice-settings.md —
  4. Change only the named target field(s), to the requested state. The deployed
  5. Return the confirmation JSON. Emit a single JSON object matching

What it can do on your machine

Read from SKILL.md and the folder at commit 4bbae5c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • sf

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Service Native Voice Recording Transcription Configure loads about 2.9k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 256 tokens; SKILL.md has 1,338 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~256
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from forcedotcom/sf-skills at commit 4bbae5c, republished under its Apache-2.0 licence (© forcedotcom). 1,338 words, ~2,870 tokens.

Download SKILL.mdSave it as .claude/skills/service-native-voice-recording-transcription-configure/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
service-native-voice-recording-transcription-configure
description
Configure (enable OR disable) call recording and call transcription for Native Voice (Thunderbird Voice) programmatically via the Metadata API, for headless / API-driven support where no human uses the Service Console UI. Either preference can be turned on or off independently. Use this skill when a user asks to turn on/off, enable/disable, or configure Native Voice recording and/or transcription for headless or automated voice calls. TRIGGER when: users mention Thunderbird Voice, Native Voice, ThunderbirdVoiceSettings, enableCallRecording, enableCallTranscription, 'enable recording and transcription', 'turn off call recording', 'disable transcription', 'turn on call recording via API', headless voice recording, or configuring voice-call capture without clicking through Setup. DO NOT TRIGGER when: the user wants to redact or scrub PII from existing recordings, transcribe a supplied audio file, or author a Flow/Apex — those are out of scope for this skill.
metadata.version
1.2
metadata.domains
Service
metadata.minApiVersion
68.0

Configure Native Voice Recording & Transcription (headless)

Turn call recording and call transcription for Native Voice (Thunderbird Voice) on or off on an org, programmatically, so the change takes effect for headless / API-driven support sessions that never touch the Service Console UI. Recording and transcription are two separate preferences — this skill can set either or both to the requested state (leaving the other untouched) and returns a structured JSON confirmation.

Scope

  • In scope: setting enableCallRecording and/or enableCallTranscription to a requested state — true (enable) or false (disable) — on the ThunderbirdVoiceSettings metadata via an sf CLI Metadata API deploy (the generic Settings container, member ThunderbirdVoice); returning a JSON confirmation of the resulting configuration. A preference the user does not name is left at its current value.
  • Out of scope: changing any other ThunderbirdVoiceSettings boolean (e.g. call-recording redaction, SIP recording) — siblings are read only to be preserved, never set or reported; redacting/scrubbing PII from existing recordings or transcripts; transcribing a supplied audio file; provisioning the Native Voice / Thunderbird channel itself; authoring Flow, Apex, or permission sets. These are outside this skill's scope — handle them separately.

Required Inputs

Gather or infer before proceeding:

  • Target org — an org alias or username the sf CLI is authenticated to. The deploy uses this existing sf login; no session id or access token is requested. Default: the org's default target. Confirm connectivity with sf org display -o <alias>.
  • Which preferences — recording, transcription, or both. Default: both, since headless capture typically needs recording and transcription. If the user named just one, target only that one and leave the other at its current value.
  • Desired state — enable (on/true) or disable (off/false) for each named preference. Default: enable, unless the user asks to turn something off. Honor a disable request literally — never re-enable a preference the user asked to turn off.

Workflow

All steps are sequential. Do not skip or reorder. If blocked, stop and ask for the missing org context.

  1. Confirm the two preferences are modeled separately. Recording (enableCallRecording) and transcription (enableCallTranscription) are distinct booleans on the same metadata type — never collapse them into one combined flag. The final confirmation must report each independently.

  2. Run the configure script. Run scripts/enable-recording-transcription.sh --target-org <alias> with the desired state per preference: --recording on|off and/or --transcription on|off. With no preference flags it defaults to turning both on. Examples: turn both off → --recording off --transcription off; enable recording only → --recording on (transcription left as-is); disable transcription only → --transcription off. The script retrieves ThunderbirdVoiceSettings (via the Settings container), checks the org-perm gate, sets only the named flag(s) to the requested value while preserving every other field, validates with a dry-run deploy, deploys, and verifies by round-trip. Use --dry-run to retrieve + validate without persisting. Run scripts/enable-recording-transcription.sh --help for all options.

  3. For the Metadata API contract, read references/thunderbird-voice-settings.md — it documents the type, the two booleans, the Settings-container manifest, the v68.0+ version floor, and the retrieve-first gate check. The manifest template the script generates is assets/package.xml.

    This uses the sf CLI Metadata API deploy, not a raw SOAP call. The member is the mdApiType without the Settings suffix (ThunderbirdVoice), and the manifest version MUST be >= 68.0 — the fields are not exposed at any lower version.

  4. Change only the named target field(s), to the requested state. The deployed settings file sets exactly the preference(s) the user named — enableCallRecording and/or enableCallTranscription — to the requested value (true to enable, false to disable); every other ThunderbirdVoiceSettings boolean, INCLUDING a target preference the user did not name, keeps its retrieved value. Do not add or flip other booleans, and never coerce a disable request back to true — they are out of this skill's scope or contrary to the request.

  5. Return the confirmation JSON. Emit a single JSON object matching assets/confirmation-output.json: the metadata type and fullName, that it was applied via a headless/API deploy, and — for each of the two preferences separately — its field name and its resulting enabled state (true/false, as it now stands after the deploy, whether it was changed or left as-is), plus an overall status (ENABLED, DISABLED, or CONFIGURED). It also includes a preserved array echoing every sibling boolean (e.g. enableCallRecRedaction, enableSipRecording) with the value it was retrieved with — this attests the siblings were carried through unchanged, which compliance callers need as explicit "nothing else moved" assurance. Reporting a sibling's value is NOT changing it. On a successful run the script prints this object on stdout; surface it verbatim as the deliverable — do not strip the preserved block.


Show full SKILL.md (597 more words)Show less

Rules / Constraints

ConstraintRationale
Model recording and transcription as two separate preferencesThey are distinct booleans (enableCallRecording, enableCallTranscription); collapsing them loses the ability to enable one without the other and fails the output contract.
Deploy through the generic Settings container with member ThunderbirdVoiceThunderbirdVoiceSettings is not a retrievable top-level type name; the Settings container (member = mdApiType minus the Settings suffix) is the sf CLI path and uses the org's sf login — no session id.
Manifest version must be >= 68.0ThunderbirdVoiceSettings fields are only exposed at API v68.0+; below that the retrieve returns the type empty/absent.
Retrieve before deploy; preserve all sibling fieldsThe deploy is a full-file replace — starting from the retrieved file keeps other prefs intact and lets the gate be checked.
Report the preserved siblings in a preserved block, but never change themCompliance callers need explicit "nothing else moved" assurance; the confirmation echoes each sibling's retrieved value unchanged. Echoing a value is not setting it — the deployed file changes only the named target field(s).
Honor the requested state literally — enable means true, disable means falseA disable request that silently re-enables the preference (or reports success while leaving it on) is a correctness failure; set exactly what was asked and report the value the org actually returns.
Verify by round-trip before reporting the statusA "Succeeded" deploy is not proof; only report the resulting state after a re-retrieve returns each named preference at its requested value.
Output must be a single valid JSON objectThe confirmation is consumed programmatically by headless callers; prose-only answers are not usable.
Do not include a session id, access token, phone number, recording URL, or transcript content in the outputThese are secrets / PII; the confirmation reports configuration state only.

Gotchas

IssueResolution
Property 'enableCallRecording' not valid in version <N> / Settings type 'ThunderbirdVoice' is unknownAPI version too low. The fields are only exposed at v68.0+. Raise --api-version to 68.0 or higher — this is NOT a feature gate.
Retrieve returns an empty <ThunderbirdVoiceSettings/> (no fields)Org-perm gate orgHasNativeVoiceAllowed is off — Native Voice is not provisioned. Enable via provisioning/Blacktab; metadata cannot flip an unprovisioned feature.
Trying to retrieve ThunderbirdVoiceSettings as the type nameUse the Settings container with member ThunderbirdVoice (mdApiType minus the Settings suffix); the full type name is not a retrievable member.
Collapsing both prefs into one toggle (e.g. recordingAndTranscription: true)Keep two distinct entries in both the deployed file and the confirmation JSON.
Deploying a partial settings fileStart from the retrieved file so sibling prefs keep their values; a partial file can reset them.
Missing jq / sfThe script depends on them; install or run in an environment that has them (declared in metadata.cliTools).

Output Expectations

Deliverables:

  • A single JSON confirmation object on stdout, shaped per assets/confirmation-output.json — the metadata target, the headless/API deploy path, each of the two preferences reported separately with its enabled state, a preserved array echoing every sibling boolean (unchanged) so callers can confirm nothing else moved, and an overall status.

No files are written to the org's source tree — the script works in a temporary SFDX project and reports the result.


Reference File Index

FileWhen to read
scripts/enable-recording-transcription.shStep 2 — run to retrieve → set named field(s) → validate → deploy → verify (supports --recording on|off, --transcription on|off, --dry-run, --api-version, --help; defaults to both on).
references/thunderbird-voice-settings.mdStep 3 — for the metadata type, the two booleans, the Settings manifest, the v68.0+ floor, and the gate check.
assets/package.xmlStep 3 — the Metadata API manifest template the script generates; read to understand or hand-build the retrieve/deploy.
assets/confirmation-output.jsonStep 5 — the exact shape of the JSON confirmation to return.

© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references, assets) in skills/service-native-voice-recording-transcription-configure of forcedotcom/sf-skills.

  • SKILL.md
  • assets/confirmation-output.json
  • assets/package.xml
  • references/thunderbird-voice-settings.md
  • scripts/enable-recording-transcription.sh

Open the folder on GitHubat commit 4bbae5c

Compare with similar skills

Service Native Voice Recording Transcription Configure next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Service Native Voice Recording Transcription Configure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Service Native Voice Recording Transcription Configure this skillforcedotcom/sf-skills1.1k—~2.9kAutomated safety check: PassApache-2.0
HyperFrames Media Useheygen-com/hyperframes60k—~2.4kAutomated safety check: PassApache-2.0
Native Subtitle Quote Imagechengyi-ai/native-subtitle-quote-image2.6k—~2.4kAutomated safety check: PassMIT
Edu Chem Videowy51ai/edulab1.4k—~2.1kAutomated safety check: NotesApache-2.0
Transcription Memory ReconstructionNxcoreAI/EverRoom3k—~714Automated safety check: PassCustom licence
Edu Math Videowy51ai/edulab1.4k—~2.5kAutomated safety check: NotesApache-2.0

Similar skills

  • HyperFrames Media Use

    heygen-com/hyperframes

    Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.

    60k GitHub stars~2.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Native Subtitle Quote Image

    chengyi-ai/native-subtitle-quote-image

    将本地视频或用户有权处理的在线视频,经过来源获取、文字稿定位、选题选句、精确取帧、紧凑裁切、拼图和逐张质检,制作成 3:4 或保留画面原比例的视频字幕长图。支持两种明确分开的输出:保留画面内已烧录字幕的原生字幕模式,以及把已审核的时间点与台词绘制到真实视频帧上的脚本字幕模式。用户要求原生字幕截图、字幕帧拼图、YouTube…

    2.6k GitHub stars~2.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Edu Chem Video

    wy51ai/edulab

    A skill your agent uses when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a chemistry problem (化学题: 氧化还原配平 双线桥 电子守恒, 物质的量计算, 化学平衡 三段式 平衡常数 转化率 反应速率, 离子反应, 电化学, 溶液 滴定…

    1.4k GitHub stars~2.1k tokensUpdated yesterday
    Media & CreativeAuto-check: notes
  • Reconstruct a complete, searchable memory from an untrusted meeting or conversation transcript.

    3k GitHub stars~714 tokensUpdated 2 days ago
    Media & CreativeAuto-check passed
  • Edu Math Video

    wy51ai/edulab

    A skill your agent uses when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot…

    1.4k GitHub stars~2.5k tokensUpdated yesterday
    Media & CreativeAuto-check: notes
  • Transcribe

    JetBrains/skills

    Official

    Transcribe audio files to text with optional diarization and known-speaker hints.

    366 GitHub starsUsed in 4 repos~776 tokens
    Media & CreativeAuto-check passed

More from forcedotcom/sf-skills

All 252 skills in this repo
  • Agentforce Architecture Analyze

    forcedotcom/sf-skills

    Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.

    1.1k GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Agentforce D360 Analyze

    forcedotcom/sf-skills

    Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.

    1.1k GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

    1.1k GitHub stars~5.3k tokensUpdated yesterday
    Auto-check: notes
  • Apply a Salesforce sandbox post-copy automation JSON config against a target org.

    1.1k GitHub stars~5.4k tokensUpdated yesterday
    Auto-check: notes
  • Design Systems Slds Apply

    forcedotcom/sf-skills

    Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.

    1.1k GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Experience Lwc Generate

    forcedotcom/sf-skills

    Lightning Web Components with PICKLES methodology and 165-point scoring.

    1.1k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed

Questions about Service Native Voice Recording Transcription Configure

What does Service Native Voice Recording Transcription Configure do?

Configure (enable OR disable) call recording and call transcription for Native Voice (Thunderbird Voice) programmatically via the Metadata API, for headless / API-driven support where no human uses…. Service Native Voice Recording Transcription Configure is an agent skill from forcedotcom/sf-skills. Configure (enable OR disable) call recording and call transcription for Native Voice (Thunderbird Voice) programmatically via the Metadata API, for headless / API-driven support where no human uses the Service Console UI.

When should I use Service Native Voice Recording Transcription Configure?

Service Native Voice Recording Transcription Configure fits situations like: A user asks to turn on/off; configure Native Voice recording and/or transcription for headless; automated voice calls; : users mention Thunderbird Voice.

How do I install Service Native Voice Recording Transcription Configure in Claude Code?

Run `npx skills add forcedotcom/sf-skills --skill service-native-voice-recording-transcription-configure -a claude-code`. Or copy the skill folder (skills/service-native-voice-recording-transcription-configure in forcedotcom/sf-skills) into .claude/skills/service-native-voice-recording-transcription-configure in your project. Claude Code loads it when a task matches its description.

How do I install Service Native Voice Recording Transcription Configure in Codex?

Run `npx skills add forcedotcom/sf-skills --skill service-native-voice-recording-transcription-configure -a codex`. Or copy the skill folder (skills/service-native-voice-recording-transcription-configure in forcedotcom/sf-skills) into .agents/skills/service-native-voice-recording-transcription-configure in your project. Codex loads it when a task matches its description.

Can I use Service Native Voice Recording Transcription Configure in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill service-native-voice-recording-transcription-configure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/service-native-voice-recording-transcription-configure, .gemini/skills/service-native-voice-recording-transcription-configure, .github/skills/service-native-voice-recording-transcription-configure and .opencode/skills/service-native-voice-recording-transcription-configure in your project.

What does Service Native Voice Recording Transcription Configure need to run?

Going by SKILL.md and its folder, Service Native Voice Recording Transcription Configure needs a shell for the scripts in its folder and the command-line tools its instructions call (sf). Our summary lists: A Bash shell.

Does Service Native Voice Recording Transcription Configure access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Service Native Voice Recording Transcription Configure safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Service Native Voice Recording Transcription Configure use?

Service Native Voice Recording Transcription Configure is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Service Native Voice Recording Transcription Configure use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Service Native Voice Recording Transcription Configure?

Skills that share tags, products or a category with Service Native Voice Recording Transcription Configure: HyperFrames Media Use (heygen-com/hyperframes, 60k stars), Native Subtitle Quote Image (chengyi-ai/native-subtitle-quote-image, 2.6k stars), Edu Chem Video (wy51ai/edulab, 1.4k stars) and Transcription Memory Reconstruction (NxcoreAI/EverRoom, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Service Native Voice Recording Transcription Configure?

forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,067 GitHub stars. The repository holds 252 skills in this directory. The repository was last updated on October 9, 2026.

Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.