Proposify integration
Proposify is proposal and quote software. With this API an agent can list, create and update clients (contacts) and companies, list account users, create, read and update documents (proposals) and list templates in New Proposify (3.0), manage legacy Proposify (2.0) documents (create from a template, update, add content-library sections, set custom fields, archive, unarchive, delete archived) and register webhooks for document events (created, sent, viewed, signed, won, lost, commented). Legacy Proposify (2.0) is deprecated by the vendor (no new features, no removal date announced); its tools are named legacy and only work for accounts still on 2.0. The API is available on the Business plan. Not exposed: the OAuth client administration routes (Proposify staff only), and in outputs the document password, its preview and PDF download links, and clients' phone numbers and street addresses. Authentication is OAuth2 (authorization code with refresh) against connect.proposify.com, sent as a Bearer token; an account admin creates the account's single OAuth client (client ID and secret) under Settings, Connect API.
Say what should happen.
The workflow builds itself.
What you can do with Proposify
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Document, 7 operations
create_documentCreate documentPOSTCreates a New Proposify (3.0) document, optionally from a template. Queued: returns contentId and eventId. A content status of SENT marks it sent; the docs do not say if that emails the client, so omit status unless asked to send.create_legacy_documentCreate legacy documentPOSTCreates a legacy Proposify (2.0) document for a client, owned by a user, optionally from a template (preset_id). Creation is queued: the returned id can be read with get_legacy_document once done.delete_archived_legacy_documentDelete archived legacy documentDELETEPermanently deletes a legacy Proposify (2.0) document. Only an archived document can be deleted (archive it first with archive_legacy_document); otherwise the call fails with 409. Cannot be undone.get_documentGet documentGETReturns one New Proposify (3.0) document: name, status (DRAFT, ACTIVE, WON, LOST), lock state, dates, creator, and data with price, company, person, assignee and sent and won dates.get_legacy_documentGet legacy documentGETReturns one legacy Proposify (2.0) document: owner, client, currency, totals, display settings, status, tags and custom fields.update_documentUpdate documentPATCHUpdates a New Proposify (3.0) document (name, folder, expiry, content, is_deleted soft delete); sent fields overwrite stored values. Status SENT marks it sent (the docs do not say if that emails the client), WON or LOST closes it. No body.update_legacy_documentUpdate legacy documentPATCHUpdates fields of a legacy Proposify (2.0) document and returns it. Only the fields sent change; this overwrites their stored values.
Client, 3 operations
create_clientCreate clientPOSTCreates a client (contact), optionally attached to a company, and returns it. With use_company_address true the client takes its company's address and company_id is required.list_clientsList clientsGETLists clients (contacts), optionally filtered by id, company, first name, last name or email. Returns names, email, title, company and integration ids (personal data).update_clientUpdate clientPATCHUpdates a client (contact) and returns it. Only the fields sent change; this overwrites the stored values.
Company, 3 operations
create_companyCreate companyPOSTCreates a company and returns it.list_companiesList companiesGETLists companies, optionally filtered by id or name. Returns each company's id, name, address, website and integration ids.update_companyUpdate companyPATCHUpdates a company and returns it. Only the fields sent change; this overwrites the stored values.
Webhook, 3 operations
create_webhookCreate webhookPOSTRegisters a webhook so Proposify notifies url when the chosen document events happen. Accepted asynchronously, returns no body; check list_webhooks. The docs do not describe url requirements or delivery signing.delete_webhookDelete webhookDELETEDeletes a webhook, so its url stops receiving events. Cannot be undone.list_webhooksList webhooksGETLists the webhooks registered on the account (id and name). The vendor declares data as a single object, so it may hold one webhook or a list of them. Use an id with delete_webhook.
Section, 2 operations
add_legacy_document_sectionAdd legacy document sectionPOSTAdds a content-library section (from list_legacy_sections) to a legacy Proposify (2.0) document, at the end or at a 1-based position, and returns the updated document.list_legacy_sectionsList legacy sectionsGETLists the legacy Proposify (2.0) content-library sections (id, group, sort order, path). Pass an id to add_legacy_document_section.
Archive, 1 operation
archive_legacy_documentArchive legacy documentPOSTArchives a legacy Proposify (2.0) document. The change is queued: archive_change_pending is true when accepted, and archive shows the stored state until then; re-read with get_legacy_document to confirm.
Content, 1 operation
list_contentList contentGETLists New Proposify (3.0) templates or documents (contentType template or document): id, name, status, lock state, dates, owner and price data. Pass a template id as fromTemplateId to create_document.
Custom field, 1 operation
set_legacy_document_custom_fieldsSet legacy document custom fieldsPOSTSets or updates custom field values on a legacy Proposify (2.0) document, overwriting the current values of the named fields, and returns the document's custom fields.
Template, 1 operation
list_legacy_templatesList legacy templatesGETLists the legacy Proposify (2.0) templates of the account (id and name). Pass an id as preset_id to create_legacy_document.
Unarchive, 1 operation
unarchive_legacy_documentUnarchive legacy documentPOSTRestores an archived legacy Proposify (2.0) document. The change is queued: archive_change_pending is true when accepted, and archive shows the stored state until then; re-read with get_legacy_document to confirm.
User, 1 operation
list_usersList usersGETLists the users of the Proposify account (id, email, first and last name, title). Pass an id as user_id when creating a legacy document.
Use Proposify from Claude Code, Cursor or Codex
Connect Proposify in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Proposify operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Proposify
- Create your workspace
Sign up free. Nothing to install.
- Connect Proposify once
Add your Proposify connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Proposify integration FAQ
What can you do with the Proposify integration?
LiveContext exposes 24 operations on Proposify, covering document, client, company and webhook.
