본문으로 건너뛰기
cccskills
무료GitHub에 공개

create-structured-output

Design, create, inspect, update, attach, detach, preview, execute, and verify reusable Vapi Structured Outputs through public API or Server SDK workflows. Use for post-call extraction, typed call artifacts, AI-versus-regex extraction, JSON Schema design, backfilling existing calls, or retrieving structured results programmatically.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md9.9 KB
  • references/api-examples.md8.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Vapi Structured Output Creation

Build the smallest reusable post-call extraction that represents the user's actual downstream contract. Keep definition creation, assistant attachment, execution, and result retrieval separate: success at one stage does not prove the next stage occurred.

Source and Safety Rules

  • Use the configured Vapi documentation MCP when available. Otherwise use current public Vapi API documentation and API Examples. Revalidate request fields and SDK methods before final implementation.
  • Use a private Vapi API key only on a trusted server. Read it from VAPI_API_KEY; never print, request in chat, or embed it in source, client-side code, or examples.
  • Never invent resource IDs, call IDs, extraction fields, enum values, data-retention requirements, or customer data.
  • Do not enable compliancePlan.forceStoreOnHipaaEnabled unless the user explicitly requests it and confirms that the output cannot contain PHI or other sensitive data.
  • Treat call transcripts, messages, tool results, and extracted values as sensitive customer data. Minimize what is logged or reproduced.

Procedure

  1. Choose the output mode.

    • For a schema, payload, review, or implementation example, return an artifact without calling Vapi. State that nothing was saved, attached, or executed.
    • For a reusable saved definition, use POST /structured-output only when the user asks to create or save it and credentials are available.
    • For a one-call experiment that does not need a saved definition, pass a transient structuredOutput to POST /structured-output/run with previewEnabled: true.
    • Treat attachment, detachment, and execution against existing calls as separate requested actions. Do not infer them from creation alone.
  2. Define the extraction contract.

    • Identify the downstream consumer, required fields, optional fields, allowed categories, formats, and behavior when evidence is absent or ambiguous.
    • Ask only for missing facts that materially change the schema. State safe assumptions for the rest.
    • Split unrelated outputs when they have different consumers, retention policies, or iteration cycles. Keep one output when the fields form one stable business record.
  3. Choose AI or regex.

    • Use type: "ai" for meaning, classification, summarization, sentiment, outcome detection, normalization, or facts expressed in varied language.
    • Use type: "regex" only for deterministic transcript matching with a stable pattern. Use RE2-compatible syntax and choose a top-level schema type that matches the documented regex result: boolean, string, number/integer, or array.
    • Do not use regex to infer meaning. Do not use AI when a literal, stable pattern is the entire requirement.
  4. Design the smallest useful JSON Schema.

    • Include only fields the caller can provide or the call evidence can support.
    • Add concise descriptions that distinguish semantically similar fields.
    • Use enum for a closed category set, format or pattern for externally validated strings, and numeric bounds when the business contract defines them.
    • Mark a field required only when every valid call should produce it. Make conditionally available values optional instead of forcing guesses.
    • Prefer a primitive schema for a single value and an object only for a cohesive record. Avoid deep nesting unless the downstream contract needs it.
    • Validate the schema with a standard JSON Schema validator before sending it.
  5. Create, inspect, or update the definition.

    • Keep saved names between 1 and 40 characters.
    • On create, send name and schema; add type, description, regex, model, or compliancePlan only when intentional.
    • On inspect, resolve the exact resource with list filters or a verified ID, then use GET /structured-output/{id}. Do not guess from a partial name.
    • On update, read the current definition first and send only fields that should change. Use schemaOverride=true only when intentionally changing the schema's top-level type; otherwise do not use it to bypass schema safety.
    • Re-fetch after mutation and compare the requested fields. A successful HTTP status without the expected returned state is not verified success.
  6. Attach or detach safely.

    • Prefer the saved Structured Output's documented assistantIds relationship for attachment. Read its current assistantIds, add or remove exactly the resolved assistant ID, and preserve every unrelated ID.
    • Patch only assistantIds on the Structured Output for this operation. Re-fetch the Structured Output and assistant; verify the relationship and the assistant's artifactPlan.structuredOutputIds when returned.
    • If the implementation instead patches the assistant, first read the assistant and send the complete existing artifactPlan with only structuredOutputIds changed. Preserve recording, logging, transcript, scorecard, storage, and other artifact settings.
    • Do not claim that creating a definition attached it. Do not claim that detaching deleted it or removed results already stored on past calls.
  7. Preview before broad execution.

    • Use POST /structured-output/run with one real call ID and previewEnabled: true. Supply either structuredOutputId or a transient structuredOutput, not both.
    • Confirm the selected call contains representative evidence and that the returned value satisfies the schema and business meaning.
    • State that preview does not update the call artifact.
    • If extraction is wrong, simplify the schema or improve descriptions before changing models or custom extraction prompts.
  8. Execute or backfill only when requested.

    • Use previewEnabled: false or omit it to update call artifacts. Pass no more than the currently documented maximum of 100 call IDs per request.
    • Before a multi-call run, state the exact output, call count, and that existing values for this output may be replaced while other structured-output values remain.
    • Use only call IDs supplied by the user or returned by a verified public API query. Report partial failures by call ID; do not imply an all-or-nothing transaction.
  9. Retrieve and verify results.

    • After a normal attached call finishes, allow for post-call processing before checking the call.
    • Retrieve each call with GET /call/{id} and read call.artifact.structuredOutputs[structuredOutputId].result.
    • Validate the result against the intended schema and inspect representative source evidence before calling it accurate. Schema validity proves shape, not factual correctness.
    • Report separately: definition saved, assistant linked, preview returned, call artifact updated, and result validated. Mention only stages actually verified.

Error Handling

  • On 400, inspect the response for schema, regex, model, relationship, or run constraints. Correct one unambiguous documented issue and retry once; never repeat an unchanged request.
  • On 401 or 403, stop and report authentication or permission failure.
  • On 404, report the missing Structured Output, assistant, or call and identify the exact unresolved ID.
  • On 409, re-read current state before deciding whether the intended relationship or update already exists.
  • On 429 or 5xx, preserve the request context, report the service condition, and do not claim success.
  • If a result is absent, distinguish processing delay, missing attachment, disabled artifact storage, insufficient call evidence, and extraction failure before recommending a change.

API Implementation Examples

Read API Examples when implementation code is needed. Use the official TypeScript or Python Server SDK only after confirming the generated method in its current official reference; use direct REST when SDK syntax is unavailable or unstable.

Output Contract

Return only the sections relevant to the request:

  • Mode: artifact-only, saved definition, relationship change, preview, or artifact-writing run
  • Assumptions or blocking questions
  • Final schema and Structured Output configuration
  • Created or updated resource ID and verified fields, when mutated
  • Attachment state and preserved relationships, when changed
  • Preview or execution result, affected call IDs, and whether artifacts changed
  • Retrieved result plus schema and evidence limitations
  • Remaining configuration or validation work

Public Sources

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Design, create, or validate saved and transient Vapi voice assistants. Use for new phone or web agents, production system prompts and first messages, saved-versus-transient architecture, model/voice/transcriber selection, multilingual compatibility, existing tool attachment, native call-control tools, assistant hooks, and Create Assistant API validation errors.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

VapiAI/skills672026년 10월 15일 업데이트

Create one-off outbound phone calls, web calls, scheduled calls, and simple batch calls using the Vapi API. Use when making or testing individual calls or initiating a bounded /call request programmatically. Use create-campaign for a persistent multi-contact Campaign with lifecycle, reporting, cancellation, duplication, or campaign webhooks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

VapiAI/skills672026년 10월 15일 업데이트

Create, schedule, duplicate, inspect, cancel, archive, and troubleshoot Vapi outbound Campaigns. Use for persistent multi-contact calling, CSV or API contact personalization, campaign concurrency, campaign webhooks, pre-dial eligibility, contact outcomes, or rerunning an audience. Do not use for a single call or a simple one-off /call batch.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

VapiAI/skills672026년 10월 15일 업데이트

Plan, provision, import, route, update, and verify Vapi phone numbers through the public API. Use for Vapi-hosted US PSTN numbers, explicitly requested SIP addresses, Twilio/Vonage/Telnyx or BYO carrier numbers, secure credential handling, assistant or squad routing, area-code requests, outbound limitations, and phone-provider troubleshooting.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

VapiAI/skills672026년 10월 15일 업데이트

Design, create, update, and verify Vapi Squads and documented handoff tools through the public API. Use for choosing a single assistant versus a multi-assistant Squad, persistent or transient members, entry-member ordering, specialization boundaries, context engineering, variable extraction, model-specific handoff patterns, assistant-version pins, and safe Squad updates.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

VapiAI/skills672026년 10월 15일 업데이트

Select, define, create, inspect, update, attach, detach, and verify reusable Vapi tools through the public API. Use for native call-control tools, supported provider integrations, API Request tools, custom function tools, MCP tools, tool messages, credentials, or configuration-preserving assistant attachment changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

VapiAI/skills672026년 10월 15일 업데이트

VapiAI의 스킬 모두 보기

이 스킬의 문제 신고