Skip to main content

ProLine Webhooks

How to use ProLine webhooks to send data to other platforms

Written by Oliver Watts

Overview: What Are Webhooks?

Webhooks are a way for ProLine to automatically send data to another platform in real time when a specific event occurs.

Instead of another system repeatedly checking ProLine for updates, ProLine pushes information out to a destination URL as soon as something happens—such as a project being created, a quote being approved, or an invoice being sent.

Webhooks are commonly used to:

  • Sync data with external CRMs or accounting systems

  • Trigger custom automations outside of ProLine

  • Pass ProLine data into middleware tools (Zapier, Make, custom APIs)

Important: These Webhooks are outbound only. They send data from ProLine to another system.


When Should You Use Webhooks?

Use webhooks when you need to:

  • Send ProLine data to a non-native integration

  • Trigger custom logic or automation outside ProLine

  • Keep an external system updated in near real time

  • Pass structured ProLine data to:

    • Custom-built software

    • Middleware tools (Zapier, Make, AWS, etc.)

    • Third-party dashboards or reporting tools

Good webhook use cases:

  • Syncing project, quote, or invoice data to another system

  • Automatically creating or updating records in an external platform

  • Passing intake form data into ProLine notes via a third-party form tool


When Should You NOT Use Webhooks?

Do not use webhooks when:

  • The task can be handled by ProLine Workflows

    • Sending emails or texts

    • Updating project or job stages

    • Creating internal tasks

    • Tagging records

  • You need two-way communication (webhooks are one-way only)

  • You need guaranteed delivery or retry logic

  • The receiving system cannot accept or process JSON payloads

  • You are expecting webhooks to modify data inside ProLine

Rule of thumb:

If the automation can be done entirely inside ProLine, use Workflows, not webhooks.


Webhook Limitations & Restrictions

Before using webhooks, be aware of the following limitations:

  • Outbound only

    • Webhooks send data out of ProLine; they cannot write data back into ProLine

  • No guaranteed delivery

    • If the destination URL is unavailable or errors, the webhook may fail

  • Limited retry behavior

    • ProLine does not guarantee repeated retries on failed webhook deliveries

  • Timing considerations

    • Webhooks may fire before other downstream workflow steps complete

  • Payload structure

    • Only documented fields should be relied on

    • Payloads may evolve over time

  • Technical setup required

    • The receiving system must be able to:

      • Accept HTTP POST requests

      • Parse JSON payloads

      • Handle duplicate or missed events gracefully

Because of these restrictions, webhooks are best managed by technical teams or third-party integration tools.


How to Add a New Webhook in ProLine

  1. Go to the Integrations page

  2. Open the API section

  3. Select the Webhooks tab

  4. Click Add Webhook


Webhook Configuration Options

Webhook Trigger

Choose when the webhook should fire:

  • Project Created

  • Project Created or Updated

  • Quote Sent or Approved

  • Invoice Sent or Approved

URL

Enter the destination URL where ProLine will send the webhook payload.

Stage Filter (Optional)

If you select a project-based trigger, you can limit the webhook to fire only when the project is in specific stages.


Webhook Payload Schemas

Below are example payload structures for common webhook types.

Project Payload

{ "project_name":"string", "project_number":"string", "project_id":"string", "location":"string", "area":"string", "type":"string", "category":"string", "services":"string", "tags":"string", "status":"string", "stage":"string", "stage_id":"string", "address1":"string", "address2":"string", "city":"string", "state":"string", "zip":"string", "assigned_to_id":"string", "assigned_to_email":"string", "assigned_to_name":"string", "notes":"string", "contact_id":"string", "contact_fname":"string", "contact_lname":"string", "contact_phone":"string", "contact_email":"string" }

Quote Payload

{ "project_name":"string", "project_number":"string", "project_id":"string", "quote_name":"string", "quote_id":"string", "share_link":"string", "pdf_doc":"string", "status":"string", "sent_date":"string", "approved_date":"string", "approved_total":"string" }

Invoice Payload

{ "project_name":"string", "project_number":"string", "project_id":"string", "invoice_name":"string", "invoice_number":"string", "invoice_id":"string", "type":"string", "status":"string", "share_link":"string", "pdf_doc":"string", "total":"string", "amount_due":"string", "balance":"string", "sent_date":"string", "paid_date":"string" }

Example Use Case: Intake Forms to Project Notes

Webhooks can be used to pass data from an external intake form into a ProLine project’s Notes field automatically.

This approach is recommended when:

  • The form tool is external to ProLine

  • The data must be captured automatically

  • Manual entry should be avoided

Ensure the receiving system maps form responses correctly into the notes field in the webhook payload.


Integration & Troubleshooting Tips

  • Field names must match exactly

    • Pay close attention to spelling and casing

  • Test before going live

    • Use sample data to confirm delivery and mapping

  • Validate your destination URL

    • Ensure it accepts POST requests and returns valid responses

  • Plan for failures

    • External systems should handle duplicates or missed events gracefully

  • Use Workflows where possible

    • Webhooks should not replace native ProLine automation


Summary

  • Webhooks are best for sending ProLine data to external systems

  • They are not a replacement for Workflows

  • They require technical setup and maintenance

  • Understanding their limitations helps avoid failed integrations and escalations

If you need automation inside ProLine, use Workflows.

If you need data outside ProLine, use Webhooks.

Did this answer your question?