> ## Documentation Index
> Fetch the complete documentation index at: https://help.fieldpulse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Outbound webhook payload envelope and event schemas for Jobs, Estimates, and Invoices.

## Disclaimer

Webhook setup and configuration must be facilitated by FieldPulse Support.

## Payload Envelope

All outbound webhook requests use this top-level JSON envelope:

```json theme={null}
{
  "trigger": "Event Name",
  "message": "ACTION ON RESOURCE [FOR FIELD_NAME]",
  "data": {},
  "company": "FieldPulse_<CompanyTitle>_<CompanyId>"
}

```

### `data` Variants

Depending on trigger configuration, `data` is one of:

1. **Object-only payload**

```json theme={null}
{
  "id": 12345,
  "...": "event-specific fields"
}

```

**2. Change payload (field/subfield updates)**

```json theme={null}
{
  "old_value": "previous value",
  "new_value": "updated value",
  "object": {
    "id": 12345,
    "...": "event-specific fields"
  }
}

```

***

## Jobs

### 1) New Job Creation

* **Event Name:** `Job Created`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Job Created",
  "message": "CREATE ON JOBS",
  "data": {
    "id": 9876,
    "job_type": "service",
    "customer_id": 456,
    "status": "Scheduled",
    "status_id": 3,
    "status_workflow_id": 9,
    "in_progress_status_log": null,
    "updated_at": "2026-04-14 10:30:00"
  },
  "company": "FieldPulse_Acme Services_321"
}

```

### 2) Job Status Update

* **Event Name:** `Job Custom Status Update`

* **Event Name:** `Job Workflow Custom Status Update`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Job Custom Status Update",
  "message": "UPDATE ON JOBS FOR status_id",
  "data": {
    "old_value": 3,
    "new_value": 4,
    "object": {
      "id": 9876,
      "job_type": "service",
      "customer_id": 456,
      "status": "In Progress",
      "status_id": 4,
      "status_workflow_id": 9,
      "in_progress_status_log": "{\"started_at\":\"2026-04-14 10:20:00\"}",
      "updated_at": "2026-04-14 10:31:15"
    }
  },
  "company": "FieldPulse_Acme Services_321"
}

```

### 3) Job Schedule/Date Time Edit (Reschedule)

* **Event Name:** `Job Start Time Update`

* **Event Name:** `Job End Time Update`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Job Start Time Update",
  "message": "UPDATE ON JOBS FOR start",
  "data": {
    "old_value": "2026-04-15 09:00:00",
    "new_value": "2026-04-15 11:00:00",
    "object": {
      "id": 9876,
      "job_type": "service",
      "updated_at": "2026-04-14 10:35:11"
    }
  },
  "company": "FieldPulse_Acme Services_321"
}

```

***

## Estimates

### 1) New Estimate Creation

* **Event Name:** `Estimate Created`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Estimate Created",
  "message": "CREATE ON ESTIMATES",
  "data": {
    "id": 1122,
    "customer_id": 456,
    "author_id": 77,
    "title": "Spring HVAC Upgrade",
    "status": "Draft",
    "status_id": 1,
    "status_workflow_id": 2,
    "total": 1845.5,
    "subtotal": 1700.0,
    "tax": 145.5,
    "discount": 0,
    "updated_at": "2026-04-14 09:12:00"
  },
  "company": "FieldPulse_Acme Services_321"
}

```

### 2) Estimate Status Update

* **Event Name:** `Estimate Custom Status Update`

* **Event Name:** `Estimate Workflow Custom Status Update`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Estimate Custom Status Update",
  "message": "UPDATE ON ESTIMATES FOR status_id",
  "data": {
    "old_value": 1,
    "new_value": 2,
    "object": {
      "id": 1122,
      "customer_id": 456,
      "author_id": 77,
      "title": "Spring HVAC Upgrade",
      "status": "Sent",
      "status_id": 2,
      "status_workflow_id": 2,
      "total": 1845.5,
      "subtotal": 1700.0,
      "tax": 145.5,
      "discount": 0,
      "updated_at": "2026-04-14 09:24:18"
    }
  },
  "company": "FieldPulse_Acme Services_321"
}

```

***

## Invoices

### 1) New Invoice Creation

* **Event Name:** `Invoice Created`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Invoice Created",
  "message": "CREATE ON INVOICES",
  "data": {
    "id": 3344,
    "customer_id": 456,
    "author_id": 77,
    "title": "Invoice #3344",
    "status": "Draft",
    "status_id": 1,
    "status_workflow_id": 8,
    "total": 2150.0,
    "subtotal": 2000.0,
    "tax": 150.0,
    "discount": 0,
    "updated_at": "2026-04-14 11:01:00"
  },
  "company": "FieldPulse_Acme Services_321"
}

```

### 2) Invoice Status Update

* **Event Name:** `Invoice Custom Status Update`

* **Event Name:** `Invoice Workflow Custom Status Update`

* **Example Payload Schema:**

```json theme={null}
{
  "trigger": "Invoice Custom Status Update",
  "message": "UPDATE ON INVOICES FOR status_id",
  "data": {
    "old_value": 1,
    "new_value": 3,
    "object": {
      "id": 3344,
      "customer_id": 456,
      "author_id": 77,
      "title": "Invoice #3344",
      "status": "Paid",
      "status_id": 3,
      "status_workflow_id": 8,
      "total": 2150.0,
      "subtotal": 2000.0,
      "tax": 150.0,
      "discount": 0,
      "updated_at": "2026-04-14 11:17:43"
    }
  },
  "company": "FieldPulse_Acme Services_321"
}

```
