> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperline.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce

> Learn how to connect Salesforce with Hyperline

The Hyperline-Salesforce integration provides a seamless connection between your Salesforce instance and Hyperline.
With this integration, you can access a dedicated widget directly from Salesforce, allowing you to create and manage Hyperline quotes, subscriptions, and customers without leaving your CRM. This feature embeds the full Hyperline interface inside Salesforce, ensuring a smooth and efficient flows.

In addition, the integration enables optional and automatic data synchronization between Hyperline entities—such as quotes, subscriptions, and invoice details—and Salesforce's custom objects. This ensures you always have the most up-to-date information at your fingertips, allowing this data to be used for internal automations, workflows, and reporting within Salesforce.

## Prerequisites

You must have a valid [Salesforce account](https://salesforce.com) and access to the settings of your Hyperline account.

We recommend **experimenting with a Salesforce Developer Account** before going live. You can create a free [Salesforce Developer instance](https://developer.salesforce.com/signup) and use the [test mode](../docs/getting-started/sandbox) of your Hyperline account during setup and testing.

### Permissions

Hyperline automatically sets up the required technical components in your Salesforce instance upon connection to enable notifications and real-time synchronization.

For this reason, we recommend using a user with the **System Administrator** profile when connecting your Salesforce instance. Otherwise, the user must manually be granted specific permissions.

<Accordion title="Manually grant permissions to a non-System Administrator user">
  The user must have the following permissions:

  * **API Enabled** — Allows the user to execute API calls.
  * **Author Apex** — Allows the user to create and edit Apex classes and triggers.
  * **Customize Application** or **Modify All Data** — Allows the user to create or edit remote site settings.

  These permissions can be updated as follows:

  1. Click the **Gear** icon (top-right corner) and select **Setup**.
  2. In the **Quick Find** box, type “Profiles” and select **Profiles**.
  3. Click **Edit** next to the profile you want to update.
  4. Enable the required permission checkboxes and click **Save**.
</Accordion>

## Embedded Hyperline UIs in Salesforce

### Installation

Upon connecting your Salesforce instance to Hyperline, a Hyperline Salesforce package is automatically installed.

This package includes a **native Salesforce component** that can be easily **added to your page layouts**, allowing your revenue teams to keep using Salesforce while seamlessly accessing all Hyperline functionalities.

To add the component to an Account or Opportunity page:

1. Navigate to any Account or Opportunity page.
2. Click the menu in the top-right corner and select **Edit Page**.
3. Search for the **Hyperline** component and drag-and-drop it into the page layout.
4. Click **Save**.
   If this is your first time editing this layout, Salesforce will prompt you to **Activate** the updated view.

### Component

Once installed, this component can be used on both **Account** and **Opportunity** pages.

It provides several available actions, allowing you to:

* create Hyperline quotes
* create Hyperline subscriptions
* manage the related Hyperline customer

Each action opens a dedicated Hyperline interface embedded directly within Salesforce, giving you access to the full Hyperline experience without leaving your CRM—ensuring seamless interoperability between both systems.

### Settings

The component's behavior can be fine-tuned from **Settings** > **Integrations** > **Salesforce**.

#### Root object

Controls which Salesforce object the component treats as the source of truth when displaying Hyperline billing data (quotes and subscriptions). Two modes are available:

* **Account** — All quotes and subscriptions of an account are displayed on both the account component and the components of its related opportunities. Choose this option if your revenue team thinks about billing at the customer level and wants the full billing picture available from any opportunity tied to that customer.
* **Opportunity** — Only the quotes and subscriptions attached to a specific opportunity are displayed on that opportunity's component. The account component still shows all of the account's quotes and subscriptions. Choose this option if you want each opportunity to surface only its own billing items, with no cross-opportunity bleed.

This setting only affects what's displayed in the embedded component; it does not change how data is synchronized with Salesforce custom objects.

#### Allow creating new customer

When enabled, a Salesforce user triggering an action from an account or opportunity that isn't yet linked to a Hyperline customer can create the corresponding Hyperline customer on the fly and proceed with the action.

When disabled, actions are blocked until a matching Hyperline customer exists and is linked to the Salesforce record.

#### Display customers' children's data

When enabled, the component also displays quotes and subscriptions belonging to the customer's children (in Hyperline's parent–child customer hierarchy), in addition to the customer's own. Useful when you bill parent accounts but want visibility into activity across their subsidiaries from the parent's Salesforce record.

### User access

Salesforce users do not need an existing Hyperline account. When a user triggers a Hyperline action for the first time, a corresponding Hyperline user is automatically created using their Salesforce email address and assigned to your default Hyperline role (the ['Account manager' role](../docs/getting-started/configure-account#account-manager-role) if not changed).

When Hyperline interfaces are opened inside Salesforce, the user's Hyperline role is applied to ensure the correct view and edit permissions. These permissions are managed directly in Hyperline under Settings > Team.

### Data reconciliation

When retrieving Hyperline customer data from a Salesforce account or opportunity record, the following lookup mechanism is applied:

1. If it's an opportunity record, use the associated account record for the lookup.
2. If the account record is already linked to a Hyperline customer (via the Integrations section on the Hyperline customer page), that customer is used.
3. If the account record has a value in the Hyperline customer ID custom field, we attempt to resolve the corresponding Hyperline customer.
4. If the account record has a value in the Hyperline external ID custom field, we attempt to resolve the Hyperline customer whose ID or external ID matches that value.
   If the Salesforce account and the Hyperline customer were not previously linked, the link is automatically created—provided the integration settings allow it (customer sync enabled, sync direction including Salesforce → Hyperline, and the account flagged for sync).

If a customer is found but the settings do not allow automatic linking, Hyperline will surface the suggested customer in Salesforce, along with an action to manually trigger the link.

If no customer is found but the “Allow creating new customer” setting is enabled, the Salesforce user will be able to create a new related Hyperline customer and proceed with the desired action.

## Data synchronization

In addition to the fully built-in embedded UIs, the integration can also synchronize data from Hyperline to Salesforce custom objects. This synchronization is optional and can be configured afterward.

When you connect your Salesforce workspace and select which entities you want to synchronize in the Hyperline settings, Hyperline automatically creates the required custom objects and their associated fields in Salesforce (if they do not already exist) and sets up the synchronization mechanisms.

<Warning>
  Deleting or manually modifying a Hyperline custom objects and custom fields in Salesforce may break the integration and lead to unexpected behavior.
</Warning>

Changing the data you choose to synchronize requires reconfiguring the integration. This process may take a few minutes to complete.

### Prerequisites

To synchronize data, Hyperline requires specific custom objects to exist in your Salesforce instance.

Hyperline does not have permission to automatically create custom objects in your Salesforce instance. You must create them manually using the object names listed below. If a required custom object does not exist, you will be unable to activate synchronization for that entity, and no data will be pushed to Salesforce.

| Entity                | Salesforce Object Name         |
| --------------------- | ------------------------------ |
| Quote                 | `HyperlineQuote`               |
| Quote line item       | `HyperlineQuoteLineItem`       |
| Quote coupon          | `HyperlineQuoteCoupon`         |
| Quote phase           | `HyperlineQuotePhase`          |
| Quote file            | `HyperlineQuoteFile`           |
| Subscription          | `HyperlineSubscription`        |
| Subscription product  | `HyperlineSubscriptionProduct` |
| Subscription coupon   | `HyperlineSubscriptionCoupon`  |
| Subscription phase    | `HyperlineSubscriptionPhase`   |
| Invoice               | `HyperlineInvoice`             |
| Invoice line item     | `HyperlineInvoiceLineItem`     |
| Custom property value | `HyperlineCustomPropertyValue` |

<Accordion title="Create a custom object in Salesforce">
  To create the required custom objects:

  1. Click the **Gear** icon (top-right corner) and select **Setup**.
  2. In the **Quick Find** box, type “Object Manager” and select **Object Manager**.
  3. Click the **Create** dropdown and choose **Custom Object**.
  4. Fill in the **Label**, **Object Name**, and **Record Name** fields.

  <Note>
    The **Object Name** must exactly match the required names listed above.
    Other fields may be configured according to your needs.
  </Note>

  <Frame>
    <img src="https://mintcdn.com/hyperline/Jlf5SXv68qnahU--/images/integrations/salesforce/salesforce1.png?fit=max&auto=format&n=Jlf5SXv68qnahU--&q=85&s=8babbcc2a393876611fddefdfa20b053" width="2522" height="1488" data-path="images/integrations/salesforce/salesforce1.png" />
  </Frame>

  5. Repeat this process for each entity you want to synchronize.
</Accordion>

<Info>
  We recommend creating only the custom objects required for the specific entities you wish to sync.
</Info>

### Customers sync

When enabled, Hyperline customers are synchronized with Salesforce accounts. You can choose the synchronization direction (one-way or bidirectional).

During the integration setup, Hyperline creates a “(Hyperline) Synchronize” checkbox custom field (`HyperlineSync__c` slug) on the Account object.

A Salesforce account is imported and synchronized into Hyperline only when this checkbox is enabled; accounts without it checked are ignored.

### Mapping

Below are the default field mappings between Hyperline entities and Salesforce objects.

<Frame>
  <img src="https://mintcdn.com/hyperline/Jlf5SXv68qnahU--/images/integrations/salesforce/salesforce2.png?fit=max&auto=format&n=Jlf5SXv68qnahU--&q=85&s=4273a09d4af390c193c5e880ac7be024" width="12072" height="2426" data-path="images/integrations/salesforce/salesforce2.png" />
</Frame>

### Manually trigger a sync

You can also manually trigger customer data synchronization from the Hyperline customer page. In the Integrations dropdown, click “Sync with Salesforce” to push (or pull, depending on the sync direction) the customer's data and send all associated quotes, subscriptions, and invoices to Salesforce.

## Troubleshooting

If you encounter any issues with the integration (missing data, failed entity synchronization, etc.), we recommend checking the Hyperline issues page for more details: Settings > Integrations > Salesforce > View issues.

### Common issues

**The component is empty with "Nothing yet" display and no button**

This issue usually occurs when the Salesforce instance is not connected to the correct Hyperline environment (production vs. sandbox). In Salesforce, go to Setup > Custom Code > Custom Settings, click Manage for Hyperline Settings, then Edit. Make sure the Environment field matches either `Production` or `Sandbox`, depending on your setup.

**When opening an action, the modal loads forever**

This issue usually occurs when the third-party cookies are blocked in the browser. We need them to properly authenticate the user and load the UIs. Please check this in your browser settings ([chrome://settings/cookies](chrome://settings/cookies) for Chrome or Arc) and ensure you don't have extensions that block them.

**The Salesforce component is empty (only the buttons appear, with no data)**

This issue usually occurs when the same Salesforce ID is assigned to multiple customers in Hyperline. Hyperline uses the first matching customer it finds, but that customer may not contain any data. Ensure that the Salesforce ID is assigned to only one customer in Hyperline — the correct one.

## Disconnect

At any time, you can disconnect the integration by clicking the Disconnect button located in the top-right corner of the Salesforce integration settings page.

Disconnecting the integration will stop all synchronization, but the custom objects, custom fields, and any previously pushed data in Salesforce will remain intact—they will not be deleted.
