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:

  1. Drivers first - Import your driver roster so they can be assigned to jobs
  2. Trucks second - Import your fleet with compatible container sizes
  3. Customers and Sites third - Import your customer database with addresses
  4. 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 CSV

The 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:

customerNamesiteNamesiteAddresssiteCitysiteStatesiteZipjobTypecontainerSizetimeWindowprioritynotesrequestedDateexternalId

Required Fields

FieldDescriptionExample
customerNameThe name of the customerABC Construction
siteNameSite name or labelDowntown Project
siteAddressStreet address for geocoding123 Main St
jobTypeDELIVERY, PICKUP, DUMP_RETURN, or SWAPDELIVERY
containerSizeContainer size in yards (10, 15, 20, 30, or 40)20

Optional Fields

FieldDescriptionDefault
requestedDateThe date the job should be performed(defaults to today)
timeWindowMORNING, AFTERNOON, or ANYTIMEANYTIME
priorityNORMAL, HIGH, or URGENTNORMAL
notesSpecial instructions for the driver(empty)
externalIdYour 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

  1. Navigate to Jobs and click "Import Jobs"
  2. Download the template if you haven't already
  3. Fill in your job data in Excel or Google Sheets
  4. Export as CSV (UTF-8 encoding recommended)
  5. Upload the file and review the preview
  6. Fix any validation errors shown in the preview
  7. 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 CSV

Supported Fields (Live Template)

The template at download time is the source of truth. These are the current columns:

customerNamecustomerExternalIdcustomerContactNamecustomerContactPhonecustomerContactEmailcustomerBillingAddresscustomerNotessiteNamesiteExternalIdsiteAddresssiteCitysiteStatesiteZipsiteContactNamesiteContactPhonesiteNotes

Required Fields

FieldDescriptionExample
customerNameBusiness or individual nameABC Construction LLC
siteNameName or label for this siteDowntown Project
siteAddressFull street address123 Main St
siteCityCity nameHouston
siteStateState (2-letter code preferred)TX
siteZipZIP or postal code77001

Optional Fields

FieldDescription
customerExternalIdYour system's customer ID
customerContactNamePrimary contact name
customerContactPhonePrimary contact phone
customerContactEmailPrimary contact email
customerBillingAddressBilling address
customerNotesCustomer-level notes
siteExternalIdYour system's site ID
siteContactNameSite contact name
siteContactPhoneSite contact phone
siteNotesAccess 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 CSV

Supported Fields (Live Template)

The template at download time is the source of truth. These are the current columns:

namephoneemailtruckNumberstatus

Required Fields

FieldDescriptionExample
nameDriver's full nameJohn Smith

Optional Fields

FieldDescription
phoneMobile phone for SMS dispatch
emailEmail address
truckNumberTruck number to set as default
statusAVAILABLE, 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-4567 or 555-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 CSV

Supported Fields (Live Template)

The template at download time is the source of truth. These are the current columns:

numbercompatibleSizesstatuslicensePlatevinnotes

Required Fields

FieldDescriptionExample
numberYour internal truck IDT-101

Optional Fields

FieldDescription
compatibleSizesComma-separated container sizes
statusAVAILABLE, IN_USE, MAINTENANCE, or OUT_OF_SERVICE
licensePlateLicense plate number
vinVehicle Identification Number
notesNotes 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 only
  • 10,15,20,30,40 - Can haul all sizes
  • 30,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

  1. Navigate to Settings → Integrations
  2. Click "Create API Key"
  3. Name your key (e.g., "EnCore Sync" or "Billing Integration")
  4. Copy the key immediately - it won't be shown again
  5. 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

Built-in

EnCore by Routeware

Native integration that pulls service orders automatically. Configure in Settings → Integrations.

Learn more
API

Custom Integrations

Build your own integration using our REST API. Full CRUD operations for all entities.

API Documentation

Webhook Notifications

Subscribe to real-time events to keep your systems in sync. Klau can notify you when:

  • job.completed - A job has been marked complete
  • job.assigned - A job has been assigned to a driver
  • dispatch.published - A dispatch plan has been sent to drivers
  • driver.delayed - A driver is running behind schedule
Configure Webhooks

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:

  1. Navigate to Jobs or Reports
  2. Set your date filter (e.g., last 30 days)
  3. Click "Export" and select "Job History"
  4. Choose which fields to include
  5. 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:

  1. Remove formatting: Clear colors, merged cells, and fancy formatting
  2. Check for consistency: Ensure dates and phone numbers use consistent formats
  3. Remove duplicates: Use Excel's "Remove Duplicates" feature
  4. Fill in blanks: Required fields must have values
  5. 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 SpreadsheetKlau Field
Account Name, Customer, ClientcustomerName
Location, Address, Job SitesiteAddress
Service, Action, Job CodejobType
Size, Yardage, ContainercontainerSize
Date, Service Date, RequestedrequestedDate

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

  1. Export your spreadsheet as CSV (File → Save As → CSV UTF-8)
  2. Import Drivers: Upload your driver roster first
  3. Import Trucks: Upload your fleet with compatible container sizes
  4. Import Customers: Upload customers and sites with addresses
  5. Verify geocoding: Check that all sites show on the map correctly
  6. Import Jobs: Upload your active service orders
  7. Test optimization: Run Auto-Optimize on a single day to verify
  8. 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.