Data Import Guide
The definitive reference for importing your data into Klau. Whether you are migrating from spreadsheets, integrating with an external system, or setting up bulk imports, this guide covers everything you need to know.
1. Overview: Getting Your Data Into Klau
Klau supports multiple methods for importing your data, each suited to different situations. Choose the method that best fits your workflow.
CSV Upload
Best for bulk imports, daily job uploads from Excel, and one-time migrations. Download our templates, fill them in, and upload.
API Integration
Best for automated syncing with external systems like EnCore, billing platforms, or custom software. Real-time, bidirectional data flow.
Manual Entry
Best for adding individual jobs, customers, or making quick corrections. Use the in-app forms for one-off entries.
Planning Your Data Migration
Before importing, we recommend this sequence:
- Drivers first - Import your driver roster so they can be assigned to jobs
- Trucks second - Import your fleet with compatible container sizes
- Customers and Sites third - Import your customer database with addresses
- Jobs last - Import service orders that reference the above entities
2. CSV Import: Jobs
The Jobs CSV import is the most commonly used import feature. Use it to upload your daily service orders or migrate historical job data.
Download Job Import Template
Download CSVThe template includes all supported columns with example data and inline documentation.
Supported Fields (Live Template)
The template at download time is the source of truth. These are the current columns:
Required Fields
| Field | Description | Example |
|---|---|---|
| customerName | The name of the customer | ABC Construction |
| siteName | Site name or label | Downtown Project |
| siteAddress | Street address for geocoding | 123 Main St |
| jobType | DELIVERY, PICKUP, DUMP_RETURN, or SWAP | DELIVERY |
| containerSize | Container size in yards (10, 15, 20, 30, or 40) | 20 |
Optional Fields
| Field | Description | Default |
|---|---|---|
| requestedDate | The date the job should be performed | (defaults to today) |
| timeWindow | MORNING, AFTERNOON, or ANYTIME | ANYTIME |
| priority | NORMAL, HIGH, or URGENT | NORMAL |
| notes | Special instructions for the driver | (empty) |
| externalId | Your system's ID for deduplication | (empty) |
Date and Time Formatting
Klau accepts dates in the following formats (for requestedDate):
- ISO 8601 (recommended):
2024-03-15 - US Format:
03/15/2024 - With time (optional):
2024-03-15T08:00:00
Sample CSV
customerName,siteName,siteAddress,jobType,containerSize,requestedDate,timeWindow,priority,notes,externalId ABC Construction,Downtown Project,123 Main St Houston TX 77001,DELIVERY,20,2024-03-15,MORNING,NORMAL,Gate code: 1234,job-1001 XYZ Roofing,Warehouse,456 Oak Ave Houston TX 77002,PICKUP,30,2024-03-15,ANYTIME,HIGH,,job-1002 Smith Residence,Residence,789 Elm Dr Houston TX 77003,SWAP,20,2024-03-15,AFTERNOON,NORMAL,Call before arrival,job-1003
Bulk Job Creation Workflow
- Navigate to Jobs and click "Import Jobs"
- Download the template if you haven't already
- Fill in your job data in Excel or Google Sheets
- Export as CSV (UTF-8 encoding recommended)
- Upload the file and review the preview
- Fix any validation errors shown in the preview
- Confirm the import to create the jobs
3. CSV Import: Customers and Sites
Import your customer database with their service sites. Each customer can have multiple sites (job locations).
Download Customer Import Template
Download CSVSupported Fields (Live Template)
The template at download time is the source of truth. These are the current columns:
Required Fields
| Field | Description | Example |
|---|---|---|
| customerName | Business or individual name | ABC Construction LLC |
| siteName | Name or label for this site | Downtown Project |
| siteAddress | Full street address | 123 Main St |
| siteCity | City name | Houston |
| siteState | State (2-letter code preferred) | TX |
| siteZip | ZIP or postal code | 77001 |
Optional Fields
| Field | Description |
|---|---|
| customerExternalId | Your system's customer ID |
| customerContactName | Primary contact name |
| customerContactPhone | Primary contact phone |
| customerContactEmail | Primary contact email |
| customerBillingAddress | Billing address |
| customerNotes | Customer-level notes |
| siteExternalId | Your system's site ID |
| siteContactName | Site contact name |
| siteContactPhone | Site contact phone |
| siteNotes | Access instructions, gate codes, etc. |
Address Formatting for Geocoding
Best practices for accurate geocoding:
- Use full street names instead of abbreviations (Street vs St)
- Include apartment/suite numbers when applicable
- Always include city, state, and ZIP code
- Avoid special characters in addresses
- For construction sites, use the nearest street intersection if no address exists
Duplicate Detection
Klau detects duplicates using customer name and site address, or by external IDs if provided. When a duplicate is found:
- Match found: The row is skipped and reported in the import summary
- No match: A new customer/site record is created
4. CSV Import: Drivers
Import your driver roster with contact information and credentials.
Download Driver Import Template
Download CSVSupported Fields (Live Template)
The template at download time is the source of truth. These are the current columns:
Required Fields
| Field | Description | Example |
|---|---|---|
| name | Driver's full name | John Smith |
Optional Fields
| Field | Description |
|---|---|
| phone | Mobile phone for SMS dispatch |
| Email address | |
| truckNumber | Truck number to set as default |
| status | AVAILABLE, ON_ROUTE, or OFF_DUTY |
Phone Number Formatting
Important for SMS dispatch: Phone numbers must be mobile numbers capable of receiving SMS. Klau normalizes phone numbers automatically, but for best results:
- Use E.164 format:
+15551234567 - Or standard US format:
(555) 123-4567or555-123-4567 - Include country code for international numbers
- Avoid extensions or landline numbers
5. CSV Import: Trucks
Import your fleet with vehicle details and container compatibility.
Download Truck Import Template
Download CSVSupported Fields (Live Template)
The template at download time is the source of truth. These are the current columns:
Required Fields
| Field | Description | Example |
|---|---|---|
| number | Your internal truck ID | T-101 |
Optional Fields
| Field | Description |
|---|---|
| compatibleSizes | Comma-separated container sizes |
| status | AVAILABLE, IN_USE, MAINTENANCE, or OUT_OF_SERVICE |
| licensePlate | License plate number |
| vin | Vehicle Identification Number |
| notes | Notes for the truck |
Compatible Sizes Format
Valid container sizes are: 10 15 20 30 40 (in yards).
Specify which sizes each truck can haul, separated by commas:
10,15,20- Can haul small to medium containers only10,15,20,30,40- Can haul all sizes30,40- Large container specialist
6. API Integration
For automated, real-time data synchronization, use the Klau REST API. This is ideal for connecting with external billing systems, telematics, or custom software.
When to Use the API
- Automatic syncing: Pull service orders from your billing system nightly
- Real-time updates: Push completed job data back to your system
- Custom integrations: Build workflows between Klau and other tools
- Third-party connections: Connect EnCore, billing, or CRM systems
Getting Your API Key
- Navigate to Settings → Integrations
- Click "Create API Key"
- Name your key (e.g., "EnCore Sync" or "Billing Integration")
- Copy the key immediately - it won't be shown again
- Store the key securely in your application's secrets
Creating Jobs via API
Use the Jobs endpoint to create service orders programmatically:
POST /api/v1/jobs
Authorization: Bearer kl_live_your_api_key_here
Content-Type: application/json
{
"customerName": "ABC Construction",
"siteAddress": "123 Main St, Houston, TX 77001",
"type": "DELIVERY",
"containerSize": 20,
"requestedDate": "2024-03-15",
"timeWindow": "MORNING",
"priority": "NORMAL",
"notes": "Gate code: 1234",
"externalId": "your-system-id-123"
}Syncing with External Systems
EnCore by Routeware
Native integration that pulls service orders automatically. Configure in Settings → Integrations.
Learn moreCustom Integrations
Build your own integration using our REST API. Full CRUD operations for all entities.
API DocumentationWebhook Notifications
Subscribe to real-time events to keep your systems in sync. Klau can notify you when:
job.completed- A job has been marked completejob.assigned- A job has been assigned to a driverdispatch.published- A dispatch plan has been sent to driversdriver.delayed- A driver is running behind schedule
7. Data Export
Export your data for reporting, backup, or integration with other systems. All exports are delivered as CSV files.
Exporting Job History
Export completed jobs for a date range to analyze performance or for billing:
- Navigate to Jobs or Reports
- Set your date filter (e.g., last 30 days)
- Click "Export" and select "Job History"
- Choose which fields to include
- Download the CSV file
Exported job data includes:
- Job details (type, container size, customer, site)
- Scheduled vs actual completion times
- Driver and truck assignments
- Weight ticket information (if captured)
- Dump site information
Exporting Customer Lists
Export your full customer and site database:
- Customer names and contact information
- All associated sites with addresses
- Site notes and access instructions
- External IDs for system matching
Exporting for Reporting
Tip: For advanced reporting, export your data and import it into Excel, Google Sheets, or a BI tool like Looker or Tableau. Common reports include:
- Jobs per driver per day (productivity)
- Average drive time between jobs (efficiency)
- Container size distribution (inventory planning)
- Customer job frequency (sales insights)
8. Migration from Spreadsheets
Moving from Excel or Google Sheets to Klau? This section walks you through a clean migration.
Preparing Your Existing Spreadsheet
Before exporting, clean up your data:
- Remove formatting: Clear colors, merged cells, and fancy formatting
- Check for consistency: Ensure dates and phone numbers use consistent formats
- Remove duplicates: Use Excel's "Remove Duplicates" feature
- Fill in blanks: Required fields must have values
- Headers in row 1: Ensure your column headers are in the first row
Mapping Columns to Klau Fields
Your spreadsheet columns may have different names than Klau expects. You can map them during import. Here are common mappings:
| Your Spreadsheet | Klau Field |
|---|---|
| Account Name, Customer, Client | customerName |
| Location, Address, Job Site | siteAddress |
| Service, Action, Job Code | jobType |
| Size, Yardage, Container | containerSize |
| Date, Service Date, Requested | requestedDate |
Cleaning Up Data Before Import
Common data cleanup tasks:
Job Types
Convert your job codes to Klau types: "D" or "Deliver" → DELIVERY, "P" or "Pickup" → PICKUP, "D&R" → DUMP_RETURN, "S" or "Swap" → SWAP
Container Sizes
Remove "yd" or "yard" suffixes. Use numeric values only: 10, 15, 20, 30, or 40.
Phone Numbers
Remove extensions. Ensure 10-digit format for US numbers. Add country code for international.
Addresses
Combine separate city/state/zip columns into a single address field, or keep them separate for the customer import.
Step-by-Step Migration Checklist
- Export your spreadsheet as CSV (File → Save As → CSV UTF-8)
- Import Drivers: Upload your driver roster first
- Import Trucks: Upload your fleet with compatible container sizes
- Import Customers: Upload customers and sites with addresses
- Verify geocoding: Check that all sites show on the map correctly
- Import Jobs: Upload your active service orders
- Test optimization: Run Auto-Optimize on a single day to verify
- Go live: Begin using Klau for daily dispatch
9. Troubleshooting
Encountering issues with your import? Here are solutions to the most common problems.
Common Import Errors
"Invalid jobType: DEL"
Cause: Job type values must match exactly. Use DELIVERY, PICKUP, DUMP_RETURN, or SWAP.
Fix: Find and replace your custom codes with the valid values.
"Invalid containerSize: 25"
Cause: Container size must be one of: 10, 15, 20, 30, or 40.
Fix: Round to the nearest valid size or contact support if you use non-standard sizes.
"Required field missing: customerName (row 15)"
Cause: The specified row has an empty value in a required column.
Fix: Open your CSV, go to the indicated row, and fill in the missing value.
"Invalid date format: 3/15/24"
Cause: Two-digit years are ambiguous.
Fix: Use four-digit years: 2024-03-15 or 03/15/2024.
Validation Failures
When the import preview shows validation errors, you have two options:
- Fix and re-upload: Update your CSV and upload again
- Import valid rows only: Proceed with the import, skipping rows with errors. You can add the failed rows manually later.
Geocoding Failures
If addresses fail to geocode (show "Location not found"):
- Check for typos: Common issues include misspelled street names or wrong ZIP codes
- Add more detail: Include apartment numbers, building names, or cross-streets
- Use a different format: Try "123 Main Street" instead of "123 Main St"
- Manual geocoding: After import, edit the site and drag the map pin to the correct location
Getting Help
Need assistance with your import? Our support team can help with data cleanup, custom field mapping, or complex migrations.