Custom Objects
This guide documents all custom objects in the Suger Salesforce App. These objects store marketplace data synced from AWS, Azure, GCP, and Snowflake marketplaces.
How to Read the Field Tables
Every field table below carries a Populated From column: the source value Suger writes into that Salesforce field, and any conversion applied on the way.
| What you see | What it means |
|---|---|
buyer.info.companyInfo.emailDomain | The source field. For partner objects this is the cloud partner’s own API field, so you can match it against what you see in AWS Partner Central, Microsoft Partner Center, or Google Cloud Channel |
…, ;-joined | The source is a list; Suger writes it as a semicolon-separated multi-select value |
…, comma-joined | The source is a list; Suger writes it as a comma-separated text value |
…, JSON-serialized | The source is a nested object or array; Suger writes it as a JSON string into a Long Text Area |
… → Yes/No | The source is a boolean; Suger writes the literal text Yes or No |
| expanded to the full country name | A two-letter country code is expanded (US → United States) |
| AWS only / Azure / GCP | The field is only populated for that cloud partner. It stays empty for the others |
| Invitation only / Post-accept only | The field belongs to one wave of a two-wave sync — see the timing notes on the Referral and Lead objects |
| — not populated by sync | Suger never writes this field. It exists in the package for backward compatibility or is set by hand. Do not build reports or automation that depend on it |
| lookup resolved by … | A relationship field. Suger resolves the referenced record and links it; the link is left unset if that record has not reached Salesforce yet |
Which Partners Populate Which Objects
| Object | AWS | Azure | GCP | Suger Co-Sell |
|---|---|---|---|---|
| Buyer, Product, Offer, Entitlement, EntitlementTerm, RevenueRecord, OfferDimension, OfferPaymentInstallment | Yes | Yes | Yes | — |
| Referral | Yes | Yes | Yes | Yes |
| Contact | Yes | Yes | Yes | Yes |
| Lead | Yes | — | — | — |
| Funding, FundingCashClaim | Yes | — | — | — |
The Referral object splits its fields by prefix — AWS_, AZURE_, GCP_, PRM_ — and only the prefix block matching the referral’s partner is populated. A referral from AWS leaves every AZURE_, GCP_ and PRM_ field empty, and vice versa. The unprefixed Common Fields populate for every partner.
Referral_Bulk_Share_Job, Suger_Organization, View, and Referral_Lookup_Filter are written by the app itself rather than by the marketplace sync, so their tables carry no Populated From column.
Object Categories
| Category | Objects | What it covers |
|---|---|---|
| Core Marketplace | Buyer, Product, Offer, Entitlement, EntitlementTerm, RevenueRecord, OfferDimension, OfferPaymentInstallment, Opportunity_Offer | The full lifecycle of a marketplace deal — from product listing to active contract and revenue |
| Co-Sell | Referral, Contact, Lead, Referral_Bulk_Share_Job | Partner referrals, leads, and co-sell programs across AWS, Azure, and GCP |
| Funding | Funding, FundingCashClaim | Funding programs and cash/credit claims from cloud partners |
| Configuration | Suger_Organization, View | App-wide settings and saved list view configurations |
| Custom Metadata | Referral_Lookup_Filter__mdt | Admin-configurable lookup filters for the Referral object |
Object Relationship Overview
The Suger data model centers around marketplace transactions across multiple cloud platforms:
Core Marketplace Objects
Buyer__c
Represents cloud marketplace customers/buyers who purchase products through AWS, Azure, GCP, or Snowflake marketplaces.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| ID | Buyer_ID__c | Text (External ID) | buyer.id | The Buyer ID in Suger service |
| Partner | Partner__c | Picklist | buyer.partner | The partner of the Buyer, such as AWS, AZURE, or GCP |
| Creation Date | Buyer_Creation_Date__c | Date | buyer.creationTime | The creation date of the buyer in Suger service |
| Description | Buyer_Description__c | Long Text Area | buyer.description | The description of the buyer |
| Info | Buyer_Info__c | Long Text Area | buyer.info (full JSON) | The detailed info of the buyer |
| Email Domain | Buyer_Email_Domain__c | Text | buyer.info.companyInfo.emailDomain | The company email domain of the buyer |
| Location | Buyer_Location__c | Text | buyer.info.companyInfo.city + .country | The company location of the buyer |
| External ID | Buyer_External_ID__c | Text | buyer.externalId | The buyer’s external ID from Cloud Marketplaces |
| Buyer Email Address | Buyer_Email_Address__c | Text | buyer.info.emailAddress | Email address of the buyer |
| Contact IDs | Contact_IDs__c | Text Area | buyer.contactIds (comma-joined) | The contact IDs of the buyer, comma-separated |
Product__c
Represents products listed across cloud marketplaces. Products are the foundation for creating offers.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| ID | Product_ID__c | Text (External ID) | product.id | The product ID in Suger |
| Partner | Partner__c | Picklist | product.partner | The cloud partner where this product is listed |
| Type | Product_Type__c | Text | product.productType | The type of this product |
| Status | Product_Status__c | Text | product.status | The status of this product listing in the Cloud Marketplace |
| Creation Date | Product_Creation_Date__c | Date | product.creationTime | When the Product is listed in the Cloud Marketplace |
| Info | Product_Info__c | Long Text Area | product.info (full JSON) | The detailed info of product, including the price info |
| External ID | Product_External_ID__c | Text | product.externalId | The product external ID from the Cloud Marketplaces |
| Fulfillment URL | Product_Fulfillment_URL__c | URL | product.fulfillmentUrl | The fulfillment URL of the product to signup |
| Partner ID | Partner_ID__c | Text | — set by the Product sync | Partner ID |
Offer__c
Represents marketplace offers (private offers, CPPO, etc.) with approval workflows and expiration tracking.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| ID | Offer_ID__c | Text (External ID) | offer.id | The unique ID of the Offer. Generated by Suger service |
| Partner | Partner__c | Picklist | offer.partner | The partner where this offer is created (AWS, AZURE, GCP, ALIBABA) |
| Partner ID | Partner_ID__c | Text | offer.partnerId | The seller marketplace integration account that owns this offer. For AWS, this is the 12-digit seller AWS account ID |
| Offer Status | Offer_Status__c | Text | offer.status | The status of this Offer |
| External Status | Offer_External_Status__c | Text | offer.externalStatus | The raw status last reported by the cloud marketplace (e.g. AWS Catalog API entity state: Draft, Active, Released), verbatim — distinct from Offer Status, which Suger derives for its own business logic |
| Approval Status | Approval_Status__c | Picklist | offer.metaInfo.approvalInfo.status | Approval Status (Not Submitted, Submitted, Approved, Declined, Action Required) |
| Type | Offer_Type__c | Text | offer.offerType | The type of this Offer from the cloud marketplaces |
| Product ID | Product_ID__c | Text | offer.productId | The ID of Product where this Offer is based on |
| Product Name | Product_Name__c | Text | resolved from the linked Suger__Product__c | The name of the Product where this Offer is based on |
| Product | Product__c | Lookup | lookup resolved by offer.productId | Reference to Product record |
| Buyer | Buyer__c | Lookup | lookup resolved by offer.buyerId | Reference to Buyer record |
| Buyer ID | Buyer_ID__c | Text | offer.buyerId | Buyer ID |
| Buyer Name | Buyer_Name__c | Text | resolved from the linked Suger__Buyer__c | The name of the Buyer of this Offer |
| Buyer Account ID | Buyer_Account_ID__c | Text | AWS info.buyerAwsAccountIds[0] · Azure info.azurePrivateOffer.beneficiaries[0].id · GCP info.gcpPrivateOffer.customerInfo.unverifiedBillingAccount | For AWS: Buyer AWS Account ID. For Azure: Beneficiary ID. For GCP: Customer Billing Account ID |
| Buyer AWS Account ID | Buyer_AWS_Account_ID__c | Text | AWS only — info.buyerAwsAccountIds[0] | Buyer AWS Account ID |
| Offer Info | Offer_Info__c | Long Text Area | offer.info (full JSON) | The detailed info of this Offer, including the price info |
| AWS Net Payment Term | AWS_Net_Payment_Term__c | Text (32) | AWS only — derived from info.paymentSchedule net-term days | For an AWS private or downstream CPPO offer, the buyer term (Net 15 through Net 120). For a CPPO_OUT or synchronized CPPO_IN resale authorization, the maximum allowed term (Maximum Net 15 through Maximum Net 120). Empty means no custom AWS term. |
| Meta Info | Offer_Meta_Info__c | Long Text Area | offer.metaInfo (full JSON) | The meta info of this Offer, populated by Suger service |
| External ID | Offer_External_ID__c | Text | offer.externalId | The external ID of this Offer in the cloud marketplaces |
| Creation Date | Offer_Creation_Date__c | Date | offer.creationTime | When this Private Offer is created in the Cloud Marketplace |
| Marketplace Creation Date Time | Marketplace_Creation_DateTime__c | DateTime | offer.metaInfo.offerCreationSuccessDate | The date and time when this offer was created |
| Acceptance DateTime | Acceptance_DateTime__c | DateTime | offer.metaInfo.offerAcceptDate | When the buyer accepted the offer |
| Contract Start Time | Contract_Start_Time__c | Date | Azure info.azurePrivateOffer.start · AWS/GCP derived from the offer’s contract terms | The contract start time for this offer |
| Contract End Time | Contract_End_Time__c | Date | Azure info.azurePrivateOffer.end · AWS/GCP derived from the offer’s contract terms | The contract end time for this offer |
| Offer Duration (Months) | Offer_Duration_Months__c | Number (Formula) | Salesforce formula over Contract Start/End — GCP only | Calendar-month difference between Contract Start Time and Contract End Time. Only populated for GCP offers. |
| Expire Date | Offer_Expire_Date__c | Date | offer.expireTime | The date when the Offer expires. Cannot be accepted after expiration |
| Approval Date | Approval_Date__c | Date | — set by the Offer sync | Date when the offer was approved |
| Opportunity | Opportunity__c | Lookup | offer.metaInfo.salesforceOpportunityId | Reference to Salesforce Opportunity |
| Account | Account__c | Lookup | derived from the linked Opportunity’s Account | Account associated with the offer, auto-populated from the linked Opportunity’s account, or the directly-linked account when there is no opportunity |
| Quote (Deprecated) | Quote__c | Text | — deprecated | Deprecated - use QuoteLookup instead |
| Quote Lookup | QuoteLookup__c | Lookup | offer.metaInfo.salesforceQuoteId | The Quote binding to this offer |
| Created By | Created_By__c | Lookup | Salesforce User matched on the Suger creator’s email | Salesforce User who created this offer in Suger marketplace |
| Created By Email | Created_By_Email__c | Text | Suger creator’s email (fallback when no User matches) | Email of the user who created this offer (fallback when no matching Salesforce User) |
| Error Message | Error_Message__c | Long Text Area | offer.metaInfo.errorMessages (joined) | Error Message |
| Review Comment | Review_Comment__c | HTML | offer.metaInfo.approvalInfo.message | Review Comment |
| Reseller ID | Reseller_ID__c | Text | AWS info.awsChannelPartner.id · Azure info.azurePrivateOffer.partners[0].id · GCP info.gcpResellerPrivateOfferPlan.resellerInfo.billingAccountId | The reseller ID for CPPO (Channel Partner Private Offer) offers |
| Offer Visibility | Offer_Visibility__c | Text | derived from offer.offerType | Whether this is a public marketplace listing offer (PUBLIC) or a private offer negotiated with a specific buyer (PRIVATE) |
| Offer Delivery Method | Offer_Delivery_Method__c | Text | derived from offer.offerType | Whether this is a public marketplace listing offer (PUBLIC) or a private offer negotiated with a specific buyer (PRIVATE) |
| SubStatus | Offer_SubStatus__c | Text | offer.subStatus | The sub-status of this offer |
| Is Renewal | Is_Renewal__c | Checkbox | derived from offer.offerType | Whether this offer is a renewal |
| Gross Contract Value | Gross_Contract_Value__c | Currency | computed from the offer’s pricing (installments, commits, or plan) | Total contract value computed from the offer’s pricing data (installments, commits, or plan pricing) |
| Marketplace Fee | Marketplace_Fee__c | Currency | computed once the first cloud invoice is confirmed | Cloud marketplace commission fee, computed once the first invoice is confirmed |
| Net Contract Value | Net_Contract_Value__c | Currency | Gross Contract Value − Marketplace Fee | Net amount the seller receives after marketplace commission fees (null until the first cloud invoice is confirmed) |
| Marketplace Offer URL | Marketplace_Offer_URL__c | URL | offer.info.privateOfferUrl | The private offer URL in the cloud marketplace |
| Created Source | Created_Source__c | Text | offer.metaInfo.createdBySource | Source system that created this offer (Suger Console, Salesforce, HubSpot, API, Cloud Partner, or Auto Share) |
Entitlement__c
Represents customer entitlements in cloud marketplaces after offer acceptance. Tracks active subscriptions and usage.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| ID | Entitlement_ID__c | Text (External ID) | entitlement.id | The Entitlement ID in Suger |
| Partner | Partner__c | Picklist | entitlement.partner | The cloud partner where the entitlement is created |
| Partner ID | Partner_ID__c | Text | entitlement.partnerId | The seller marketplace integration account that owns this entitlement. For AWS, this is the 12-digit seller AWS account ID |
| Status | Entitlement_Status__c | Text | entitlement.status | The status of the Entitlement in the Cloud Marketplace |
| Type | Entitlement_Type__c | Text | entitlement.type | The type of the Entitlement |
| Product ID | Product_ID__c | Text | entitlement.productId | The ID of Product where this Entitlement is based on |
| Product Name | Product_Name__c | Text | resolved from the linked Suger__Product__c | The name of the Product where this Entitlement is based on |
| Product | Product__c | Lookup | lookup resolved by entitlement.productId | Reference to Product record |
| Offer ID | Offer_ID__c | Text | entitlement.offerId | The ID of the Offer in this Entitlement |
| Offer Name | Offer_Name__c | Text | resolved from the linked Suger__Offer__c | The name of the Offer in this Entitlement |
| Offer | Offer__c | Lookup | lookup resolved by entitlement.offerId | Reference to Offer record |
| Buyer ID | Buyer_ID__c | Text | entitlement.buyerId | The ID of Buyer in this Entitlement |
| Buyer Name | Buyer_Name__c | Text | resolved from the linked Suger__Buyer__c | The name of the Buyer in this Entitlement |
| Buyer | Buyer__c | Lookup | lookup resolved by entitlement.buyerId | Reference to Buyer record |
| Buyer Account ID | Buyer_Account_ID__c | Text | AWS buyer AWS account · Azure beneficiary ID · GCP customer billing account | Normalized buyer account identifier across all cloud partners — the AWS Account ID, the Azure billing account ID, or the GCP billing account ID, depending on the partner |
| AWS Account ID | AWS_Account_ID__c | Text | AWS only — buyer AWS account ID | AWS Account ID |
| AWS License ARN | AWS_License_ARN__c | Text | AWS only — entitlement.info.awsLicenseArn | The AWS License Manager ARN of the license backing this entitlement’s AWS Marketplace agreement. Empty for non-AWS entitlements |
| Entitlement Info | Entitlement_Info__c | Long Text Area | — deprecated, no longer synced | The detailed info of Entitlement, including the price info |
| Meta Info | Entitlement_Meta_Info__c | Long Text Area | — deprecated, no longer synced | The meta info of the Entitlement, populated by Suger service |
| External ID | Entitlement_External_ID__c | Text | entitlement.externalId | The Entitlement’s external ID from the Cloud Marketplaces |
| Creation Date | Entitlement_Creation_Date__c | Date | entitlement.creationTime | Creation date of the entitlement’s current term — taken from the term’s linked offer — falling back to the entitlement’s own creation date when there is no term. After a renewal this reflects the latest term, not the original one |
| Start Date | Entitlement_Start_Date__c | Date | entitlement.startTime | Start date of the entitlement’s current term, falling back to the entitlement’s own start date when there is no term. After a renewal this reflects the latest term, not the original one |
| End Date | Entitlement_End_Date__c | Date | entitlement.endTime | When the Entitlement was or will be ended |
| Opportunity | Opportunity__c | Lookup | resolved from the source Offer’s linked Opportunity | Opportunity associated with the entitlement |
| Invoiced Amount | Invoiced_Amount__c | Currency | entitlement.info.invoicedAmount | Cumulative amount invoiced to the buyer for this entitlement across all billing periods |
| Collectable Amount | Collectable_Amount__c | Currency | entitlement.info.collectableAmount | Cumulative amount the marketplace is expected to collect from the buyer for this entitlement |
| Disbursed Amount | Disbursed_Amount__c | Currency | entitlement.info.disbursedAmount | Cumulative amount the marketplace has disbursed to the seller for this entitlement |
| Offer Visibility | Offer_Visibility__c | Text | derived from the source offer type | Whether this entitlement originated from a public listing offer (PUBLIC) or a private offer (PRIVATE); derived from the linked offer |
| Offer Delivery Method | Offer_Delivery_Method__c | Text | derived from the source offer type | Whether this entitlement originated from a public listing offer (PUBLIC) or a private offer (PRIVATE); derived from the linked offer |
| Account | Account__c | Lookup | entitlement.metaInfo.salesforceAccountId, else the linked Opportunity’s Account | Account associated with the entitlement, populated by the sync with opportunity precedence: the linked Opportunity’s account, else the offer’s directly-linked account |
| Auto Renew | Auto_Renew__c | Picklist | Yes/No from the entitlement’s auto-renew flag | Whether Auto Renew is enabled for this entitlement in the cloud marketplace |
| Buyer and Reseller | Buyer_And_Reseller__c | Text | Salesforce formula over Buyer + Reseller ID | Combined buyer and reseller display value |
| Reseller ID | Reseller_ID__c | Text | AWS only — entitlement.info.awsChannelPartner.id | The channel partner (seller of record) on this entitlement’s underlying AWS Marketplace agreement — written for AWS CPPO. Empty when the entitlement has no channel partner, such as a direct private offer or a non-CPPO agreement-based offer |
| Display Name with Status | Display_Name_With_Status__c | Formula (Text) | Salesforce formula over Name + Status | The entitlement display name combined with its status, for list views and lookups |
EntitlementTerm__c
Tracks specific terms, commitments, and credits for entitlements over their lifecycle.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Entitlement Term ID | Entitlement_Term_ID__c | Text (External ID) | entitlementTerm.id | Entitlement Term ID |
| Entitlement | Entitlement__c | Lookup | lookup resolved by the parent entitlement ID | Reference to parent Entitlement |
| Offer ID | Offer_ID__c | Text | entitlementTerm.offerId | Offer ID |
| Type | Type__c | Text | entitlementTerm.info.type | Type (subscription, usage, commitment, credit) |
| Start Time | StartTime__c | DateTime | entitlementTerm.startTime | Term start time |
| End Time | EndTime__c | DateTime | entitlementTerm.endTime | Term end time |
| Commit Amount | Commit_Amount__c | Number | entitlementTerm.commitAmount | Commitment amount |
| Used Commit Amount | Used_Commit_Amount__c | Number | entitlementTerm.usedCommitAmount | Used portion of commitment |
| Credit Amount | Credit_Amount__c | Number | entitlementTerm.creditAmount | Credit amount |
| Used Credit Amount | Used_Credit_Amount__c | Number | entitlementTerm.usedCreditAmount | Used portion of credits |
| Reported Amount | Reported_Amount__c | Number | entitlementTerm.reportedAmount | Reported usage amount |
RevenueRecord__c
Tracks financial transactions and commission tracking for cloud marketplace deals.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Revenue Record ID | Revenue_Record_ID__c | Text (External ID) | revenueRecord.id | Revenue Record ID |
| Entitlement | Entitlement__c | Lookup | lookup resolved by revenueRecord.entitlementId (blank when the record is not yet mapped to an entitlement) | Reference to Entitlement |
| Revenue Type | Revenue_Type__c | Text | — not populated by sync | Type of revenue |
| Amount | Amount__c | Currency | revenueRecord.amount | Transaction amount |
| Date | Date__c | DateTime | revenueRecord.date | Transaction date |
| Invoice Amount | Invoice_Amount__c | Currency | revenueRecord.invoiceAmount | Invoiced amount |
| Invoice Date | Invoice_Date__c | DateTime | revenueRecord.invoiceDate | Invoice date |
| Collectable Amount | Collectable_Amount__c | Currency | revenueRecord.collectableAmount | Amount expected to collect |
| Disburse Amount | Disburse_Amount__c | Currency | revenueRecord.disburseAmount | Amount to be disbursed |
| Disburse Date | Disburse_Date__c | DateTime | revenueRecord.disburseDate | Disbursement date |
| Payment Due Date | Payment_Due_Date__c | DateTime | revenueRecord.paymentDueDate | When payment is due |
| Partner Fee Percentage | Partner_Fee_Percent__c | Percent | Partner Fee Dollar ÷ invoice amount | Partner fee percentage |
| Partner Fee Dollar | Partner_Fee_Dollar__c | Currency | marketplace fee on the record | Partner fee in dollars |
| Invoice ID | Invoice_ID__c | Text | revenueRecord.info.invoiceID | The invoice ID associated with this revenue record |
| Payment Terms | Payment_Terms__c | Text | Net <n> from the record’s net-term days | Payment terms for this revenue record |
| Usage Period Start Date | Usage_Period_Start_Date__c | DateTime | revenueRecord.info.usagePeriodStartDate | Start of the usage period this revenue record covers |
| Usage Period End Date | Usage_Period_End_Date__c | DateTime | revenueRecord.info.usagePeriodEndDate | End of the usage period this revenue record covers |
OfferDimension__c
Represents metering dimensions on an Offer (the priced units that the offer charges for). Each Offer can have multiple dimensions; this table makes them queryable as first-class records.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Offer Dimension ID | Offer_Dimension_ID__c | Text (External ID) | offer.id + dimension.key (composite; hashed if over 255 chars) | External ID for idempotent upsert. Format: {offerID}:{key} (truncated if over 255 chars). |
| Offer | Offer__c | Lookup | lookup resolved by offer.id | Reference to the parent Offer record. |
| Offer ID | Offer_ID__c | Text | offer.id | Suger Offer ID — used to resolve the parent Offer lookup during backfill. |
| Key | Key__c | Text | offer.info.dimensions[].key | API key/identifier of the metering dimension (MeteringDimension.Key). |
| Category | Category__c | Text | offer.info.dimensions[].category | Category of the metering dimension. |
| Description | Description__c | Long Text Area | offer.info.dimensions[].description | Human-readable description of the dimension. |
| Types | Types__c | Text | offer.info.dimensions[].types (;-joined) | Semicolon-separated list of dimension types (MeteringDimension.Types). |
| Rate | Rate__c | Number | offer.info.dimensions[].rate | Unit price of the dimension (MeteringDimension.Rate). |
| Value Type | Value_Type__c | Text | offer.info.dimensions[].valueType | GCP only. Value type of the metering dimension quantity. |
| Plan ID | Plan_ID__c | Text | offer.info.dimensions[].planId | GCP only. ID of the plan that the dimension belongs to. |
| Plan Name | Plan_Name__c | Text | offer.info.dimensions[].planName | GCP only. Name of the plan that the dimension belongs to. |
| SKU ID | Sku_ID__c | Text | offer.info.dimensions[].skuId | GCP only. SKU ID of the metering dimension. |
OfferPaymentInstallment__c
Represents the payment-schedule installments on an Offer (the planned payments a private offer charges for). Each Offer can have multiple installments; this table makes them queryable as first-class records. Populated by the Suger → Salesforce backfill.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Offer Payment Installment ID | Offer_Payment_Installment_ID__c | Text (External ID) | offer.id + installment index (composite) | External ID for idempotent upsert. Format: {offerID}:{chargeOn} (or {offerID}:i{index} when the charge date is blank). |
| Offer | Offer__c | Lookup | lookup resolved by offer.id | Reference to the parent Offer record. |
| Offer ID | Offer_ID__c | Text | offer.id | Suger Offer ID — used to resolve the parent Offer lookup during backfill. |
| Charge Date | Charge_Date__c | Date | installment.chargeOn | Date the buyer is charged for this installment. Blank means charged on the entitlement’s effective date. |
| Amount | Amount__c | Number | installment.amount | Amount charged for this installment, after any discount. |
| Original Amount | Original_Amount__c | Number | installment.originalAmount | List price before discount; blank if there is no discount. |
| Discount % | Discount_Percentage__c | Number | installment.discountPercentage | Discount off the original price, 0 to 100. |
| Credit | Credit__c | Number | installment.credit | GCP only. One-time credit applied to this installment. |
| Currency | Currency__c | Text | offer.info.currency | ISO currency code of the installment amounts (e.g. USD, JPY), taken from the parent offer. |
Opportunity_Offer__c
Junction object linking a Salesforce Opportunity to a Suger Offer. Allows a single opportunity to be associated with multiple offers (and vice-versa) when the “Enable Offer Set In Opportunity Level” setting is on.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Offer | Offer__c | Master-Detail | — created by the app when an Offer is linked to an Opportunity | Reference to the Offer record. |
| Opportunity | Opportunity__c | Master-Detail | — created by the app when an Offer is linked to an Opportunity | Reference to the Salesforce Opportunity. |
Co-Sell Objects
Referral__c
Represents partner referrals with extensive platform-specific fields for AWS, Azure, GCP, and Suger PRM co-sell programs.
How many fields a referral actually fills. One referral belongs to exactly one partner, so it only ever populates the Common Fields plus its own prefix block:
| Referral’s partner | Fields populated | Source record |
|---|---|---|
| AWS | Common + up to 84 of the 101 AWS_ fields | ACE Opportunity, or the Engagement Invitation before you accept |
| Azure | Common + 33 of the 35 AZURE_ fields | Your Microsoft Partner Center referral, plus Microsoft’s own copy for the MS_ fields |
| GCP | Common + all 70 GCP_ fields | Google Cloud Channel Opportunity |
| Suger Co-Sell | Common + all 19 PRM_ fields | The partner-to-partner co-sell opportunity |
Every other prefix block stays empty. The counts exclude fields marked not populated by sync in the tables below.
Source Records by Partner
Each partner’s fields come from a different upstream record. Knowing which one you have tells you which fields can be populated at all.
| Partner | Source record | Notes |
|---|---|---|
| AWS | ACE Engagement Invitation or ACE Opportunity — never both | Mutually exclusive, and which one you have depends on lifecycle stage. A pending invitation fills only 19 fields; accepting it switches the row to the Opportunity’s 85. See the breakdown under AWS Fields below |
| Azure | Your Partner Center referral, plus Microsoft’s copy of the same referral | Both at once, feeding different fields. Of the 35 AZURE_ fields, 28 come from your copy, 5 from Microsoft’s (empty until Microsoft’s copy exists), and 2 are never populated |
| GCP | Google Cloud Channel Opportunity | A single record. All 70 GCP_ fields come from it, though many sub-objects (partnerInfo, salesCycle, winLossInfo, opportunityLines) are only present after Google approves or closes the opportunity |
| Suger Co-Sell | The partner-to-partner co-sell opportunity | A single record, internal to Suger — no cloud partner involved |
The 5 Azure fields that come from Microsoft’s copy, not yours:
AZURE_MS_ReferralStatus__c, AZURE_MS_ReferralSubStatus__c, AZURE_Microsoft_Contact_Name__c, AZURE_Microsoft_Contact_Email__c, AZURE_AssistanceRequestCode__c
Microsoft’s copy exists only once Microsoft has engaged with the referral. Until then these five stay empty while your copy’s 28 fields are already populated — an empty AZURE_MS_ReferralStatus__c means “Microsoft has not engaged yet”, not “the sync failed”. AZURE_AssistanceRequestCode__c is the exception that still gets a value without Microsoft’s copy: it defaults to No help required.
GCP sub-objects that arrive late. These GCP_ fields stay empty until Google approves the opportunity, and are not a sync problem:
| Only after approval | Only after close |
|---|---|
partnerInfo — incentive type, distributor, sub-billing account, submitted/approved dates, rebate expiry | winLossInfo — win/loss reasons, products, additional context |
salesCycle — partner ready to close, close-date push count, PRM site details | |
opportunityLines, opportunityTeamMembers, customerContacts, rebateExtensions |
Common Fields
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Referral ID | Referral_ID__c | Text (External ID) | referral.id — all partners | The unique ID of the Referral. Generated by Suger service |
| Referral Type | Referral_Type__c | Picklist | AWS from Origin · Azure from direction · GCP always Outbound · Suger from direction | Referral Type (Inbound/Outbound) |
| Referral Status | Referral_Status__c | Picklist | referral.status, mapped to the Salesforce status picklist — all partners | Referral Status |
| Partner | Partner__c | Picklist | referral.partner — all partners | Partner (AWS/AZURE/GCP/SUGER) |
| Region | Region__c | Text | — not populated by sync | Region |
| Account ID | AccountID__c | Lookup | referral.salesforceAccountId (cleared when unset) — all partners | Reference to Salesforce Account |
| Opportunity ID | OpportunityID__c | Lookup | referral.salesforceOpportunityId (cleared when unset) — all partners | Reference to Salesforce Opportunity |
| Last Sync Log | LastSyncLog__c | Text Area | — written by the app, not the sync | Last Sync Log |
| Creation Status | Creation_Status__c | Picklist | derived from referral.status — all partners | Creation Status |
| Creation Failure Message | Creation_Failure_Message__c | Long Text Area | — written by the app on a failed create | Creation Failure Message |
| Update Status | Update_Status__c | Picklist | referral.metaInfo.updateStatus — all partners | Update Status |
| Update Failure Message | Update_Failure_Message__c | Long Text Area | — written by the app on a failed update | Update Failure Message |
| Created Source | Created_Source__c | Text | referral.metaInfo.createdBySource, formatted for display — all partners | Source system that created this referral (Suger Console, Salesforce, HubSpot, API, Cloud Partner, or Auto Share) |
AWS Fields
Which source record fills them: Engagement Invitation vs ACE Opportunity
An AWS referral is written from one of two AWS records, never both at once, and which one you have depends on where the deal sits in its lifecycle. Both write to the same Suger__Referral__c row.
| Engagement Invitation | ACE Opportunity | |
|---|---|---|
| When you have it | AWS has invited you to a deal, and you have not accepted yet | You accepted the invitation, or you created an outbound referral yourself |
| Fields it fills | 19 — the full list is below | 85 — everything in the topical tables that follows |
| Customer contacts | Never — the invitation carries no contact PII | AWS_CustomerFirstName__c and the other contact fields, shared 10–30 minutes after acceptance, not immediately |
| Lifecycle / stage | Never | AWS_Stage__c, AWS_Status__c, AWS_AwsStage__c, next steps, review comments |
| AWS & partner team | Never | Sales rep, account owner, PDM, ISV/partner success manager, primary contact |
| Marketing, solutions, insights | Never | Campaign, channels, products, offers, engagement score, quality score |
So a pending invitation gives you 19 fields and nothing else. Everything else stays empty until you accept.
The complete Engagement Invitation field set
These are every field a pending or rejected invitation can fill. Paths are relative to the ACE EngagementInvitation.
| API Name | Populated From |
|---|---|
Name | EngagementTitle |
Referral_Type__c | SenderCompanyName — AWS ⇒ Inbound, otherwise Outbound |
AWS_OpportunityOwnership__c | SenderCompanyName — AWS ⇒ AWS Referral, otherwise Partner Referral |
AWS_CreatedDate__c | InvitationDate |
AWS_AwsAccountId__c | Receiver.Account.AwsAccountId — your account, not the customer’s |
AWS_CustomerCompanyName__c | Payload.Customer.CompanyName |
AWS_Industry__c | Payload.Customer.Industry |
AWS_Country__c | Payload.Customer.CountryCode, expanded to the full country name |
AWS_CustomerWebsite__c | Payload.Customer.WebsiteUrl |
AWS_PartnerProjectTitle__c | Payload.Project.Title |
AWS_ProjectDescription__c | Payload.Project.BusinessProblem |
AWS_TargetCloseDate__c | Payload.Project.TargetCompletionDate |
AWS_CustomerSoftwareValue__c | Payload.Project.ExpectedCustomerSpend[0].Amount |
AWS_CustomerSoftwareValueCurrency__c | Payload.Project.ExpectedCustomerSpend[0].CurrencyCode |
AWS_AcceptBy__c | ExpirationDate — invitation-only |
AWS_PartnerAcceptanceStatus__c | Status → Pending / Accepted / Rejected — invitation-only |
AWS_RejectionReason__c | RejectionReason, only when the invitation was rejected — invitation-only |
AWS_InvitationMessage__c | InvitationMessage, the sender’s covering note — invitation-only |
AWS_EngagementInvitationArn__c | Arn — invitation-only |
AWS_InvitationMessage__c is on both packaged Referral page layouts (Referral Layout and Referral Layout V2), so the sender’s covering note is visible without customizing a layout first. It is a Long Text Area holding up to 32,768 characters, so the whole message is kept rather than truncated.
Of those 19, 12 are re-written from the ACE Opportunity once you accept (from a different path — for example AWS_CustomerCompanyName__c moves from Payload.Customer.CompanyName to Customer.Account.CompanyName). The 5 marked invitation-only have no counterpart on the Opportunity, so they keep their invitation values permanently and are how you tell, after the fact, that a referral arrived as an invitation.
The topical tables below cover the ACE Opportunity field set. Where a field can also come from an invitation, its Populated From cell shows both, as Customer.Account.CompanyName · invitation: Payload.Customer.CompanyName.
Account & Contact Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| AWS Account ID | AWS_AwsAccountId__c | Text | Customer.Account.AwsAccountId · invitation: Receiver.Account.AwsAccountId | AWS Account ID |
| AWS Account Manager Email | AWS_AwsAccountOwnerEmail__c | Text | AWSOpportunityTeam[] AWSAccountOwner — Email | AWS Account Manager Email |
| AWS Account Manager Name | AWS_AwsAccountOwnerName__c | Text | AWSOpportunityTeam[] AWSAccountOwner — FirstName + LastName | AWS Account Manager Name |
| Customer Company Name | AWS_CustomerCompanyName__c | Text | Customer.Account.CompanyName · invitation: Payload.Customer.CompanyName | Customer Company Name |
| Customer First Name | AWS_CustomerFirstName__c | Text | Customer.Contacts[0].FirstName | Customer First Name |
| Customer Last Name | AWS_CustomerLastName__c | Text | Customer.Contacts[0].LastName | Customer Last Name |
| Customer Email | AWS_CustomerEmail__c | Text | Customer.Contacts[0].Email | Customer Email |
| Customer Phone | AWS_CustomerPhone__c | Text | Customer.Contacts[0].Phone | Customer Phone |
| Customer Title | AWS_CustomerTitle__c | Text | Customer.Contacts[0].BusinessTitle | Customer Title |
| Customer DUNS | AWS_CustomerDuns__c | Text | Customer.Account.Duns | Customer DUNS |
| Customer Website | AWS_CustomerWebsite__c | URL | Customer.Account.WebsiteUrl · invitation: Payload.Customer.WebsiteUrl | Customer Website |
| Partner Primary Contact Email | AWS_PrimaryContactEmail__c | Text | OpportunityTeam[] PartnerAccountManager — Email | Partner Primary Contact Email |
| Partner Primary Contact First Name | AWS_PrimaryContactFirstName__c | Text | OpportunityTeam[] where BusinessTitle = PartnerAccountManager — FirstName | Partner Primary Contact First Name |
| Partner Primary Contact Last Name | AWS_PrimaryContactLastName__c | Text | OpportunityTeam[] PartnerAccountManager — LastName | Partner Primary Contact Last Name |
| Partner Primary Contact Phone | AWS_PrimaryContactPhone__c | Text | OpportunityTeam[] PartnerAccountManager — Phone | Partner Primary Contact Phone |
| Primary Contact Title | AWS_PrimaryContactTitle__c | Text | OpportunityTeam[] PartnerAccountManager — BusinessTitle | Primary Contact Title |
| AWS ISV Success Manager Email | AWS_AwsIsvSuccessManagerEmail__c | Text | AWSOpportunityTeam[] ISVSM — Email | AWS ISV Success Manager Email |
| AWS ISV Success Manager Name | AWS_AwsIsvSuccessManagerName__c | Text | AWSOpportunityTeam[] ISVSM — FirstName + LastName | AWS ISV Success Manager Name |
| AWS Sales Rep Email | AWS_AwsSalesRepEmail__c | Text | AWSOpportunityTeam[] AWSSalesRep — Email | AWS Sales Rep Email |
| AWS Sales Rep Name | AWS_AwsSalesRepName__c | Text | AWSOpportunityTeam[] where BusinessTitle = AWSSalesRep — FirstName + LastName | AWS Sales Rep Name |
| AWS Partner Success Manager Email | AWS_AwsPartnerSuccessManagerEmail__c | Text | AWSOpportunityTeam[] PSM — Email | AWS Partner Success Manager Email |
| AWS Partner Success Manager Name | AWS_AwsPartnerSuccessManagerName__c | Text | AWSOpportunityTeam[] PSM — FirstName + LastName | AWS Partner Success Manager Name |
| WWPS Partner Development Manager | AWS_WwpsPdm__c | Text | AWSOpportunityTeam[] WWPSPDM — FirstName + LastName | WWPS Partner Development Manager |
| WWPS Partner Development Manager Email | AWS_WwpsPdmEmail__c | Text | AWSOpportunityTeam[] WWPSPDM — Email | WWPS Partner Development Manager Email |
| Partner Developer Manager | AWS_PartnerDeveloperManager__c | Text | AWSOpportunityTeam[] PDM — FirstName + LastName | Partner Developer Manager |
| AWS Partner Development Manager Email | AWS_partnerDeveloperManagerEmail__c | Text | AWSOpportunityTeam[] PDM — Email | AWS Partner Development Manager Email |
| Opportunity Owner | AWS_OpportunityOwner__c | Lookup | — not populated by sync | Opportunity Owner |
| Opportunity Owner Email | AWS_OpportunityOwnerEmail__c | Text | OpportunityTeam[] owner — Email | Opportunity Owner Email |
| Opportunity Owner Name | AWS_OpportunityOwnerName__c | Text | OpportunityTeam[] owner — FirstName + LastName | Opportunity Owner Name |
Opportunity & Deal Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Stage | AWS_Stage__c | Picklist | LifeCycle.Stage | Stage |
| Status on AWS | AWS_Status__c | Picklist | LifeCycle.ReviewStatus | Status on AWS |
| AWS Stage | AWS_AwsStage__c | Text | AWSLifeCycle.Stage | AWS Stage |
| Opportunity Type | AWS_OpportunityType__c | Picklist | OpportunityType | Opportunity Type |
| Opportunity Ownership | AWS_OpportunityOwnership__c | Picklist | Origin — AWS Referral ⇒ Inbound, Partner Referral ⇒ Outbound | Opportunity Ownership |
| Target Close Date | AWS_TargetCloseDate__c | Date | LifeCycle.TargetCloseDate · invitation: Payload.Project.TargetCompletionDate | Target Close Date |
| AWS Close Date | AWS_AwsCloseDate__c | Date | — not populated by sync | AWS Close Date |
| Customer Software Value | AWS_CustomerSoftwareValue__c | Currency | SoftwareRevenue.Value.Amount · invitation: Payload.Project.ExpectedCustomerSpend[0].Amount | Customer Software Value |
| Customer Software Value Currency | AWS_CustomerSoftwareValueCurrency__c | Picklist | SoftwareRevenue.Value.CurrencyCode · invitation: …ExpectedCustomerSpend[0].CurrencyCode | Customer Software Value Currency |
| Expected Monthly AWS Revenue | AWS_ExpectedMonthlyAwsRevenue__c | Number | Project.ExpectedCustomerSpend[0].Amount | Expected Monthly AWS Revenue |
| Closed Lost Reason | AWS_ClosedLostReason__c | Text | LifeCycle.ClosedLostReason | Closed Lost Reason |
| AWS Closed Lost Reason | AWS_AwsClosedLostReason__c | Text | — not populated by sync | AWS Closed Lost Reason |
| Rejection Reason | AWS_RejectionReason__c | Picklist | Invitation only — RejectionReason | Rejection Reason |
| Parent Opportunity ID | AWS_ParentOppId__c | Text | Project.RelatedOpportunityIdentifier | Parent Opportunity ID |
Location Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Street | AWS_StreetAddress__c | Text | Customer.Account.Address.StreetAddress | Street Address |
| City | AWS_City__c | Text | Customer.Account.Address.City | City |
| State | AWS_State__c | Picklist | Customer.Account.Address.StateOrRegion | State |
| Postal Code | AWS_PostalCode__c | Text | Customer.Account.Address.PostalCode | Postal Code |
| Country | AWS_Country__c | Picklist | Customer.Account.Address.CountryCode, expanded to the full country name · invitation: Payload.Customer.CountryCode | Country |
Classification & Programs:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Industry | AWS_Industry__c | Picklist | Customer.Account.Industry · invitation: Payload.Customer.Industry | Industry |
| Industry (V2) | AWS_Industry_V2__c | Text | Customer.Account.Industry | New version of the ACE industry |
| Industry Other | AWS_IndustryOther__c | Text | Customer.Account.OtherIndustry | Industry Other |
| Use Case | AWS_UseCase__c | Picklist | Project.CustomerUseCase | Use Case |
| Use Case (V14) | AWS_UseCaseV14__c | Picklist | — not populated by sync | Use Case (detailed list) |
| APN Programs | AWS_CampaignName__c | Picklist | — not populated by sync | APN Programs |
| APN Programs (V14) | AWS_CampaignNameV14__c | Multi-Select Picklist | Marketing.CampaignName (an APN program, not a campaign name) | APN Programs |
| Delivery Model | AWS_DeliveryModel__c | Picklist | Project.DeliveryModels, ;-joined | Delivery Model |
| Delivery Model (V14) | AWS_DeliveryModelV14__c | Multi-Select Picklist | — not populated by sync | Delivery Model |
| Solution Offered | AWS_SolutionOffered__c | Multi-Select Picklist | RelatedEntityIdentifiers.Solutions, ;-joined | Solution Offered |
| Other Solution Offered | AWS_OtherSolutionOffered__c | Text | Project.OtherSolutionDescription | Other Solution Offered |
| Competitive Tracking | AWS_CompetitiveTracking__c | Picklist | Project.CompetitorName | Competitive Tracking |
| Competitive Tracking Other | AWS_CompetitiveTrackingOther__c | Text | Project.OtherCompetitorNames | Competitive Tracking Other |
| Procurement Type | AWS_ProcurementType__c | Picklist | — not populated by sync | Procurement Type |
| Contract Vehicle | AWS_ContractVehicle__c | Text | — not populated by sync | Contract Vehicle (Public Sector) |
| Solicitation Number | AWS_RfxSolicitationNumber__c | Text | — not populated by sync | Solicitation Number (Public Sector) |
Marketing & Activities:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Marketing Campaign | AWS_AwsSfCampaignName__c | Text | Marketing.CampaignName | Marketing Campaign |
| Customer Business Problem | AWS_ProjectDescription__c | Long Text Area | Project.CustomerBusinessProblem · invitation: Payload.Project.BusinessProblem | Customer Business Problem. 20–2,000 character hard cap |
| Partner Project Title | AWS_PartnerProjectTitle__c | Text | Project.Title · invitation: Payload.Project.Title | Partner Project Title |
| AWS Opportunity ID | AWS_OpportunityId__c | Text | Id | The AWS-assigned ACE opportunity id. Use this to link an ACE referral created outside Salesforce to a Salesforce opportunity |
| Partner CRM ID | AWS_ApnCrmUniqueIdentifier__c | Text | PartnerOpportunityIdentifier | The opportunity’s id in your own CRM, as reported to AWS Partner Central. Cleared when ACE holds no value |
| Next Step | AWS_NextStep__c | Text Area | LifeCycle.NextSteps | Next Step |
| Next Step History | AWS_NextStepHistory__c | Multi-Select Picklist | LifeCycle.NextStepsHistory, JSON-serialized | Next Step History |
| Additional Comments | AWS_AdditionalComments__c | Text Area | Project.AdditionalComments | Additional Comments. 255-character cap |
| APN Reviewer Comments | AWS_ApnReviewerComments__c | Long Text Area | LifeCycle.ReviewComments | APN Reviewer Comments |
| AWS Recommended Action | AWS_RecommendedNextBestActions__c | Long Text Area | Insights.NextBestActions | AWS Recommended Action |
| Marketing Activity Channel | AWS_MarketingActivityChannel__c | Multi-Select Picklist | Marketing.Channels, ;-joined | Marketing Activity Channel |
| Marketing Activity Use-Case | AWS_MarketingActivityUsecase__c | Multi-Select Picklist | Marketing.UseCases, ;-joined | Marketing Activity Use-Case |
| AWS Products | AWS_Products__c | Multi-Select Picklist | RelatedEntityIdentifiers.AwsProducts, ;-joined | AWS Products |
| Offers (Deprecated) | AWS_Offers__c | Text | — not populated by sync (superseded by AWS_OffersV2__c) | Offers (Deprecated) |
| Offers | AWS_OffersV2__c | Multi-Select Picklist | RelatedEntityIdentifiers.AwsMarketplaceOffers, ;-joined | Offers |
| Sales Activities | AWS_SalesActivities__c | Multi-Select Picklist | Project.SalesActivities, ;-joined | Sales Activities |
Dates & Status:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| AWS Created Date | AWS_CreatedDate__c | Date | CreatedDate · invitation: InvitationDate | Date when referral was created in AWS Partner Central |
| Last Modified Date | AWS_LastModifiedDate__c | DateTime | LastModifiedDate | Last Modified Date |
| Accept By | AWS_AcceptBy__c | DateTime | Invitation only — ExpirationDate | Accept By deadline |
| Partner Acceptance Date | AWS_Partner_Acceptance_Date__c | DateTime | — not populated by sync | Partner Acceptance Date |
| Partner Acceptance Status | AWS_PartnerAcceptanceStatus__c | Picklist | Invitation only — Status mapped to Pending/Accepted/Rejected | Partner Acceptance Status |
| Cosell Convert Reason | AWS_CosellConvertReason__c | Picklist | — not populated by sync | Cosell Convert Reason |
| Contract Start Date | AWS_ContractStartDate__c | Date | SoftwareRevenue.EffectiveDate | Contract Start Date |
| Contract End Date | AWS_ContractEndDate__c | Date | SoftwareRevenue.ExpirationDate | Contract End Date |
Additional Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Created By | AWS_CreatedBy__c | Text | — not populated by sync | Created By |
| Last Modified by | AWS_LastModifiedBy__c | Text | — not populated by sync | Last Modified by |
| Has Classified National Security Info? | AWS_DoesOppBelongToNatSec__c | Picklist | NationalSecurity | Has Classified National Security Info? |
| Is Opportunity from Marketing Activity? | AWS_IsOppFromMarketingActivity__c | Picklist | — not populated by sync | Is Opportunity from Marketing Activity? |
| Marketing development funds | AWS_IsMarketingDevelopmentFunded__c | Picklist | Marketing.AwsFundingUsed | Marketing development funds |
| Is this for Marketplace? | AWS_IsThisForMarketplace__c | Picklist | — not populated by sync | Is this for Marketplace? |
| Partner Primary Need from AWS | AWS_PartnerPrimaryNeedFromAWS__c | Picklist | — not populated by sync (superseded by the V14 field) | Partner Primary Need from AWS |
| Partner Primary Need from AWS (V14) | AWS_PartnerPrimaryNeedFromAwsV14__c | Multi-Select Picklist | PrimaryNeedsFromAws, ;-joined | Partner Primary Need from AWS |
| AWS Engagement Invitation ARN | AWS_EngagementInvitationArn__c | Text | Invitation only — Arn | AWS Engagement Invitation ARN |
| Invitation Message | AWS_InvitationMessage__c | Long Text Area | Invitation only — InvitationMessage | Message the sender attached to the engagement invitation |
| AWS Marketplace Engagement Score | AWS_EngagementScore__c | Picklist | Insights.EngagementScore | AWS Marketplace Engagement Score |
| AWS Co-Sell Motion | AWS_CosellMotion__c | Text (40) | CosellMotion | The co-sell motion AWS assigned to the opportunity. Scored asynchronously — blank until AWS returns it |
| AWS Opportunity Quality Score | AWS_OpportunityQualityScore__c | Number | Insights.OpportunityQuality.Score | AWS’s quality score for the opportunity. Scored asynchronously — blank until AWS returns it |
| AWS Opportunity Quality Trend | AWS_OpportunityQualityTrend__c | Text (20) | Insights.OpportunityQuality.Trend | Direction the quality score is moving. Scored asynchronously — blank until AWS returns it |
| AWS Recommendations | AWS_Recommendations__c | Long Text Area | Insights.Recommendations, JSON-serialized | AWS’s recommended actions, as a JSON array of {Type, Details, Attributes} objects |
Azure Fields
Customer Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Customer Company Name | AZURE_CustomerCompanyName__c | Text | customerProfile.name | Customer Company Name |
| Customer First Name | AZURE_CustomerFirstName__c | Text | customerProfile.team[0].firstName | Customer First Name |
| Customer Last Name | AZURE_CustomerLastName__c | Text | customerProfile.team[0].lastName | Customer Last Name |
| Customer Email | AZURE_CustomerEmail__c | Text | customerProfile.team[0].email | Customer Email |
| Customer Phone | AZURE_CustomerPhone__c | Text | customerProfile.team[0].phoneNumber | Customer Phone |
| Customer Title | AZURE_CustomerTitle__c | Text | customerProfile.team[0].title | Customer Title |
Location Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Street | AZURE_StreetAddress__c | Text | customerProfile.address.addressLine1 | Street Address |
| City | AZURE_City__c | Text | customerProfile.address.city | City |
| State | AZURE_State__c | Picklist | customerProfile.address.state | State |
| Postal Code | AZURE_PostalCode__c | Text | customerProfile.address.postalCode | Postal Code |
| Country (Deprecated) | AZURE_Country__c | Picklist | — not populated by sync (use AZURE_Country_Code__c) | Country (Deprecated) |
| Country Code | AZURE_Country_Code__c | Text | customerProfile.address.country | Country Code |
Referral Status & Type:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Microsoft Referral ID | AZURE_ReferralId__c | Text | id | Microsoft Referral ID |
| Status on Microsoft | AZURE_ReferralStatus__c | Text | status | Status on Microsoft |
| SubStatus on Microsoft | AZURE_ReferralSubStatus__c | Text | subStatus | SubStatus on Microsoft |
| Microsoft Acceptance Status | AZURE_MS_ReferralStatus__c | Text | Microsoft’s copy only — status | Status shown to Microsoft Sales Reps (New, Active, Closed) |
| Microsoft Acceptance Sub-Status | AZURE_MS_ReferralSubStatus__c | Text | Microsoft’s copy only — subStatus | Acceptance status (Pending, Received, Accepted, Declined, Lost, Won, Expired, Error) |
| Microsoft Sales Stage | AZURE_SalesStage__c | Text | salesStage, mapped to its display name (defaults to Prospecting) | Microsoft Sales Stage |
| Microsoft Referral Type | AZURE_Type__c | Text | type | Microsoft Referral Type |
Deal & Solution Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Solution Area | AZURE_Solution_Area__c | Text | derived from the referral’s solution area | Solution Area |
| Solution Play | AZURE_Solution_Play__c | Text | derived from the referral’s solution play | Solution Play |
| Microsoft Referral Campaign ID | AZURE_CampaignId__c | Text | campaignId | Microsoft Referral Campaign ID |
| Help from Microsoft | AZURE_AssistanceRequestCode__c | Text | Microsoft’s copy only — inviteContext.assistanceRequestCode, mapped to its display name (defaults to No help required) | Help from Microsoft |
| Help Type (Deprecated) | AZURE_AssitanceRequresCode__c | Text | — not populated by sync — misspelled legacy field, superseded by AZURE_AssistanceRequestCode__c | Help Type (Deprecated) |
| Deal Value | AZURE_DealValue__c | Number | details.dealValue | Deal Value |
| MACC Eligible (Deprecated) | AZURE_MACC_Eligibility__c | Checkbox | customerProfile.isMaccEligible (raw boolean) | MACC Eligible (Deprecated) |
| MACC Eligible | AZURE_MACC_EligibilityV2__c | Picklist | customerProfile.isMaccEligible → Yes/No | MACC Eligible |
| Target Close Date | AZURE_TargetCloseDate__c | Date | details.closingDateTime | Target Close Date |
Microsoft Contact & Metadata:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Microsoft Contact Email | AZURE_Microsoft_Contact_Email__c | Microsoft’s copy only — team[0].email | Microsoft Contact Email | |
| Microsoft Contact Name | AZURE_Microsoft_Contact_Name__c | Text | Microsoft’s copy only — team[0].firstName + lastName | Microsoft Contact Name |
| Microsoft Created Date/Time | AZURE_Created_Date_Time__c | DateTime | createdDateTime | Date/time referral was created on Microsoft Partner Center |
| Microsoft Referral Info | AZURE_Referral_Info__c | Long Text Area | the full Microsoft referral set, JSON-serialized | Microsoft Referral Info |
| Deal Registration Eligible | AZURE_DealReg_Eligible__c | Picklist | referral.metaInfo.azureDealRegIsEligible → Yes/No (blank when unknown) | Whether the referral is eligible for Azure deal registration |
| Microsoft External Reference ID | AZURE_ExternalReferenceId__c | Text | externalReferenceId | The external reference ID (CRM opportunity ID) sent to Microsoft Partner Center |
| MS Managed Account ID | AZURE_Managed_Account_Id__c | Text (50) | customerProfile.ids[] entry with profileType = External | Microsoft’s managed account ID for the customer. Set either by Suger’s auto-connect before submission, or by Microsoft’s server-side matching on inbound sync |
GCP Fields
Basic Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| GCP Name | GCP_Name__c | Text | name | Resource name: opportunities/{opportunity_id} |
| Opportunity Display Name | GCP_OpportunityDisplayName__c | Text | opportunityInfo.displayName | Display name for the Opportunity |
| Identifier Number | GCP_DealNumber__c | Text | qualificationInfo.dealNumber | Identifier Number |
| Description | GCP_OpportunityDescription__c | Long Text Area | opportunityInfo.description | Description |
Customer Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Customer Name | GCP_CustomerName__c | Text | customerDisplayName | Customer Name |
| Partner Entered Company | GCP_CustomerOrganizationName__c | Text | customerInfo.customerDetails.organizationName | Partner Entered Company |
| Customer Domain | GCP_CustomerDomain__c | Text | customerInfo.customerDetails.domain | Customer Domain |
| Customer Project Number(s) | GCP_CustomerProjectNumber__c | Number | partnerInfo.gcpProjectNumbers[0] | Customer Project Number(s) |
| Customer Project Number(s) | GCP_CustomerProjectNumber_Text__c | Text | partnerInfo.gcpProjectNumbers, comma-joined | Customer Project Number(s) as text |
Contact & Location:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| First Name | GCP_ContactFamilyName__c | Text | customerInfo.contact.familyName | First Name |
| Last Name | GCP_ContactGivenName__c | Text | customerInfo.contact.givenName | Last Name |
| Opportunity Team | GCP_CustomerContacts__c | Long Text Area | customerContacts, JSON-serialized | Opportunity Team |
| Customer Contact Requested | GCP_CustomerContactRequested__c | Picklist | customerContactRequested → Yes/No | Customer Contact Requested |
| Contact List | GCP_TeamMembers__c | Long Text Area | opportunityTeamMembers, JSON-serialized | Contact List |
| Address Line 1 | GCP_AddressLineOne__c | Text | customerInfo.customerDetails.address.addressLines[0] | Address Line 1 |
| Address Line 2 | GCP_AddressLineTwo__c | Text | customerInfo.customerDetails.address.addressLines[1] | Address Line 2 |
| City | GCP_Locality__c | Text | customerInfo.customerDetails.address.locality | City |
| State | GCP_AdministrativeArea__c | Text | customerInfo.customerDetails.address.administrativeArea | State |
| Zip/Postal Code | GCP_PostalCode__c | Text | customerInfo.customerDetails.address.postalCode | Zip/Postal Code |
| Partner Entered Country | GCP_RegionCode__c | Text | customerInfo.customerDetails.address.regionCode | Partner Entered Country |
| Partner Entered Region | GCP_Region__c | Text | customerInfo.region | Partner Entered Region |
Deal Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Expected Revenue | GCP_DealSize__c | Currency | qualificationInfo.dealSize.units | Expected Revenue |
| Opportunity Amount | GCP_OpportunityAmount__c | Currency | opportunityInfo.opportunityAmount.units | Opportunity Amount |
| Budget | GCP_Budget__c | Text | qualificationInfo.budget | Budget |
| Primary Campaign Source | GCP_CampaignCode__c | Text | qualificationInfo.campaignCode | Primary Campaign Source |
| Partner Incentive Type | GCP_IncentiveType__c | Text | partnerInfo.incentiveType | Partner Incentive Type |
| GCP Contract Vehicle | GCP_ContractVehicle__c | Picklist | isvSolutionConnectInfo.contractVehicle | GCP Contract Vehicle |
| Contract Length (Months) | GCP_ContractLengthMonths__c | Number | qualificationInfo.contractLengthMonths | Contract Length (Months) |
| Timeline | GCP_Timeline__c | Text | qualificationInfo.timeline | Timeline |
| Authority | GCP_Authority__c | Text | qualificationInfo.authority | Authority |
Dates & Status:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Creation Date | GCP_CreatedDate__c | Date | createTime | Creation Date |
| Created By | GCP_CreatorEmail__c | creatorEmail | Created By | |
| Submitted Date | GCP_SubmittedDate__c | Date | partnerInfo.submittedDate (year/month/day) | Submitted Date |
| Close Date | GCP_EstimatedCloseDate__c | Date | qualificationInfo.estimatedCloseDate (year/month/day) | Close Date |
| Approved Date | GCP_ApprovedDate__c | Date | partnerInfo.approvedDate (year/month/day) | Approved Date |
| Stage | GCP_Stage__c | Text | stage | Stage |
| GCP Acceptance Status | GCP_State__c | Text | state | GCP Acceptance Status |
| Decision Phase | GCP_DecisionPhase__c | Text | qualificationInfo.decisionPhase | Decision Phase |
| GCP Opportunity Type | GCP_OpportunityType__c | Picklist | opportunityType | GCP Opportunity Type |
| Opportunity Type | GCP_OperationType__c | Text | qualificationInfo.operationType | Opportunity Type |
| Opportunity Owner | GCP_Owner__c | Text | owner | Opportunity Owner |
| Opportunity Owner Email | GCP_OwnerEmail__c | ownerEmail | Opportunity Owner Email |
Products & Services:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Products | GCP_Products__c | Long Text Area | opportunityLines, JSON-serialized | Products |
| Product Category | GCP_ProductCategory__c | Text | opportunityInfo.productCategory, ;-joined | Product Category |
| Product Family | GCP_ProductFamily__c | Text | opportunityInfo.productFamily, ;-joined | Product Family |
| Need | GCP_Need__c | Text | qualificationInfo.need | Need |
Classifications & Attributes:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Industry | GCP_Industry__c | Text | customerInfo.customerDetails.industry | Industry |
| Number of Employees | GCP_EmployeeCount__c | Number | customerInfo.customerDetails.employeeCount | Number of Employees |
| GCP Delivery Model | GCP_DeliveryModel__c | Picklist | isvSolutionConnectInfo.deliveryModel | GCP Delivery Model |
| Support Level | GCP_SupportLevel__c | Picklist | isvSolutionConnectInfo.supportLevel | Support Level |
| Distributor | GCP_Distributor__c | Text | partnerInfo.distributor | Distributor |
| Billing Subaccount ID | GCP_SubbillingAccountId__c | Text | partnerInfo.subBillingAccountId | Billing Subaccount ID |
| Confidential | GCP_Confidential__c | Picklist | opportunityInfo.confidential → Yes/No | Confidential |
| Is ISV Solution Connect Deal | GCP_IsvSolutionConnectDeal__c | Picklist | presence of isvSolutionConnectInfo → Yes/No | Is ISV Solution Connect Deal |
| MSSP Deal | GCP_MsspDeal__c | Picklist | qualificationInfo.msspDeal → Yes/No | MSSP Deal |
| Legal Language Accepted | GCP_LegalLanguageAccepted__c | Picklist | qualificationInfo.legalLanguageAccepted → Yes/No | Legal Language Accepted |
| Partner Ready to Close | GCP_PartnerReadyToClose__c | Picklist | salesCycle.partnerReadyToClose | Partner Ready to Close |
| Opportunity Source | GCP_Source__c | Text | source (Google vs Partner originated) | Opportunity Source |
Extensions & Rebates:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Number of Extensions | GCP_ExtensionsCount__c | Number | partnerInfo.extensionsCount | Number of Extensions |
| Close Date Push Count | GCP_CloseDatePushCount__c | Number | salesCycle.closeDatePushCount | Close Date Push Count |
| Rebate Expiration Date | GCP_RebateExpirationDate__c | Date | partnerInfo.rebateExpirationDate (year/month/day) | Rebate Expiration Date |
| Rebate extension | GCP_RebateExtension__c | Long Text Area | rebateExtensions, JSON-serialized | Rebate extension |
Win/Loss Information:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Win Main Reason | GCP_WinMainReason__c | Text Area | winLossInfo.winMainReason | Win Main Reason |
| Won Reason | GCP_WonReason__c | Text Area | winLossInfo.wonReason | Won Reason |
| Loss Main Reason | GCP_LostMainReason__c | Text Area | winLossInfo.lostMainReason | Loss Main Reason |
| Lost Reason | GCP_LostReason__c | Text | winLossInfo.lostReason | Lost Reason |
| Lost/rejected Reason | GCP_LostRejectedReasonDetails__c | Text Area | winLossInfo.lostRejectedReasonDetails | Lost/rejected Reason |
| Win/Loss Products | GCP_WinLossProducts__c | Text | winLossInfo.winLossProducts, ;-joined | Win/Loss Products |
| Win/Loss Context | GCP_WinLossAdditionalContext__c | Text Area | winLossInfo.winLossAdditionalContext | Win/Loss Context |
Additional Fields:
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| PRM Site Details | GCP_PrmSiteDetails__c | Text | salesCycle.prmSiteDetails | PRM Site Details |
PRM (Suger Co-Sell) Fields
Populated for co-sell referrals shared through Suger PRM — partner-to-partner (org-to-org) co-sells. Only the minimal important deal information is synced; commission / revenue-share terms are intentionally not exposed.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| PRM Partner ID | PRM_Partner_ID__c | Text (External ID) | referral.partnerId | Suger partnership ID this referral belongs to |
| PRM Partner Name | PRM_Partner_Name__c | Text | partnership name resolved from referral.partnerId | Partner organization name |
| PRM Type | PRM_Type__c | Text | type | Opportunity type (New Business, Renewal, Expansion, Add On) |
| PRM Deal Role | PRM_DealRole__c | Text | dealRole | This org’s role on the deal (Seller / Referrer) |
| PRM Customer Company Name | PRM_CustomerCompanyName__c | Text | customerInfo.companyName | End-customer company name |
| PRM Customer Domain | PRM_CustomerDomain__c | Text | customerInfo.website | End-customer domain / website |
| PRM Customer Industry | PRM_CustomerIndustry__c | Text | customerInfo.industry | End-customer industry |
| PRM Customer Country | PRM_CustomerCountry__c | Text | customerInfo.country | End-customer country |
| PRM Customer Business Problem | PRM_CustomerBusinessProblem__c | Long Text Area | dealDetails.customerBusinessProblem | Customer business problem |
| PRM Use Case | PRM_UseCase__c | Long Text Area | dealDetails.useCase | Use case |
| PRM Target Close Date | PRM_TargetCloseDate__c | Date | dealDetails.targetCloseDate | Target close date |
| PRM Deal Value | PRM_DealValue__c | Number | dealDetails.dealValueAmount | Deal value amount |
| PRM Deal Value Currency | PRM_DealValueCurrency__c | Text | dealDetails.dealValueCurrency | Deal value currency (ISO 4217) |
| PRM Stage | PRM_Stage__c | Text | stage | Deal lifecycle stage |
| PRM Status | PRM_Status__c | Text | status | Sharing status of this copy |
| PRM Delivery Model | PRM_DeliveryModel__c | Text | dealDetails.deliveryModel, ;-joined | Delivery model(s) |
| PRM Next Steps | PRM_NextSteps__c | Long Text Area | nextSteps | Next steps |
| PRM Created Date | PRM_CreatedDate__c | Date/Time | createdDateTime | Created date |
| PRM Accepted Date | PRM_AcceptedDate__c | Date/Time | acceptedDateTime | Accepted date |
Contact__c
Stores partner contacts (e.g., AWS PDM, Azure PM, GCP PSO) associated with referrals and accounts. Used in co-sell flows to identify the partner-side person managing a deal.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Contact ID | Contact_ID__c | Text (External ID) | — legacy, superseded by Contact_ID_CS__c | Suger Contact ID — legacy identifier for the partner contact. Kept for existing records and no longer written on sync, so it is empty on contacts synced from now on. Use Contact_ID_CS__c to identify a contact. |
| Contact ID (Case-Sensitive) | Contact_ID_CS__c | Text (External ID), required, case-sensitive unique | contact.id | Suger Contact ID — the identifier Suger matches contacts on. Case-sensitive uniqueness means two IDs differing only in letter case are two different contacts, which is what makes it a safe upsert key. Being required, it must carry a value on any Contact record you create or load by hand; Contact_ID__c is optional. |
| Partner | Partner__c | Text | contact.info.partner | Cloud partner associated with this contact (AWS, AZURE, GCP). |
| Role | Role__c | Text | contact.info.role | Role of the partner contact (e.g., AWS PDM, Azure PM, GCP PSO). |
| Source | Source__c | Picklist | contact metrics — source system | Source of the contact — Referral (came in via a referral) or Predicted (inferred). |
Email__c | contact.emailAddress | Email address of the partner contact. | ||
| Phone | Phone__c | Phone | contact.info.phoneNumber | Phone number of the partner contact. |
| Tags | Tags__c | Long Text Area | contact.tags (comma-joined) | Comma-separated tags for the contact (e.g., partner, cosell, aws). |
| Industries | Industries__c | Long Text Area | contact metrics — industries (comma-joined) | Comma-separated list of industries covered by this contact. |
| Managed Domains | Managed_Domains__c | Long Text Area | contact metrics — managed domains (comma-joined) | Comma-separated list of customer domains managed by this contact. |
| Managed Regions | Managed_Regions__c | Long Text Area | contact metrics — distinct account regions (comma-joined) | Comma-separated list of regions managed by this contact. |
| Accounts | Accounts__c | Long Text Area | contact metrics — accounts (JSON) | JSON array of accounts associated with this contact. |
| Opportunities | Opportunities__c | Long Text Area | contact metrics — opportunities (JSON) | JSON array of opportunities associated with this contact. |
| Account Count | Account_Count__c | Number | contact metrics — account count | Total number of accounts managed by this contact. |
| Active Opportunity Count | Active_Opportunity_Count__c | Number | contact metrics — active opportunity count | Number of active opportunities associated with this contact. |
| Referral Count | Referral_Count__c | Number | contact metrics — referral count | Total number of referrals associated with this contact. |
| Pipeline | Pipeline__c | Currency | contact metrics — USD pipeline | Total open pipeline value for this contact. |
| Success Rate | Success_Rate__c | Percent | contact metrics — success rate | Success rate percentage for referrals brought by this contact. |
| Info | Info__c | Long Text Area | contact.info (full JSON) | Full contact info JSON from Suger. |
| Creation Date | Creation_Date__c | Date | contact.creationTime | Date when the contact was created in Suger. |
| Last Update Date | Last_Update_Date__c | Date | contact.lastUpdateTime | Date when the contact was last updated in Suger. |
Lead__c
Represents AWS lead invitations and the leads they convert into. Written only for the AWS partner — Azure and GCP have no equivalent lead object. Salesforce shows the object as Lead (Suger) / Leads (Suger), keeping it distinct from the standard Salesforce Lead object.
To work these records in the app rather than report on them, see Work AWS Co-Sell Leads — the Leads V2 (Suger) tab reads live from Suger, so it can differ from the backfilled fields below between sync runs.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Lead ID | Lead_ID__c | Text (External ID) | lead.id | The unique ID of the Lead in Suger |
| Partner | Partner__c | Picklist | lead.partner (always AWS) | The cloud partner that sent the lead |
| External ID | External_Id__c | Text | lead.externalId | The lead’s ID in AWS Partner Central |
| Invitation ID | Invitation_Id__c | Text | lead.invitationId | The AWS engagement invitation that carried this lead |
| Context ID | Context_Id__c | Text | lead.contextId | The AWS lead context ID, available after acceptance |
| Invitation Status | Invitation_Status__c | Text | lead.invitationStatus | Invitation status (PENDING, ACCEPTED, REJECTED, EXPIRED) |
| Status | Status__c | Text | lead.status | The lead’s status in Suger |
| Qualification Status | Qualification_Status__c | Text | invitation qualificationStatus, overridden post-accept by the lead context | How AWS has qualified the lead |
| Readiness Score | Readiness_Score__c | Text (50) | Post-accept only — insights.leadReadinessScore | AWS’s readiness score for the lead |
| Company Name | Company_Name__c | Text | customer.companyName | The prospect’s company name |
| Industry | Industry__c | Text | customer.industry | The prospect’s industry |
| Market Segment | Market_Segment__c | Text | customer.marketSegment | The prospect’s market segment |
| AWS Maturity | Aws_Maturity__c | Text | customer.awsMaturity | How far along the prospect is with AWS |
| Website | Website__c | Text | customer.websiteUrl | The prospect’s website |
| City | City__c | Text | Post-accept only — customer.address.city | City |
| State | State__c | Text | Post-accept only — customer.address.stateOrRegion | State or region |
| Postal Code | Postal_Code__c | Text (40) | Post-accept only — customer.address.postalCode | Postal code |
| Country | Country__c | Text | customer.address.countryCode, expanded to the full country name | Country |
| Customer First Name | Customer_First_Name__c | Text | Post-accept only — interactions[0].contact.firstName | Contact first name. Empty before acceptance — the invitation payload is masked |
| Customer Last Name | Customer_Last_Name__c | Text | Post-accept only — interactions[0].contact.lastName | Contact last name |
| Customer Email | Customer_Email__c | Post-accept only — interactions[0].contact.email | Contact email | |
| Customer Phone | Customer_Phone__c | Phone | Post-accept only — interactions[0].contact.phone | Contact phone |
| Customer Title | Customer_Title__c | Text | interactions[0].contact.businessTitle (invitation: interaction.contactBusinessTitle) | Contact business title |
| Interactions | Interactions__c | Long Text Area | interactions, JSON-serialized | The lead’s interaction history as a JSON array |
| Converted Opportunity ID | Converted_Opportunity_Id__c | Text | lead.convertedOpportunityId | The AWS opportunity this lead converted into |
| Converted Referral | Converted_Referral__c | Lookup | the Suger__Referral__c record for the converted referral | Left unset until that referral itself reaches Salesforce; filled on a later backfill run |
| Account ID | AccountID__c | Lookup | lead.salesforceAccountId | Reference to Salesforce Account |
| Opportunity ID | OpportunityID__c | Lookup | lead.salesforceOpportunityId | Reference to Salesforce Opportunity |
| Expiration Date | Expiration_Date__c | Date | — not populated by sync | Expiration Date |
Referral_Bulk_Share_Job__c
Tracks the status of bulk referral share jobs (e.g., sharing many referrals to a cloud partner in one operation). Used by the admin UI to monitor progress and surface failures.
| Label | API Name | Type | Description |
|---|---|---|---|
| Job ID | Referral_Bulk_Share_Job_ID__c | Text (External ID) | Unique identifier for the bulk share job. |
| Partner | Partner__c | Picklist | Cloud partner the job is sharing referrals to (AWS, AZURE, GCP). |
| State | State__c | Picklist | Current job state (e.g., Running, Succeeded, Failed). |
| Total Count | Total_Count__c | Number | Total number of referrals queued in the job. |
| Succeeded Count | Succeeded_Count__c | Number | Number of referrals successfully shared. |
| Failed Count | Failed_Count__c | Number | Number of referrals that failed to share. |
| Start Date | Start_Date__c | DateTime | When the job started executing. |
| Finish Date | Finish_Date__c | DateTime | When the job completed (success or failure). |
| Created Date | Created_Date__c | DateTime | When the job was first queued. |
| Error Message | Error_Message__c | Long Text Area | Aggregated error message describing why the job failed (if applicable). |
| Details | Details__c | Long Text Area | Per-referral details including individual success/failure reasons. |
Funding Objects
Funding__c
Tracks funding programs and cash/credit requests from cloud marketplace partners.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Funding Application ID | FundingApplicationId__c | Text | fundingApplication.id | The unique ID of the Funding Application |
| Partner | Partner__c | Picklist | fundingApplication.partner | Partner (AWS/AZURE/GCP) |
| Referral | Referral__c | Lookup | lookup resolved from the funding application’s referral | Reference to Referral |
| Opportunity | Opportunity__c | Lookup | the linked referral’s Salesforce Opportunity | Reference to Salesforce Opportunity |
| AWS Activity Name | AWS_ActivityName__c | Text | AWS only — benefit application activity name | AWS Activity Name |
| AWS Annual Run Rate | AWS_AnnualRunRate__c | Currency | AWS only — benefit application annual run rate | AWS Annual Run Rate |
| AWS Benefit Application Id | AWS_BenefitApplicationId__c | Text | AWS only — benefit application ID | AWS Benefit Application Id |
| AWS Funding Program | AWS_FundingProgram__c | Text | AWS only — benefit application programs (;-joined) | AWS Funding Program |
| AWS Funding Request Status | AWS_FundingRequestStatus__c | Picklist | AWS only — benefit application status | AWS Funding Request Status |
| AWS Planned Start Date | AWS_PlannedStartDate__c | Date | AWS only — benefit application planned start date | AWS Planned Start Date |
| AWS Planned End Date | AWS_PlannedEndDate__c | Date | AWS only — benefit application planned end date | AWS Planned End Date |
| AWS Cash Request Requested Amount | AWS_CashRequest_RequestedAmount__c | Currency | AWS only — cash request requested amount | AWS Cash Request Requested Amount |
| AWS Cash Request Approved Amount | AWS_CashRequest_ApprovedAmount__c | Currency | AWS only — cash request approved amount | AWS Cash Request Approved Amount |
| AWS Cash Request Total Cost Of Activity | AWS_CashRequest_TotalCostOfActivity__c | Currency | AWS only — cash request total activity cost | AWS Cash Request Total Cost Of Activity |
| Credit Requested Amount | Credit_Requested_Amount__c | Currency | credit request requested amount | Credit Requested Amount |
| Credit Approved Amount | Credit_Approved_Amount__c | Currency | credit request approved amount | Credit Approved Amount |
| Credit Currency | Credit_Currency__c | Text | credit request currency | Credit Currency |
| Credit Number Of Codes | Credit_Number_Of_Codes__c | Number | credit request number of codes | Credit Number Of Codes |
| Credit Codes | Credit_Codes__c | Long Text Area | credit codes (newline-joined) | Issued AWS credit codes (one per line) |
FundingCashClaim__c
Tracks individual cash claims against funding requests.
| Label | API Name | Type | Populated From | Description |
|---|---|---|---|---|
| Funding Request | Funding_Request__c | Lookup | parent Suger__Funding__c record | Reference to parent Funding |
| Claim Amount | Claim_Amount__c | Currency | cash claim amount | Claim Amount |
| Claim Status | Claim_Status__c | Text | benefit application status | Claim Status |
| Claim Start Date | Claim_Start_Date__c | Date | — not populated by sync | Claim period start |
| Claim End Date | Claim_End_Date__c | Date | — not populated by sync | Claim period end |
| Claim Due Date | Claim_Due_Date__c | Date | — not populated by sync | When claim is due |
Configuration Objects
These objects store app-wide configuration that affects how the Suger Salesforce App behaves. They are typically managed by administrators, not end users.
Suger_Organization__c
Stores the connection between the Suger Salesforce App and the Suger backend (API credentials, OAuth client info, organization-level feature toggles).
| Label | API Name | Type | Description |
|---|---|---|---|
| Organization ID | Organization_Id__c | Text | Suger organization ID this Salesforce org is connected to. |
| API Endpoint | Api_Endpoint__c | URL | Suger API base URL (typically https://api.suger.cloud). |
| API Key | Api_Key__c | Text | API key for Suger API access. Stored encrypted. |
| AES Key | Aes_Key__c | Text | Crypto AES key used to encrypt the API key at rest. |
| OAuth Client ID | OAuth_Client_Id__c | Text | OAuth app client_id used for the OAuth 2.0 client-credentials flow when API-key auth is not used. |
| OAuth Client Secret | OAuth_Client_Secret__c | Text | OAuth app client_secret for the client-credentials flow. Stored encrypted. |
| Enable Approval Process | Enable_Approval_Process__c | Checkbox | When on, Suger uses Salesforce’s native Approval Process for offer/referral approvals. |
| Enable Offer Set In Opportunity Level | Enable_Offer_Set_In_Opportunity_Level__c | Checkbox | When on, multiple offers can be associated with one Opportunity via Opportunity_Offer__c. |
| Enable Product Filter | Enable_Product_Filter__c | Checkbox | When on, the Create Offer UI restricts product selection using Product_Filter__c. |
| Product Filter | Product_Filter__c | Text | Filter expression that limits which products appear in the Create Offer dropdown. |
| Tab Settings | Tab_Settings__c | Text | JSON object storing per-tab visibility. Tabs not listed (or set to false) are enabled by default. |
| Enable Widget Pin Lock | Enable_Widget_Pin_Lock__c | Checkbox | When on, the Opportunity widget Pinned sections are enforced org-wide and users can no longer pin/unpin their own sections. |
| Widget Pinned Sections | Widget_Pinned_Sections__c | Text | JSON array of section keys pinned org-wide when the pin lock is on (max 2), e.g. ["offer","funding"]. |
| Offer Triggering Record Field Set Name | Offer_Triggering_Record_Field_Set_Name__c | Text | API name of a Salesforce Field Set that controls which fields appear when creating the triggering record (e.g., Opportunity) from the Create Offer flow. |
| Additional Offer Triggering Relationship | Additional_Offer_Triggering_Relationship__c | Text | A relationship from Opportunity used as an additional input for field mapping during offer creation. |
View__c
Stores user-saved list view configurations (column choices, filters, sort order) for Suger object pages in the Console. Allows admins to create reusable, shareable views.
| Label | API Name | Type | Description |
|---|---|---|---|
| Name | Name__c | Text | Display name of the saved view. |
| Target Context | Target_Context__c | Text | The Suger object/page this view applies to (e.g., Account, Offer, Referral). |
| Columns | Columns__c | Long Text Area | JSON representation of the column configuration (which columns to show, in what order). |
| Filter Logic | Filter_Logic__c | Long Text Area | JSON representation of the active filter conditions. |
| Sort Logic | Sort_Logic__c | Long Text Area | JSON representation of the active sort configuration. |
| Metadata | Metadata__c | Long Text Area | JSON representation of view metadata (e.g., disableActions, other UI flags). |
| Permission Sets | Permission_Sets__c | Long Text Area | Comma-separated list of permission set names that can see this view. Empty means owner-only. |
Custom Metadata Types
Referral_Lookup_Filter__mdt
Configurable lookup filters for the Referral object. Allows admins to define filter criteria for Opportunity and Account lookups on referral records.
| Label | API Name | Type | Description |
|---|---|---|---|
| Label | MasterLabel | Text | Display name for this filter |
| Developer Name | DeveloperName | Text | API name for this filter |
| Object Name | Object_Name__c | Text | Target object: Opportunity or Account |
| Filter Condition | Filter_Condition__c | Long Text Area | SOQL-like filter expression |
| Display Field Set | Display_Field_Set__c | Text | Optional. API name of a field set on the target object; the first field (excluding Name and Id) is shown as extra info in the picker suggestions |
| Search Field | Search_Field__c | Text | Optional. API name of one additional field to match against the search text, e.g. Opportunity_Number__c. The Name field is always searched. Only text and text-formula fields are supported |
| Is Active | Is_Active__c | Checkbox | Enable/disable the filter |
How to Configure
-
Click the Gear Icon (⚙️) > Setup.
-
In the Quick Find box, type
Custom Metadata Types. -
Locate the row labeled Referral Lookup Filter (Namespace Prefix: SUGER) and click Manage Records.
-
Click New to create a new filter rule.
-
Fill in the fields and click Save.
Filter Condition Syntax
The Filter_Condition__c field accepts SOQL-like filter expressions with these features:
Supported Operators:
| Operator | Example | Description |
|---|---|---|
= | Status = 'Active' | Equals |
!= or <> | Type != 'Archived' | Not equals |
< | Amount < 1000 | Less than |
> | Amount > 500 | Greater than |
<= | Count <= 10 | Less than or equal |
>= | Count >= 5 | Greater than or equal |
LIKE | Name LIKE '%Corp%' | Pattern matching |
IN | Type IN ('A', 'B', 'C') | Match any value in list |
NOT IN | Stage NOT IN ('Lost', 'Won') | Exclude values in list |
Logical Operators:
AND- Both conditions must be trueOR- Either condition must be true()- Parentheses for grouping (supports nesting)
Value Types:
| Type | Example |
|---|---|
| String | 'Active' or "Active" |
| Boolean | true or false |
| Number | 100, 99.5 |
| Null | null |
| Empty String | '' |
Dynamic Field References:
Reference values from the Referral record using {ObjectName__c.FieldName__c} syntax:
Name = {Referral__c.AWS_CustomerCompanyName__c}
Suger__Hyperscaler__c = {Referral__c.Partner__c}
Relationship fields are also supported:
Account.Name = {Referral__c.Account__r.Name}
Example Filter Conditions
Filter Opportunities by Stage:
StageName NOT IN ('Closed Lost', 'Closed Won')
Filter by Amount and Type:
Amount > 10000 AND Type IN ('New Business', 'Expansion')
Complex Filter with Dynamic References:
Type IN ('1P', 'Standard') AND StageName NOT IN ('Closed Lost', 'Closed Won') AND Suger__CosellShared__c = false AND (Suger__Hyperscaler__c = {Referral__c.Partner__c} OR Suger__Hyperscaler__c = '' OR Suger__Hyperscaler__c = null)
Searching by an Additional Field
By default, the record picker in the referral Link Opportunity / Link Account dialogs matches your search text against the record Name only. To also search by another field — for example an opportunity number like OPP-002370084 — set Search Field (Search_Field__c) to that field’s API name:
| Field | Value |
|---|---|
| Object Name | Opportunity |
| Search Field | Opportunity_Number__c |
| Is Active | ✓ |
With this record active, typing either an opportunity name or an opportunity number in the picker finds the record, and the configured field is shown next to each suggestion.
Spotted something wrong or out of date on this page? Tell us and we'll correct it.