POST
/
v3
/
proposals

Body

company_id
number
required

The ID of the Proposales company that the proposal draft should belong to.

language
string
required

A two-letter ISO 3166-1 alpha-2 language code indicating the language of the proposal.

background_image
object

Background image id and uuid. Can be fetched from a template.

background_video
object

Background video id and uuid. Can be fetched from a template.

title_md
string

The proposal title as Markdown. Only data URLs for variables are supported, other formatting syntax is ignored.

description_md
string

The proposal description as Markdown. We support # for headers, * for bold, a < prefix for left-aligned paragraphs and data URLs for variables (see example).

recipient
object

The recipient of the proposal. Can either be a new recipient, or existing one.

Needs to be this shape:

{ id: number } |
{
  first_name?: string;
  last_name?: string;
  email?: string;
  phone?: string;
  company_name?: string;
  sources?: {
    integration?: {
      // Integration ID
      id: number;
      // Unique identifier for the integration contact
      contactId: string;
      // Optional integration metadata
      metadata: Record<string, unknown>;
    }
  }
}
data
object

Proposal metadata. This data is used to fill in variables in the description. Metadata is preserved when a draft is sent, making it ideal for attaching custom data to proposals.

blocks
array

A list of blocks to be added to the draft. The content_id must be the variation_id of the product in the content library. Additional block data can be passed to overwrite the content library defaults.

Video blocks can also be added, by passing in the video url, title, and setting the block type to video-block.

Needs to satisfy this shape:

(
  { content_id: number } |
  {
    type: 'video-block',
    video_url: string,
    title: string,
  }
)[]
attachments
array

A list of attachments to be added to the draft. Attachments will be fetched from the provided URL and hosted reliably by Proposales.

Needs to be this shape:

{
  mime_type: string
  name: string
  url: string
}[]

Response

proposal
object