Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

Commit 3504854

Browse files
authored
Merge pull request #52 from TextureHQ/rcasto/docs-add-integration-hub-and-bulk-import
Add initial doc sections for integration hub and bulk import
2 parents 879cf20 + 8693431 commit 3504854

7 files changed

Lines changed: 439 additions & 11 deletions

File tree

docs/getting-started/getting-started.md

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Take a few minutes to familiarize yourself with the Texture Dashboard:
2828

2929
Texture offers flexible ways to connect energy devices based on your use case:
3030

31-
### Option A: Use Texture Connect (for End-User Devices)
31+
### Option A: Texture Connect (for Individual Consumer Devices)
3232

3333
Ideal for residential deployments or when device owners need to grant access:
3434

@@ -37,13 +37,33 @@ Ideal for residential deployments or when device owners need to grant access:
3737
3. Users will authenticate with their device manufacturer accounts
3838
4. Devices appear in your Texture account once connected
3939

40-
### Option B: Direct Integration (for Commercial/Fleet Deployments)
40+
**Best for**: Homeowner-owned devices, consumer-facing applications, OAuth-based connections
4141

42-
Ideal for installer-managed systems or commercial deployments:
42+
Learn more: [Texture Connect](/integrations/texture-connect)
4343

44-
1. Contact us through the Dashboard chat to set up direct integrations
45-
2. Provide your installer credentials for supported manufacturers
46-
3. We'll help configure the appropriate authentication for your devices
44+
### Option B: Integration Hub + Bulk Import (for Fleet/Commercial Deployments)
45+
46+
Ideal for installer-managed systems or commercial fleets:
47+
48+
1. Use [Bulk Import](/integrations/bulk-import) to upload your portfolio of sites, customers, and device IDs at scale
49+
2. Configure [Integration Hub](/integrations/integration-hub) with your OEM credentials to enable automatic data syncing
50+
3. Texture automatically pulls device data on a recurring basis
51+
52+
**Best for**: Installer-managed fleets, commercial deployments, third-party aggregator portfolios
53+
54+
Learn more: [Integration Hub](/integrations/integration-hub) and [Bulk Import](/integrations/bulk-import)
55+
56+
### Option C: Industry Standards (for Utility/Grid Operator Integration)
57+
58+
Ideal for utility-scale deployments or grid integration:
59+
60+
1. Contact us through the Dashboard chat to discuss your requirements
61+
2. We'll help configure standards-based integrations (IEEE 2030.5, OpenADR, etc.)
62+
3. Enable secure, scalable grid coordination
63+
64+
**Best for**: Utilities, grid operators, large-scale DERMS deployments
65+
66+
Learn more: [Industry Standards](/platform-concepts/standards)
4767

4868
## Step 4: Start Using Device Data and Controls
4969

docs/integrations/bulk-import.md

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
sidebar_position: 5
3+
title: Bulk Import
4+
---
5+
6+
# Bulk Import
7+
8+
import { Subtitle } from '@components/Subtitle';
9+
10+
<Subtitle>Upload sites, customers, and device information at scale for fleet onboarding</Subtitle>
11+
12+
Texture's bulk import tool enables large-scale data migration by uploading sites, customers, and device information before [Integration Hub](/integrations/integration-hub) configuration is needed. Use bulk import to complete initial portfolio onboarding or manage net new system uploads at scale.
13+
14+
## Overview
15+
16+
Data onboarding is a two-step process:
17+
18+
1. **Import your portfolio** — Upload Site, Customer, and Device IDs via bulk import (this guide)
19+
2. **Configure integrations** — Connect your OEM and data provider credentials to begin syncing (see [Integration Hub Guide](/integrations/integration-hub))
20+
21+
Once both steps are complete, Texture automatically pulls device performance, energy usage, and program enrollment data on a recurring basis—no manual updates required.
22+
23+
## Before You Begin
24+
25+
### Important Considerations
26+
27+
:::warning Homeowner-Owned Sites
28+
If a homeowner owns the site, they should onboard their device through [Texture Connect](/integrations/texture-connect) rather than through your Integration Hub or bulk import list.
29+
:::
30+
31+
## Data Dictionary
32+
33+
### Contact related fields
34+
35+
| Field | Required | Notes |
36+
|-------|----------|-------|
37+
| `firstName` | Required | Contact's first name |
38+
| `lastName` | Required | Contact's last name |
39+
| `email` | Optional | We prefer a unique email for validation, but you can use a TPO or company-generated email like `dev@company.com` |
40+
| `phone` | Optional | Contact phone number |
41+
42+
### Site related fields
43+
44+
| Field | Required | Notes |
45+
|-------|----------|-------|
46+
| `streetOne` | Required | Street address |
47+
| `streetTwo` | Optional | Apartment, suite, unit, etc. |
48+
| `city` | Required | City name |
49+
| `state` | Required | State abbreviation |
50+
| `postalCode` | Required | ZIP or postal code |
51+
| `country` | Optional | Country code (defaults to US) |
52+
53+
### Device related fields
54+
55+
| Field | Required | Notes |
56+
|-------|----------|-------|
57+
| `manufacturerSlugs` | Required | Must be exactly one of: `tesla`, `enphase`, `solaredge-monitoring-api`, `eg4-electronics`, `franklinwh` |
58+
| `systemIdentifier` | Required | See manufacturer-specific requirements below |
59+
60+
### System Identifier Requirements by Manufacturer
61+
62+
| Manufacturer | System Identifier Format |
63+
|--------------|---------------------|
64+
| `tesla` | DIN or Site UUID |
65+
| `enphase` | Site ID |
66+
| `solaredge-monitoring-api` | Site ID |
67+
| `eg4-electronics` | Inverter serial number |
68+
| `franklinwh` | aGate serial number |
69+
70+
### Additional Variables
71+
72+
| Field | Required | Notes |
73+
|-------|----------|-------|
74+
| `referenceId` | Required | Backreference 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. |
75+
| `tags` | Optional | Arbitrary labels that create logical device groupings for batch operations. |
76+
77+
## Performing a Bulk Import
78+
79+
### Step 1: Prepare your data file
80+
81+
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.
82+
83+
### Step 2: Upload to Texture
84+
85+
In Texture, click **Integration Hub** in the left sidebar, then navigate to **Bulk Import** and upload your prepared file.
86+
87+
### Step 3: Review validation results
88+
89+
Texture validates your upload and displays any errors. Common errors are listed in the Troubleshooting section below.
90+
91+
### Step 4: Confirm import
92+
93+
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.
94+
95+
## After Import
96+
97+
### What Happens Next
98+
99+
- **Sites and Customers** are created immediately and appear in your [Sites](/platform-concepts/sites) and [Customers](/platform-concepts/contacts) views
100+
- **Devices** are created but remain in a pending state until [Integration Hub](/integrations/integration-hub) is configured
101+
- Once Integration Hub is configured, Texture begins syncing device performance data automatically
102+
103+
### Where to Find Your Data
104+
105+
Imported sites and customers appear in your Sites and Customers views. Once Integration Hub is configured, devices become active and appear in your [Devices](/platform-concepts/devices) view. All imported data becomes available to query via the Texture API.
106+
107+
## Troubleshooting
108+
109+
### Upload Failed with Validation Error
110+
111+
Review the error message in Texture. The most common validation errors are:
112+
113+
#### manufacturerSlugs not specified correctly
114+
115+
The field is case sensitive and must match exactly: `tesla`, `enphase`, `solaredge-monitoring-api`, `eg4-electronics`, or `franklinwh`. Using `Tesla`, `TESLA`, `solaredge`, `eg4`, or any other variation will cause the upload to fail.
116+
117+
#### Invalid address
118+
119+
Ensure all required address fields (`streetOne`, `streetTwo`, `city`, `state`, `postalCode`, `country`) are complete and properly formatted.
120+
121+
#### Address undiscoverable in Mapbox
122+
123+
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.
124+
125+
#### Additional blank rows
126+
127+
Remove any empty rows from your spreadsheet before uploading. Trailing blank rows can cause validation errors.
128+
129+
**Fix the errors in your file and re-upload.**
130+
131+
### Devices Aren't Syncing Data
132+
133+
Devices require [Integration Hub](/integrations/integration-hub) configuration before data syncing begins. See the Integration Hub Guide to connect your OEM credentials.
134+
135+
### Need Help with a Complex Import
136+
137+
Contact your Implementation team for assistance with large migrations, custom data mapping, or integration questions.
138+
139+
## Support
140+
141+
- **For upload questions**: Review the data dictionary and common errors section above
142+
- **For data mapping help**: Contact your Texture Implementation team for guidance on complex scenarios
143+
- **For technical issues**: Use the support panel in Texture or email [support@texturehq.com](mailto:support@texturehq.com) with your organization name and upload details

0 commit comments

Comments
 (0)