← Back to blog

Extract Indian Vehicle RC Data with Make.com: Drive to Fleet Sheets

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

Fleet ops still retype Registration Certificate (RC) fields into spreadsheets. This Make.com scenario 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: Automate vehicle document processing (email → Airtable), Vehicle onboarding workflow (webhook → HubSpot).

Architecture

Google Drive
  /fleet-rc/inbox/
    KA01AB1234_front.jpg
    KA01AB1234_back.jpg
        |
        v
Make: pair front/back by prefix
        |
        v
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 for this endpoint

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. Registration 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 → Watch Files on inbox.

Use a Data store or Aggregate by filename prefix (strip _front / _back):

pair_key = replace(replace(filename; "_front"; ""); "_back"; "")
side     = if(contains(filename; "_front"); "front"; "back")

When a pair_key has front only, back only, or both, proceed — Cryvis accepts any non-empty combination of front/back. Waiting for both improves completeness (source often becomes front_and_back).

Step 3: Download binaries

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

ConditionParts sent
Bothfront, back
Front onlyfront
Back onlyback

Step 4: HTTP module

HTTP → Make a request → multipart as above. Parse JSON data.

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"
  }
}

Map all of these into Sheet columns. 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 → Add a Row. Optionally Search rows first on registration_number and Update instead of Append to keep one row per vehicle.

Step 6: Completeness Filter

After extract:

IF EMPTY(chassis_number) OR EMPTY(engine_number)
  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 can Upsert.

Step 7: Move files

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

Step 8: Errors

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

Fleet reporting ideas

Without leaving Sheets:

  • Filter insurance_valid_upto < today+30d for renewals
  • Pivot by manufacturer / vehicle_class
  • Count rows where source != front_and_back as quality debt

Pairing race conditions

Drive Watch can deliver _front and _back as two separate scenario runs seconds apart. Options:

  1. Data store lock — on first side, write a record keyed by pair_key with optional front_id / back_id. On second side, merge and only then call Cryvis; clear the store entry after success.
  2. Delay — after seeing one side, Sleep 60–120s, re-list folder for the sibling file, then proceed with whatever exists (front-only still valid).
  3. Manual batch — ops drops both files, then moves a READY marker file that triggers the scenario.

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

Upsert by registration number

After extract, Search Rows on registration_number:

  • Update chassis/engine/insurance if the row exists (re-scan with the missing side)
  • Append if new

Normalize before search: upper(replace(registration_number; " "; "")) so KA 01 AB 1234 matches KA01AB1234 if you also normalize the Sheet column on write.

Credits

Indian Vehicle RC is 1 credit per image. Front+back = two credits when both are images. Worth it when chassis/engine sit on opposite sides.

Sample Sheets formulas

Insurance days left = =[insurance_valid_upto] - TODAY()
Needs attention     = =OR([Insurance days left]<30, [chassis_number]="")

Use these in a filtered view for Monday fleet standups.

HTTP module field reference

Multipart nameRequiredNotes
frontone of front/backRC face with registration / owner
backone of front/backOften chassis, engine, insurance

Never send file on this endpoint (that is PAN/invoice shape). Never send first_page (passport only).

When source is not front_and_back

source value (typical)MeaningAction
front onlyBack missingAsk for back if chassis empty
back onlyFront missingAsk for front if registration empty
front_and_backBoth usedPrefer for fleet master data

Exact enum strings follow the API response; treat source as an ops signal, not a billing field.

CTA

Extract Indian RC front/back to JSON: /apis/indian-vehicle-rc. Docs: /docs/api/extractIndianVehicleRc. In Make, 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.