---
title: "Apex Actions"
url: "https://docs.signnow.com/docs/salesforce-apex-actions"
type: "page"
section: "Integrations"
slug: "salesforce-apex-actions"
---

# Apex Actions

# Integrate eSignatures into Salesforce Flow with Apex Actions

Automate your eSignature workflows directly within Salesforce without writing code. By using SignNow Apex actions inside the Salesforce Flow Builder, you can trigger signature requests based on record updates, button clicks, or specific dates. This guide provides 'recipes' for common scenarios like sending contracts, generating embedded invites, and tracking status updates.

## How it works

In Salesforce Flow Builder, SignNow Apex actions behave like standard building blocks. You do not need to write code to use them. Simply drag an Action element onto your canvas and select the specific SignNow task you want to perform (e.g., **Send SignNow Template** or **Get SignNow Document Group**).


The following SignNow Apex actions are available:


### Sending SignNow templates and documents
- [Send SignNow Template](/docs/apex-send-template): This action allows users to send a specific template for signature based on Salesforce events.
- [Generate and Send Document via SignNow](/docs/apex-generate-and-send-document): This action allows users to dynamically generate a document by merging a .docx template with Salesforce record data and send it for signature based on Salesforce events.
- [Send SignNow Invite via SMS](/docs/apex-send-sms-invite): This action allows users to send a document group for signature via SMS. Recipients will receive a text message containing a link to the document group.
- [Send SignNow Freeform Invite](/docs/apex-send-freeform-invite): This action allows users to send documents without fillable fields to recipients.

### Sending Salesforce attachments
- [Send File via SignNow by File ID](/docs/apex-send-file-id): This action allows users to send a specific attachment for signature based on Salesforce events.
- [Send File via SignNow by File Name](/docs/apex-send-file-name): This action allows users to send a record attachment for signature based on the file name and Salesforce actions.

### Managing documents
- [Generate Document via SignNow](/docs/apex-generate-document): This action generates a document by merging a .docx template with Salesforce record data and returns the Document Group ID for use in subsequent flow steps.
- [Get SignNow Document Group](/docs/apex-get-document-group): This action retrieves detailed information about a specific document group (such as IDs, status, and documents), which can then be used in downstream automation or displayed to the user.
- [Create SignNow Document Group from SignNow Template](/docs/apex-create-document-group-from-template): This action allows users to create a document group without sending it for signature.
- [Get SignNow Document Group Recipients](/docs/apex-create-document-group-from-template): This action allows users to retrieve information about document group recipients, including email addresses, signing order, assigned documents, and more.

### Building Salesforce applications
- [Create SignNow Embedded Invite](/docs/apex-create-embedded-invite): This action allows users to create an embedded document group invite. To share an embedded invite with recipients, Salesforce users need to get a link to the invite using the Get SignNow Embedded Signing Session URL action.
- [Get SignNow Editor URL](/docs/apex-editor-url): This action allows users to create a link for the embedded document group editing.
- [Get SignNow Send Invite URL](/docs/apex-get-send-invite-url): This action allows users to create a link for sending the document group for signature.

### Post-sending management
- [Get SignNow Invite Data](/docs/apex-get-invite-data): This action allows users to retrieve a JSON response with document(s) data, which can be parsed and used for other purposes.
- [Reassign SignNow Invite](/docs/apex-reassign-invite): This action allows users to reassign a document group signature invite to a different email address.
- [Cancel SignNow Invite](/docs/apex-cancel-invite): This action allows users to cancel the signature invite based on Salesforce events.
- [SignNow Invite Status Update](/docs/apex-invite-status-update-event) event can be used to trigger actions in Salesforce based on SignNow document group events.


## **Prerequisites**

Before using the Apex actions with SignNow eSignature workflows, follow these steps:

⚫ Authorize the integration user in the SignNow for Salesforce application. The Apex actions will be executed on behalf of this user. 

> The integration user must have the System Administrator profile or a custom profile with equivalent permissions.

⚫ Add the integration user to the SignNow custom settings.
- Go to **Setup > Custom settings > SignNow settings**.
- Under **Manage**, in the **Default Organization Level Value** section, click **New** or **Edit** (if an entry already exists).

![apex_integration_user_custom_settings_manage.png](/reference-assets/images/SignNow_Salesforce/apex_actions/apex_integration_user_custom_settings_manage.png)

- In the **Integration User ID** field enter the ID of the authorized integration user.

![apex_integration_user_add_id.png](/reference-assets/images/SignNow_Salesforce/apex_actions/apex_integration_user_add_id.png)

- Click **Save**.

> The Integration User ID must be set at the organization level, in the **Default Organization Level Value** section. If it's added in a user-specific entry instead, SignNow Apex actions in flows are not executed.

![apex_org_custom_settings.png](/reference-assets/images/SignNow_Salesforce/apex_actions/apex_org_custom_settings.png)

⚫ Make sure the `universal_signnow_rss` remote site is active.
- Go to **Setup > Remote Site Settings**.
- Find **universal_signnow_rss** and check that **Active** is selected. If it isn't, click **Edit**, select **Active**, and click **Save**.

![apex_universal_app_active.png](/reference-assets/images/SignNow_Salesforce/apex_actions/apex_universal_app_active.png)


⚫ Make sure the integration user has the required SignNow permission sets.

Learn how to [assign the permission set to users](/docs/installation#assign-the-permission-set-to-users).

## How to retrieve the integration user ID

- Go to **Setup > Users**.
- Select the integration user.
- The user ID is displayed in the browser’s URL.

![apex_integration_user_id.png](/reference-assets/images/SignNow_Salesforce/apex_actions/apex_integration_user_id.png)

> Admins can invoke Apex actions from **Flows** or **Process Builder**. In this guide, we will configure Apex actions using **Flows**.

## Apex actions glossary

**Flow Builder**: Salesforce’s visual automation tool that allows administrators to design process logic (triggers, conditions, and loops) using a point-and-click interface. It serves as the canvas where SignNow Apex Actions are connected to Salesforce records and events.

**Apex Action**: A pre-built automation element in Salesforce that performs complex tasks, such as sending data to the SignNow API, without requiring custom code. In Flow Builder, Apex Actions appear as drag-and-drop elements that can be configured using simple input fields.

**Record-triggered flow**: A type of automation that runs in the background. It watches for changes to data (e.g., "When an Opportunity closes"). You use this to send contracts automatically the moment a record is updated.

**Screen flow**: A type of automation designed for user interaction. Unlike background flows, this launches a visual interface. You use this to build workflows launched by a button that let users manually customize settings, confirm a document before sending, or simply view data.

**Element**: A single building block on the flow canvas representing a specific step in the automation. Elements are categorized into Logic (e.g., Decisions, Loops), Data (e.g., Get Records, Update Records), and Interaction (e.g., Screens, Actions).

**Variable**: A container used to carry information from one step to another. For example, if you find a Contact in Step 1, you store their email in a Variable so you can pass it to the SignNow Action in Step 2.

**Collection**: A special type of variable that stores a list of values (e.g., a list of 10 Document IDs or 5 Email Addresses). You use Collections when you need to process multiple records at once, often using a Loop element to handle them one by one.


---
*Full page: https://docs.signnow.com/docs/salesforce-apex-actions*
