---
schema_version: "1"
id: b504a1b1cfca158ada9b567cd60343c42a432d8fe066137fbb546d92523c0749
title: How Are the Publisher and Quick Action APIs Different?
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/platform/case_feed_dev_guide/guides/intro/publisher-quickaction-why-ui-matters.md
canonical_url: https://developer.salesforce.com/docs/platform/case-feed-dev-guide/guide/publisher-quickaction-why-ui-matters.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: c5a62759050a70f6bcb5fb20f30aac693f0c2bb9e7e115a63a536ef4596b1b15
products:
  - Publisher and Quick Action Developer Guide
  - Platform Developer Content
---

# How Are the Publisher and Quick Action APIs Different?

The user interface in your org can dictate which development tools you can use to interact with actions. In Salesforce Classic, you use the Salesforce Classic Publisher JavaScript APIs with Visualforce components to interact with actions. In Lightning Experience, you use the `lightning:quickActionAPI` component to call the Lightning Quick Action JavaScript APIs to interact with actions.

## Implementation

**Salesforce Classic Publisher JavaScript APIs**

To implement, load the publisher script in your Visualforce page or component. For example:

```xml
<script
  type='text/javascript'
  src='/canvas/sdk/js/43.0/publisher.js'/>
```

Then you can reference the Publisher APIs through the `Sfdc.canvas.publisher` object. For example:

```javascript
Sfdc.canvas.publisher.selectAction({...})
```

**Lightning Quick Action JavaScript APIs**

To implement, use the component `lightning:quickActionAPI` in your custom Aura component. For example:

```html
<aura:component implements="flexipage:availableForRecordHome" description="My Aura component">
  <lightning:quickActionAPI aura:id="quickActionAPI" />
</aura:component>
```

Then you can reference the Quick Action APIs in your controller code.

## Supported Actions, Apps, and Pages

**Salesforce Classic Publisher JavaScript APIs**

Works with any quick action on a record page in Salesforce Classic apps for objects that are feed-enabled. Supports apps with standard navigation and console navigation.

**Lightning Quick Action JavaScript APIs**

Works with any quick actions on a record page in any Lightning Experience app. Supports apps with standard navigation and console navigation.

## Available Methods

**Salesforce Classic Publisher JavaScript APIs**

Provides the following methods:

- [publisher.customActionMessage](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/case-feed-dev-guide-component-interactions.md)
- [publisher.invokeAction](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/case-feed-dev-guide-component-interactions.md)
- [refresh](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/case-feed-dev-guide-component-interactions.md)
- [publisher.selectAction](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/case-feed-dev-guide-component-interactions.md)
- [publisher.setActionInputValues](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/case-feed-dev-guide-component-interactions.md)

**Lightning Quick Action JavaScript APIs**

Provides the following methods:

- [getAvailableActions](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-getavailableactions.md)
- [getAvailableActionFields](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-getavailableactionfields.md)
- [getCustomAction](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-getcustomaction.md)
- [getSelectedActions](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-getselectedactions.md)
- [invokeAction](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-invokeaction.md)
- [refresh](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-refresh.md)
- [selectAction](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-selectaction.md)
- [setActionFieldValues](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-setactionfieldvalues.md)

## Lightning Experience and Salesforce Classic Support

**Salesforce Classic Publisher JavaScript APIs**

Works in Salesforce Classic and Lightning Experience. Starting with API version 43.0 of the Salesforce Classic JavaScript Publisher API, the methods used in Visualforce components and pages work in Lightning Experience. Just point to the latest version of the Publisher API script in your Visualforce pages.

```html
<script src="/canvas/sdk/js/43.0/publisher.js" type="text/javascript"></script>
```

The `portalPostFields` input value is not supported in Lightning Experience.

**Lightning Quick Action JavaScript APIs**

Works only in Lightning Experience. Before implementing, review the [Quick Action API Considerations](https://developer.salesforce.com/docs/platform/case-feed-dev-guide/quickactions/quickaction-api-considerations.md).
