Skip to main content

Managed Package

Overview

The RevOps Salesforce Managed Package is a great way to simplify your sales process especially when performing Renewals or Expansions.

This package allows RevOps to generate Subscriptions for each of your Salesforce Accounts. These Subscriptions track the products and services your users have purchased throughout your entire relationship with them.

Early Access

This is an Early Access feature. Have any feedback or find an issue? Let us know at support@revops.io.

Install

Install Package

To install the RevOps Salesforce Managed Package follow these steps:

  1. Request an install link from RevOps Support

  2. Visit the link you receive from RevOps Support

  3. Log in to the Salesforce Org in which you want to install the Managed Package

  4. Enter the “Installation Key” provided to you by RevOps Support, if needed

  5. Select which users you want to allow access to the Subscription, Subscription Line Item, and Subscription Overview objects the package installs

    info

    These settings have no effect on a RevOps user’s access to the same objects within the RevOps platform, which can be different from their access in Salesforce. This also won’t interfere with any updates that RevOps may trigger on the user’s behalf.

  6. Check the “Non-authorized AppExchange Partner Program” notice

    note

    We are working our way through Salesforce’s AppExchange Partner Program application process. Once we are enrolled, this notice won’t be displayed

  7. Click “Install”, and wait for the package to finish installing

Setup Salesforce

Data Mappings

After the “RevOps” Managed Package is successfully installed, you will need to create the following Custom Fields on the following Standard Objects, if you don’t have a similar field already:

  1. Opportunity
    1. Billing Frequency - This can be either a Text or Picklist Data Type. The “Picklist” Data Type is more strict. A possible name could be Opportunity.BillingFrequency__c.

      If you choose to create this as a “Picklist”, the options must be

      1. monthly
      2. quarterly
      3. semi-annual
      4. year
      5. one-time
    2. Service End Date - This must be a Date Data Type. A possible name could be Opportunity.ServiceEndDate__c.

    3. Service Start Date - This must be a "Date" Data Type. A possible name could be Opportunity.ServiceStartDate__c.

  2. OpportunityLineItem
    1. Unit Price - This must be a Currency Data Type. The decimal precision is subjective and completely up to your preference. A possible name could be OpportunityLineItem.UnitPrice__c.

    2. Unit Pricing Schedule - This can be either a “Text” or “Picklist” Data Type. The “Picklist” Data Type is more strict. A possible name could be OpportunityLineItem.PricingSchedule__c.

      If you choose to create this as a “Picklist”, the options must be

      1. day
      2. days
      3. month
      4. months
      5. year
      6. years
      7. one-time

Moving Opportunities to closed-won

When RevOps generates or updates a CRM Account's Subscriptions, it pulls all of that Account's Closed-Won Opportunities. If no Closed-Won Opportunities are found, no Subscriptions will be created. RevOps and Salesforce can be setup to update Opportunities when a RevOps Deal is signed.

Depending on your Salesforce process, it is recommended that you build a Flow that will automatically move your Opportunities to "closed-won" when their related RevOps Deals are moved to signed.

To set this up, follow these steps:

  1. Create a Custom Field on the Opportunity Standard object for Deal Status. This can be either a "Text" or "Picklist" Data Type. The "Picklist" Data Type is more strict. A possible name could be Opportunity.DealStatus__c.

    If you choose to create this as a "Picklist", the options must be

    1. draft
    2. attention
    3. approved
    4. negotiation
    5. signing
    6. signed
    7. active
    8. rejected
    9. deleted
  2. Create a RevOps Mapping like the following Deal.status -> Opportunity.DealStatus__c

  3. Create a new Salesforce Flow

    1. Configure Start to use:
      1. The Opportunity object
      2. Configure Trigger to trigger when "A record is created or updated"
      3. Optimize the Flow for "Actions and Related Records"
    2. Add a Decision node
      1. Set Label and Description
      2. Add a new Outcome
      3. Set the Outcome's Label
      4. Set the Resource to be the "Triggering Opportunity's Deal Status custom field"
      5. Set the Operator to "Equals"
      6. Set the Value to a New Resource
        1. Set Resource Type to "Constant"
        2. Set API Name to "Deal Status Signed"
        3. Set Data Type to "Text"
        4. Set Value to "signed"
    3. Add an Update Records node to the Outcome you just created
      1. Set the Label and Description
      2. Set How to Find Records to Update and Set Their Values to "Use the opportunity record that triggered the flow"
      3. Set Filter Conditions
        1. Set Field to "DealStatus__c"
        2. Set Operator to "Equals"
        3. Set Value to the "Deal Status Signed" Constant created above
      4. Configure Set Field Values for the Opportunity Record
        1. Set Field to "StageName"
        2. Set Value to "Closed Won"
    4. Add an Update Records node to the Default Outcome
      1. Set the Label and Description
      2. Set How to Find Records to Update and Set Their Values to "Use the opportunity record that triggered the flow"
      3. Set Filter Conditions
        1. Set Field to "DealStatus__c"
        2. Set Operator to "Does Not Equal"
        3. Set Value to the "Deal Status Signed" Constant created above
      4. Configure Set Field Values for the Opportunity Record
        1. Set Field to "StageName"
        2. Set Value to a stage before "Closed Won", like "Signature" or "Negotiating"
    5. Save the Flow
    6. Activate the Flow

Now whenever RevOps syncs deal information to an Opportunity, this Flow will move the Opportunity's Stage to "closed-won" if the RevOps Deal is "signed", or to the other selected Stage if not.

Setup RevOps

The final part is configuring RevOps. First, you will need to setup mappings that send the following information to your CRM to allow Subscription-related information to be generated automatically.

Each list item will show the RevOps Variable that should map to which Custom Field created above. These may not match your Variable or Custom Field names, and are provided as guidance.

  1. Deal.terms.BillingFrequency.valueOpportunity.BillingFrequency__c
  2. Deal.terms.ContractActivates.startDateOpportunity.EffectiveStartDate__c
  3. Deal.terms.ContractActivates.endDateOpportunity.ffectiveEndDate__c
  4. SKU.salesPriceOpportunityLineItem.UnitPrice__c
  5. SKU.unitPricingScheduleOpportunityLineItem.PricingSchedule__c

Finally, set the values of the “Subscription Mappings” values to the corresponding CRM object fields on the Mappings tab in your Salesforce Settings. Save them using the "Save" button at the bottom right of the section.

Congratulations! 🎉

You have finished setting up the RevOps Managed Package. You can track the products and services to which your customers are subscribed, and create orders that will update these subscriptions as you and your customers grow!

As always, please send any questions, comments, and ideas to support@revops.io. You and all of our users are one of the best partners we have in building the best RevOps platform.