How to Integrate Enerflo with my CRM
Overview
This guide is designed for Enerflo Partners building custom integrations with the Enerflo platform using Enerflo’s APIs and Webhook Events.
We’ll walk through common business use cases and best practices to help make the integration more approachable.
⚠️ Please note that CRM specific connectors and data structuring are outside the scope of this guide. We'll focus on the data exchanges and will leave the surrounding business logic to your team!
💡 If you’re interested in engaging Enerflo’s Professional Services team for a custom integration, please reach out to Enerflo Support or email [email protected] to schedule a free discovery conversation.
ℹ️ These common data exchanges may not be applicable for all use cases. We'll discuss each and you can choose what is useful for your specific objectives.
Glossary of Common Stages
Stage | Description |
---|---|
Stage 1: Leads | Get your lead/customer data into Enerflo to work and sign a deal. |
Stage 2: Enerflo Project Submission & Resubmission | When a contract is signed and a project is ready to proceed to installation, ship your Enerflo data to an external system. |
Stage 3: Updating Install Project Milestones | As project milestones are reached during installation, keep CRMs and Enerflo milestone synchronized. |
Stage 4: Updating Install Project Statuses | As the overall status of the install project changes, keep CRMs and Enerflo's project status synchronized. (Including Voided ) |
Stage 5: Updating Install Project Notes | Keep project notes synchronized between your CRM and Enerflo. |
Stage 6: Change Orders | Process changes to orders or agreements. |
Stage 1: Leads
1.1) 3rd-party >> Enerflo
|
Push lead & customer information from a <glossary:3rd-party> into Enerflo |
|
|
|
Enerflo |
|
Enerflo REST API: |
|
Documentation for :eyes: noteable callout, :point_up:this endpoint is multi-faceted and can also be used to create an appointment or to start a deal that's associated to the new lead you're creating. |
|
Determined by the user or 3rd-party |
|
WHEN a webform processes a new lead, THEN deliver the lead to Enerflo WHEN the status of a lead in my CRM is changed to 'qualified', THEN deliver the lead to Enerflo and create a deal. |
|
Ensure all data is validated, formatted, and packaged according to Enerflo’s API requirements before sending it. This may involve using additional processing tools or middleware, such as Zapier, to handle, map, and format your data correctly. |
1.2) Enerflo >> 3rd-party
|
Push lead & customer information from Enerflo to a <glossary:3rd-party> |
|
Enerflo |
|
<glossary:3rd-party> (such as CRM) |
|
Enerflo Event (such as v1 |
|
Definition of Enerflo 1.0 Events |
|
Enerflo event * *Requires an active Enerflo Webhook Event Subscription |
|
WHEN a new_customer event occurs in Enerflo, THEN push the lead to my CRM. |
|
The data in the Enerflo event payload may require further processing to meet the formatting and packaging requirements of your intended destination. This may involve using additional processing tools or middleware, such as Zapier, to prepare or map your data accurately. |
Stage 2: Enerflo Project Submission & Resubmission
|
Push data from an Enerflo Install Project to a <glossary:3rd-party> |
|
Enerflo |
|
<glossary:3rd-party> (such as CRM) |
|
Enerflo Event |
|
Definition of Enerflo 2.0 Events |
|
Enerflo 2.0 event(s) *:
*Requires an active Enerflo Webhook Event Subscription The If an install has been |
|
As a Sales Org, WHEN we submit a project one of our Installers, THEN push the install to my CRM. As an Installer, WHEN a Sales Org submits a project for me to fulfill, THEN push the install to my CRM and email my Ops Director. WHEN a previously voided install has been resigned, THEN push the newest resigned information to my CRM. |
|
The data in the Enerflo event payload may require further processing to meet the formatting and packaging requirements of your intended destination. This may involve using additional processing tools or middleware, such as Zapier, to prepare or map your data accurately. :eyes: Enerflo’s project submission events provide a wealth of data in the event payload. However, in some cases you may need data that isn't present in the event payload itself. In cases like this we recommend hydrating the event data with supplementary API calls. Here's an example that augments the event data with a complete Enerflo install object: Step 1: Receive the projectSubmitted or projectReceived event. **Step 2: **Extract the v2 deal ID from the event payload, located at **Step 3: **Use the ID from Step 2 as the {id} parameter in a GET request to |


Stage 3: Updating Install Project Milestones
A project milestone is a specific checkpoint in an install project that marks progress toward completion. A milestone is associated with key dates (such as a start date, due date, and a completion date). Multiple milestones can be active simultaneously, each tracking an essential step within the project timeline.

3.1) 3rd-party >> Enerflo
Use case | Update an Enerflo install project milestone based on data from a <<glossary:3rd-party>> |
Source of truth | <<glossary:3rd-party>> |
Data destination | Enerflo |
Data exchange tool | Enerflo REST API: PUT: /api/v3/installs/{id}/milestones/{milestoneId} |
Resources | Documentation for /api/v3/installs/{id}/milestones/{milestoneId} |
Trigger | Determined by the user or 3rd-party |
Possible design patterns | WHEN a rep updates my Monday.com project and sets a project's status to permitting complete , THEN update the Enerflo record and set the permitting project to completed using today's date. |
Data handling tips | Ensure all data is validated, formatted, and packaged according to Enerflo’s API requirements before sending it. This may involve using additional processing tools or middleware, such as Zapier, to handle, map, and format your data correctly. |
3.2) Enerflo >> 3rd-party
|
Push updated milestone data from Enerflo to a <glossary:3rd-party> when it changes in Enerflo. |
|
Enerflo |
|
<glossary:3rd-party> (such as CRM) |
|
Enerflo Event |
|
Definition of Enerflo 1.0 Events |
|
Enerflo 1.0 event: *Requires an active Enerflo Webhook Event Subscription |
|
WHEN a milestone is edited in Enerflo, THEN check to see if the milestone now has a completion date and if so, push that date into Salesforce. |
|
The data in the Enerflo event payload may require further processing to meet the formatting and packaging requirements of your intended destination. This may involve using additional processing tools or middleware, such as Zapier, to prepare or map your data accurately. |
Stage 4: Updating Install Project Statuses
4.1) 3rd-party >> Enerflo
Use case | Something happens outside of Enerflo and I want to update the status of the Enerflo Install Project. |
Source of truth | <<glossary:3rd-party>> |
Data destination | Enerflo |
Data exchange tool | Enerflo REST API: PUT: /api/v3/installs/{id}/ |
Resources | Documentation for /api/v3/installs/{id} |
Trigger | Determined by the user or 3rd-party |
Possible design patterns | WHEN my Ops team completes the final milestone in our CRM , THEN set the Enerflo Install Project status to Completed |
Data handling tips | Ensure all data is validated, formatted, and packaged according to Enerflo’s API requirements before sending it. This may involve using additional processing tools or middleware, such as Zapier, to handle, map, and format your data correctly. |
4.2) Enerflo >> 3rd-party
|
Inform a <glossary:3rd-party>CRM when the Enerflo Install project is |
|
Enerflo |
|
<glossary:3rd-party> (such as CRM) |
|
Enerflo Event ( v1 |
|
Definition of Enerflo 1.0 Events |
|
Enerflo event * *Requires an active Enerflo Webhook Event Subscription |
|
WHEN the |
|
The data in the Enerflo event payload may require further processing to meet the formatting and packaging requirements of your intended destination. This may involve using additional processing tools or middleware, such as Zapier, to prepare or map your data accurately. |
Stage 5: Updating Install Project Notes
5.1) 3rd-party >> Enerflo
Use case | A note or comment is created in my CRM and I want the same note to push into Enerflo so the Sales Rep can see it. |
Source of truth | <<glossary:3rd-party>> |
Data destination | Enerflo |
Data exchange tool | Enerflo REST API: POS: /api/v3/installs/{id}/notes} |
Resources | Documentation for api/v3/installs/{id}/notes |
Trigger | Determined by the user or 3rd-party |
Possible design patterns | WHEN my Ops team comments on the project in CRM , THEN replicate the note in the Enerflo Install tracker. |
Data handling tips | Ensure all data is validated, formatted, and packaged according to Enerflo’s API requirements before sending it. This may involve using additional processing tools or middleware, such as Zapier, to handle, map, and format your data correctly. |
5.1) Enerflo >> 3rd-party
|
A note is created on an Enerflo Install Project and I want the same note to sync/push to my <glossary:3rd-party>CRM. |
|
Enerflo |
|
<glossary:3rd-party> (such as CRM) |
|
Enerflo Event ( v1 |
|
Definition of Enerflo 1.0 Events |
|
Enerflo event * *Requires an active Enerflo Webhook Event Subscription |
|
WHEN the |
|
The data in the Enerflo event payload may require further processing to meet the formatting and packaging requirements of your intended destination. This may involve using additional processing tools or middleware, such as Zapier, to prepare or map your data accurately. |
Stage 6: Change Orders
|
A Change Order is processed and signed in Enerflo and I need my CRM record to remain synchronized with the same data. |
|
Enerflo |
|
<glossary:3rd-party> (such as CRM) |
|
Enerflo Event ( v1 |
|
Definition of Enerflo 1.0 Events |
|
Enerflo event * *Requires an active Enerflo Webhook Event Subscription |
|
WHEN a change order is signed, THEN pass the data into my CRM. |
|
The data in the Enerflo event payload may require further processing to meet the formatting and packaging requirements of your intended destination. This may involve using additional processing tools or middleware, such as Zapier, to prepare or map your data accurately. :eyes: When you process the event payload, be sure to extract relevant information about the change order, such as: |
Updated 15 days ago