Skip to main content

Media Processing Node

Handle media in RCS workflows with AI-powered analysis

What Is the Media Processing Node?

The Media Processing Node is a specialized node type designed to handle inbound images, video, and files in RCS conversations. Unlike the AI Conversation Node which handles text-based dialogue, the Media Processing Node focuses on validating, analyzing, and extracting data from visual media.
The Media Processing Node separates media processing logic from conversation flow. This means you can build reusable media handling patterns that work across multiple workflows and clients.

Key Capabilities

  • Quality Gate: Automatically detect blur, poor lighting, bad framing, and obstructions using Claude Sonnet
  • Coverage Scoring: Track which required photos have been submitted against a predefined shot taxonomy
  • Dynamic Data Extraction: Extract structured data (VIN, license plates, text) using Google Vision OCR + Claude
  • Video Processing: Extract keyframes from video uploads and score them against your taxonomy
  • Decision Triggers: Route conversations based on media quality, coverage completion, and extraction results

Common Use Cases


How It Works

The Media Processing Node contains 7 configurable sections that process media in sequence:

Processing Flow

When a user sends media, the node:
  1. Routes the input based on type (image, video, file, or text)
  2. Validates quality and rejects unusable submissions with specific retry guidance
  3. Scores the photo against your taxonomy to track coverage progress
  4. Extracts any configured data fields (VIN, plate numbers, etc.)
  5. Evaluates decision triggers to determine next steps

Section 1: Input Type Handling

The entry point that routes incoming RCS messages to the appropriate processing pipeline based on media type.

How It Works

When a message arrives, the node inspects the content type and routes accordingly:
  • Images (JPG, PNG, HEIC, WebP) → Quality Gate
  • Videos (MP4, MOV) → Keyframe Extraction → Quality Gate
  • Files (PDF, documents) → Document Parsing
  • Text → AI Conversation Node (pass-through)
Unsupported types (audio, contacts, etc.) trigger a guidance message explaining accepted formats.

Configuration Options

Unsupported Type Message

Configure the message sent when users submit unsupported media types:
For workflows that only need photos, disable Video and File processing to simplify the user experience and reduce confusion.

Section 2: Quality Gate

Validates incoming media for blur, lighting, framing, and obstructions before proceeding. Rejects unusable submissions with specific guidance on how to improve.

How It Works

Each image is sent to Claude Sonnet with a quality assessment prompt. Claude returns:
  • Quality Score (0.0 - 1.0)
  • Detected Issues: blur, low light, too far away, obstructed view, glare, wrong subject
If the score falls below your threshold, the node sends a retry message with specific guidance based on detected issues. After max retries, it escalates or proceeds (configurable).

Configuration Options

Retry Message Template

The {quality_issues} and {guidance} variables are automatically populated based on detected issues.

Output Variables

Expected Impact: With proper threshold tuning, expect 85%+ first-submission pass rate. Start with 0.6 threshold and adjust based on your use case.

Section 3: Coverage Scoring

Scores incoming photos against a predefined shot taxonomy. Tracks which shots have been captured, identifies gaps, and requests specific missing angles.

How It Works

Each photo is sent to Claude Sonnet with your taxonomy definition. Claude determines which shot type(s) the photo satisfies based on the AI descriptions you’ve configured. The node maintains a running tally of captured vs. required shots and responds with:
  • Confirmation of what was captured
  • List of remaining required shots
  • Specific request for the next missing shot

Configuration Options

Missing Shot Message Template

Output Variables

Example Interaction

User sends: [front of car photo] Bot: “Got the front view! I still need: rear, left side, right side, corners, VIN, plate, odometer, and close-ups of the damage. Let’s get the rear of the vehicle next.”
Coverage scoring ensures complete documentation at first contact — while the user is engaged and at the vehicle/property. This eliminates costly follow-up requests.

Section 4: Dynamic Data Extraction

Extracts structured data from photos using OCR and AI. Fully dynamic — add any field with custom validation rules.

How It Works

When extraction is enabled, each photo is processed through:
  1. Google Cloud Vision for raw OCR text extraction
  2. Claude for structured extraction based on your field definitions
Each field you configure has:
  • Variable Name: Output variable (e.g., extracted_vin)
  • Data Type: String, number, date, or boolean
  • AI Description: Natural language description of what to look for
  • Validation Rule: VIN checksum, regex pattern, range, or format

Quick Presets

One-click add common extraction fields:
  • VIN Number
  • License Plate
  • Odometer Reading
  • Date of Birth
  • Address
  • Phone Number
  • Dollar Amount
  • Serial Number

Field Templates

Load preconfigured field sets for common documents:

Output Variables (Per Field)

For each extraction field (e.g., “vin”): Plus global variables:

Freeform AI Instructions

Add custom extraction guidance for edge cases:

Section 5: Video Processing

Automatically extracts keyframes from video uploads and scores them against the shot taxonomy.

How It Works

When a video is uploaded:
  1. FFmpeg extracts keyframes at configured intervals
  2. Each frame passes through the Quality Gate
  3. Usable frames are scored against your Taxonomy
  4. Gaps are identified
  5. User is prompted for specific missing shots as still photos
This allows users to submit a quick walkthrough video instead of individual photos, while still ensuring complete coverage.

Configuration Options

Output Variables

Example Flow

User sends: 60-second walkthrough video Processing:
  • 45 frames extracted at 1-second intervals
  • 38 frames passed quality gate
  • Matched: front, rear, left side, right side, 3 corners, 2 damage areas
  • Missing: rear-left corner, VIN, license plate, odometer
Bot: “Thanks for the video walkthrough! I captured 9 of the required shots. Could you please send individual photos of: rear-left corner, VIN plate, license plate, and odometer?”
Users prefer video — it’s faster and feels more natural. Video processing bridges the gap: accept the video, extract what’s usable, request stills only for gaps.

Section 6: Output Variables

All data generated by the Media Processing Node is exposed as variables for use in Decision Triggers, downstream nodes, API calls, and integrations.

Complete Variable Reference

Quality Gate:
  • quality_score (float) — 0.0-1.0 overall quality
  • quality_passed (boolean) — Met threshold
  • quality_issues[] (array) — Detected issues
  • retry_count (integer) — Retry attempts
Coverage:
  • coverage_complete (boolean) — All required shots received
  • coverage_percentage (float) — % of shots captured
  • missing_shots[] (array) — Shots still needed
  • captured_shots[] (array) — Shots received
Extraction (per field):
  • extracted_{field} (varies) — Extracted value
  • {field}_valid (boolean) — Validation passed
  • {field}_confidence (float) — OCR confidence
Video:
  • frame_count (integer) — Frames extracted
  • video_duration (float) — Length in seconds
  • media_urls[] (array) — All media URLs

Using Variables in Downstream Nodes

Reference variables in prompts, API calls, and messages:

Section 7: Decision Triggers

IF/THEN routing rules that determine what happens after media is processed. Evaluated top-to-bottom — first matching condition fires.

How It Works

After processing completes, the node evaluates each trigger rule in order. The first rule whose condition evaluates to TRUE determines the action:
  • Stay: Remain in node, send a message, wait for more input
  • Proceed: Move to a specific next node
  • Escalate: Route to human agent

Standard Trigger Pattern

Most Media Processing Nodes should include these triggers (in order):

Advanced Trigger Examples

Proceed with partial coverage for low-value claims:
VIN mismatch escalation:
Fast-track perfect submissions:
Decision triggers replace complex prompt engineering with explicit, testable logic. When something routes wrong, you can see exactly which trigger fired and why.

Next Steps