---
schema_version: "1"
id: 2f6c9ca0184ed72c610a6dfc7dd3fdc90ac3f371f42bb2ad692ef2f10083cfaf
title: Automate Pricing Proposals with Flow Builder
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/quip_automate_pricing_proposal.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.quip_automate_pricing_proposal.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 224c7fc83b691a9118535325c537b8651d2a2a309e68a9957f84ac2672c620c5
description: Save time manually creating and filling out Pricing Proposals with templates in Flow Builder. Use Process Builder and Flow Builder to automatically add a Pricing Proposal template to an Opportunity and generate an auto-populated proposal when the Opportunity stage is set to Proposal/Quote. When the Opportunity is set to Closed/Won, export the proposal to a PDF and attach it to the Opportunity for record keeping.
products:
  - Quip
  - Cross Cloud
release: "264"
---
# Automate Pricing Proposals with Flow Builder

Save time manually creating and filling out Pricing Proposals with templates in Flow Builder. Use Process Builder and Flow Builder to automatically add a Pricing Proposal template to an Opportunity and generate an auto-populated proposal when the Opportunity stage is set to Proposal/Quote. When the Opportunity is set to Closed/Won, export the proposal to a PDF and attach it to the Opportunity for record keeping.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Lightning Experience</strong></td></tr></tbody></table>

## Set Up the Quip Document Component

Set up the Quip Document component on the Opportunity page layout. Create a Pricing Proposal custom URL field to store Pricing Proposals created from your template.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Lightning Experience</strong></td></tr></tbody></table>

1. Navigate to an Opportunity record in Lightning Experience.
2. Click the gear icon, and select **Edit Page** to go to the Lightning App Builder.
3. Create a new tab called Pricing Proposal.
4. In the left pane, select **Quip Document** and drag it to your new tab.
    
    ![Quip Document component in Lightning App Builder](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_doc_component_pricing_proposal.png)
5. Select **One template for each record**.
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/images/icon_note.png)
    
    Note One template for each record lets you add a template via Flow Builder or lets your users manually add a template. To use Flow Builder only, select **Different Docs for each record**.
6. Click **![Edit icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/button_edit_pencil.png).** You can either paste your Pricing Proposal template URL or select a template from the Template Library.
7. Click **Next** and validate the template. The validation checks that you have access to the document, that link sharing is turned on, that the document is marked as a template, and that it isn’t a slide.
8. To create a custom URL field to store the new document URLs, select **Create a new field**.
9. Enter Pricing Proposal as the field label and Pricing\_Proposal field name. You can make changes later from the Object Manager.
    
    ![Create a Custom Field modal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_custom_url_field_modal_228.png)
10. Save and activate the page.

To add your Pricing Proposal template to the Quip Document component and to automate Pricing Proposal creation, create actions in Flow Builder and Process Builder.

## Create a Pricing Proposal Template

Use Flow Builder to add your Pricing Proposal template to the Opportunity and to automatically populate Pricing Proposals created from it.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Lightning Experience</strong></td></tr></tbody></table>

1. From the Quick Find box in Setup, enter Flows.
2. Click **New Flow**.
3. Select **Autolaunched Flow** and click **Next**.
    
    Flow Builder displays the flow in the Auto-Layout flow layout. You can access Interactions, Logic, and Data via the plus icon.
    
    Process Builder later launches the flow when an Opportunity stage is changed.
4. Drag the Action element onto the canvas.
5. Select **Quip**.
6. Enter Copy Quip Document as the Quip action.
7. Name the action Create Pricing Proposal from Template. To auto-create the API name, press **Tab**.
    
    ![New Action modal with Document URL and Source Record ID highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_new_action_pricing_proposal.png)
8. Enter the Document URL for the Pricing Proposal.
9. Include the Source Record ID. Under Source Record ID, click **\+ New Resource**.
10. Select **Variable** as the Resource Type.
11. Enter the API name OpportunityRecord.
    
    ![New Resource modal with fields highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_new_variable_pricing_proposal.png)
12. Select **Record** as the Data Type.
13. Select **Opportunity** as the Object.
14. Select **Available for input** and click **Done**.
15. When you get the “Data type of the resource you entered isn’t compatible” error for the Source Record ID, enter .id after OpportunityRecord. Select **Opportunity ID**.
    
    ![Opportunity ID highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_flow_opportunityrecordid.png)
16. Under Advanced, select **Manually assign variables**. Under Store Output Values, click **Document Link** and select **\+ New Resource**.
    
    ![Manually assign variables checkbox](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_manually_assign_pricing_proposal.png)
17. Select **Variable** as the Resource Type.
    
    ![New Resource modal with Resource Type, API Name, and Data Type highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_new_resource.png)
18. Enter NewDocumentURL as the API Name.
19. Select **Text** as the Data Type. Click **Done**, then **Done**.
20. Drag the Update Records onto the canvas.
21. Name the action Update Opportunity Record. To auto-create the API name, press **Tab**.
    
    ![Update Records modal](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_new_update_record_pricing_proposal.png)
22. Select **Specify conditions to identify records, and set fields individually**.
23. Enter Opportunity as the Object.
24. Under Filter Opportunity Records, enter Id as the Field, select **Equals**, and enter {!OpportunityRecord.Id}.
25. Under Set Field Values for the Opportunity Records, enter Pricing\_Proposal\_\_c as the Field and {!NewDocumentURL} as the Value. Click **Done**.
26. Connect the elements and click **Save**.
    
    ![flow canvas with Start, Create Pricing Proposal, and Update Records](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_flow_pricing_proposal_layout.png)
27. Name the flow. For this example, we use the name Create Pricing Proposal from Template. To auto-create the API name, press **Tab**. Click **Save**.
28. Click **Activate**.

## Trigger the Process

Create a process that launches the Pricing Proposal flow when an Opportunity stage is changed to Proposal/Quote. When a user updates the Opportunity stage to Proposal/Quote, a Pricing Proposal is created from the attached template and autopopulated based on the Opportunity’s data.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Lightning Experience</strong></td></tr></tbody></table>

1. From the Quick Find box in Setup, enter Process. Select **Process Builder**.
2. Click **New**.
3. Name the process Create Pricing Proposal. To auto-create the API name, press **Tab**.
4. Select **A record changes** as the process trigger. Click **Save**.
5. Click **\+ Add Object** and select **Opportunity** as the object type.
    
    ![Opportunity object type and "when a record is created or edited" highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_process_add_object.png)
6. Start the process **when a record is created or edited**. Click **Save**.
7. Click **\+ Add Criteria**.
    
    ![Define Criteria with Opportunity Stage Change highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_process_define_criteria.png)
8. Name the criteria Opportunity Stage Change.
9. To determine when to trigger the process, select **Conditions are met**.
10. Set the conditions:
    
       
    | Field | Operator | Type | Value |
    | --- | --- | --- | --- |
    | \[Opportunity\]Stage | Equals | Picklist | Proposal/Quote |
11. Click **\+ Add Row** and set conditions:
    
       
    | Field | Operator | Type | Value |
    | --- | --- | --- | --- |
    | \[Opportunity\]Stage | Is changed | Boolean | True |
12. Under Conditions, click **All of the conditions are met (AND)**.
13. Click **Save**.
14. Click **\+ Add Action**.
15. Select **Flows** as the Action Type.
16. Name the action Call Flow to Create Document from Template.
17. Select the flow **Create\_Pricing\_Proposal\_from\_Template**.
18. Set the flow variables, where \[Opportunity\] is the Opportunity record that started the process:
    
      
    | Flow Variable | Type | Value |
    | --- | --- | --- |
    | OpportunityRecord | Field Reference | \[Opportunity\] |
19. Click **Save** and then **Activate**.

When your users update an Opportunity stage to Proposal/Quote, a Pricing Proposal is automatically created and data from the opportunity is autopopulated. The created document is then stored in the Pricing Proposal field added to the Opportunity layout.

## Create a Pricing Proposal Checkbox

To let your users mark when the Pricing Proposal is completed and ready for the customer, add a checkbox field to the Opportunity layout. After your users select it, it launches the flow to export the Pricing Proposal to a PDF and attaches it to the Opportunity.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Lightning Experience</strong></td></tr></tbody></table>

1. From Salesforce Setup, go to the Object Manager, and select **Opportunity**.
2. Select **Fields & Relationships**, and then **New**.
3. Select **Checkbox**, and then **Next**.
4. Enter Pricing Proposal Complete, and then **Next**.
5. Select the profiles that can edit the field, and click **Next**.
6. Select the page layouts where you want the field to appear. Here, we deselected all layouts except the Opportunity layout.
7. Save the action.

## Export to PDF and Attach to the Opportunity

After a user marks the Pricing Proposal as completed, export the document to a PDF to keep a record of it and attach it to the Opportunity. Post a message in Chatter to let the user know when the PDF was attached.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Lightning Experience</strong></td></tr></tbody></table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/images/icon_note.png)

Note Beginning in Summer ’26, Chatter is turned off by default in all new orgs. For any features in these orgs that require access to Chatter functionality or the Chatter APIs, turn on Chatter by going to **Setup** | **Chatter Settings** and selecting **Enable**. For details, see [Chatter Is Turned Off by Default in New Orgs Beginning in Summer ’26](https://help.salesforce.com/s/articleView?id=experience.collab_chatter_default_off.htm&type=5&language=en_US).

1. From the Quick Find box in Setup, enter Flows.
2. Click **New Flow**.
3. Select **Record-Triggered Flow** and click **Next**.
    
    Flow Builder displays the flow in the Auto-Layout flow layout. You can access Interactions, Logic, and Data via the plus icon.
    
    Process Builder later launches the flow when an Opportunity stage is changed.
4. Under Trigger, click **Edit**. Set the flow to trigger when **a record is created or updated**, and run the flow **after the record is saved**. Click **Done**.
5. Click **Choose Object**.
    
    ![Choose Object modal with conditions highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_export_to_pdf_conditions_pricing_proposal.png)
6. Select **Opportunity** as the object and set the conditions for when to launch the flow.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small "><colgroup><col> <col> <col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><strong>Field</strong></td><td class="slds-cell-wrap" style="vertical-align:top;"><strong>Operator</strong></td><td class="slds-cell-wrap" style="vertical-align:top;"><strong>Value</strong></td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Pricing_Proposal__c</td><td class="slds-cell-wrap" style="vertical-align:top;">Is Null</td><td class="slds-cell-wrap" style="vertical-align:top;">False</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Pricing_Proposal_Complete__c</td><td class="slds-cell-wrap" style="vertical-align:top;">Equals</td><td class="slds-cell-wrap" style="vertical-align:top;">True</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">StageName</td><td class="slds-cell-wrap" style="vertical-align:top;">Equals</td><td class="slds-cell-wrap" style="vertical-align:top;">Proposal/Quote</td></tr></tbody></table>
7. Set the flow to run **only when a record is updated to meet the condition requirements**, and click **Done**.
8. Drag the Action element onto the canvas.
9. Select **Quip**.
10. Enter Export Quip Document to PDF as the Quip action.
11. Name the action Export to PDF.
12. For the Source Document URL, enter {!$Record.Pricing\_Proposal\_\_c}.
13. Include the Salesforce Org ID. [Where do I find my org Id?](https://help.salesforce.com/articleView?id=000325251&type=1&mode=1&language=en_US)
14. Include the Target Record ID, and enter {!$Record.Id}.
15. Click **Done**.
16. Drag the Action element onto the canvas.
17. Enter Post to Chatter as the core action.
    
    ![Post to Chatter modal with fields highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_post_to_chatter_pricing_proposal.png)
18. Name the action Update Users in Chatter, and enter a custom message. Here, we say Pricing Proposal is complete. A PDF version is being generated and will be attached within a few minutes.
19. For the Target Name or ID, enter {!$Record.Id}.
20. Click **Done**.
21. Connect the elements, and click **Save**. Name the flow Export PDF to Opportunity, and save the action.
22. Activate the flow.
    
    ![Final Export to PDF canvas](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_canvas_export_to_pdf_pricing_proposal.png)

![Pricing Proposal Complete checkbox](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-anywhere_app-264-0-0-production-enus/c0406050-7b26-469a-9dc5-10d6c0c9c576/anywhere_app/images/quip_pricing_proposal_complete.png)

Your flows and process are ready to go! To see them in action, go to an Opportunity page and change the stage to Proposal/Quote. A Pricing Proposal document is automatically created from the template. After the user fills it out and confirms the details with their customer, they can mark the Pricing Proposal as complete. Flow then posts a message in Chatter to let the user a PDF is being generated, and the PDF is attached to the opportunity for recordkeeping.

It can take a couple of minutes for the PDF to be added to the record. You can find it in the record’s Notes and Attachments component or in its Files component.