Skip to main content

Bulk Import

Upload sites, customers, and device information at scale for fleet onboarding

Texture's bulk import tool enables large-scale data migration by uploading sites, customers, and device information before Integration Hub configuration is needed. Use bulk import to complete initial portfolio onboarding or manage net new system uploads at scale.

Overview

Data onboarding is a two-step process:

  1. Import your portfolio — Upload Site, Customer, and Device IDs via bulk import (this guide)
  2. Configure integrations — Connect your OEM and data provider credentials to begin syncing (see Integration Hub Guide)

Once both steps are complete, Texture automatically pulls device performance, energy usage, and program enrollment data on a recurring basis—no manual updates required.

Before You Begin

Important Considerations

Homeowner-Owned Sites

If a homeowner owns the site, they should onboard their device through Texture Connect rather than through your Integration Hub or bulk import list.

Data Dictionary

FieldRequiredNotes
firstNameRequiredContact's first name
lastNameRequiredContact's last name
emailOptionalWe prefer a unique email for validation, but you can use a TPO or company-generated email like dev@company.com
phoneOptionalContact phone number
FieldRequiredNotes
streetOneRequiredStreet address
streetTwoOptionalApartment, suite, unit, etc.
cityRequiredCity name
stateRequiredState abbreviation
postalCodeRequiredZIP or postal code
countryOptionalCountry code (defaults to US)
FieldRequiredNotes
manufacturerSlugsRequiredMust be exactly one of: tesla, enphase, solaredge-monitoring-api, eg4-electronics, franklinwh, sma
systemIdentifierRequiredSee manufacturer-specific requirements below

System Identifier Requirements by Manufacturer

ManufacturerSystem Identifier Format
teslaDIN or Site UUID
enphaseSite ID
solaredge-monitoring-apiSite ID
eg4-electronicsInverter serial number
franklinwhaGate serial number
smaPlant ID (numeric)

Additional Variables

FieldRequiredNotes
referenceIdRequiredBackreference to your system—typically a userId, accountId, or siteId. This identifier is used to prevent duplicate customer creation and is tied to created sites and devices.
tagsOptionalArbitrary labels that create logical device groupings for batch operations.

Performing a Bulk Import

Step 1: Prepare your data file

Download the bulk import template and populate it with your site, customer, and device data. Ensure all required fields are complete and manufacturerSlugs values match exactly.

Step 2: Upload to Texture

In Texture, click Integration Hub in the left sidebar, then navigate to Bulk Import and upload your prepared file.

Step 3: Review validation results

Texture validates your upload and displays any errors. Common errors are listed in the Troubleshooting section below.

Step 4: Confirm import

Once validation passes, confirm the import. Texture creates site and customer records immediately. Device records are created and await Integration Hub configuration to begin syncing data.

After Import

What Happens Next

  • Sites and Customers are created immediately and appear in your Sites and Customers views
  • Devices are created but remain in a pending state until Integration Hub is configured
  • Once Integration Hub is configured, Texture begins syncing device performance data automatically

Where to Find Your Data

Imported sites and customers appear in your Sites and Customers views. Once Integration Hub is configured, devices become active and appear in your Devices view. All imported data becomes available to query via the Texture API.

Troubleshooting

Upload Failed with Validation Error

Review the error message in Texture. The most common validation errors are:

manufacturerSlugs not specified correctly

The field is case sensitive and must match exactly: tesla, enphase, solaredge-monitoring-api, eg4-electronics, franklinwh, or sma. Using Tesla, TESLA, solaredge, eg4, or any other variation will cause the upload to fail.

Invalid address

Ensure all required address fields (streetOne, streetTwo, city, state, postalCode, country) are complete and properly formatted.

Address undiscoverable in Mapbox

Our mapping partner, Mapbox, cannot locate the address. Verify the address exists and is formatted correctly. Try variations if the exact format is causing issues.

Additional blank rows

Remove any empty rows from your spreadsheet before uploading. Trailing blank rows can cause validation errors.

Fix the errors in your file and re-upload.

Devices Aren't Syncing Data

Devices require Integration Hub configuration before data syncing begins. See the Integration Hub Guide to connect your OEM credentials.

Need Help with a Complex Import

Contact your Implementation team for assistance with large migrations, custom data mapping, or integration questions.

Support

  • For upload questions: Review the data dictionary and common errors section above
  • For data mapping help: Contact your Texture Implementation team for guidance on complex scenarios
  • For technical issues: Use the support panel in Texture or email support@texturehq.com with your organization name and upload details