# 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.

:::note
This is a reference article — it documents what exists, not how to set things up. If you're looking for how to install and configure the app, start with [Install the Suger App from Salesforce AppExchange](/salesforce-app/salesforce-app-install/).
:::

## 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, Referral_Bulk_Share_Job | Partner referrals 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:

```mermaid
graph LR
    Product__c --> Offer__c
    Product__c --> Buyer__c
    Offer__c --> Entitlement__c
    Offer__c --> OfferDimension__c
    Offer__c --> OfferPaymentInstallment__c
    Entitlement__c --> EntitlementTerm__c
    Entitlement__c --> RevenueRecord__c
    Referral__c --> Funding__c
    Referral__c --> Contact__c
    Funding__c --> FundingCashClaim__c
```

---

## Core Marketplace Objects

### Buyer__c

Represents cloud marketplace customers/buyers who purchase products through AWS, Azure, GCP, or Snowflake marketplaces.

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| ID | `Buyer_ID__c` | Text (External ID) | The Buyer ID in Suger service |
| Partner | `Partner__c` | Picklist | The partner of the Buyer, such as AWS, AZURE, or GCP |
| Creation Date | `Buyer_Creation_Date__c` | Date | The creation date of the buyer in Suger service |
| Description | `Buyer_Description__c` | Long Text Area | The description of the buyer |
| Info | `Buyer_Info__c` | Long Text Area | The detailed info of the buyer |
| Email Domain | `Buyer_Email_Domain__c` | Text | The company email domain of the buyer |
| Location | `Buyer_Location__c` | Text | The company location of the buyer |
| External ID | `Buyer_External_ID__c` | Text | The buyer's external ID from Cloud Marketplaces |
| Buyer Email Address | `Buyer_Email_Address__c` | Text | Email address of the buyer |
| Contact IDs | `Contact_IDs__c` | Text Area | 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 | Description |
| ----- | -------- | ---- | ----------- |
| ID | `Product_ID__c` | Text (External ID) | The product ID in Suger |
| Partner | `Partner__c` | Picklist | The cloud partner where this product is listed |
| Type | `Product_Type__c` | Text | The type of this product |
| Status | `Product_Status__c` | Text | The status of this product listing in the Cloud Marketplace |
| Creation Date | `Product_Creation_Date__c` | Date | When the Product is listed in the Cloud Marketplace |
| Info | `Product_Info__c` | Long Text Area | The detailed info of product, including the price info |
| External ID | `Product_External_ID__c` | Text | The product external ID from the Cloud Marketplaces |
| Fulfillment URL | `Product_Fulfillment_URL__c` | URL | The fulfillment URL of the product to signup |
| Partner ID | `Partner_ID__c` | Text | Partner ID |

---

### Offer__c

Represents marketplace offers (private offers, CPPO, etc.) with approval workflows and expiration tracking.

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| ID | `Offer_ID__c` | Text (External ID) | The unique ID of the Offer. Generated by Suger service |
| Partner | `Partner__c` | Picklist | The partner where this offer is created (AWS, AZURE, GCP, ALIBABA) |
| Partner ID | `Partner_ID__c` | Text | 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 | The status of this Offer |
| Approval Status | `Approval_Status__c` | Picklist | Approval Status (Not Submitted, Submitted, Approved, Declined, Action Required) |
| Type | `Offer_Type__c` | Text | The type of this Offer from the cloud marketplaces |
| Product ID | `Product_ID__c` | Text | The ID of Product where this Offer is based on |
| Product Name | `Product_Name__c` | Text | The name of the Product where this Offer is based on |
| Product | `Product__c` | Lookup | Reference to Product record |
| Buyer | `Buyer__c` | Lookup | Reference to Buyer record |
| Buyer ID | `Buyer_ID__c` | Text | Buyer ID |
| Buyer Name | `Buyer_Name__c` | Text | The name of the Buyer of this Offer |
| Buyer Account ID | `Buyer_Account_ID__c` | Text | 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 | Buyer AWS Account ID |
| Offer Info | `Offer_Info__c` | Long Text Area | The detailed info of this Offer, including the price info |
| Meta Info | `Offer_Meta_Info__c` | Long Text Area | The meta info of this Offer, populated by Suger service |
| External ID | `Offer_External_ID__c` | Text | The external ID of this Offer in the cloud marketplaces |
| Creation Date | `Offer_Creation_Date__c` | Date | When this Private Offer is created in the Cloud Marketplace |
| Marketplace Creation Date Time | `Marketplace_Creation_DateTime__c` | DateTime | The date and time when this offer was created |
| Acceptance DateTime | `Acceptance_DateTime__c` | DateTime | When the buyer accepted the offer |
| Contract Start Time | `Contract_Start_Time__c` | Date | The contract start time for this offer |
| Contract End Time | `Contract_End_Time__c` | Date | The contract end time for this offer |
| Offer Duration (Months) | `Offer_Duration_Months__c` | Number (Formula) | Calendar-month difference between Contract Start Time and Contract End Time. Only populated for GCP offers. |
| Expire Date | `Offer_Expire_Date__c` | Date | The date when the Offer expires. Cannot be accepted after expiration |
| Approval Date | `Approval_Date__c` | Date | Date when the offer was approved |
| Opportunity | `Opportunity__c` | Lookup | Reference to Salesforce Opportunity |
| Account | `Account__c` | Lookup | 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 - use QuoteLookup instead |
| Quote Lookup | `QuoteLookup__c` | Lookup | The Quote binding to this offer |
| Created By | `Created_By__c` | Lookup | Salesforce User who created this offer in Suger marketplace |
| Created By Email | `Created_By_Email__c` | Text | Email of the user who created this offer (fallback when no matching Salesforce User) |
| Error Message | `Error_Message__c` | Long Text Area | Error Message |
| Review Comment | `Review_Comment__c` | HTML | Review Comment |
| Reseller ID | `Reseller_ID__c` | Text | The reseller ID for CPPO (Channel Partner Private Offer) offers |
| Offer Visibility | `Offer_Visibility__c` | Text | 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 | Whether this is a public marketplace listing offer (PUBLIC) or a private offer negotiated with a specific buyer (PRIVATE) |
| SubStatus | `Offer_SubStatus__c` | Text | The sub-status of this offer |
| Is Renewal | `Is_Renewal__c` | Checkbox | Whether this offer is a renewal |
| Gross Contract Value | `Gross_Contract_Value__c` | Currency | Total contract value computed from the offer's pricing data (installments, commits, or plan pricing) |
| Marketplace Fee | `Marketplace_Fee__c` | Currency | Cloud marketplace commission fee, computed once the first invoice is confirmed |
| Net Contract Value | `Net_Contract_Value__c` | Currency | 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 | The private offer URL in the cloud marketplace |
| Created Source | `Created_Source__c` | Text | 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 | Description |
| ----- | -------- | ---- | ----------- |
| ID | `Entitlement_ID__c` | Text (External ID) | The Entitlement ID in Suger |
| Partner | `Partner__c` | Picklist | The cloud partner where the entitlement is created |
| Partner ID | `Partner_ID__c` | Text | 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 | The status of the Entitlement in the Cloud Marketplace |
| Type | `Entitlement_Type__c` | Text | The type of the Entitlement |
| Product ID | `Product_ID__c` | Text | The ID of Product where this Entitlement is based on |
| Product Name | `Product_Name__c` | Text | The name of the Product where this Entitlement is based on |
| Product | `Product__c` | Lookup | Reference to Product record |
| Offer ID | `Offer_ID__c` | Text | The ID of the Offer in this Entitlement |
| Offer Name | `Offer_Name__c` | Text | The name of the Offer in this Entitlement |
| Offer | `Offer__c` | Lookup | Reference to Offer record |
| Buyer ID | `Buyer_ID__c` | Text | The ID of Buyer in this Entitlement |
| Buyer Name | `Buyer_Name__c` | Text | The name of the Buyer in this Entitlement |
| Buyer | `Buyer__c` | Lookup | Reference to Buyer record |
| AWS Account ID | `AWS_Account_ID__c` | Text | AWS Account ID |
| Entitlement Info | `Entitlement_Info__c` | Long Text Area | The detailed info of Entitlement, including the price info |
| Meta Info | `Entitlement_Meta_Info__c` | Long Text Area | The meta info of the Entitlement, populated by Suger service |
| External ID | `Entitlement_External_ID__c` | Text | The Entitlement's external ID from the Cloud Marketplaces |
| Creation Date | `Entitlement_Creation_Date__c` | Date | When the Entitlement is listed in the Cloud Marketplace |
| Start Date | `Entitlement_Start_Date__c` | Date | Start Date |
| End Date | `Entitlement_End_Date__c` | Date | When the Entitlement was or will be ended |
| Opportunity | `Opportunity__c` | Lookup | Opportunity associated with the entitlement |
| Invoiced Amount | `Invoiced_Amount__c` | Currency | Cumulative amount invoiced to the buyer for this entitlement across all billing periods |
| Collectable Amount | `Collectable_Amount__c` | Currency | Cumulative amount the marketplace is expected to collect from the buyer for this entitlement |
| Disbursed Amount | `Disbursed_Amount__c` | Currency | Cumulative amount the marketplace has disbursed to the seller for this entitlement |
| Offer Visibility | `Offer_Visibility__c` | Text | 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 | Whether this entitlement originated from a public listing offer (PUBLIC) or a private offer (PRIVATE); derived from the linked offer |
| Account | `Account__c` | Lookup | 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 | Whether Auto Renew is enabled for this entitlement in the cloud marketplace |
| Buyer and Reseller | `Buyer_And_Reseller__c` | Text | Combined buyer and reseller display value |
| Display Name with Status | `Display_Name_With_Status__c` | Formula (Text) | 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 | Description |
| ----- | -------- | ---- | ----------- |
| Entitlement Term ID | `Entitlement_Term_ID__c` | Text (External ID) | Entitlement Term ID |
| Entitlement | `Entitlement__c` | Lookup | Reference to parent Entitlement |
| Offer ID | `Offer_ID__c` | Text | Offer ID |
| Type | `Type__c` | Text | Type (subscription, usage, commitment, credit) |
| Start Time | `StartTime__c` | DateTime | Term start time |
| End Time | `EndTime__c` | DateTime | Term end time |
| Commit Amount | `Commit_Amount__c` | Number | Commitment amount |
| Used Commit Amount | `Used_Commit_Amount__c` | Number | Used portion of commitment |
| Credit Amount | `Credit_Amount__c` | Number | Credit amount |
| Used Credit Amount | `Used_Credit_Amount__c` | Number | Used portion of credits |
| Reported Amount | `Reported_Amount__c` | Number | Reported usage amount |

---

### RevenueRecord__c

Tracks financial transactions and commission tracking for cloud marketplace deals.

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Revenue Record ID | `Revenue_Record_ID__c` | Text (External ID) | Revenue Record ID |
| Entitlement | `Entitlement__c` | Lookup | Reference to Entitlement |
| Revenue Type | `Revenue_Type__c` | Text | Type of revenue |
| Amount | `Amount__c` | Currency | Transaction amount |
| Date | `Date__c` | DateTime | Transaction date |
| Invoice Amount | `Invoice_Amount__c` | Currency | Invoiced amount |
| Invoice Date | `Invoice_Date__c` | DateTime | Invoice date |
| Collectable Amount | `Collectable_Amount__c` | Currency | Amount expected to collect |
| Disburse Amount | `Disburse_Amount__c` | Currency | Amount to be disbursed |
| Disburse Date | `Disburse_Date__c` | DateTime | Disbursement date |
| Payment Due Date | `Payment_Due_Date__c` | DateTime | When payment is due |
| Partner Fee Percentage | `Partner_Fee_Percent__c` | Percent | Partner fee percentage |
| Partner Fee Dollar | `Partner_Fee_Dollar__c` | Currency | Partner fee in dollars |
| Invoice ID | `Invoice_ID__c` | Text | The invoice ID associated with this revenue record |
| Payment Terms | `Payment_Terms__c` | Text | Payment terms for this revenue record |
| Usage Period Start Date | `Usage_Period_Start_Date__c` | DateTime | Start of the usage period this revenue record covers |
| Usage Period End Date | `Usage_Period_End_Date__c` | DateTime | 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 | Description |
| ----- | -------- | ---- | ----------- |
| Offer Dimension ID | `Offer_Dimension_ID__c` | Text (External ID) | External ID for idempotent upsert. Format: `{offerID}:{key}` (truncated if over 255 chars). |
| Offer | `Offer__c` | Lookup | Reference to the parent Offer record. |
| Offer ID | `Offer_ID__c` | Text | Suger Offer ID — used to resolve the parent Offer lookup during backfill. |
| Key | `Key__c` | Text | API key/identifier of the metering dimension (`MeteringDimension.Key`). |
| Category | `Category__c` | Text | Category of the metering dimension. |
| Description | `Description__c` | Long Text Area | Human-readable description of the dimension. |
| Types | `Types__c` | Text | Semicolon-separated list of dimension types (`MeteringDimension.Types`). |
| Rate | `Rate__c` | Number | Unit price of the dimension (`MeteringDimension.Rate`). |
| Value Type | `Value_Type__c` | Text | **GCP only.** Value type of the metering dimension quantity. |
| Plan ID | `Plan_ID__c` | Text | **GCP only.** ID of the plan that the dimension belongs to. |
| Plan Name | `Plan_Name__c` | Text | **GCP only.** Name of the plan that the dimension belongs to. |
| SKU ID | `Sku_ID__c` | Text | **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 | Description |
| ----- | -------- | ---- | ----------- |
| Offer Payment Installment ID | `Offer_Payment_Installment_ID__c` | Text (External ID) | External ID for idempotent upsert. Format: `{offerID}:{chargeOn}` (or `{offerID}:i{index}` when the charge date is blank). |
| Offer | `Offer__c` | Lookup | Reference to the parent Offer record. |
| Offer ID | `Offer_ID__c` | Text | Suger Offer ID — used to resolve the parent Offer lookup during backfill. |
| Charge Date | `Charge_Date__c` | Date | Date the buyer is charged for this installment. Blank means charged on the entitlement's effective date. |
| Amount | `Amount__c` | Number | Amount charged for this installment, after any discount. |
| Original Amount | `Original_Amount__c` | Number | List price before discount; blank if there is no discount. |
| Discount % | `Discount_Percentage__c` | Number | Discount off the original price, 0 to 100. |
| Credit | `Credit__c` | Number | **GCP only.** One-time credit applied to this installment. |
| Currency | `Currency__c` | Text | 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 | Description |
| ----- | -------- | ---- | ----------- |
| Offer | `Offer__c` | Master-Detail | Reference to the Offer record. |
| Opportunity | `Opportunity__c` | Master-Detail | 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.

:::note
The Referral object contains 175+ fields to accommodate the different data requirements of each cloud partner's co-sell program. Fields are prefixed with `AWS_`, `AZURE_`, `GCP_`, or `PRM_` (Suger partner-to-partner co-sell) to indicate the program they apply to.
:::

#### Common Fields

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Referral ID | `Referral_ID__c` | Text (External ID) | The unique ID of the Referral. Generated by Suger service |
| Referral Type | `Referral_Type__c` | Picklist | Referral Type (Inbound/Outbound) |
| Referral Status | `Referral_Status__c` | Picklist | Referral Status |
| Partner | `Partner__c` | Picklist | Partner (AWS/AZURE/GCP/SUGER) |
| Region | `Region__c` | Text | Region |
| Account ID | `AccountID__c` | Lookup | Reference to Salesforce Account |
| Opportunity ID | `OpportunityID__c` | Lookup | Reference to Salesforce Opportunity |
| Last Sync Log | `LastSyncLog__c` | Text Area | Last Sync Log |
| Creation Status | `Creation_Status__c` | Picklist | Creation Status |
| Creation Failure Message | `Creation_Failure_Message__c` | Long Text Area | Creation Failure Message |
| Update Status | `Update_Status__c` | Picklist | Update Status |
| Update Failure Message | `Update_Failure_Message__c` | Long Text Area | Update Failure Message |
| Created Source | `Created_Source__c` | Text | Source system that created this referral (Suger Console, Salesforce, HubSpot, API, Cloud Partner, or Auto Share) |

#### AWS Fields

:::info Field Population Timing

For **inbound AWS referrals**, AWS populates these fields in two waves:

**At invitation time** (before you accept), a small set is populated with the routing payload:

- `Referral_Type__c`, `AWS_OpportunityOwnership__c`
- `Name`, `AWS_CreatedDate__c`, `AWS_AwsAccountId__c`
- `AWS_CustomerCompanyName__c`, `AWS_Industry__c`, `AWS_Country__c`, `AWS_CustomerWebsite__c`
- `AWS_PartnerProjectTitle__c`, `AWS_ProjectDescription__c`, `AWS_TargetCloseDate__c`
- `AWS_CustomerSoftwareValue__c`, `AWS_CustomerSoftwareValueCurrency__c`

Four fields are **invitation-only** and never appear on the Opportunity:

- `AWS_AcceptBy__c`, `AWS_PartnerAcceptanceStatus__c`, `AWS_RejectionReason__c`, `AWS_EngagementInvitationArn__c`

**After you accept**, AWS creates an Opportunity and Suger syncs the full record back, populating every other AWS field below — lifecycle, stage, team contacts, marketing attribution, software revenue, extended address and customer detail, and insights.

Customer contact fields (`AWS_CustomerFirstName__c`, `AWS_CustomerLastName__c`, `AWS_CustomerEmail__c`, `AWS_CustomerPhone__c`, `AWS_CustomerTitle__c`) are shared by AWS **10–30 minutes after acceptance**, not immediately.

:::

**Account & Contact Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| AWS Account ID | `AWS_AwsAccountId__c` | Text | AWS Account ID |
| AWS Account Manager Email | `AWS_AwsAccountOwnerEmail__c` | Text | AWS Account Manager Email |
| AWS Account Manager Name | `AWS_AwsAccountOwnerName__c` | Text | AWS Account Manager Name |
| Customer Company Name | `AWS_CustomerCompanyName__c` | Text | Customer Company Name |
| Customer First Name | `AWS_CustomerFirstName__c` | Text | Customer First Name |
| Customer Last Name | `AWS_CustomerLastName__c` | Text | Customer Last Name |
| Customer Email | `AWS_CustomerEmail__c` | Text | Customer Email |
| Customer Phone | `AWS_CustomerPhone__c` | Text | Customer Phone |
| Customer Title | `AWS_CustomerTitle__c` | Text | Customer Title |
| Customer DUNS | `AWS_CustomerDuns__c` | Text | Customer DUNS |
| Customer Website | `AWS_CustomerWebsite__c` | URL | Customer Website |
| Partner Primary Contact Email | `AWS_PrimaryContactEmail__c` | Text | Partner Primary Contact Email |
| Partner Primary Contact First Name | `AWS_PrimaryContactFirstName__c` | Text | Partner Primary Contact First Name |
| Partner Primary Contact Last Name | `AWS_PrimaryContactLastName__c` | Text | Partner Primary Contact Last Name |
| Partner Primary Contact Phone | `AWS_PrimaryContactPhone__c` | Text | Partner Primary Contact Phone |
| Primary Contact Title | `AWS_PrimaryContactTitle__c` | Text | Primary Contact Title |
| AWS ISV Success Manager Email | `AWS_AwsIsvSuccessManagerEmail__c` | Text | AWS ISV Success Manager Email |
| AWS ISV Success Manager Name | `AWS_AwsIsvSuccessManagerName__c` | Text | AWS ISV Success Manager Name |
| AWS Sales Rep Email | `AWS_AwsSalesRepEmail__c` | Text | AWS Sales Rep Email |
| AWS Sales Rep Name | `AWS_AwsSalesRepName__c` | Text | AWS Sales Rep Name |
| AWS Partner Success Manager Email | `AWS_AwsPartnerSuccessManagerEmail__c` | Text | AWS Partner Success Manager Email |
| AWS Partner Success Manager Name | `AWS_AwsPartnerSuccessManagerName__c` | Text | AWS Partner Success Manager Name |
| WWPS Partner Development Manager | `AWS_WwpsPdm__c` | Text | WWPS Partner Development Manager |
| WWPS Partner Development Manager Email | `AWS_WwpsPdmEmail__c` | Text | WWPS Partner Development Manager Email |
| Partner Developer Manager | `AWS_PartnerDeveloperManager__c` | Text | Partner Developer Manager |
| AWS Partner Development Manager Email | `AWS_partnerDeveloperManagerEmail__c` | Text | AWS Partner Development Manager Email |
| Opportunity Owner | `AWS_OpportunityOwner__c` | Lookup | Opportunity Owner |
| Opportunity Owner Email | `AWS_OpportunityOwnerEmail__c` | Text | Opportunity Owner Email |
| Opportunity Owner Name | `AWS_OpportunityOwnerName__c` | Text | Opportunity Owner Name |

**Opportunity & Deal Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Stage | `AWS_Stage__c` | Picklist | Stage |
| Status on AWS | `AWS_Status__c` | Picklist | Status on AWS |
| AWS Stage | `AWS_AwsStage__c` | Text | AWS Stage |
| Opportunity Type | `AWS_OpportunityType__c` | Picklist | Opportunity Type |
| Opportunity Ownership | `AWS_OpportunityOwnership__c` | Picklist | Opportunity Ownership |
| Target Close Date | `AWS_TargetCloseDate__c` | Date | Target Close Date |
| AWS Close Date | `AWS_AwsCloseDate__c` | Date | AWS Close Date |
| Customer Software Value | `AWS_CustomerSoftwareValue__c` | Currency | Customer Software Value |
| Customer Software Value Currency | `AWS_CustomerSoftwareValueCurrency__c` | Picklist | Customer Software Value Currency |
| Expected Monthly AWS Revenue | `AWS_ExpectedMonthlyAwsRevenue__c` | Number | Expected Monthly AWS Revenue |
| Closed Lost Reason | `AWS_ClosedLostReason__c` | Text | Closed Lost Reason |
| AWS Closed Lost Reason | `AWS_AwsClosedLostReason__c` | Text | AWS Closed Lost Reason |
| Rejection Reason | `AWS_RejectionReason__c` | Picklist | Rejection Reason |
| Parent Opportunity ID | `AWS_ParentOppId__c` | Text | Parent Opportunity ID |

**Location Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Street | `AWS_StreetAddress__c` | Text | Street Address |
| City | `AWS_City__c` | Text | City |
| State | `AWS_State__c` | Picklist | State |
| Postal Code | `AWS_PostalCode__c` | Text | Postal Code |
| Country | `AWS_Country__c` | Picklist | Country |

**Classification & Programs:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Industry | `AWS_Industry__c` | Picklist | Industry |
| Industry (V2) | `AWS_Industry_V2__c` | Text | New version of the ACE industry |
| Industry Other | `AWS_IndustryOther__c` | Text | Industry Other |
| Use Case | `AWS_UseCase__c` | Picklist | Use Case |
| Use Case (V14) | `AWS_UseCaseV14__c` | Picklist | Use Case (detailed list) |
| APN Programs | `AWS_CampaignName__c` | Picklist | APN Programs |
| APN Programs (V14) | `AWS_CampaignNameV14__c` | Multi-Select Picklist | APN Programs |
| Delivery Model | `AWS_DeliveryModel__c` | Picklist | Delivery Model |
| Delivery Model (V14) | `AWS_DeliveryModelV14__c` | Multi-Select Picklist | Delivery Model |
| Solution Offered | `AWS_SolutionOffered__c` | Multi-Select Picklist | Solution Offered |
| Other Solution Offered | `AWS_OtherSolutionOffered__c` | Text | Other Solution Offered |
| Competitive Tracking | `AWS_CompetitiveTracking__c` | Picklist | Competitive Tracking |
| Competitive Tracking Other | `AWS_CompetitiveTrackingOther__c` | Text | Competitive Tracking Other |
| Procurement Type | `AWS_ProcurementType__c` | Picklist | Procurement Type |
| Contract Vehicle | `AWS_ContractVehicle__c` | Text | Contract Vehicle (Public Sector) |
| Solicitation Number | `AWS_RfxSolicitationNumber__c` | Text | Solicitation Number (Public Sector) |

**Marketing & Activities:**

:::warning
Once a referral's review status reaches **Approved**, the Customer Business Problem (`AWS_ProjectDescription__c`) and its title field can no longer be edited — not even by an admin. Both are only editable before submission and while the referral is in an Action Required state.
:::

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Marketing Campaign | `AWS_AwsSfCampaignName__c` | Text | Marketing Campaign |
| Customer Business Problem | `AWS_ProjectDescription__c` | Long Text Area | Customer Business Problem. 20–2,000 character hard cap |
| Partner Project Title | `AWS_PartnerProjectTitle__c` | Text | Partner Project Title |
| APN CRM ID | `AWS_ApnCrmUniqueIdentifier__c` | Text | Use this to link an ACE referral created outside Salesforce to a Salesforce opportunity |
| Next Step | `AWS_NextStep__c` | Text Area | Next Step |
| Next Step History | `AWS_NextStepHistory__c` | Multi-Select Picklist | Next Step History |
| Additional Comments | `AWS_AdditionalComments__c` | Text Area | Additional Comments. 255-character cap |
| APN Reviewer Comments | `AWS_ApnReviewerComments__c` | Long Text Area | APN Reviewer Comments |
| AWS Recommended Action | `AWS_RecommendedNextBestActions__c` | Long Text Area | AWS Recommended Action |
| Marketing Activity Channel | `AWS_MarketingActivityChannel__c` | Multi-Select Picklist | Marketing Activity Channel |
| Marketing Activity Use-Case | `AWS_MarketingActivityUsecase__c` | Multi-Select Picklist | Marketing Activity Use-Case |
| AWS Products | `AWS_Products__c` | Multi-Select Picklist | AWS Products |
| Offers (Deprecated) | `AWS_Offers__c` | Text | Offers (Deprecated) |
| Offers | `AWS_OffersV2__c` | Multi-Select Picklist | Offers |
| Sales Activities | `AWS_SalesActivities__c` | Multi-Select Picklist | Sales Activities |

**Dates & Status:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| AWS Created Date | `AWS_CreatedDate__c` | Date | Date when referral was created in AWS Partner Central |
| Last Modified Date | `AWS_LastModifiedDate__c` | DateTime | Last Modified Date |
| Accept By | `AWS_AcceptBy__c` | DateTime | Accept By deadline |
| Partner Acceptance Date | `AWS_Partner_Acceptance_Date__c` | DateTime | Partner Acceptance Date |
| Partner Acceptance Status | `AWS_PartnerAcceptanceStatus__c` | Picklist | Partner Acceptance Status |
| Cosell Convert Reason | `AWS_CosellConvertReason__c` | Picklist | Cosell Convert Reason |
| Contract Start Date | `AWS_ContractStartDate__c` | Date | Contract Start Date |
| Contract End Date | `AWS_ContractEndDate__c` | Date | Contract End Date |

**Additional Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Created By | `AWS_CreatedBy__c` | Text | Created By |
| Last Modified by | `AWS_LastModifiedBy__c` | Text | Last Modified by |
| Has Classified National Security Info? | `AWS_DoesOppBelongToNatSec__c` | Picklist | Has Classified National Security Info? |
| Is Opportunity from Marketing Activity? | `AWS_IsOppFromMarketingActivity__c` | Picklist | Is Opportunity from Marketing Activity? |
| Marketing development funds | `AWS_IsMarketingDevelopmentFunded__c` | Picklist | Marketing development funds |
| Is this for Marketplace? | `AWS_IsThisForMarketplace__c` | Picklist | Is this for Marketplace? |
| Partner Primary Need from AWS | `AWS_PartnerPrimaryNeedFromAWS__c` | Picklist | Partner Primary Need from AWS |
| Partner Primary Need from AWS (V14) | `AWS_PartnerPrimaryNeedFromAwsV14__c` | Multi-Select Picklist | Partner Primary Need from AWS |
| AWS Engagement Invitation ARN | `AWS_EngagementInvitationArn__c` | Text | AWS Engagement Invitation ARN |
| AWS Marketplace Engagement Score | `AWS_EngagementScore__c` | Picklist | AWS Marketplace Engagement Score |

#### Azure Fields

**Customer Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Customer Company Name | `AZURE_CustomerCompanyName__c` | Text | Customer Company Name |
| Customer First Name | `AZURE_CustomerFirstName__c` | Text | Customer First Name |
| Customer Last Name | `AZURE_CustomerLastName__c` | Text | Customer Last Name |
| Customer Email | `AZURE_CustomerEmail__c` | Text | Customer Email |
| Customer Phone | `AZURE_CustomerPhone__c` | Text | Customer Phone |
| Customer Title | `AZURE_CustomerTitle__c` | Text | Customer Title |

**Location Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Street | `AZURE_StreetAddress__c` | Text | Street Address |
| City | `AZURE_City__c` | Text | City |
| State | `AZURE_State__c` | Picklist | State |
| Postal Code | `AZURE_PostalCode__c` | Text | Postal Code |
| Country (Deprecated) | `AZURE_Country__c` | Picklist | Country (Deprecated) |
| Country Code | `AZURE_Country_Code__c` | Text | Country Code |

**Referral Status & Type:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Microsoft Referral ID | `AZURE_ReferralId__c` | Text | Microsoft Referral ID |
| Status on Microsoft | `AZURE_ReferralStatus__c` | Text | Status on Microsoft |
| SubStatus on Microsoft | `AZURE_ReferralSubStatus__c` | Text | SubStatus on Microsoft |
| Microsoft Acceptance Status | `AZURE_MS_ReferralStatus__c` | Text | Status shown to Microsoft Sales Reps (New, Active, Closed) |
| Microsoft Acceptance Sub-Status | `AZURE_MS_ReferralSubStatus__c` | Text | Acceptance status (Pending, Received, Accepted, Declined, Lost, Won, Expired, Error) |
| Microsoft Sales Stage | `AZURE_SalesStage__c` | Text | Microsoft Sales Stage |
| Microsoft Referral Type | `AZURE_Type__c` | Text | Microsoft Referral Type |

**Deal & Solution Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Solution Area | `AZURE_Solution_Area__c` | Text | Solution Area |
| Solution Play | `AZURE_Solution_Play__c` | Text | Solution Play |
| Microsoft Referral Campaign ID | `AZURE_CampaignId__c` | Text | Microsoft Referral Campaign ID |
| Help from Microsoft | `AZURE_AssistanceRequestCode__c` | Text | Help from Microsoft |
| Help Type (Deprecated) | `AZURE_AssitanceRequresCode__c` | Text | Help Type (Deprecated) |
| Deal Value | `AZURE_DealValue__c` | Number | Deal Value |
| MACC Eligible (Deprecated) | `AZURE_MACC_Eligibility__c` | Checkbox | MACC Eligible (Deprecated) |
| MACC Eligible | `AZURE_MACC_EligibilityV2__c` | Picklist | MACC Eligible |
| Target Close Date | `AZURE_TargetCloseDate__c` | Date | Target Close Date |

**Microsoft Contact & Metadata:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Microsoft Contact Email | `AZURE_Microsoft_Contact_Email__c` | Email | Microsoft Contact Email |
| Microsoft Contact Name | `AZURE_Microsoft_Contact_Name__c` | Text | Microsoft Contact Name |
| Microsoft Created Date/Time | `AZURE_Created_Date_Time__c` | DateTime | Date/time referral was created on Microsoft Partner Center |
| Microsoft Referral Info | `AZURE_Referral_Info__c` | Long Text Area | Microsoft Referral Info |
| Deal Registration Eligible | `AZURE_DealReg_Eligible__c` | Picklist | Whether the referral is eligible for Azure deal registration |
| Microsoft External Reference ID | `AZURE_ExternalReferenceId__c` | Text | The external reference ID (CRM opportunity ID) sent to Microsoft Partner Center |

#### GCP Fields

**Basic Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| GCP Name | `GCP_Name__c` | Text | Resource name: `opportunities/{opportunity_id}` |
| Opportunity Display Name | `GCP_OpportunityDisplayName__c` | Text | Display name for the Opportunity |
| Identifier Number | `GCP_DealNumber__c` | Text | Identifier Number |
| Description | `GCP_OpportunityDescription__c` | Long Text Area | Description |

**Customer Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Customer Name | `GCP_CustomerName__c` | Text | Customer Name |
| Partner Entered Company | `GCP_CustomerOrganizationName__c` | Text | Partner Entered Company |
| Customer Domain | `GCP_CustomerDomain__c` | Text | Customer Domain |
| Customer Project Number(s) | `GCP_CustomerProjectNumber__c` | Number | Customer Project Number(s) |
| Customer Project Number(s) | `GCP_CustomerProjectNumber_Text__c` | Text | Customer Project Number(s) as text |

**Contact & Location:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| First Name | `GCP_ContactFamilyName__c` | Text | First Name |
| Last Name | `GCP_ContactGivenName__c` | Text | Last Name |
| Opportunity Team | `GCP_CustomerContacts__c` | Long Text Area | Opportunity Team |
| Customer Contact Requested | `GCP_CustomerContactRequested__c` | Picklist | Customer Contact Requested |
| Contact List | `GCP_TeamMembers__c` | Long Text Area | Contact List |
| Address Line 1 | `GCP_AddressLineOne__c` | Text | Address Line 1 |
| Address Line 2 | `GCP_AddressLineTwo__c` | Text | Address Line 2 |
| City | `GCP_Locality__c` | Text | City |
| State | `GCP_AdministrativeArea__c` | Text | State |
| Zip/Postal Code | `GCP_PostalCode__c` | Text | Zip/Postal Code |
| Partner Entered Country | `GCP_RegionCode__c` | Text | Partner Entered Country |
| Partner Entered Region | `GCP_Region__c` | Text | Partner Entered Region |

**Deal Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Expected Revenue | `GCP_DealSize__c` | Currency | Expected Revenue |
| Opportunity Amount | `GCP_OpportunityAmount__c` | Currency | Opportunity Amount |
| Budget | `GCP_Budget__c` | Text | Budget |
| Primary Campaign Source | `GCP_CampaignCode__c` | Text | Primary Campaign Source |
| Partner Incentive Type | `GCP_IncentiveType__c` | Text | Partner Incentive Type |
| GCP Contract Vehicle | `GCP_ContractVehicle__c` | Picklist | GCP Contract Vehicle |
| Contract Length (Months) | `GCP_ContractLengthMonths__c` | Number | Contract Length (Months) |
| Timeline | `GCP_Timeline__c` | Text | Timeline |
| Authority | `GCP_Authority__c` | Text | Authority |

**Dates & Status:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Creation Date | `GCP_CreatedDate__c` | Date | Creation Date |
| Created By | `GCP_CreatorEmail__c` | Email | Created By |
| Submitted Date | `GCP_SubmittedDate__c` | Date | Submitted Date |
| Close Date | `GCP_EstimatedCloseDate__c` | Date | Close Date |
| Approved Date | `GCP_ApprovedDate__c` | Date | Approved Date |
| Stage | `GCP_Stage__c` | Text | Stage |
| GCP Acceptance Status | `GCP_State__c` | Text | GCP Acceptance Status |
| Decision Phase | `GCP_DecisionPhase__c` | Text | Decision Phase |
| GCP Opportunity Type | `GCP_OpportunityType__c` | Picklist | GCP Opportunity Type |
| Opportunity Type | `GCP_OperationType__c` | Text | Opportunity Type |
| Opportunity Owner | `GCP_Owner__c` | Text | Opportunity Owner |
| Opportunity Owner Email | `GCP_OwnerEmail__c` | Email | Opportunity Owner Email |

**Products & Services:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Products | `GCP_Products__c` | Long Text Area | Products |
| Product Category | `GCP_ProductCategory__c` | Text | Product Category |
| Product Family | `GCP_ProductFamily__c` | Text | Product Family |
| Need | `GCP_Need__c` | Text | Need |

**Classifications & Attributes:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Industry | `GCP_Industry__c` | Text | Industry |
| Number of Employees | `GCP_EmployeeCount__c` | Number | Number of Employees |
| GCP Delivery Model | `GCP_DeliveryModel__c` | Picklist | GCP Delivery Model |
| Support Level | `GCP_SupportLevel__c` | Picklist | Support Level |
| Distributor | `GCP_Distributor__c` | Text | Distributor |
| Billing Subaccount ID | `GCP_SubbillingAccountId__c` | Text | Billing Subaccount ID |
| Confidential | `GCP_Confidential__c` | Picklist | Confidential |
| Is ISV Solution Connect Deal | `GCP_IsvSolutionConnectDeal__c` | Picklist | Is ISV Solution Connect Deal |
| MSSP Deal | `GCP_MsspDeal__c` | Picklist | MSSP Deal |
| Legal Language Accepted | `GCP_LegalLanguageAccepted__c` | Picklist | Legal Language Accepted |
| Partner Ready to Close | `GCP_PartnerReadyToClose__c` | Picklist | Partner Ready to Close |
| Opportunity Source | `GCP_Source__c` | Text | Opportunity Source |

**Extensions & Rebates:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Number of Extensions | `GCP_ExtensionsCount__c` | Number | Number of Extensions |
| Close Date Push Count | `GCP_CloseDatePushCount__c` | Number | Close Date Push Count |
| Rebate Expiration Date | `GCP_RebateExpirationDate__c` | Date | Rebate Expiration Date |
| Rebate extension | `GCP_RebateExtension__c` | Long Text Area | Rebate extension |

**Win/Loss Information:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Win Main Reason | `GCP_WinMainReason__c` | Text Area | Win Main Reason |
| Won Reason | `GCP_WonReason__c` | Text Area | Won Reason |
| Loss Main Reason | `GCP_LostMainReason__c` | Text Area | Loss Main Reason |
| Lost Reason | `GCP_LostReason__c` | Text | Lost Reason |
| Lost/rejected Reason | `GCP_LostRejectedReasonDetails__c` | Text Area | Lost/rejected Reason |
| Win/Loss Products | `GCP_WinLossProducts__c` | Text | Win/Loss Products |
| Win/Loss Context | `GCP_WinLossAdditionalContext__c` | Text Area | Win/Loss Context |

**Additional Fields:**

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| PRM Site Details | `GCP_PrmSiteDetails__c` | Text | 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 | Description |
| ----- | -------- | ---- | ----------- |
| PRM Partner ID | `PRM_Partner_ID__c` | Text (External ID) | Suger partnership ID this referral belongs to |
| PRM Partner Name | `PRM_Partner_Name__c` | Text | Partner organization name |
| PRM Type | `PRM_Type__c` | Text | Opportunity type (New Business, Renewal, Expansion, Add On) |
| PRM Deal Role | `PRM_DealRole__c` | Text | This org's role on the deal (Seller / Referrer) |
| PRM Customer Company Name | `PRM_CustomerCompanyName__c` | Text | End-customer company name |
| PRM Customer Domain | `PRM_CustomerDomain__c` | Text | End-customer domain / website |
| PRM Customer Industry | `PRM_CustomerIndustry__c` | Text | End-customer industry |
| PRM Customer Country | `PRM_CustomerCountry__c` | Text | End-customer country |
| PRM Customer Business Problem | `PRM_CustomerBusinessProblem__c` | Long Text Area | Customer business problem |
| PRM Use Case | `PRM_UseCase__c` | Long Text Area | Use case |
| PRM Target Close Date | `PRM_TargetCloseDate__c` | Date | Target close date |
| PRM Deal Value | `PRM_DealValue__c` | Number | Deal value amount |
| PRM Deal Value Currency | `PRM_DealValueCurrency__c` | Text | Deal value currency (ISO 4217) |
| PRM Stage | `PRM_Stage__c` | Text | Deal lifecycle stage |
| PRM Status | `PRM_Status__c` | Text | Sharing status of this copy |
| PRM Delivery Model | `PRM_DeliveryModel__c` | Text | Delivery model(s) |
| PRM Next Steps | `PRM_NextSteps__c` | Long Text Area | Next steps |
| PRM Created Date | `PRM_CreatedDate__c` | Date/Time | Created date |
| PRM Accepted Date | `PRM_AcceptedDate__c` | Date/Time | 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 | Description |
| ----- | -------- | ---- | ----------- |
| Contact ID | `Contact_ID__c` | Text (External ID) | Suger Contact ID — unique identifier for the partner contact. |
| Partner | `Partner__c` | Text | Cloud partner associated with this contact (AWS, AZURE, GCP). |
| Role | `Role__c` | Text | Role of the partner contact (e.g., AWS PDM, Azure PM, GCP PSO). |
| Source | `Source__c` | Picklist | Source of the contact — `Referral` (came in via a referral) or `Predicted` (inferred). |
| Email | `Email__c` | Email | Email address of the partner contact. |
| Phone | `Phone__c` | Phone | Phone number of the partner contact. |
| Tags | `Tags__c` | Long Text Area | Comma-separated tags for the contact (e.g., `partner`, `cosell`, `aws`). |
| Industries | `Industries__c` | Long Text Area | Comma-separated list of industries covered by this contact. |
| Managed Domains | `Managed_Domains__c` | Long Text Area | Comma-separated list of customer domains managed by this contact. |
| Managed Regions | `Managed_Regions__c` | Long Text Area | Comma-separated list of regions managed by this contact. |
| Accounts | `Accounts__c` | Long Text Area | JSON array of accounts associated with this contact. |
| Opportunities | `Opportunities__c` | Long Text Area | JSON array of opportunities associated with this contact. |
| Account Count | `Account_Count__c` | Number | Total number of accounts managed by this contact. |
| Active Opportunity Count | `Active_Opportunity_Count__c` | Number | Number of active opportunities associated with this contact. |
| Referral Count | `Referral_Count__c` | Number | Total number of referrals associated with this contact. |
| Pipeline | `Pipeline__c` | Currency | Total open pipeline value for this contact. |
| Success Rate | `Success_Rate__c` | Percent | Success rate percentage for referrals brought by this contact. |
| Info | `Info__c` | Long Text Area | Full contact info JSON from Suger. |
| Creation Date | `Creation_Date__c` | Date | Date when the contact was created in Suger. |
| Last Update Date | `Last_Update_Date__c` | Date | Date when the contact was last updated in Suger. |

---

### 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 | Description |
| ----- | -------- | ---- | ----------- |
| Funding Application ID | `FundingApplicationId__c` | Text | The unique ID of the Funding Application |
| Partner | `Partner__c` | Picklist | Partner (AWS/AZURE/GCP) |
| Referral | `Referral__c` | Lookup | Reference to Referral |
| Opportunity | `Opportunity__c` | Lookup | Reference to Salesforce Opportunity |
| AWS Activity Name | `AWS_ActivityName__c` | Text | AWS Activity Name |
| AWS Annual Run Rate | `AWS_AnnualRunRate__c` | Currency | AWS Annual Run Rate |
| AWS Benefit Application Id | `AWS_BenefitApplicationId__c` | Text | AWS Benefit Application Id |
| AWS Funding Program | `AWS_FundingProgram__c` | Text | AWS Funding Program |
| AWS Funding Request Status | `AWS_FundingRequestStatus__c` | Picklist | AWS Funding Request Status |
| AWS Planned Start Date | `AWS_PlannedStartDate__c` | Date | AWS Planned Start Date |
| AWS Planned End Date | `AWS_PlannedEndDate__c` | Date | AWS Planned End Date |
| AWS Cash Request Requested Amount | `AWS_CashRequest_RequestedAmount__c` | Currency | AWS Cash Request Requested Amount |
| AWS Cash Request Approved Amount | `AWS_CashRequest_ApprovedAmount__c` | Currency | AWS Cash Request Approved Amount |
| AWS Cash Request Total Cost Of Activity | `AWS_CashRequest_TotalCostOfActivity__c` | Currency | AWS Cash Request Total Cost Of Activity |
| Credit Requested Amount | `Credit_Requested_Amount__c` | Currency | Credit Requested Amount |
| Credit Approved Amount | `Credit_Approved_Amount__c` | Currency | Credit Approved Amount |
| Credit Currency | `Credit_Currency__c` | Text | Credit Currency |
| Credit Number Of Codes | `Credit_Number_Of_Codes__c` | Number | Credit Number Of Codes |
| Credit Codes | `Credit_Codes__c` | Long Text Area | Issued AWS credit codes (one per line) |

---

### FundingCashClaim__c

Tracks individual cash claims against funding requests.

| Label | API Name | Type | Description |
| ----- | -------- | ---- | ----------- |
| Funding Request | `Funding_Request__c` | Lookup | Reference to parent Funding |
| Claim Amount | `Claim_Amount__c` | Currency | Claim Amount |
| Claim Status | `Claim_Status__c` | Text | Claim Status |
| Claim Start Date | `Claim_Start_Date__c` | Date | Claim period start |
| Claim End Date | `Claim_End_Date__c` | Date | Claim period end |
| Claim Due Date | `Claim_Due_Date__c` | Date | 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.io`). |
| 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 Private Plan In Opportunity Level | `Enable_Private_Plan_In_Opportunity_Level__c` | Checkbox | When on, users can create Azure private plans linked to an Opportunity — the **New Offer → Private Plan** menu entry and the Private Plans card's **Add Plan** action. Off by default; the linked-plans list stays visible either way. |
| 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

1. Click the **Gear Icon (⚙️) > Setup**.

2. In the **Quick Find** box, type `Custom Metadata Types`.

3. Locate the row labeled **Referral Lookup Filter** (Namespace Prefix: SUGER) and click **Manage Records**.

4. Click **New** to create a new filter rule.

5. 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 true
- `OR` - 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:

```text
Name = {Referral__c.AWS_CustomerCompanyName__c}
Suger__Hyperscaler__c = {Referral__c.Partner__c}
```

Relationship fields are also supported:

```text
Account.Name = {Referral__c.Account__r.Name}
```

#### Example Filter Conditions

**Filter Opportunities by Stage:**

```text
StageName NOT IN ('Closed Lost', 'Closed Won')
```

**Filter by Amount and Type:**

```text
Amount > 10000 AND Type IN ('New Business', 'Expansion')
```

**Complex Filter with Dynamic References:**

```text
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)
```

:::tip
Multiple filter records for the same object are combined with `AND`. Create separate records to organize complex filter logic.
:::

#### 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.

:::note
The record picker supports only one additional search field per object, and only text and text-formula fields. If your field is an Auto Number field and search does not match it, create a text formula field that mirrors it and configure that formula field instead.
:::

:::warning
Filter conditions are validated at runtime. Invalid field names or syntax errors will cause the lookup to fail. Test your filters thoroughly before activating them.
:::
