← Back to blog

Extract Indian Vehicle RC Data with Zapier: Drive to Fleet Sheets

Watch Google Drive for RC front/back scans, call Cryvis POST /v1/documents/indian-vehicle-rc with multipart front and/or back via Custom Request, and append registration and chassis fields to a fleet Google Sheet.

Fleet ops still retype Registration Certificate (RC) fields into spreadsheets. This Zap watches a Drive folder for Indian RC front and/or back images, calls Cryvis POST /v1/documents/indian-vehicle-rc, and appends structured vehicle rows to Google Sheets for fleet inventory.

Related: Convert PDFs to JSON (custom schemas), Automate KYC (Paths pattern). Hub: /blog/zapier.

Architecture

Google Drive
  /fleet-rc/inbox/
    KA01AB1234_front.jpg
    KA01AB1234_back.jpg
        |
        v
Zapier: pair front/back by prefix
        |
        v
Custom Request
  POST https://api.cryvis.com/v1/documents/indian-vehicle-rc
  -F front=@...   (and/or)
  -F back=@...
  -H "Authorization: Bearer ..."
        |
        v
Google Sheets: Fleet registry

API contract

ItemValue
URLhttps://api.cryvis.com/v1/documents/indian-vehicle-rc
AuthAuthorization: Bearer YOUR_API_KEY
Multipartfront and/or backat least one required
Not usedDo not send a generic file part (that is PAN/invoice shape)

cURL:

curl -X POST https://api.cryvis.com/v1/documents/indian-vehicle-rc \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "front=@rc-front.jpg" \
  -F "back=@rc-back.jpg"

Docs: /docs/api/extractIndianVehicleRc · /apis/indian-vehicle-rc.

Step 1: Drive naming convention

{registration_guess}_front.jpg
{registration_guess}_back.jpg

Examples: KA01AB1234_front.jpg, KA01AB1234_back.jpg. The guess is only for pairing — trust Cryvis registration_number in the Sheet.

Folders:

/fleet-rc/inbox
/fleet-rc/done
/fleet-rc/failed

Step 2: Watch and pair

Google Drive → New File in Folder on inbox.

Derive pairing keys with Formatter by Zapier → Text:

pair_key = filename with "_front" / "_back" stripped (and extension removed)
side     = front if filename contains "_front", else back

Cryvis accepts front only, back only, or both. Waiting for both improves completeness (source often becomes front_and_back).

Pairing when sides arrive separately

Drive can deliver _front and _back as two Zap runs seconds apart. Options:

  1. Storage by Zapier — on first side, store pair_key → file id. On second side, read storage, download both binaries, call Cryvis once, clear the key.
  2. Delay by Zapier — after one side, Delay 1–2 minutes, search Drive for the sibling filename, proceed with whatever exists.
  3. Manual batch — ops drops both files, then a READY.txt marker triggers the Zap.

Prefer (1) for production fleets; (3) for low volume.

Step 3: Download binaries

Download available sides into front_bin / back_bin. Build multipart dynamically:

ConditionParts sent
Bothfront, back
Front onlyfront
Back onlyback

Use Paths: “Has both” / “Front only” / “Back only” each with its own Custom Request field list.

Step 4: Custom Request

Webhooks by Zapier → Custom Request → multipart as above. Parse JSON data from the test result.

Typical fields:

{
  "success": true,
  "data": {
    "registration_number": "KA01AB1234",
    "registration_date": "2019-06-15",
    "owner_name": "RAHUL SHARMA",
    "address": "12 MG Road, Bengaluru, Karnataka 560001",
    "vehicle_class": "LMV",
    "manufacturer": "MARUTI SUZUKI",
    "model": "SWIFT",
    "chassis_number": "MA3EJLF1S00123456",
    "engine_number": "K12MN1234567",
    "fuel_type": "Petrol",
    "insurance_valid_upto": "2025-06-14",
    "fitness_valid_upto": "2026-06-14",
    "financier": "HDFC BANK LTD",
    "source": "front_and_back"
  },
  "meta": {
    "request_id": "req_rc_01hxyz"
  }
}

source tells you whether extraction used front, back, or both — useful when chassis is missing (often on the side you did not upload).

Step 5: Fleet Sheet columns

ColumnField
processed_atnow
registration_numberdata.registration_number
registration_datedata.registration_date
owner_namedata.owner_name
addressdata.address
vehicle_classdata.vehicle_class
manufacturerdata.manufacturer
modeldata.model
chassis_numberdata.chassis_number
engine_numberdata.engine_number
fuel_typedata.fuel_type
insurance_valid_uptodata.insurance_valid_upto
fitness_valid_uptodata.fitness_valid_upto
financierdata.financier
sourcedata.source
drive_pair_keypair_key
statusok / error

Google Sheets → Create Spreadsheet Row. Optionally Lookup Spreadsheet Row on registration_number then Update Spreadsheet Row to keep one row per vehicle.

Normalize before Lookup: uppercase and strip spaces so KA 01 AB 1234 matches KA01AB1234.

Step 6: Completeness Filter

After extract:

IF chassis_number empty OR engine_number empty
  status_note = incomplete_identifiers
  (optional) Slack fleet ops
ELSE
  status_note = complete

Incomplete rows still belong in the Sheet — do not drop them. Ops can drop the missing side into inbox with the same prefix and you upsert.

Step 7: Move files

Success → done/{pair_key}/. Error → failed/. Clear inbox so New File does not loop.

Step 8: Errors

CauseFix
No front or back partAt least one required
Used file like PANWrong field names for RC
Used first_pagePassport only — not RC
401Bearer token
Unreadable scanRe-shoot; keep status=error row

Field names, source, and fleet reporting

Multipart: front and/or back only — never file (PAN) or first_page (passport). Prefer source=front_and_back; if front-only and chassis empty, request the back (and vice versa). Treat source as an ops signal, not billing.

In Sheets: filter insurance_valid_upto within 30 days; pivot by manufacturer / vehicle_class; count rows where sourcefront_and_back as quality debt. Credits: 1 per image (Credits) — front+back = two when both upload.

CTA

Extract Indian RC front/back to JSON: /apis/indian-vehicle-rc. Docs: /docs/api/extractIndianVehicleRc. In Zapier, Custom Request POST multipart front and/or back to https://api.cryvis.com/v1/documents/indian-vehicle-rc with Bearer auth and write registration_number, chassis_number, and insurance dates into your fleet Sheet.