This endpoint is used by the Portal.io Zapier integration. It fires when a proposal’s status changes in your Portal.io account — for example, when a proposal moves from Draft to Submitted, or from Submitted to Accepted. Each Zapier subscription can filter by specific statuses so that your Zap only triggers on transitions you care about.Documentation Index
Fetch the complete documentation index at: https://docs.portal.io/llms.txt
Use this file to discover all available pages before exploring further.
Endpoint
Headers
| Header | Required | Description |
|---|---|---|
Accept | Yes | Must be application/json |
Response
A200 response returns the full proposal details including customer information, areas with line items, financial summary, profit breakdown, recurring services, change orders, and links to generated documents.
Response Fields
| Field | Type | Description |
|---|---|---|
id | integer | Proposal ID. |
number | integer | Human-readable proposal number. |
name | string | Display name of the proposal. |
status | string | Current proposal status (see statuses). |
total | number or null | Total proposal amount. |
customer | object or null | Customer contact (see customer fields). |
proposalPdf | string or null | URL to client PDF. Only populated when status is Accepted. |
proposalCsv | string or null | URL to CSV export. Only populated when status is Accepted. |
installerPdf | string or null | URL to installer PDF. Only populated when status is Accepted. |
salesPerson | string | Full name of the assigned salesperson. |
salesPersonEmail | string | Salesperson email address. |
areas | array or null | Proposal areas with options and line items (see area fields). |
financialSummary | object or null | Financial breakdown (see financial summary fields). |
profit | object or null | Profit breakdown (percentage, total, labor profit, part profit). |
recurringServices | object or null | Recurring services summary, if enabled. |
changeOrders | array | Associated change orders. |
Proposal Statuses
| Value | Description |
|---|---|
Undefined | Unset/default status. |
Draft | Proposal is being edited, not yet sent. |
Submitted | Sent to the client. |
ViewedByClient | Client has opened the proposal. |
Accepted | Client has accepted the proposal. |
Declined | Client has declined. |
Delayed | Proposal has been delayed. |
Completed | Proposal is marked complete. |
EmailFailed | Delivery email failed. |
Expired | Proposal has expired. |
Customer Fields
| Field | Type | Description |
|---|---|---|
id | integer | Contact ID. |
partyType | string | One of Undefined, Person, Company. |
contactType | string | One of Undefined, Client, Employee, Contractor, Other. |
firstName | string | First name. |
lastName | string | Last name. |
companyName | string | Company name, when applicable. |
contactEmail | string | Primary email. |
contactEmailCC | string | CC email address. |
contactPhone | string | Primary phone number. |
location | object | Primary location with id, street, suite, city, postalCode, state, stateAbbrev, country, phone. |
Area Fields
| Field | Type | Description |
|---|---|---|
id | integer | Area ID. |
name | string | Area name. |
options | array | Area options, each containing id, status, lastModifiedDate, clientDescription, installerDescription, items, total, totalRecurringService. |
items array contains line items with:
| Field | Type | Description |
|---|---|---|
id | integer | Item ID. |
parentId | integer | Parent item ID. |
itemType | string | One of Part, Labor, CustomItem, Fee. |
referencedItemId | integer | Catalog item ID reference. |
brand | string | Item brand. |
model | string | Item model. |
description | string | Full description. |
name | string | Item name. |
shortDescription | string | Short description. |
quantity | number | Quantity. |
sellPrice | number | Sell price per unit. |
cost | number | Cost per unit. |
Financial Summary Fields
| Field | Type | Description |
|---|---|---|
partsSubtotal | number | Parts subtotal before discount. |
partsTotal | number | Parts total after discount. |
laborTotal | number | Total labor cost. |
feeTotal | number | Total fees. |
proposalSubtotal | number | Subtotal before tax. |
proposalTotal | number | Grand total including tax. |
This endpoint is designed for the Portal.io Zapier integration. If you are building a direct integration, consider using the webhook subscription endpoints instead.