ViaVeg Integrations
Stream shipment data to your systems in real time. REST API for filling forms and surveys, webhooks for any CRM, ERP or spreadsheet.
Zapier Ready
Plug a ViaVeg webhook into 5000+ apps without code. Every event (shipment created, status changed, QC report) hits your Zap in seconds.
Show setup →Make (Integromat) Ready
More advanced scenarios than Zapier, with conditional routing and payload transformation. ViaVeg webhooks work natively in Make.
Show setup →Google Sheets Ready
Ready-made Google Apps Script — paste it, authorize, get a sheet that appends a row for every new shipment, status, and QC report.
Show setup →n8n Ready
Self-hosted automation for teams that want to keep data in-house. Webhook trigger in n8n + our HMAC-SHA256 signature = full control.
Show setup →Microsoft Excel Online Via Zapier / Make
Via Zapier or Make — ViaVeg webhook → "Add row to Excel Online (Microsoft 365)" action. No need to register your own Azure app.
Show setup →Salesforce / HubSpot Via Zapier / Make
Via Zapier/Make — webhook → "Create Record / Update Record" in Salesforce. Map ViaVeg fields to SF objects in the Zap UI.
Show setup →Webhooks — the integration foundation
ViaVeg sends an HTTP POST with JSON every time something happens with your shipment. The HMAC-SHA256 signature in the header guarantees the data really came from us.
Register an endpoint URL by POSTing to /api/v1/webhooks (Sanctum token). The response includes a secret for signature verification.
Choose events you want to receive (or pick all — wildcard "*").
Your server receives a POST with X-Webhook-Event and X-Webhook-Signature headers. Verify the signature and process the payload.
Supported events
Register a webhook
curl -X POST https://viaveg.com/api/v1/webhooks \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://hooks.zapier.com/hooks/catch/...",
"events": ["shipment.created", "shipment.completed", "phase_entry.submitted"]
}'
Sample payload
{
"event": "phase_entry.submitted",
"timestamp": "2026-05-22T10:15:30+00:00",
"data": {
"shipment_id": 1234,
"uuid": "ship_abc...",
"phase": "unloading",
"entry_type": "qc_report",
"data": { "temperature": -2.4, "rejected_kg": 14.3 },
"filled_by": "Anna Nowak",
"gps": { "lat": 52.2297, "lng": 21.0122 },
"submitted_at": "2026-05-22T10:15:30+00:00"
}
}
HMAC signature is computed as sha256(secret + raw_body) — sent in the X-Webhook-Signature header.
Google Sheets — complete template
The fastest path to integration with your own spreadsheet. Three steps, ~3 minutes, zero coding.
Open a new Google Sheet → Extensions menu → Apps Script.
Paste the code below, save, click "Deploy" → "New deployment" → type "Web app", access: "Anyone". Copy the generated URL.
Register that URL as a ViaVeg webhook (see above). Every new event will append a row in the sheet.
Script to paste (Google Apps Script)
// ViaVeg → Google Sheets append-row receiver.
// Paste into Apps Script (Extensions → Apps Script) inside your Sheet,
// then Deploy → New deployment → Web app → "Anyone" → copy the URL into ViaVeg.
const SHEET_NAME = 'ViaVeg'; // tab name; auto-created if missing.
function doPost(e) {
const payload = JSON.parse(e.postData.contents);
const event = payload.event || 'unknown';
const data = payload.data || {};
const ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) {
sheet = ss.insertSheet(SHEET_NAME);
sheet.appendRow(['Timestamp', 'Event', 'Shipment UUID', 'Cargo', 'Phase', 'Filled by', 'Data (JSON)']);
}
sheet.appendRow([
new Date(),
event,
data.uuid || '',
data.cargo_type || data.cargo_name || '',
data.phase || '',
data.filled_by || '',
JSON.stringify(data),
]);
return ContentService.createTextOutput(JSON.stringify({ok: true}))
.setMimeType(ContentService.MimeType.JSON);
}
Filling forms and surveys via API
The ViaVeg API does more than read — it lets you create entries (checklists, QC reports, notes, confirmations, photos) from your mobile app, bot, or backend script.
Public endpoint (participant token)
curl -X POST https://viaveg.com/api/v1/participants/PARTICIPANT_TOKEN/entries \
-H "Content-Type: application/json" \
-d '{
"type": "checklist",
"data_json": { "temp_at_load": -2.0, "seal_ok": true, "pallets": 24 },
"gps_lat": 52.2297,
"gps_lng": 21.0122,
"status": "completed"
}'
Authenticated endpoint (Sanctum)
curl -X POST https://viaveg.com/api/v1/phases/PHASE_ID/entries \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "qc_report",
"data_json": { "overall_score": 9, "defects": [] },
"status": "completed"
}'
Need a different integration?
Email hello@viaveg.com — if something is missing, we usually add it within 48h. Also check the technical docs in the project README.