CRM apps
This tutorial shows how to integrate your customer relationship management (CRM), project management, or enterprise resource planning app with Aurora and make the integration available to Aurora customers.
Private beta
- Beta product features will not be supported via our normal support channels (e.g., email).
- You may experience some gaps or changes as the product is refined and documentation updated.
- There may be some compatibility issues between our beta and generally available product.
How It Works
On a new opportunity creation, your app creates a project in Aurora. Aurora notifies your app via webhook when the system design is complete. With the webhook payload, your app retrieves design summary.
One-Time Setup
Please provide the following to your Aurora account team:
- Your app name
- A tagline for your app to display on the “Apps” page (256 characters or less)
- A description for your app to display to users at enablement
- A logo image for your app (scaled to 44px height)
In return, Aurora will provide you with:
- an
application_id
for your app - an application key to access the partner app API
- Aurora will enable your app on your sandbox tenant
Using application_id and an application key, subscribe to the partner application performance_simulation_job_completed
webhook event, pointing webhooks to your application.
POST https://api-sandbox.aurorasolar.com/partner_applications/{application_id}/webhooks
{
"partner_application_webhook": {
"description": "Performance Simulation Completed",
"event": "performance_simulation_job_completed",
"url_template": "https://www.yourcompany.com/aurora_performance_simulation_webhooks?design_id=<DESIGN_ID>&tenant_id=<TENANT_ID>&status=<STATUS>",
"enabled": true
}
}
The event is a good proxy for design completion in Aurora. You will receive this webhook from every Aurora tenant that enables your app.
Step 1. Retrieve temporary key
Using your application_id
and your application key provided by Aurora, make a request to generate a new temporary key. To avoid exposing your application key, this request should always happen server-side.
curl -X POST \
-H "Authorization: Bearer {your application key}" \
"https://api-sandbox.aurorasolar.com/partner_applications/{application_id}/tenants/{aurora_tenant_id}/create_token?session_token={aurora_session_token}"
{
"token": {
"bearer_token": "tk_test_fd1cc8562360ff06b6e524aa",
"expires_at": "2023-07-29 04:30:46 UTC"
}
}
Step 2. Create a project in the customer tenant.
Create a project using a street address
//POST https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/projects
{
"project": {
"location": {
"property_address": "434 Brannan St, San Francisco, CA, 94107"
}
}
}
or geographic coordinates.
//POST https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/projects/tenants/{tenant_id}/projects
{
"project": {
"location": {
"latitude": 37.7796,
"longitude": -122.3953
}
}
}
Step 3. Retrieve design summary on webhook receipt.
On the webhook receipt, retrieve the design summary using the tenantd_id
and design_id
included in the webhook payload.
//Webhook query string payload
?design_id=5fd85f64-5717-4562-b3fc-2c963f66afa3&job_id=1bc85f64-5717-4562-b3fc-2c963f66aab9&status=succeeded
//GET https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/summary
{
"design": {
"design_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"design_request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"external_provider_id": "YourId123",
"project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2024-06-21T21:12:44.591Z",
"bill_of_materials": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"component_type": "modules",
"sku": null,
"name": "Aurora Sample Solar Panel",
"manufacturer_name": "Aurora Sample Manufacturer",
"quantity": 1
}
],
"system_size_ac": 5000,
"system_size_ptc": 6000,
"system_size_stc": 6500,
"arrays": [
{
"size": 6500,
"azimuth": 271.61,
"configuration": "string inverter",
"dc_optimizer": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Aurora Sample DC Optimizer",
"count": 11
},
"microinverter": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Aurora Sample Microinverter",
"count": 11,
"rated_power": 400
},
"module": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"rating_stc": 300.25,
"name": "Aurora Sample Solar Panel",
"count": 11,
"orientation": "landscape"
},
"face": 1,
"ground_mounted": true,
"pitch": 20.25,
"string_inverter": {
"index": 1
},
"shading": {
"solar_access": {
"annual": 87.3,
"monthly": [
81.1,
82.2,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92
]
},
"total_solar_resource_fraction": {
"annual": 87.3
}
}
}
],
"string_inverters": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Aurora Sample String Inverter",
"rated_power": 42000
}
],
"storage_inverters": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Aurora Sample Storage Inverter",
"rated_power": 5800
}
],
"batteries": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Aurora Sample Battery",
"has_integrated_inverter": true
}
],
"energy_production": {
"up_to_date": true,
"annual": 2550.3,
"annual_offset": "87%",
"monthly": [
150.1,
150.2,
150,
200,
200,
200,
300,
300,
300,
200,
200,
200
],
"hourly": null
},
"storage_selected_operating_mode": "backup"
}
}
Considerations
- The following Sync API endpoints may be valuable for your integration:
- For development, Aurora will give you access to all API endpoints. Before releasing your app for general use, Aurora will limit your app to only access scopes it needs in order to protect customer data.
- The
units_of_measurement
field included in API responses will vary based on the customer’s preference. Be sure to convert units to your own measurement system. - If you need to change your app name, you may use the app config API.
Updated 5 months ago