Events
Real-time notifications for system changes and device activity
Events are the core of Texture's power—the platform was built as an event-driven system from the ground up, unlike traditional data warehouses that only provide historical analysis. This event-driven architecture enables real-time responsiveness, immediate automation, and proactive energy management that static data systems simply cannot match.
Every change in your energy infrastructure—device connections, state updates, command executions, and system modifications—triggers events that flow through Texture's real-time processing engine. This gives you immediate visibility and control over your energy systems, enabling automated workflows and proactive monitoring that transform how you manage energy infrastructure.
Each event follows the Standard Webhook Specification for maximum compatibility with existing integrations. Events are delivered as JSON payloads with consistent structure, making them easy to process and integrate into your applications****.****
Why Events?
Unlike traditional energy management systems that rely on periodic data polling and batch processing, Texture's event-driven architecture provides immediate responsiveness and real-time control. Events enable you to:
- Monitor Real-Time Activity — Get immediate notifications when devices connect, disconnect, or update
- Track Command Execution — Know when commands succeed or fail across your device fleet
- Automate Workflows — Trigger actions based on specific events and conditions
- Maintain System Health — Proactively identify and respond to device issues
- Audit System Changes — Keep a complete record of all platform activity
- Integrate with External Systems — Connect events to your existing tools and workflows
- Enable Real-Time Control — Respond instantly to grid conditions, price signals, or device states
- Scale Automation — Build complex, multi-device automation that traditional systems cannot support
Events transform static energy data into dynamic, actionable intelligence—making Texture fundamentally different from traditional data warehouses that can only tell you what happened yesterday.
Event Structure
All events follow a consistent structure for easy processing:
- JSON Format — All events are delivered as JSON objects
- Type Property — Each event has a
typeproperty indicating the event category - Version Control — Events include a
versionproperty using semantic versioning - Unique Keys — Every event has a unique
keyproperty for deduplication - Standard Webhooks — Compatible with the Standard Webhook Specification
This consistent structure ensures reliable event processing and integration across your systems.
Available Event Types
Texture currently offers nine core event types that cover the essential aspects of energy system monitoring:
| Event Type | Description | Trigger |
|---|---|---|
| customer.created | New customer created on the platform | Customer registration |
| command.failed | Command execution failed | Command failure |
| command.overridden | Commanded device state overridden | Device state mismatch detected |
| command.succeeded | Command execution succeeded | Command completion |
| device.discovered | New device connected to platform | Device connection |
| device.updated | Device data updated | Device state change |
| device.disconnected | Device disconnected from platform | Device disconnection |
| enrollment.approved | Program enrollment approved | Enrollment approval |
| site.created | New site created on platform | Site creation |
Each event type provides specific data relevant to its context, enabling targeted automation and monitoring.
Event Types and Payloads
Customer Created
Fired whenever a customer is created on the Texture platform.
Command Failed
Fired whenever a command run against a device fails.
Command Overridden
Fired when a device's state no longer matches a previously executed command during an active command window. This typically occurs when a homeowner or other external actor manually changes the device, overriding the commanded state.
For example, if your system commands a thermostat to cool at 73°F until 8 PM, and the homeowner manually switches the thermostat to heat mode at 6
PM, this event fires to notify you that your commanded state is no longer in effect.Override Detection
Override detection compares incoming device telemetry against the expected state from the original command. The event fires on the first mismatch detected within the command window. Numeric comparisons (e.g., temperature targets) include a tolerance to avoid false positives from sensor noise.
Command Succeeded
Fired whenever a command run against a device succeeds.
Device Discovered
Fired when a new device is connected to the Texture platform.
Device Type Filtering
When configuring a destination, you can specify which device types should trigger events for a given destination. For example, you could configure a webhook to receive only Battery device updates, and Texture will filter events accordingly.
Device Updated
Fired whenever we get updated data for a device.
Device-Specific State Data
The state object varies by device type. For example, a battery will have different state data than an inverter. See our Data Models documentation for detailed information about device-specific state structures.
Most device update events are triggered from device state updates, which typically occur on 5 or 15-minute intervals. We're continuously working to provide tighter interval telemetry data and enhanced filtering capabilities.
Device Disconnected
Fired whenever a device disconnects from the Texture platform.
Enrollment Approved
Fired whenever an enrollment is approved.
Grid Services Required
This event is only available for organizations that have opted in to Grid Services. If you're interested in Grid Services, please reach out to our team.
Site Created
Fired whenever a site is created on the Texture platform.
Event Processing and Integration
Webhook Delivery
Events are delivered via webhooks to your configured destinations. Each destination can be configured with:
- Event Type Filters — Specify which event types to receive
- Device Type Filters — Filter events by specific device types
- Custom Headers — Add authentication or custom headers
- Retry Logic — Automatic retry for failed deliveries
Webhook Reliability
Ensure your webhook endpoints are highly available and respond quickly (within 10 seconds). Texture will retry failed deliveries, but persistent failures may result in event loss. Monitor your webhook health in the Dashboard.
Event Deduplication
Each event includes a unique key property that's a hash of the event data. This enables:
- Duplicate Detection — Avoid processing the same event multiple times
- Reliable Processing — Ensure idempotent event handling
- Audit Trail — Maintain complete event history
Integration Patterns
Common integration patterns include:
- Real-Time Dashboards — Display live system status and activity
- Automated Alerts — Trigger notifications for critical events
- Workflow Automation — Execute actions based on event triggers
- Data Synchronization — Keep external systems updated with platform changes
Best Practices
- Handle Event Ordering — Events may arrive out of order; design your handlers accordingly
Event Ordering Strategy
Use the event timestamp field for ordering when sequence matters. For critical workflows, consider implementing a simple queue or using the event key for deduplication to ensure reliable processing.
- Implement Idempotency — Use the event
keyto prevent duplicate processing - Monitor Webhook Health — Track delivery success rates and response times
- Plan for Event Volume — Design your systems to handle expected event frequency
- Test Event Handling — Validate your event processing logic with test events
- Monitor Event Latency — Track time from event occurrence to processing
Next Steps
- Configure Destinations — Set up webhook endpoints to receive events
- Implement Event Handlers — Build logic to process and respond to events
- Monitor Event Activity — Use the Dashboard to track event delivery and processing
- Explore Advanced Filtering — Configure device-specific and event-type filtering
Events provide the real-time foundation for monitoring, automation, and integration across your energy infrastructure in Texture.
Expanding Event Types
We're continually adding more event types as we build out the Texture platform. If there's an event type you'd like to see, please let us know!