Back to Alchemy
Alchemy RecipeIntermediateautomation

Insurance claim assessment report generation from supporting documents

24 March 2026

Introduction

Insurance claim assessment is one of those processes that feels stuck in the past. A claimant submits documents, an assessor reads through PDFs and supporting files, extracts key information, summarises findings, and writes a report. It's repetitive, time-consuming, and prone to human error when assessors are working through their tenth claim of the day.

What if you could automate the entire assessment phase? Feed in the claim documents, and out comes a structured assessment report without anyone touching the files in between. This is where combining three focused AI tools creates something genuinely useful: caseguard-studio-ai handles document verification and risk assessment, chat-with-pdf-by-copilotus extracts information from PDFs through conversation, and resoomer-ai creates summaries from the extracted content. Wire them together properly, and you have a system that processes claims faster and more consistently than manual work.

The workflow we're building here is intermediate difficulty because it requires orchestration across multiple APIs and some thought about error handling. But it's absolutely doable without writing custom backend code, and it will cut assessment time from hours to minutes per claim.

The Automated Workflow

We'll build this using n8n as the orchestration engine, though Zapier and Make (Integromat) would work similarly. n8n gives you better control over complex workflows and handles conditional logic more clearly than Zapier for this use case.

Overall Architecture

Here's how data flows:

  1. A claim document lands in a folder or email inbox.
  2. n8n detects the arrival and downloads the file.
  3. caseguard-studio-ai scans the document for authenticity and extracts structured claim data.
  4. chat-with-pdf-by-copilotus processes the same PDF conversationally to pull out nuanced details that structured extraction might miss.
  5. resoomer-ai summarises the extracted information into a concise assessment summary.
  6. n8n formats all of this into a structured report and saves it to your storage system or sends it to the claims team.

The key is that each tool handles what it does best: verification, extraction, and summarisation. No manual handoff between steps.

Setting Up the n8n Workflow

Start by creating a new workflow in n8n. You'll need to add nodes in this sequence: Trigger → Document Upload → CaseGuard Studio → Chat with PDF → Resoomer → Report Generation → Storage/Output.

Trigger Configuration

Use the Google Drive Watch trigger or Webhook trigger to detect when a new claim document arrives. If your claims team uploads files to Google Drive, this is straightforward:


Trigger: Google Drive Watch
Watched Folder: Claims/Pending Assessment
File Types: .pdf, .docx, .jpg, .png
Poll Interval: Every 5 minutes

Alternatively, set up a Webhook if claims arrive via email or a custom portal:


POST /webhook/insurance-claims
Content-Type: application/json

{
  "claim_id": "CLM-2024-001234",
  "document_url": "https://storage.example.com/claim-doc.pdf",
  "claimant_name": "John Smith",
  "claim_type": "motor_accident"
}

CaseGuard Studio API Integration

CaseGuard Studio verifies document authenticity and extracts structured data. You'll need your API key from the CaseGuard dashboard.

Add an HTTP Request node to n8n with these settings:


Method: POST
URL: https://api.caseguard.ai/v2/documents/analyse

Headers:
  Authorization: Bearer YOUR_CASEGUARD_API_KEY
  Content-Type: application/json

Body:
{
  "document_url": "{{ $node.GoogleDrive.data.webViewLink }}",
  "document_type": "insurance_claim",
  "verify_authenticity": true,
  "extract_fields": [
    "claimant_details",
    "incident_date",
    "incident_location",
    "injury_description",
    "witness_statements",
    "damage_assessment"
  ]
}

CaseGuard returns a JSON response with authenticity score and extracted fields. Store this in n8n's working memory:

{
  "authenticity_score": 0.94,
  "is_authentic": true,
  "extracted_data": {
    "claimant_name": "John Smith",
    "incident_date": "2024-01-15",
    "incident_location": "M25 Junction 10",
    "injury_type": "whiplash",
    "vehicle_damage_description": "Front left panel, bumper damage"
  },
  "risk_flags": []
}

Chat with PDF Extraction

Now use chat-with-pdf-by-copilotus to ask conversational questions about the same document. This captures context that structured extraction misses, such as narrative details, contradictions, or unusual claims.

Add another HTTP Request node:


Method: POST
URL: https://api.copilotus.ai/v1/chat/pdf

Headers:
  Authorization: Bearer YOUR_COPILOTUS_API_KEY
  Content-Type: application/json

Body:
{
  "document_url": "{{ $node.GoogleDrive.data.webViewLink }}",
  "session_id": "{{ $node.CaseGuard.data.session_id }}",
  "questions": [
    "What is the timeline of events described in this claim?",
    "Are there any inconsistencies or red flags mentioned?",
    "What medical treatment was received and when?",
    "Who are the key witnesses and what did they observe?",
    "What is the total financial loss claimed?"
  ]
}

This returns conversational responses that add context:

{
  "session_id": "sess_abc123",
  "responses": [
    {
      "question": "What is the timeline of events described in this claim?",
      "answer": "The incident occurred on 15 January 2024 at approximately 14:30. The claimant was struck from behind whilst stationary in traffic. Emergency services attended at 14:47. The claimant attended A&E at 15:20 and was discharged with minor injuries."
    },
    {
      "question": "Are there any inconsistencies or red flags mentioned?",
      "answer": "No significant inconsistencies detected. The claimant's account matches the witness statement provided by the other driver."
    }
  ]
}

Resoomer Summarisation

Next, use resoomer-ai to create a concise summary of all extracted information. This becomes the core of your assessment report.


Method: POST
URL: https://api.resoomer.com/v1/summarize

Headers:
  Authorization: Bearer YOUR_RESOOMER_API_KEY
  Content-Type: application/json

Body:
{
  "text": "Claim Reference: {{ $node.CaseGuard.data.extracted_data.claim_id }}\n\nExtracted Details:\n{{ JSON.stringify($node.CaseGuard.data.extracted_data) }}\n\nContextual Information:\n{{ $node.ChatWithPDF.data.responses.map(r => r.answer).join('\n') }}",
  "summary_length": "medium",
  "language": "en",
  "output_format": "bullet_points"
}

Resoomer returns a structured summary:

{
  "summary": [
    "Motor accident claim submitted 20 January 2024",
    "Incident: Rear-end collision on M25 Junction 10, 15 January 2024 at 14:30",
    "Claimant: John Smith, driver of silver Honda Civic",
    "Injuries: Whiplash, treated at A&E same day",
    "Vehicle damage: Front left panel and bumper, estimated repair cost £2,100",
    "Witness: Corroborating statement from third-party driver",
    "Authenticity: Verified (94% confidence score)",
    "Red flags: None identified",
    "Recommended action: Approve for assessment"
  ],
  "original_length": 487,
  "summary_length": 147,
  "compression_ratio": 0.30
}

Report Generation and Storage

Finally, format everything into a professional assessment report and save it. Use a "Format" node to build the report structure, then save to Google Drive or your claims management system.


Report Template:

INSURANCE CLAIM ASSESSMENT REPORT
Generated: {{ now() }}
Claim Reference: {{ $node.CaseGuard.data.extracted_data.claim_id }}
Assessed by: Automated System

CLAIM SUMMARY
{{ $node.Resoomer.data.summary.join('\n') }}

DETAILED FINDINGS
Authenticity Score: {{ $node.CaseGuard.data.authenticity_score * 100 }}%
Risk Assessment: {{ $node.CaseGuard.data.risk_flags.length === 0 ? 'CLEAR' : 'FLAGGED' }}

CLAIMANT INFORMATION
Name: {{ $node.CaseGuard.data.extracted_data.claimant_name }}
Contact: {{ $node.CaseGuard.data.extracted_data.contact_details }}

INCIDENT DETAILS
Date: {{ $node.CaseGuard.data.extracted_data.incident_date }}
Location: {{ $node.CaseGuard.data.extracted_data.incident_location }}
Description: {{ $node.ChatWithPDF.data.responses[0].answer }}

FINANCIAL IMPACT
Estimated Damage: £{{ $node.CaseGuard.data.extracted_data.damage_amount }}
Medical Costs: £{{ $node.CaseGuard.data.extracted_data.medical_costs }}
Total Claim: £{{ parseInt($node.CaseGuard.data.extracted_data.damage_amount) + parseInt($node.CaseGuard.data.extracted_data.medical_costs) }}

WITNESS CORROBORATION
{{ $node.ChatWithPDF.data.responses[3].answer }}

RECOMMENDATION
{{ $node.Resoomer.data.summary[7] }}

Save this report using a Google Drive node or HTTP POST to your claims management API:


Method: POST
URL: https://claims-api.example.com/v1/assessments

Headers:
  Authorization: Bearer YOUR_CLAIMS_API_KEY
  Content-Type: application/json

Body:
{
  "claim_id": "{{ $node.CaseGuard.data.extracted_data.claim_id }}",
  "assessment_report": "{{ $node.FormatReport.data.report }}",
  "authenticity_score": {{ $node.CaseGuard.data.authenticity_score }},
  "summary_points": {{ JSON.stringify($node.Resoomer.data.summary) }},
  "recommendation": "{{ $node.Resoomer.data.summary[7] }}",
  "generated_at": "{{ now() }}"
}

Error Handling and Retry Logic

Add error handling to catch failed document uploads or API issues. In n8n, use "Error Trigger" nodes on each API call:


Node: CaseGuard Studio (with error handler)
On Error:
  - Log error message
  - If status 429 (rate limit): Wait 60 seconds, retry
  - If status 400 (invalid document): Send alert to claims team
  - If status 5xx: Retry up to 3 times with exponential backoff
  - Save error report to database for later review

For example, configure a retry handler:

{
  "maxRetries": 3,
  "retryDelay": 5000,
  "backoffMultiplier": 2,
  "retryOn": [408, 429, 500, 502, 503, 504]
}

The Manual Alternative

If you prefer to keep human review in the loop at each stage, you can insert approval nodes into the workflow. After the assessment report is generated, send it to a claims assessor via email or Slack with approval buttons:


Node: Send Slack Message
Channel: #claims-assessment
Message:
"Assessment Report Ready for Review

Claim ID: {{ $node.CaseGuard.data.extracted_data.claim_id }}
Authenticity Score: {{ $node.CaseGuard.data.authenticity_score * 100 }}%

Approve report? [Approve] [Request Changes] [Reject]"

Then wait for response before proceeding to storage.

This way, the tedious extraction and summarisation is automated, but final decisions remain with qualified staff. It's a middle ground between full automation and completely manual work.

Pro Tips

1. Handle Rate Limiting Gracefully

All three APIs have rate limits. CaseGuard allows 100 requests per minute on most plans; chat-with-pdf-by-copilotus allows 50 per minute; Resoomer allows 200 per day on lower tiers.

If you're processing many claims, add request queuing to n8n. Use the "Pause" node to introduce delays between API calls, or batch requests if the APIs support it:


If request count this minute > threshold:
  Wait until next minute window
  Resume processing

For high-volume scenarios, upgrade to API plans with higher limits or process claims in smaller batches during off-peak hours.

2. Validate Document Quality Before Processing

Before sending documents to the extraction APIs, validate that they're readable. CaseGuard includes a pre-check endpoint:


POST /v2/documents/validate
{
  "document_url": "{{ file_url }}",
  "check_readability": true,
  "check_language": "en"
}

If readability is below 70%, alert the claims team that the document needs to be re-scanned or re-submitted.

3. Store Intermediate Results

Don't rely on real-time API calls every time someone views the report. After the workflow completes, store the extracted data, summaries, and assessment score in your claims database. This gives you:

  • Faster report retrieval later
  • Audit trail of what was extracted and why
  • Ability to reprocess if APIs are temporarily unavailable
  • Data for training better extraction models over time

Use a database node (PostgreSQL, MongoDB, or even Google Sheets) to log results:

{
  "claim_id": "CLM-2024-001234",
  "raw_caseguard_response": { /* full response */ },
  "raw_copilotus_response": { /* full response */ },
  "raw_resoomer_response": { /* full response */ },
  "final_assessment": "{{ report }}",
  "processed_at": "2024-01-20T14:32:10Z",
  "processing_time_seconds": 47,
  "status": "complete"
}

4. Customise Questions Based on Claim Type

Don't ask the same questions for every claim. Modify the questions sent to chat-with-pdf-by-copilotus based on the claim type (motor, home, public liability, etc.):


If claim_type = "motor":
  Questions: [timeline, witness, injuries, vehicle damage, third-party details]

If claim_type = "home":
  Questions: [incident description, damage photos, repair quotes, insurance coverage confirmation]

If claim_type = "public_liability":
  Questions: [location details, who was responsible, injuries sustained, company contact]

This makes summaries more relevant and reduces time assessors spend filtering irrelevant information.

5. Monitor Cost in Real Time

Track API usage to avoid surprise bills. Most of these APIs charge per request or per page. At scale:

  • CaseGuard: ~£0.15 per document
  • Chat with PDF: ~£0.10 per document
  • Resoomer: ~£0.05 per summary

For 500 claims per month, that's roughly £150. But if your workflow processes each document twice (once for CaseGuard, once for chat-with-pdf), costs double. Be intentional about what data flows where.

Set up alerts in n8n to warn when monthly API costs exceed a threshold, and review low-value claims to determine whether full automation makes sense for them.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
n8n (Self-hosted)Professional Plan or Cloud£0–£25Self-hosted is free; Cloud Pro is £25/month. Includes unlimited workflows.
CaseGuard Studio AIStandard£200–£500Per-document pricing: £0.15 per verification + extraction. Assumes 500 documents/month.
Chat with PDF by CopilotusBusiness£100–£300Per-document or monthly seat; conversation credits. Assumes 500 documents/month.
Resoomer AIProfessional£30–£80Monthly subscription or pay-per-summary. Professional tier allows 1000 summaries/month.
Google Drive or cloud storageStandard£10–£20For storing input files and report outputs. Assumes under 100GB.
Total Monthly£340–£925For 500 claims/month with full automation and storage.

All costs assume moderate volume. High-volume operations (1000+ claims/month) should negotiate enterprise pricing directly with vendors.