Create and manage a private offer
Easily create private offers from Salesforce opportunities using the Suger App within your Salesforce Console, then manage them — extend, cancel, notify contacts, or download the EULA — without leaving Salesforce.
Overview
A private offer is a custom deal you send to a specific buyer through a cloud marketplace — AWS, Azure, or GCP. It includes your negotiated pricing, contract terms, and expiration date. Think of it as sending a quote: once the buyer accepts it, the contract is live and billing starts automatically through the marketplace.
After adding the Suger App to your Salesforce Console, you can create these private offers directly from opportunities — no need to switch to the Suger Console. You can also create Agreement-Based Offers (ABO) from Salesforce. Once an offer has been created, you can manage it from the same Suger Widget on the opportunity — extend the expiry date, cancel it, notify contacts, and download the EULA file.
Prerequisites
- The Suger App must be installed, connected, and set up with the Suger widget on your opportunity pages.
- You need the Suger User, Suger User - Marketplace, or a cloud-specific marketplace permission set assigned to your Salesforce account. If you can’t see the New Offer button on an opportunity, your permission set is likely missing or incorrect — see Permission Sets.
- The product you want to create an offer for must already exist in Suger. If it doesn’t, create it in the Suger Console first before continuing.
Create a private offer
- Navigate to the opportunity’s detail page and click the New Offer dropdown button at the top of the Suger App. If you don’t see the widget, it may not be added to your page layout yet — see Add Suger widgets and buttons to Salesforce pages.
- Locate and click the “Private Offer” button.
-
Choose the product on which the private offer will be based and complete the required fields in the form. Note that the required fields may vary depending on the cloud marketplace and the type of offer.
- The product list shows only the products available in your Suger account.
- If you are assigned a cloud-specific permission set (for example, Suger Marketplace - AWS), you will only see products for that cloud.
- Once all necessary information is filled in, submit the form to create the offer.
- You are all set!
What happens next
After you submit the offer:
- Suger creates the offer record in your Salesforce org, linked to the opportunity.
- The offer is sent to the cloud marketplace (AWS, Azure, or GCP) for processing.
- Once the marketplace confirms the offer, the offer status updates and the offer URL becomes available.
- You can then copy the offer URL from the offer record and send it to the buyer — they use it to review and accept the offer in their cloud marketplace account.
Track private offer status
After creating a private offer, you can track its progress directly from the Opportunity page via the embedded Suger widget. All offer and entitlement data synced from the marketplace is displayed in real time within the widget — no need to switch platforms.
- Once you click Create, you’re returned to the Opportunity detail page. The Suger widget immediately displays the new offer with the status
PENDING_CREATE.

-
Wait up to 5 minutes, then refresh the widget. The offer status updates to one of the following:
Create Success— the offer was successfully created in the marketplace but has not yet been sent to the buyer.Pending Acceptance— the offer has been pushed to the marketplace and the buyer has been notified.

- When the buyer accepts the offer, the widget updates to show
Accepted, and you’ll see the corresponding Offer object linked within the widget.

- Click the offer directly in the widget to open a detailed view, including pricing, contact information, term details, and entitlement data.
What’s on the offer detail page
Beyond the standard offer fields, the offer detail page shows a few sections only when they apply to that offer. If you don’t see one below, it means the condition for it wasn’t met — not that data is missing.
Replaced Offer ID and Replaced Offer (GCP)
GCP replacement and amendment offers carry two extra rows in Offer Information, so you can trace the new offer back to the one it supersedes:
| Row | What it shows |
|---|---|
| Replaced Offer ID | The marketplace ID of the offer this one replaces. |
| Replaced Offer | A link straight to the replaced offer’s record in Salesforce. |
Both rows appear only on GCP replacement and amendment offers. Replaced Offer is additionally omitted until Suger has resolved the replaced offer into a record it can link to — if you see the ID but not the link, the replaced offer hasn’t synced yet.
Universal PAYG discount banner
When a GCP offer was priced with a single discount across all usage rather than per-dimension rates, a banner sits at the top of Offer Information stating the discount — for example, 20% off all usage, captioned Universal PAYG discount. It is there so a reviewer doesn’t read the absence of a per-dimension breakdown as missing pricing.
Dimension Tags (read-only)
If your organization uses dimension tagging to build discounts (see Dimension-tag discounts below), the offer detail page shows the tag configuration the offer was built with, as a read-only Dimension Tags section directly above the pricing section. You cannot edit it here — this is the record of how the offer was priced.
| Cloud | Where it appears |
|---|---|
| AWS | One panel at the offer level, above Usage Dimensions. |
| GCP | One panel at the offer level, above Usage Dimensions. For prepay offers, tag groups are set per payment installment, so you get one panel per installment. |
| Azure | One panel per plan, above Azure Pricing — matching the way Azure offers configure discounts per plan. A plan with no dimensions shows nothing. |
Clone a private offer
You can quickly create a new offer based on an existing one.
- Open the Opportunity that contains the existing offer.
- In the Suger widget, click the offer you want to clone.
- In the top-right corner of the offer view, locate the arrow-down button next to the Refresh icon.
- Click the dropdown and select Clone.
- A new offer form opens with pre-filled details from the original offer. Make any necessary changes and click Create to submit.

GCP replacement offers: term and cancellation
Cloning a GCP offer produces a replacement offer, and its form carries two controls that decide how the new offer relates to the one it replaces.
-
Change Offer Duration — a toggle whose own help text reads: “Off keeps the replaced offer’s end time (coterm). Turn on to set your own term via Offer Duration.”
- Off (the default) — the replacement coterms to the replaced offer: it ends on the same date, and the form shows that date as a read-only Offer End Date.
- On — an Offer Duration field appears and you set the term yourself. Its unit follows the Payment Recurrence you selected.
-
Cancel the existing offer at the publishing of this offer — a checkbox in the Existing offer card. When checked, the original offer is cancelled automatically once the new offer reaches pending acceptance status. This only affects whether the original offer is still visible and acceptable; it does not touch an existing subscription if the buyer had already accepted the original offer.
Manage an existing offer
Once a private offer has been created from an opportunity, you can manage it without leaving Salesforce. Open the Opportunity that contains the offer, then click the offer in the Suger Widget to open the Offer Page. From there you can extend the expiry date, cancel the offer, notify contacts, and download the EULA file.
Extend a private offer
- Open the Opportunity that contains the private offer.
- In the Suger Widget, click the offer you want to extend.
- Click the arrow-down button next to the Refresh icon in the top-right corner.
- Select Extend from the dropdown menu.
- Update the Expiry Date to a new future date, then save.

Cancel a private offer
- Open the Opportunity that contains the private offer.
- In the Suger Widget, click the offer you want to cancel.
- Click the arrow-down button next to the Refresh icon in the top-right corner.
- Select Cancel from the dropdown menu.
- Confirm the cancellation when prompted.

Notify contacts
- Open the Opportunity that contains the private offer.
- In the Suger Widget, click the offer you want to notify contacts about.
- Find the Notification Contacts card on the right side of the Offer Page.
- Click Add Contact.
- Choose the contact(s) you want to notify and confirm.

Download the EULA file
- Open the Opportunity that contains the private offer.
- In the Suger Widget, click the offer you want to review.
- Scroll down to the bottom of the Offer Page.
- The EULA file is available in the last section of the Offer Page.

Configure CRM field mapping for private offers
Configuring Salesforce private offer field mapping lets you auto-generate private offer fields from your CRM, so information is pre-populated when sending offers from Salesforce. This saves time and reduces manual entry errors during deal submission. Field mapping is set up in the Suger Console by your Salesforce admin.
- Access the Suger Console — the central hub for managing configurations and settings.
- Navigate to the Settings tab.
- Select the Private Offer setting.
- Create a new configuration.
- Choose the Cloud partner and associated CRM for which you want to configure the field mapping.
- Map Salesforce fields to the fields relevant to private offers. For example, associate offer names with opportunities, the buyer AWS account ID with the corresponding field, and offer expiration dates with the relevant fields.
- Save the configuration.
AWS private offer required fields
| Field Name | Source | Description / Purpose |
|---|---|---|
| Salesforce Opportunity ID | Salesforce Field (Id) | Identifies the Opportunity associated with the offer. Required for linking the private offer to the correct Salesforce record. |
| Renewal Offer Type | Salesforce Field | Indicates whether the offer is new or a renewal. |
| Product ID | Salesforce Field (Suger Product Id) | Maps the Suger product to the AWS listing product ID. Required for AWS to recognize which listing the offer belongs to. |
| Offer Name | Expression: {{ .Name }} - {{ .Account.Name }} | Defines the custom name for the offer as it appears in AWS Marketplace. Usually combines Opportunity and Account names. |
| Buyer AWS Account ID | Salesforce Field | The buyer’s AWS Account ID — needed so AWS can associate and allow that buyer to view and accept the private offer. |
| Contacts | Salesforce Field / Manual Entry | Contact names and emails of people who should be notified when the offer is ready. Can include the Opportunity owner and additional internal contacts (for example, {{ .Owner.Name }}, {{ .Owner.Email }}, or manually added users like your teammate). |
| EULA Type | Salesforce Field | Specifies which End User License Agreement (EULA) to attach — for example, “Standard AWS Terms” or a custom EULA. |
| Offer Expiry Date | Salesforce Field | The date before which the offer must be accepted, or it expires (format: YYYY-MM-DD). |
| Offer End Date | Salesforce Field | The date when the offer will officially end or expire (format: YYYY-MM-DD). |
| Start Date | Salesforce Field | The start date for the offer (by default, the acceptance date). |
| Script (Optional) | Custom Script | Used to fill any remaining fields not mapped above. Optional but useful for automation or custom rules. |
Troubleshooting
| Issue | Possible cause | Resolution |
|---|---|---|
| No New Offer button visible on the opportunity | Suger permission set not assigned, or the Suger widget is not on the page | Check your permission set assignment, and add the widget if it’s missing. |
| Product list is empty | No products have been set up in Suger, or your permission set restricts which clouds you can see | Confirm that products exist in the Suger Console. A cloud-specific permission set only shows products for that cloud. |
| Form fields are blank — not pre-filled from the opportunity | Field mapping has not been configured | Field mapping is an optional admin setup. Contact your Salesforce admin to configure it. |
| Copy Offer URL button does nothing after the offer is created | The marketplace hasn’t finished processing the offer yet | Wait 3–5 minutes, then refresh the page. The URL appears once the marketplace confirms the offer. |
| Offer was created but doesn’t appear on the opportunity | Sync between Suger and Salesforce is delayed | Offer records sync on a schedule. Refresh after a few minutes. If it still doesn’t appear, check the Suger Console to confirm the offer was created successfully. |
Frequently asked questions
Can I create offers for AWS, Azure, and GCP from the same place?
Yes — as long as you have products set up for each cloud in Suger and the right permission set assigned. The product selector in the offer form shows products across all clouds you have access to.
Can I create an Agreement-Based Offer (ABO) from Salesforce?
Yes. Agreement-Based Offers are supported from Salesforce — you don’t need to use the Suger Console for this.
What is field mapping and do I need it?
Field mapping is an optional configuration that automatically pre-fills offer form fields with data from the Salesforce opportunity — like buyer name, contract value, or close date. Your Salesforce admin sets this up. You can still create offers without it, but you’ll need to fill in all fields manually.
The offer was created successfully but the buyer can’t find the link. What do I do?
Open the offer record in Salesforce and click Copy Offer URL, then send that link directly to the buyer. Make sure at least 3–5 minutes have passed since the offer was created, otherwise the URL may not be available yet.
Will the offer show up in the Suger Console too?
Yes. Any offer created from Salesforce is also visible in the Suger Console under your offers list.
Dimension-tag discounts (GCP, AWS, Azure)
When your organization has dimension tagging enabled (configured in the Suger web console), the discount step of a private offer shows a tag-based discount panel in place of the per-dimension rate table, for GCP, AWS, and Azure offers:
- Build a rule from tag conditions (e.g.
regioncontainsus-east) and apply one discount to every matching dimension at once. - Apply a saved discount group from your org library, then set its discount %.
- Override individual dimensions, and set a default for everything untagged.
- The dimension list is searchable and paginated, so it stays responsive even for products with many dimensions.
Percent vs. Absolute pricing (AWS & Azure)
AWS and Azure offers can price a dimension either as a percentage off the product list rate or as an absolute negotiated price. A Percent / Absolute toggle switches between the two faces without losing the entered values:
- Percent — the tag-filter discount panel; the final rate is
list × (1 − discount%). - Absolute — a flat fixed-price editor; you enter the negotiated price directly and the panel shows the equivalent discount for reference.
When you reopen a hand-priced (legacy) offer whose rates differ from the current product list, it opens in Absolute so your negotiated prices are preserved exactly.
Azure per-plan configuration
Azure offers configure discounts per plan: each absolute-priced plan gets its own collapsible section, so plans that share a meter can be discounted independently, and a single offer can mix percentage plans with absolute plans.
For GCP prepay offers with multiple installments, each editable installment is configured independently; already-charged (locked) installments are shown read-only and are never changed.
Dimension tagging does not apply to AWS Machine Learning, AWS Professional Service, AWS Reseller, or Azure Application / Virtual Machine offers — those keep their standard pricing.
Any user who can create an offer can also save a rule as a reusable discount group to the org library. Applying discounts to the current offer never requires saving a group.
Spotted something wrong or out of date on this page? Tell us and we'll correct it.