Skip to main content
Minoa delivers a native Salesforce integration that embeds value selling directly into your CRM workflow. With bi-directional data sync, custom objects, and a dedicated Lightning component, your sales team can create, track, and share business cases without ever leaving Salesforce. The integration provides full flexibility for custom reports and analysis of your value selling efforts. Track which deals have business cases, measure engagement with prospects, and analyze how value selling impacts win rates—all using Salesforce’s powerful reporting tools. Whether you’re running forecasting meetings, building executive dashboards, or measuring ROI on your value engineering investments, Minoa’s deep Salesforce integration has you covered.

What Gets Synced

Opportunities

Become Minoa Opportunities with all key fields: name, stage, close date, value, and owner.

Accounts

Become Minoa Accounts, linked to their associated opportunities with optional metadata fields.

Business Cases

Minoa business cases write back to Salesforce as custom Minoa_Business_Case__c records.

How It Works

Data Sync (Salesforce → Minoa)

Minoa automatically syncs opportunity and account data from Salesforce via REST API:
  • Sync frequency: Every 15 minutes
  • Incremental sync: Only fetches opportunities modified since the last sync to minimize API calls
  • Data synced: Opportunities, Accounts, Contacts, and configured custom fields

Write-Back (Minoa → Salesforce)

When you create or update a business case in Minoa, the data is written back to Salesforce:
  • Custom Object: Minoa_Business_Case__c stores business case details linked to each Opportunity
  • Real-time updates: Changes in Minoa are reflected in Salesforce immediately
  • Opportunity fields: optionally write Minoa data straight onto the standard Opportunity, using either the fields the package installs or fields you create — see Sync Minoa Data into Opportunity Fields

Minoa Salesforce App

The optional Minoa Salesforce App provides:
  • A custom Lightning component for the Opportunity page
  • The Minoa_Business_Case__c and Minoa_Opportunity_Intelligence__c custom object definitions
  • Pre-configured fields for business case and Opportunity Intelligence data

Integration Setup Guide

Prerequisites

  • Admin access to your Salesforce org (for installing the managed package)
  • Admin or Integration permissions in Minoa

Connect Salesforce

1

Create Your Minoa Account

Open the Minoa app and sign in using your Google account or SSO. Wait for the page to refresh while your account is being set up. Contact your Minoa representative to receive administrator permissions.
2

Go to Integrations

In Minoa, navigate to SettingsIntegrations.
3

Connect Salesforce

Click Connect Salesforce, enter your Salesforce domain (e.g., yourcompany.my.salesforce.com), and authenticate through Salesforce.
4

Grant Permissions

Authorize Minoa to access your Salesforce data. Once connected, opportunity and account data will begin syncing for users that have signed up to Minoa.
Once connected, Minoa syncs automatically every 15 minutes. No manual action required.

Install the Minoa Salesforce App

The Minoa Salesforce App adds a custom Lightning component to your Opportunity pages and creates the Minoa_Business_Case__c custom object.
Installation requires Salesforce Administrator privileges. If you don’t have these permissions, share this guide with your Salesforce Admin.
1

Navigate to the Installation Page

Open the install link: Install Minoa Salesforce App
2

Configure Installation Settings

Click the “I acknowledge” checkbox and choose Install for All Users.
3

Wait for Installation

After a few seconds, you’ll see a success message confirming the installation.
4

Add the Widget to Opportunity Pages

Open any Opportunity record, click the gear icon (⚙️), select Edit Page, and search the Components panel for Minoa Value Intelligence. Drag it onto the page, then click Save and Activate.
The Components panel lists the widget by its label, Minoa Value Intelligence. Versions before 1.4.0 label it just Minoa. Searching for the internal component name, minoaBusinessCase, returns nothing.
SF Install Settings Web BCSF Widget Web

Configuration Options

Access the configuration modal from Settings → Integrations → Salesforce → Manage.

Opportunity Field Mapping

Business Case Write-Back Fields

When you create or update a business case in Minoa, these fields sync to the Minoa_Business_Case__c object in Salesforce:
The Salesforce integration is bi-directional: opportunity data flows from Salesforce into Minoa, and business case data writes back from Minoa to Salesforce.

Custom Opportunity Value Field

If your organization uses a custom field to track opportunity value (instead of the default Amount field), you can configure Minoa to use that field.
Good candidates include ARR fields, TCV fields, or any custom currency field like Opportunity_USD_Value__c or Total_Contract_Value__c.

Co-Owners for Opportunities

By default, Minoa shows opportunities to the Opportunity Owner. Configure additional co-owners to give other team members access to relevant opportunities: Option 1: Additional Owner Field
  • Select a custom Salesforce field that references another user (e.g., Presales_Engineer__c, Solutions_Consultant__c)
  • The user referenced in this field will see the opportunity in their Minoa dashboard
Option 2: Opportunity Team Roles
  • Select one or more Opportunity Team Member roles (e.g., “Value Engineer”, “Solutions Architect”)
  • Users assigned to these roles on an opportunity will see it in their Minoa dashboard
  • You can configure up to 5 different team roles
Additional Owner Field and Opportunity Team Roles are mutually exclusive. Choose one approach based on how your organization structures deal teams.
Minoa opportunities have one owner and one co-owner. While you can configure multiple team member roles to listen for, Minoa will only add up to one additional co-owner per opportunity.

Account Metadata Fields

Configure which Salesforce Account fields should sync to Minoa for account context: You can map these to custom fields if your organization uses different field names.

Sync Management

  • Last synced at: Shows when the last successful sync occurred
  • Reset: Force a full resync of all opportunities (useful after changing configuration)
  • Sync now: Trigger an immediate sync instead of waiting for the scheduled interval
  • Multi-currency: Shows whether your Salesforce org has multi-currency enabled (read-only)
  • Re-Auth: Re-authenticate the Salesforce connection if you encounter permission issues
  • Backfill: Recreate all Minoa_Business_Case__c records in Salesforce from Minoa data
  • Opportunity fields: Write Minoa data into custom fields on the standard Opportunity — see Sync Minoa Data into Opportunity Fields

Sync Minoa Data into Opportunity Fields

Reports, list views, and forecasting tools live on the Opportunity. Map Minoa data onto custom fields on the standard Opportunity object and that signal lands where your team already looks. There are two ways to get the fields. Use whichever suits your org — the mapping step is the same either way.

Option A: Use the fields the Minoa package installs

From version 1.5.0, the Minoa managed package ships both fields on the standard Opportunity, so there is nothing to create:
Salesforce caps how many custom fields you can create per object, and fields that arrive through a managed package do not count toward that cap. If your Opportunity is at or near its limit, this is the way to get the sync working without freeing up a field.
Packaged fields install with field-level security switched off, so grant the integration user write access to both before mapping them — see Required Permissions. Until you do, they will not appear in Minoa’s field list.

Option B: Create your own fields

Create the fields yourself if you are not on 1.5.0 yet, or if you want to name them your way:
1

Turn On the Hourly Opportunity Intelligence Sync

In Minoa, go to SettingsIntegrationsSalesforceManage and enable Opportunity Intelligence. Field sync rides the same hourly run.
2

Get the Field Ready in Salesforce

Using the packaged fields (Option A): go to SetupObject ManagerOpportunityFields & Relationships, open Minoa__Has_Business_Case__c and Minoa__Value_Signal__c, and use Set Field-Level Security to give the integration user’s profile or permission set read and write access.Creating your own (Option B): go to SetupObject ManagerOpportunityFields & RelationshipsNew and create the field using the label, API name, and type from the table above. Give the integration user write access to it.
Minoa never creates or deletes fields in your org. Fields either arrive with the managed package or you create them yourself; you stay in control of your schema.
3

Map It in Minoa

Back in the Salesforce Manage modal, click Set up Opportunity fieldsAdd field mapping, then pick the Minoa data and the field it writes into.
It works in either order. Pick the Minoa data first and, if no suitable field exists yet, Minoa shows you the exact label, API name, and type to create.
Values land on the next hourly run. Click Queue all opportunities to apply a new mapping to every deal right away.
This is the only place Minoa writes to a standard Salesforce object, so your own Apex triggers, flows, and validation rules on Opportunity will fire. Test on a handful of deals before rolling out widely.
Minoa only offers fields it knows it can write. A field is eligible when it is:
  • A custom field on Opportunity — either one your team created or one the Minoa managed package installs. Standard fields and fields from another vendor’s managed package are not eligible.
  • Writable by the connected integration user, both at the object and the field level
  • Not a formula, roll-up summary, auto-number, unique, or deprecated field
  • The right type for the data point, per the table above
  • Not already synced from Salesforce into Minoa — writing it would overwrite the value Minoa reads
Each Minoa data point maps to one field, and each field receives one data point. You can configure up to 20 mappings.
Saving is all-or-nothing. If any row is refused, nothing is saved and the reason appears on the row that caused it.
  • Mapped values go out on the same hourly run as Opportunity Intelligence, and only for deals that changed since the last write.
  • Opportunity fields and the Minoa_Opportunity_Intelligence__c record succeed and fail independently, so a validation rule on your Opportunity never re-triggers writes to the package record.
  • A Value Signal longer than the target field is cut at a word boundary. Minoa warns you when the field holds fewer than 1,000 characters — a Long Text Area keeps the whole thing.
If Salesforce blames one field, Minoa drops it and retries the same write once without it, so one broken mapping never blocks the others.After five consecutive rejections of the same field, Minoa pauses that mapping and stops writing it. The panel shows Paused with the Salesforce error code. Fix the cause in Salesforce, then click Re-enable.

Securing the Integration

We recommend using a dedicated integration user with minimally scoped permissions for the Minoa Salesforce integration. This follows security best practices and makes it easier to audit integration activity.

Required Permissions

The integration user needs read access to:
  • Accounts
  • Opportunities and related objects (OpportunityTeamMember, OpportunityLineItem)
  • Contacts
  • Users
The integration user needs read, write, and delete access to:
  • Minoa_Business_Case__c (custom object created by installing the Minoa managed package)
  • Minoa_Opportunity_Intelligence__c (custom object added in version 1.4.0, used for Opportunity Intelligence)
If you use Opportunity field sync, the integration user also needs edit access on Opportunity and field-level write access on each mapped custom field. Minoa reads field-level security when it builds the picker, so a field the user can’t write simply won’t be offered.
Packaged fields install with field-level security switched off. Minoa__Has_Business_Case__c and Minoa__Value_Signal__c arrive with version 1.5.0, but no profile can see them until you say so. Open SetupObject ManagerOpportunityFields & Relationships → the field → Set Field-Level Security, and give the integration user’s profile or permission set Visible and not Read-Only. Grant the same access to any user or report that should see the values. This is a one-time step per field; upgrading the package later does not reset it.
Additional permissions may be required depending on your Salesforce configuration. Because Minoa_Business_Case__c is linked to Opportunity via a parent–child (master-detail or lookup) relationship, certain Salesforce configurations may enforce cascading rules or sharing settings that require the integration user to have broader permissions on the parent Opportunity object (e.g., edit access). If you experience permission errors when Minoa creates, updates, or deletes business case records, review your org’s relationship settings between Minoa_Business_Case__c and Opportunity and adjust the integration user’s permissions accordingly.

Setting Up an Integration User

  1. Create a dedicated Salesforce user (e.g., minoa-integration@yourcompany.com)
  2. Assign a Profile or Permission Set with the minimum required permissions listed above
  3. Use this user’s credentials when connecting Minoa to Salesforce
The integration user has to be able to log in to Salesforce. Connecting Minoa uses Salesforce’s browser-based OAuth flow, so whoever authorizes the connection signs in and approves it on a Salesforce login screen. A user with the API Only User permission, or one on the Salesforce Integration license, can’t get through that step, because Salesforce blocks those users from the UI. Give your integration user a standard license, with API Enabled switched on and API Only User switched off. The two settings sound alike and do opposite things here: API Enabled is the one Minoa needs.
Using a dedicated integration user ensures that if an employee leaves the company, the integration continues to function. It also provides clear audit trails for all Minoa-related API activity.

Using the Salesforce App

The Minoa Salesforce App adds a custom component to your Opportunity pages that displays business case information.

Create a New Business Case

If no Minoa Business Case record is linked to the Opportunity, the component displays a Create Minoa Business Case button. Clicking this button redirects to the Minoa app where you can create a new business case that automatically syncs back to Salesforce.

Review an Existing Business Case

If a Minoa Business Case is linked to the Opportunity, the component displays:
  • Estimated value and ROI
  • Number of external collaborators
  • Level of detail indicator
  • Number of prospect visits
  • Last updated timestamp

Quick Actions

  • Open in Minoa: Opens the business case in the Minoa app for editing
  • Copy Sharing Link: Copies the prospect-facing link to share the business case

Configuring Component Visibility

You can control which users see the Minoa component using Salesforce’s standard component visibility settings:
  1. In Lightning App Builder, select the Minoa Value Intelligence component on the page
  2. Click Set component visibility
  3. Define filters based on user profiles, roles, or custom conditions

Showing Value Realization Fields

From version 1.3.0 of the Minoa Salesforce App, the widget can also surface value realization progress on the Opportunity:
  • Realized Benefit To Date — the actual benefit delivered so far (cumulative through the current month) from the business case’s Value Realization scenario.
  • Projected Benefit To Date — the benefit the matching plan expected to have delivered by today, for an at-a-glance pacing comparison.
These map to the Minoa__Realized_Benefit_To_Date__c and Minoa__Projected_Benefit_To_Date__c fields on Minoa_Business_Case__c, and appear only when the business case has a Value Realization scenario. Admins control whether these fields show on the widget using the Show Value Realization Fields property on the component:
  1. In Lightning App Builder, select the Minoa Value Intelligence component on the page
  2. In the component properties panel, toggle Show Value Realization Fields on or off
  3. Click Save

Showing Opportunity Intelligence

Opportunity Intelligence gives you Minoa context on the Opportunity itself — even before anyone has built a business case. The widget shows it under an Opportunity heading, above the Business Case section:
  • Value Signal — one sentence on why this deal needs a value asset: the concrete buyer pain or outcome that makes a business case, ROI model, or buyer-facing document useful for the decision or the internal approval. Minoa grounds it in the strongest evidence on the deal — quantified impact, urgency, stakeholder engagement, budget and procurement, survey responses, document engagement, or recent calls. When there isn’t enough context yet, it says so rather than guessing.
  • Deal Documents — links to the Minoa documents already created for the deal (Value Hypothesis, One-Pager, Discovery Summary, and the rest), plus an Add new link to start another one.
Minoa keeps this data in sync automatically on the Minoa_Opportunity_Intelligence__c object. Until Minoa has written anything for an Opportunity, the section shows an empty state with the Add new link, so reps always have a way in. Admins control whether this section shows using the Show Opportunity Intelligence Fields property on the component:
  1. In Lightning App Builder, select the Minoa Value Intelligence component on the page
  2. In the component properties panel, toggle Show Opportunity Intelligence Fields on or off
  3. Click Save
Opportunity Intelligence requires version 1.4.0 or later of the Minoa Salesforce App.

Multi-Language Support

The Minoa Salesforce App supports translations. Contact us for instructions on translating the component text for your organization’s languages.

Show Business Case in Forecast

A checkbox on the Opportunity that says “this deal has a business case” is what makes value selling visible in forecasting, deal reviews, and analytics tools like Clari. The fastest way there: map Business Case Exists to a Checkbox on Opportunity — either Minoa__Has_Business_Case__c, which the package installs from 1.5.0, or one you create. See Sync Minoa Data into Opportunity Fields — Minoa keeps it current on every hourly run, and no formula is involved.
Use this if you want the business case count as well as a yes/no, or if you’d rather Salesforce calculate the field itself.1. Create a roll-up summary field
  1. Go to Setup → Object Manager → Opportunity
  2. Click Fields & Relationships → New → Roll-Up Summary
  3. Name the field (e.g., Minoa_Business_Case_Count)
  4. Select Minoa_Business_Case__c as the related object
  5. Choose COUNT as the roll-up type
2. Create a checkbox formula field
  1. Create a new Formula field on Opportunity
  2. Set the return type to Checkbox
  3. Use the formula: Minoa_Business_Case_Count__c > 0
  4. Name the field (e.g., Has_Minoa_Business_Case)
BC Count Web
Formula and roll-up summary fields are calculated by Salesforce, so Minoa can’t write to them. Pick one approach, not both.

Using in Clari

To display the checkbox in Clari’s pipeline view:
  1. Log in to Clari as an admin
  2. Navigate to Settings → Data Integration → Salesforce Fields
  3. Add your checkbox field to the integration
  4. Sync and add the field to your pipeline view columns
Has BC Web

Package Versions and Upgrades

Minoa ships the Salesforce app as a managed package. There is one current package — the 2nd generation package — plus a retired 1st generation package that a small number of older orgs still have installed.
“1st generation” and “2nd generation” describe Salesforce’s packaging model, not the version number. The 2nd generation package has its own version numbering that starts again at 1.0.0, so 2nd generation 1.4.0 is much newer than 1st generation 1.0.To tell them apart, open Setup → Installed Packages: the 2nd generation package reports a three-part version such as 1.4.0, the 1st generation package reports 1.0.

2nd Generation Package (current)

This is the only package Minoa maintains, and the one every new install gets. Install or upgrade it from the install link.

Upgrading to a Newer Version

Upgrades within the 2nd generation package are in place: you install the newer version over the one you already have. There is no uninstall, no record deletion, and no backfill.
1

Install the Latest Version

Open the install link and choose Install for All Users. Salesforce recognizes the package that is already installed and upgrades it.
2

Confirm the Version

Go to Setup → Installed Packages and check that Minoa now shows the version you installed.
3

Grant Access to New Objects

Version 1.4.0 adds the Minoa_Opportunity_Intelligence__c object. Give your integration user read, write, and delete access to it — see Required Permissions.
4

Grant Access to New Fields

Version 1.5.0 adds Minoa__Has_Business_Case__c and Minoa__Value_Signal__c to the standard Opportunity, for Opportunity field sync. They install with field-level security switched off — grant the integration user write access before mapping them, and grant read access to anyone who should see them on a record or in a report.
5

Turn On the New Widget Sections

New widget sections ship switched off. In Lightning App Builder, select the Minoa Value Intelligence component and toggle on Show Value Realization Fields (1.3.0) or Show Opportunity Intelligence Fields (1.4.0), then click Save.
Your existing Minoa_Business_Case__c records are untouched by an upgrade, and your page layouts keep the widget where you put it.

1st Generation Package (retired)

The 1st generation package is no longer maintained and receives no new fields or fixes. Salesforce lists it in Setup → Installed Packages as Minoa, Publisher Minoa, Version 1.0.
If Installed Packages shows a three-part version such as 1.2.0 or 1.4.0, you are already on the 2nd generation package and the migration below does not apply to you. Follow Upgrading to a Newer Version instead.
This is a one-time migration for orgs still running version 1.0. Unlike a 2nd generation upgrade, it requires an uninstall.
The two packages share the same namespace and cannot be installed side by side. You must uninstall the 1st generation package before installing the 2nd generation one.
1

Identify the Existing Package

In Salesforce, go to Setup → Installed Packages and locate the package named Minoa (Publisher: Minoa, Version 1.0).
2

Prepare for Uninstall

Check if any reports, dashboards, or Lightning pages reference Minoa components. Remove these references before uninstalling. Custom dashboards and reports will need to be recreated after the migration.
3

Uninstall the Old Package

From Installed Packages, click Uninstall next to Minoa. Optionally save a copy of package data for 48 hours. Resolve any uninstall blockers and confirm.
4

Install the 2nd Generation Package

Open the install link, select Install for All Users, and verify the new fields are available on Minoa_Business_Case__c.
5

Backfill Business Case Data

Open Minoa Integration Settings, click Manage on the Salesforce integration, click the Backfill button, and wait for the process to complete.
No business case data will be lost. All of it is stored in Minoa and is backfilled to Salesforce after installing the new package. Custom dashboards, reports, and formula fields built on the old package’s fields do need to be recreated by hand.

Troubleshooting

Check user access. Ensure the Salesforce integration user has access to the opportunities you expect to see.Verify permissions. The integration user needs read permissions on Accounts, Opportunities, Contacts, and Users.Wait for the next sync. Syncs run every 15 minutes. Check back shortly or trigger a manual sync from Settings → Integrations → Salesforce → Sync Now.
Check app installation. Ensure the Minoa Salesforce App is installed in your org.Verify the widget. The Minoa Value Intelligence component must be added to your Opportunity page layout.Check permissions. The integration user needs read, write, and delete access to Minoa_Business_Case__c.
Salesforce rejected that field on five consecutive writes, so Minoa stopped writing it. The row shows the Salesforce error code — hover it for detail.Usual causes. A validation rule or required-field rule on Opportunity, an Apex trigger that throws, or field-level write access revoked from the integration user.Fix the cause in Salesforce, then click Re-enable on the row. Your other mappings kept writing throughout.
OAuth tokens occasionally expire. To reconnect:
  1. Go to Settings → Integrations → Salesforce
  2. Click Re-Auth
  3. Re-authenticate with Salesforce
Also verify that the integration user’s password hasn’t expired and that API access is enabled for their profile.
Upgrade the Salesforce App. This was a known bug in versions prior to 1.2.0. The minoaBusinessCase component was incorrectly calling .then() on a navigation method that doesn’t return a Promise.Install the latest version of the Minoa Salesforce App from the install link to resolve this issue.
Minoa processes Salesforce data in batches to stay within API limits. For large orgs (10,000+ opportunities), the initial sync may take several cycles to complete. Incremental syncs after that are much faster since only modified records are fetched.

Getting Help

If you encounter issues during setup or have questions:
  • Email: support@minoa.io
  • Slack: Reach out to your Minoa contact for real-time support