How to integrate proposals with Salesforce: opportunity in, status and value out

Redactie Proposal Expert ยท

Updated on 21 September 2026 by the Proposal Expert editorial team

A practical guide to connecting proposal software to Salesforce: what a proposal integration reads from an opportunity, what it writes back, how to set it up with OAuth, and the Salesforce-specific things to check.

Related

What does a proposal integration with Salesforce do?

It links an opportunity to a proposal document and keeps the two in step. Inbound, the proposal tool reads the opportunity (name, amount, stage, close date), the account and its address, the contact roles, and the opportunity products, and fills the proposal with them. Outbound, it writes the proposal status to the opportunity, can set the amount to the signed value and replace the opportunity products with the signed selection, and moves the stage when the client signs. The difference with HubSpot is mostly in the plumbing: Salesforce has no proposal-friendly webhooks for a connected app, so changes on the Salesforce side reach the proposal tool through a five-minute poll, and the objects are called opportunity, account, contact role and product instead of deal, company, contact and line item. Everything below describes Proposal Expert.

Step 1: connect Salesforce with OAuth

Open Settings, then Integrations, and choose Salesforce. You are sent to Salesforce to sign in and approve the connected app; the app uses OAuth with PKCE, so no password or security token is stored in the proposal tool. Sandbox and production orgs are connected separately, which is useful for testing the field mapping on a sandbox first. Access tokens are short-lived and refreshed automatically; if a Salesforce admin revokes the app, the connection shows as disconnected and no data moves until it is reconnected.

Step 2: choose the record types and map the fields

Pick which opportunity record types or pipelines feed proposals. Then map the fields: opportunity name to proposal title, account name and billing address to the client block, the primary contact role to the recipient, and the amount to the pricing total. Custom fields on the opportunity can be mapped to proposal fields, for example a contract number that has to appear on the cover. Map the stages last: which proposal status sets which opportunity stage. Only stages that exist in the sales process of the chosen record type can be selected, which prevents the classic mistake of pushing an opportunity into a stage its process does not allow.

Step 3: create the proposal from the opportunity

Choose New proposal, search the opportunity by name or account, and pick it. The account, contact, amount and opportunity products are filled in: each product line becomes a pricing row with quantity, unit price and the line discount, converted from the percentage Salesforce stores to what the pricing table shows. The proposal opens in the editor with your template; the rep writes or generates the narrative sections and sends the proposal as a secure link. The opportunity now shows the proposal as sent.

Step 4: status back to the opportunity

Every lifecycle event, sent, viewed, signed or declined, is written to the opportunity as an activity, so it is visible on the record and available to reports and flows. Views are deduplicated per opportunity per day. When the client signs, the stage moves to the stage you mapped, usually Closed Won or a contract stage. Changes made in Salesforce, such as a renamed opportunity or a new contact role, reach the proposal tool through the incremental poll that runs every five minutes; the proposal list updates without a manual refresh.

Step 5: amount and product writeback, opt-in

Writing the amount and the opportunity products back is off by default and switched on per connection, because it changes numbers in your pipeline. Turn it on when the proposal is what the client signs. On signature, the integration replaces the opportunity products with the signed selection, so an optional item the client declined disappears from the opportunity, sets the amount to the signed total and advances the stage, in one job that is idempotent: a retry never duplicates products or activities. Line discounts are written as the percentage Salesforce expects, converted from the proposal's absolute discount and rounded so the round trip matches to the cent.

Salesforce-specific things to check

Three checks that are specific to Salesforce. Currency: the integration reads the currency ISO code only on multi-currency orgs; single-currency orgs fall back to the org currency, so confirm it matches the proposal currency. Pricebooks: opportunity products come from the pricebook on the opportunity, and a proposal created from an opportunity without products starts with an empty pricing table, which is normal. Permissions: the user who connects needs read access to opportunities, accounts, contacts and products and write access to opportunities and activities; a profile without write access to the stage field produces a proposal that syncs everything except the stage change. Test all three on a sandbox opportunity before connecting production.

FAQ: does the integration need a Salesforce AppExchange package?

No. It is a connected app authorised through OAuth from the proposal tool; nothing is installed in your org and no custom objects are created. Activities are written as standard tasks and the stage is updated through the standard API. That also means a Salesforce admin can see and revoke the app under Connected Apps at any time.

FAQ: how fast do Salesforce changes show up in the proposal tool?

Within five minutes, because Salesforce changes are picked up by a scheduled incremental sync rather than pushed. Proposal events go the other way immediately. If you need a change in Salesforce reflected right now, the Sync now button on the integration page runs the sync on demand.

FAQ: can we keep quoting in Salesforce CPQ and only use the proposal for the narrative?

Yes. Leave the amount and product writeback off, and use the proposal tool for the document the client reads and signs while CPQ stays the source of the numbers. The status and the signature still flow back to the opportunity, so the forecast stays current. If the proposal contains optional items the client can choose, consider turning writeback on for that record type only, so the chosen selection reaches the opportunity.