Skip to main content

Webhooks: Setup, Management & Filtering

Learn how to access, add, edit, view, and filter webhooks in Enerflo to connect your platform to external tools and automate workflows.

Written by Alexis

Overview

Webhooks allow Enerflo to send real-time data to external platforms or services when specific events occur — such as a deal being created, a customer being updated, or an agreement being signed. This enables integrations with CRMs, automation tools, and other third-party systems without manual data transfers.

This article covers:

  • Accessing your webhooks

  • Adding new webhooks

  • Viewing and refiring webhooks

  • Editing existing webhooks

  • Filtering webhooks (controlling when they fire)

  • Testing webhook filter conditions

Note: For detailed event documentation including field definitions and payload examples, visit the Enerflo 1.0 Events and Enerflo 2.0 Events reference docs.

Accessing Webhooks

You can access webhooks from two locations depending on your organization type:

  • Sales Orgs: Go to Sales Company > Company Settings > Webhooks

  • EPCs / Installers: Go to EPC > Settings > Webhooks

Adding a New Webhook

  1. Navigate to your Webhooks page (see above) and click + Add New.

  2. Select the Event you'd like to trigger the webhook. Events are grouped by resource (for example, update_customer, new_agreement).

  3. Once an event is selected, an Event Description will appear automatically.

  4. Add a Name that describes what the webhook will do for your specific use case (for example, Push lead to CRM).

  5. Add the URL where the webhook payload should be sent.

  6. Optionally, add a Header Name and Header Value to pass parameters when the webhook fires. Note: dynamic headers are not currently supported.

  7. Click Create Webhook.

Viewing and Refiring Webhooks

  1. Click View next to the webhook you'd like to inspect.

  2. Select a specific customer to preview the JSON payload that will be sent.

  3. If the webhook relates to an agreement, you can select from the customer's available agreements and either Preview JSON Payload or Send JSON Payload to Webhook to refire it.

Editing Webhooks

While viewing a webhook, click Edit to modify any previously entered parameters such as the URL, name, or headers.

Webhook Filtering

Webhook filtering lets you control exactly when a webhook fires, so you only receive the events you care about. For example, the Deal Updated event fires every time any field on a deal changes — filtering lets you scope it to only fire when specific conditions are met, such as a deal moving to a certain stage or a specific field being updated.

Setting Up Filters

  1. When creating or editing a webhook subscription, scroll to the Conditions section.

  2. Add a rule by choosing the field, operator (equals, contains, does not equal, etc.), and value you want to match.

  3. Click Save.

  4. The webhook will now only fire when your conditions evaluate to true. If conditions aren't met, the event is logged as Filtered and not sent.

What Data Can You Filter On?

You can filter on any field available in the webhook payload for that event type. For the Deal Updated event, available fields include:

  • Deal properties: ID, short code, status, state, customer ID

  • Assignments: Sales rep, installer, disposition

  • Address fields: Street address, city, state, postal code

  • Change tracking:

    • previous.* — values before the update

    • current.* — values after the update

    • changes.* — only the fields that changed

  • Progress tracking: Fields added/modified/removed, files added/removed, stage changes

  • Metadata: Target org, who initiated the update

To see exactly what data is available for filtering, go to Settings > Webhooks > Jobs and inspect a recent webhook payload for the event type you're working with. You can also refer to the Enerflo v2 Event Definitions and Webhook Filtering documentation.

Example Filter Rules

The following examples use the Deal Updated event:

Only fire when a deal moves to the "generate-contract" stage:

  • Field: changes.progress.stages.current.to

  • Operator: equals

  • Value: generate-contract

Only fire for deals in a specific state:

  • Field: changes.properties.projectAddress.state

  • Operator: equals

  • Value: CA

Only fire when the selectedProposal field is modified:

  • Field: changes.progress.fields.modified

  • Operator: contains

  • Value: selectedProposal

Only fire when a deal has been assigned to a specific sales rep:

  • Field: current.salesRep.id

  • Operator: equals

  • Value: [sales rep user ID]

You can also combine multiple conditions using ALL (every condition must be true) or ANY (at least one condition must be true) group logic.

Testing Filter Conditions

Use the Condition Tester to verify your filter rules before relying on them:

  1. Paste a webhook job ID from a real event (found under Settings > Webhooks > Jobs).

  2. Click Test.

  3. Review the result:

    • ✓ Pass — Your conditions matched. This webhook would have been sent.

    • ✗ Fail — Conditions didn't match. This webhook would have been filtered (not sent).

    • Error — There's a problem with your rule logic, or the job ID doesn't exist.

Note: All condition fields must be filled in before the Test button becomes active.

Did this answer your question?