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

# Supported actions

The Stigg app for Salesforce exposes a set of native **Apex Flow actions** you can use inside Salesforce Flows. For anything not covered by a native action, you can extend the integration by triggering a [Stigg workflow](../../../workflows/overview) directly from a Salesforce Flow.

## Native Flow actions

The following actions are available out of the box as Apex nodes in any Salesforce Flow.

| Action                                         | Description                                                                                                                                                                                                      |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Create Stigg Customer**                      | Provisions or updates a customer in Stigg. The email address field is optional.                                                                                                                                  |
| **Create Stigg Subscription**                  | Provisions a subscription for a customer in Stigg. Supports plans, add-ons, entitlements, billing period, payment collection method, trial, credit entitlements, start date, cancellation date, and resource ID. |
| **Create Stigg Subscription with return data** | Same as above, and additionally returns the subscription ID, status, plan, and add-ons. Use this variant when you need the subscription ID for downstream flow steps.                                            |
| **Create Stigg Credit Grant**                  | Grants credits to a customer in Stigg. Supports promotional and paid grants, expiration dates, and priority ordering.                                                                                            |
| **Trigger Stigg Workflow**                     | Calls a [Stigg API-triggered workflow](../../../workflows/workflow-triggers#stigg-api-trigger) by its Trigger ID and passes an optional payload. Use this to perform any action not available as a native node.  |

<Note>
  **The subscription ID is returned by Create Stigg Subscription with return data.** Store it on the Salesforce record (e.g., on the subscription line) so you can reference it in downstream flows — for example, to update or cancel the subscription later via a Stigg workflow trigger.
</Note>

## Triggering Stigg workflows from Salesforce

The **Trigger Stigg Workflow** action lets you invoke any Stigg workflow from a Salesforce Flow. This is the recommended approach for lifecycle operations that go beyond initial provisioning — such as amending or cancelling a subscription, scheduling a future cancellation, or setting custom metadata.

### When to use it

Use the **Trigger Stigg Workflow** action instead of a native node when you need to:

* **Cancel a subscription** — pass the subscription ID to a workflow that calls [Cancel a subscription](../../../workflows/workflow-actions#stigg-actions).
* **Update a subscription** — amend entitlements, add-ons, or quantities on an existing subscription without cancelling and reprovisioning it.
* **Reschedule or update a cancellation date on an existing subscription** — to change the end date of a subscription that has already been provisioned, trigger a workflow that updates the cancellation date. (To set a cancellation date at provision time, use the native cancellation date field on the Create Stigg Subscription action.)
* **Set subscription metadata** — pass custom key-value pairs to a Stigg workflow that updates the subscription with the metadata.
* **Downgrade to a grace-period plan** — when a customer's contract expires, trigger a workflow that moves them to a read-only or restricted plan instead of revoking access immediately.
* **Send notifications** — trigger workflows that send customer or internal emails, Slack messages, or updates in any of the 400+ integrations supported by Stigg's Workflow Builder.

### How to set it up

<Steps>
  <Step title="Create a workflow in Stigg with an API trigger">
    In the [Stigg app](https://app.stigg.io), open **Workflows** and create a new workflow.

    * Add a **Stigg API trigger** node as the starting node.
    * In the node configuration, set a **Trigger ID** — this is the identifier you will use to invoke the workflow from Salesforce. For example: `cancel-subscription`.
    * Add the actions you want the workflow to perform (e.g., **Cancel a subscription**).
    * Save and activate the workflow.

    See [Stigg API trigger](../../../workflows/workflow-triggers#stigg-api-trigger) for full details.
  </Step>

  <Step title="Add the Trigger Stigg Workflow action to your Salesforce Flow">
    In your Salesforce Flow, add an **Action** element and search for **Trigger Stigg Workflow**.

    Configure the required fields:

    | Field          | Description                                                                                                     |
    | -------------- | --------------------------------------------------------------------------------------------------------------- |
    | **Trigger ID** | The Trigger ID you set on the Stigg API trigger node in step 1 (e.g., `cancel-subscription`).                   |
    | **Payload**    | *(Optional)* A JSON object containing the data your workflow needs, such as the subscription ID or customer ID. |
    | **Is Test**    | *(Optional)* Run the workflow in test mode.                                                                     |
  </Step>

  <Step title="Pass the subscription ID in the payload">
    If your workflow needs to operate on a specific subscription, include the Stigg subscription ID in the payload. This is the value returned by the **Create Stigg Subscription with return data** node — store it on the relevant Salesforce record during provisioning so it is available to downstream flows.
  </Step>

  <Step title="Save and activate your Salesforce Flow">
    Save the flow as a new version and activate it. When the flow runs and reaches the **Trigger Stigg Workflow** action, Stigg will execute the associated workflow.
  </Step>
</Steps>

## Handling renewals and amendments

When a customer renews or amends their contract in Salesforce, you have two options depending on the nature of the change.

### Provisioning a new subscription (replaces the existing one)

If the renewal or amendment results in a materially different subscription — new plan, different add-ons, changed entitlements — the simplest approach is to provision a new subscription using the **Create Stigg Subscription** node. Stigg will automatically cancel the customer's current active subscription and replace it with the new one in a single operation.

This means you do not need to explicitly cancel the old subscription or track the previous subscription ID for this case.

<Note>
  If the previous subscription has an open, unpaid invoice, Stigg will block the new provisioning until the invoice is resolved.
</Note>

### Updating an existing subscription (amending in place)

If the amendment modifies an existing subscription — changing quantities, adding or removing entitlements — and you want to preserve usage history and continuity, use the **Trigger Stigg Workflow** action with an **Update a subscription** workflow node instead. This requires the Stigg subscription ID, which is returned by the **Create Stigg Subscription with return data** node and should be stored on the Salesforce record at provisioning time.

## What is not supported natively

The following operations are not available as native Apex nodes. Use the **Trigger Stigg Workflow** action to handle them.

| Operation                                                            | Recommended workaround                                                           |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| Cancel a subscription                                                | Trigger a Stigg workflow with a **Cancel a subscription** action node            |
| Update an existing subscription in place                             | Trigger a Stigg workflow with an **Update a subscription** action node           |
| Reschedule or update a cancellation date on an existing subscription | Trigger a Stigg workflow that updates the subscription's cancellation date       |
| Add metadata to a subscription                                       | Trigger a Stigg workflow that updates the subscription with the desired metadata |
| Downgrade to a grace-period plan on expiry                           | Trigger a Stigg workflow that provisions the customer onto a restricted plan     |

<Note>
  Workflows are scoped to a Stigg environment. When copying changes between environments, Stigg carries over workflow definitions — but API keys and shared secrets must be re-entered in each environment.
</Note>
