insurance-claims-orchestrator
SkillAI & modelsOrchestrate a two-call consent-first insurance claims intake sequence with CALL-E. Call 1 collects a structured loss report from the policyholder. Call 2 verifies coverage using Call 1 results. Ambiguous outcomes route to human review. Introduces the first state-passing multi-call pattern in the repo.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the insurance-claims-orchestrator skill
What this skill tells your AI
The instructions your AI receives, as published by calle-ai/awesome-phone-call-agents in skills/insurance-claims-orchestrator/SKILL.md and read by ahel’s review.
Use this skill when an agent needs to initiate an insurance claim intake on behalf of a policyholder using two sequential CALL-E calls, where the structured result of Call 1 directly gates and informs Call 2.
This skill does not approve or deny claims, quote settlement amounts, or make commitments on behalf of the insurer. It gathers structured evidence and routes to a human adjuster.
When To Use
- Initiate an insurance claim on behalf of a policyholder who has consented to automated contact
- Run a structured two-call sequence where results of Call 1 gate Call 2
- Return machine-readable claim intake data to a downstream adjuster or CRM system
- Demonstrate the state-passing multi-call pattern for other builders to copy
When Not To Use
- Do not use to approve or deny claims
- Do not use to collect payment, SSN, or banking information
- Do not use when the policyholder has not explicitly consented to automated contact
- Do not use outside 8:00 AM to 9:00 PM recipient local time
- Do not use for collections, marketing, or unsolicited outreach
Required Inputs
phone: E.164 phone number of the policyholder, explicitly authorizedinsurer_name: display name disclosed on the callconsent: must betrue
Optional (live mode only):
CALLE_API_KEY: environment variable, required only for--liveexecution
Calls
Call 1 — Loss Report
Contacts the policyholder to collect:
- Incident description (claimant's own words)
- Incident date (ISO 8601)
- Estimated damage in dollars (or
nullif declined) - Policy number confirmation
Exit gates — Call 2 is blocked if:
outcomeis anything other than"completed"policy_number_confirmedisnull- Both
incident_descriptionANDincident_datearenull
Any blocked gate routes to human review, not Call 2.
Call 2 — Coverage Verification
Uses Call 1 results to confirm:
- Policy number (read back by claimant)
- Policy active status
- Coverage type applicability
- Prior claims in the last 12 months
- Adjuster follow-up timeline
How to Run
Dry-run (no calls, no API key needed):
cd apps/typescript/insurance-claims-orchestrator
npm install
npm run dry-run
Validate result fixtures against schema:
npm run validate-schema
Live (requires CALLE_API_KEY):
export CALLE_API_KEY=your_key_here
npx tsx src/index.ts --phone +1XXXXXXXXXX --live
Result Schemas
Both calls return structured JSON validated against references/schema.json.
Call 1 — LossReportResult:
| Field | Type | Notes |
|---|---|---|
outcome | enum | completed / voicemail / no_answer / refused / unclear |
incident_description | string or null | Claimant's own words |
incident_date | string or null | ISO 8601 or null |
estimated_damage | number or null | Dollar value or null |
policy_number_confirmed | string or null | As spoken by claimant |
Call 2 — CoverageVerifyResult:
| Field | Type | Notes |
|---|---|---|
outcome | enum | completed / voicemail / no_answer / refused / unclear |
policy_active | boolean or null | Null if not established |
coverage_verified | enum | yes / no / unknown — never guessed |
prior_claims_12mo | boolean or null | Null if declined |
adjuster_notified | boolean | Whether adjuster follow-up was communicated |
claimant_questions | string or null | Verbatim unanswered questions |
Safety Contract
See references/safety.md. Key rules:
- AI disclosure is mandatory at the start of both calls
- SSN, credit card, bank account, and password fields are never requested
- Coverage decisions are never made or implied on the call
- Ambiguous outcomes route to human review — never auto-retry unclear results
- Phone numbers masked in all logs: first 4 chars + asterisks
- Dry-run is the default —
--liveflag required for real calls
Idempotency
Each call execution is keyed by sha256(phone + step_id + incident_date).
Re-running with the same inputs within 24 hours is a no-op, not a second call.
Files
skills/insurance-claims-orchestrator/
├── SKILL.md <- This file
├── references/
│ ├── safety.md <- Safety contract and fail-closed dispositions
│ ├── schema.json <- JSON Schema for both result shapes
│ └── two-call-pattern.md <- Pattern guide for other builders
├── scripts/
│ ├── dry-run.ts <- Fixture-based demo (no calls placed)
│ ├── validate-schema.ts <- Validates result JSON against schema
│ └── fixtures/
│ ├── loss-report-result.json
│ └── coverage-verify-result.json
└── assets/
└── sequence-diagram.md <- Mermaid call flow diagram
Signals
- GitHub stars
- 104
- Forks
- 527
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packagesK6info
bundled executables the agent is told to run
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
insurance-claims-orchestrator- Source
- github.com/calle-ai/awesome-phone-call-agents