We've launched a new documentation site. Visit docs.portal.io for the latest version.

Webhook Events

Proposal Build Status Changed

Triggered when AI proposal build generation finishes successfully or fails. Create a webhook subscription with the event "proposal.build.status_update".

Responses
200

Delivered payload

Response Schema: application/json
id
required
string

Unique webhook delivery identifier.

type
required
string

Webhook event type name.

created
string <date-time>

UTC timestamp when the webhook delivery was created.

required
object (AiProposalBuildWebhookData)

AiProposalBuildWebhookData

post/public/webhook/events/proposal.build.status_update
Request samples
Response samples
application/json
{
  • "id": "string",
  • "type": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Proposal Outline Status Changed

Triggered when AI proposal outline generation finishes successfully or fails. Create a webhook subscription with the event "proposal.outline.status_update".

Responses
200

Delivered payload

Response Schema: application/json
id
required
string

Unique webhook delivery identifier.

type
required
string

Webhook event type name.

created
string <date-time>

UTC timestamp when the webhook delivery was created.

required
object (PublicAiProposalOutlineGetResponse)

PublicAiProposalOutlineGetResponse

post/public/webhook/events/proposal.outline.status_update
Request samples
Response samples
application/json
{
  • "id": "string",
  • "type": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Proposal Status Changed

Triggered when the status of a proposal changes. Create a webhook subscription with the event "proposal.status_changed".

Responses
200

Delivered payload

Response Schema: application/json
id
required
integer <int32>

Unique identifier for the proposal. Use this id for subsequent API calls that reference the proposal.

createdDate
required
string <date-time>

UTC timestamp when the proposal was initially created. Returned in ISO 8601 format.

clientLastDecisionDate
string <date-time>

UTC timestamp when the client last accepted or declined the proposal. Null if no client decision has been recorded.

lastCompletedDate
string <date-time>

UTC timestamp when the proposal last reached a completed state, if applicable.

lastModifiedDate
required
string <date-time>

UTC timestamp when the proposal was last modified by any user or system process.

lastModifiedByUserDate
required
string <date-time>

UTC timestamp when the proposal was last modified by a human user (not an automated system update).

required
object (PublicFinancialSummaryModel)

Financial totals, discounts, tax, and currency values for the proposal

Array of objects (PublicChangeOrderModel)

List of change orders associated with this proposal. Each item contains details of scope changes, price adjustments, and approval state.

number
required
integer <int32>

Proposal number unique within the dealer account.

name
required
string

Display name of the proposal.

status
required
string

The current status of the resource.

Enum: "Undefined" "Draft" "Submitted" "ViewedByClient" "Accepted" "Declined" "Delayed" "Completed" "EmailFailed" "Expired"
lastSubmittedDate
string <date-time>

UTC timestamp when the proposal was last submitted to the customer.

clientLastOpenedDate
string <date-time>

UTC timestamp when the customer last opened the proposal viewer link.

object (PublicCustomerModel)

Customer contact

required
object (PublicDealerModel)

Dealer information

coverpageImageUrl
string

Absolute URL of the proposal cover image, when one is available.

aboutUs
string

The about us text for the company profile.

projectDescription
string

A description of the project.

Array of objects (PublicAreaModel)

The list of areas.

object (PublicProfitModel)

Profit summary for the proposal

object (PublicRecurringServicesModel)

Recurring service summary associated with the proposal.

object (PublicPaymentScheduleModel)

Payment schedule configuration for the proposal, including the customer-facing description and individual payment milestones.

Array of objects (PublicPaymentRequestModel)

Payment requests already issued for this proposal.

projectTerms
string

The terms and conditions for the project.

required
object (PublicUserModel)

User summary returned within proposal detail responses

post/public/webhook/events/proposal.status_changed
Request samples
Response samples
application/json
{
  • "id": 0,
  • "createdDate": "2019-08-24T14:15:22Z",
  • "clientLastDecisionDate": "2019-08-24T14:15:22Z",
  • "lastCompletedDate": "2019-08-24T14:15:22Z",
  • "lastModifiedDate": "2019-08-24T14:15:22Z",
  • "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
  • "financialSummary": {
    },
  • "changeOrders": [
    ],
  • "number": 0,
  • "name": "string",
  • "status": "Undefined",
  • "lastSubmittedDate": "2019-08-24T14:15:22Z",
  • "clientLastOpenedDate": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "dealer": {
    },
  • "coverpageImageUrl": "string",
  • "aboutUs": "string",
  • "projectDescription": "string",
  • "areas": [
    ],
  • "profit": {
    },
  • "recurringServices": {
    },
  • "paymentSchedule": {
    },
  • "paymentRequests": [
    ],
  • "projectTerms": "string",
  • "lastModifiedUser": {
    }
}