Salesforce Field Mapping

📘

Fields that sync in the MonetizeNow managed package

Product Catalog
<tbody>
  <tr>
    <td>id (Offering)</td>
    <td>monetize\_\_OfferingId\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>id (Product)</td>
    <td>monetize\_\_ProductId\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>name (Offering) + " - " + name (Product)</td>
    <td>Name</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>name (Offering)</td>
    <td>monetize\_\_OfferingName\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>description (Offering)</td>
    <td>Description</td>
    <td>No</td>
  </tr>

  <tr>
    <td>status (Offering) && status (Product)</td>
    <td>IsActive (boolean)</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>startDate (Offering)</td>
    <td>monetize\_\_StartDate\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>endDate (Offering)</td>
    <td>monetize\_\_EndDate\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>id (Offering) + "-" + id (Product)</td>
    <td>monetize\_\_ExternalId\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>productType (Product)</td>
    <td>monetize\_\_ProductType\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>product.UsageType.Name (Product)</td>
    <td>monetize\_\_UsageTypeName\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>product.UsageType.Description (Product)</td>
    <td>monetize\_\_UsageTypeDescription\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>product.UsageType.Unit (Product)</td>
    <td>monetize\_\_UsageTypeUnit\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>System Generated</td>
    <td>monetize\_\_LastSyncDate\_\_c (DateTime)</td>
    <td>Yes</td>
  </tr>
</tbody>
Account
<tbody>
  <tr>
    <td>Id</td>
    <td>monetize\_\_Id\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>CustomId</td>
    <td>Id</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>companyName</td>
    <td>Name</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>isTestAccount</td>
    <td>No</td>

    <td></td>
  </tr>

  <tr>
    <td>locale</td>
    <td>No</td>

    <td></td>
  </tr>

  <tr>
    <td>currency</td>
    <td>monetize\_\_BillingCurrency\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>status</td>
    <td>monetize\_\_BillingStatus\_\_c (Picklist)</td>
    <td>No</td>
  </tr>

  <tr>
    <td>primaryContact</td>
    <td>monetize\_\_PrimaryBillingContact\_\_c (Lookup)</td>
    <td>No</td>
  </tr>

  <tr>
    <td>monetize\_\_EnableSync\_\_c</td>

    <td></td>

    <td>Yes</td>
  </tr>

  <tr>
    <td>monetize\_\_LastSyncDate\_\_c (DateTime)</td>

    <td></td>

    <td>Yes</td>
  </tr>

  <tr>
    <td>monetize\_\_SyncError\_\_c (long text)</td>

    <td></td>

    <td>No</td>
  </tr>
</tbody>
Contact
<tbody>
  <tr>
    <td>id</td>
    <td>monetize\_\_Id\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>customId</td>
    <td>Id</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>accountId</td>
    <td>Account.Id\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>fullName</td>
    <td>First Name + LastName</td>

    <td></td>
  </tr>

  <tr>
    <td>(SFDC → MN will use Name field)</td>

    <td></td>

    <td>Yes</td>
  </tr>

  <tr>
    <td>status</td>
    <td>monetize\_\_BillingStatus\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>email</td>
    <td>Email</td>
    <td>No</td>
  </tr>

  <tr>
    <td>phone</td>
    <td>Phone</td>
    <td>No</td>
  </tr>

  <tr>
    <td>address.id</td>

    <td></td>

    <td></td>
  </tr>

  <tr>
    <td>address.line1</td>
    <td>MailingStreet (concatenate with new line)</td>
    <td>No</td>
  </tr>

  <tr>
    <td>address.line2</td>

    <td></td>

    <td></td>
  </tr>

  <tr>
    <td>address.city</td>
    <td>MailingCity</td>
    <td>No</td>
  </tr>

  <tr>
    <td>address.state</td>
    <td>MailingState</td>
    <td>No</td>
  </tr>

  <tr>
    <td>address.country</td>
    <td>MailingCountry</td>
    <td>No</td>
  </tr>

  <tr>
    <td>address.postalCode</td>
    <td>MailingPostalCode</td>
    <td>No</td>
  </tr>

  <tr>
    <td>address.description</td>

    <td></td>

    <td></td>
  </tr>

  <tr>
    <td>monetize\_\_EnableSync\_\_c</td>

    <td></td>

    <td>Yes</td>
  </tr>

  <tr>
    <td>monetize\_\_LastSyncDate\_\_c (DateTime)</td>

    <td></td>

    <td>Yes</td>
  </tr>

  <tr>
    <td>monetize\_\_SyncError\_\_c (long text)</td>

    <td></td>

    <td>No</td>
  </tr>
</tbody>
Opportunity
<tbody>
  <tr>
    <td>CustomId</td>
    <td>Id</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>Id</td>
    <td>monetize\_\_Id\_\_c</td>
    <td>No</td>
  </tr>

  <tr>
    <td>monetize\_\_LifecycleType\_\_c</td>

    <td></td>

    <td>No</td>
  </tr>

  <tr>
    <td>monetize\_\_PrimaryQuote\_\_c</td>

    <td></td>

    <td>No</td>
  </tr>
</tbody>
OpportunityLineItem
<tbody>
  <tr>
    <td>QuoteOffering.Id + “-” + QuoteItem.Id</td>
    <td>monetize\_\_ExternalId\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>monetize\_\_QuoteItem\_\_c</td>

    <td></td>

    <td>No</td>
  </tr>
</tbody>
Quote
<tbody>
  <tr>
    <td>CustomId</td>
    <td>Id</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>Id</td>
    <td>monetize\_\_Id\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>description</td>
    <td>Name</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>AccountId</td>
    <td>monetize\_\_Account\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>approvalGrantedDate</td>
    <td>monetize\_\_ApprovalGrantedDate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>approvalSubmittedDate</td>
    <td>monetize\_\_ApprovalSubmittedDate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contacts.billing</td>
    <td>monetize\_\_BillingContact\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contacts.primary</td>
    <td>monetize\_\_PrimaryContact\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contractAmendmentDate</td>
    <td>monetize\_\_ContractAmendmentDate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contractEndDate</td>
    <td>monetize\_\_ContractEndDate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contractLength</td>
    <td>monetize\_\_ContractLength\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contractStartDate</td>
    <td>monetize\_\_ContractStartDate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>contractTerms</td>
    <td>monetize\_\_ContractTerms\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>currency</td>
    <td>monetize\_\_Currency\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>description</td>
    <td>monetize\_\_Description\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>documentUrl</td>
    <td>monetize\_\_DocumentUrl\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>expirationDate</td>
    <td>monetize\_\_ExpirationDate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>netTerms</td>
    <td>monetize\_\_NetTerms\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>opportunityId</td>
    <td>monetize\_\_Opportunity\_\_r.monetize\_\_Id\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>originalQuoteId</td>
    <td>monetize\_\_OriginalQuote\_\_r.monetize\_\_Id\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>previousQuote</td>
    <td>monetize\_\_PreviousQuote\_\_r.monetize\_\_Id\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>primaryQuoteForOpportunity</td>
    <td>monetize\_\_Primary\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>status</td>
    <td>monetize\_\_Status\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>totalValue</td>
    <td>monetize\_\_TotalValue\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>type</td>
    <td>monetize\_\_Type\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.arr</td>
    <td>monetize\_\_ARR\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.mrr</td>
    <td>monetize\_\_MRR\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.incrementalArr</td>
    <td>monetize\_\_IncrementalARR\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.incrementalMrr</td>
    <td>monetize\_\_IncrementalMRR\_\_c</td>

    <td></td>
  </tr>
</tbody>
QuoteItem
<tbody>
  <tr>
    <td>Id</td>

    <td></td>

    <td></td>
  </tr>

  <tr>
    <td>Id</td>
    <td>monetize\_\_Id\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>discount</td>
    <td>monetize\_\_Discount\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>Id (offering) or quoteOfferingId (quote item)</td>
    <td>monetize\_\_OfferingId\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>monetize\_\_OpportunityProduct\_\_c</td>

    <td></td>

    <td></td>
  </tr>

  <tr>
    <td>monetize\_\_PricebookEntryId\_\_c</td>

    <td></td>

    <td></td>
  </tr>

  <tr>
    <td>productId (quote item)</td>
    <td>monetize\_\_Product\_\_r.ExternalId</td>

    <td></td>
  </tr>

  <tr>
    <td>Rate</td>
    <td>monetize\_\_Rate\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>quantity (quote item)</td>
    <td>monetize\_\_Quantity\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>quoteId (offering)</td>
    <td>monetize\_\_Quote\_\_r.monetize\_\_Id\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>rateId (offering)</td>
    <td>monetize\_\_RateId\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>Amount (quote item)</td>
    <td>monetize\_\_ContractAmount\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>unitPrice (quote item)</td>
    <td>monetize\_\_UnitPrice\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>unitPriceAfterDiscount (quote item)</td>
    <td>monetize\_\_UnitPriceAfterDiscount\_\_c</td>
    <td>Yes</td>
  </tr>

  <tr>
    <td>revenueMetrics.arr</td>
    <td>monetize\_\_ARR\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.mrr</td>
    <td>monetize\_\_MRR\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.incrementalArr</td>
    <td>monetize\_\_IncrementalARR\_\_c</td>

    <td></td>
  </tr>

  <tr>
    <td>revenueMetrics.incrementalMrr</td>
    <td>monetize\_\_IncrementalMRR\_\_c</td>

    <td></td>
  </tr>
</tbody>
Contract
MN FieldSalesforce FieldRequired
monetize__CreateRenewalOpportunity__cNo
Idmonetize__Id__cYes
accountIdAccountIdYes
latestQuoteIdmonetize__LatestQuote__cYes
statusmonetize__Status__cYes
statusStatus
startDateStartDate
endDateContractTerm
EndDateYes
endActionmonetize__EndAction__cYes
totalValueTODO
contactContact
lastSyncDatemonetize__LastSyncDate__cYes
previousContractmonetize__PreviousContract__cYes
renewalOpportunitymonetize__RenewalOpportunity__c
Rate
MN FieldSalesforce FieldRequired
idId__cYes
nameNameYes
billingFrequencyBillingFrequency__cYes
currencyCurrency__cYes
descriptionDescription__c
startDateStartDate__c
endDateEndDate__c
lockedLocked__c
offering.idOfferingId__cYes
offering.nameOfferingName__cYes
quotableQuotable__c
rateTypeRateType__cYes
statusStatus__cYes
usageBillingFrequencyUsageBillingFrequency__c
Price (Child of Rate)
MN FieldSalesforce FieldRequired
idId__cYes
fromFrom__cYes
toTo__cNo
amountAmount__cYes
priceModelPriceModel__cYes
product.ProductTypeProductType__cYes
product.idProduct__cYes
rate.IdRate__cYes
product.statusStatus__cYes

Mapping data from Salesforce to MonetizeNow

Fields from Salesforce may be mapped to Standard and Custom Fields on Quote in MonetizeNow. The following object mappings are available:

  1. Salesforce Account to MonetizeNow Account
  2. Salesforce Contact to MonetizeNow Contact
  3. Salesforce Opportunity to MonetizeNow Quote

The most common use case is to drive approval, validation, and conditional term logic in MonetizeNow using data from Salesforce. Specific examples are provided on Custom Fields page.

You can configure the mapping on the CRM Configuration page in MonetizeNow.


Mapping data from MonetizeNow to Salesforce

MonetizeNow automatically synchronizes most Quote data from MonetizeNow to Salesforce, but we also support mapping custom Quote fields from MonetizeNow to Salesforce.

To configure this, all you need to do is create custom fields in each system that have matching API names.

Additional Considerations:

  1. Case insensitive
  2. Ignores special characters
  3. Ignores the Salesforce suffix of __c
  4. Will never auto-map to a field with the monetize__ managed package prefix
  5. The data types must be compatible (e.g. a number or boolean cannot map to a string field)
  6. We can only map identical objects using this approach. For example, a MonetizeNow quote to a Salesforce Quote. If you need data to flow from a Salesforce Quote to another Salesforce object, your best option would be to utilize Salesforce Flows.
MonetizeNow fieldSalesforce fieldIs Eligible for Auto-Mapping?
my_custom_fieldmy_custom_field__cYes - assuming data types are compatible
my_custom_fieldMyCustomField__cYes - assuming data types are compatible
mycustomfieldMy_Custom_Field__cYes - assuming data types are compatible
amountmonetize__amount__cNo - managed package fields will never get overwritten

FAQs


📘

How can I push invoice payment status from MonetizeNow to Salesforce opportunities?

While Salesforce doesn't natively allow external platforms (like MonetizeNow) to update invoice-related fields inside Opportunities, you can set up custom automations in SFDC to surface invoice payment statuses where your sales teams need them.

What's the Alternate Solution?: Many MonetizeNow customers solve this by building custom flows within Salesforce. These flows typically pull invoice data from MonetizeNow and display key payment status fields directly on the Opportunity record. This gives your Sales team visibility into outstanding invoices tied to deals they've closed, without needing to leave SFDC.

Here's a quick breakdown of how it works:

  1. Sync Invoice Data from MonetizeNow to SFDC: Use our standard Invoice APIs to fetch the invoice details you need.
  2. Map MonetizeNow Invoice Data to Custom Fields in SFDC: You'll want to create custom fields on the Opportunity object to house this data.
    For example:
    • Invoice ID
    • Payment Status (Paid, Unpaid, Overdue, etc.)
    • Due Date
    • Invoice Amount
  3. Automate the Flow Between Invoice and Opportunity: We recommend linking invoices to Opportunities using a shared reference field (e.g., Deal ID or Subscription ID). Once the link is in place, your flow can automatically display the invoice status on the Opportunity page layout, making it easy for reps to spot outstanding payments.