Quick Actions
The Quick Actions API enables you to embed external tools directly into your Shared Spaces. By incorporating calendar scheduling, document signing, or other integrations, you can streamline collaboration and enhance productivity for your revenue teams.

What you'll learn
- How to create and configure Quick Actions in Shared Spaces
- How to list and retrieve Quick Action details
- How to update and delete Quick Actions
- How to work with Shared Space extensions
- Create a Quick Action? Use
POST /shared-spaces/{id}/quick-actionswith title, URL, and extension ID - List Quick Actions? Use
GET /shared-spaces/{id}/quick-actionsto retrieve all actions - Update or delete? Use
PATCHorDELETEon/quick-actions/{quickActionId}
When to use the API
| Calendar Integration | Document Signing | Custom Workflows | Dynamic Actions |
|---|---|---|---|
| Embed scheduling tools like Calendly, HubSpot, or Cal.com directly in Shared Spaces. | Add e-signature buttons for contracts and agreements. | Create action buttons that link to external business tools. | Programmatically add or remove actions based on deal stage. |
- Plan: Ultimate | Advanced or Expert
- Permissions: Administrator access to Showpad's Admin App
- Authentication: Valid OAuth 2.0 access token (learn more)
- Config:
- Shared Spaces enabled
- An installed Showpad App with a Shared Space Extension
Quick Actions terminology
Before working with Quick Actions, familiarize yourself with these key terms:
| Term | Description |
|---|---|
Quick Action | An action button displayed in a Shared Space that links to an external tool via an iFrame. Each Quick Action is powered by a Shared Space Extension. |
Shared Space Extension | A component defined in a Showpad App that enables Quick Actions. Extensions specify valid domains that can be embedded. |
sharedSpaceExtensionId | The unique identifier of the extension that powers a Quick Action. Required when creating a Quick Action. |
isInternal | Boolean flag that determines visibility. When true, only internal users (sellers) can see the Quick Action. When false, both internal and external users (buyers) can see it. |
validDomains | URLs configured in the extension that permit embedding within an iFrame. The Quick Action URL must match one of these domains. |
Base endpoint
Every request uses the API v4 base endpoint:
https://{{subdomain}}.api.showpad.com/v4
Once your Showpad App with one or more Shared Space Extensions is installed, you can make the following API requests.
Shared Spaces
Before creating Quick Actions, you need to identify the Shared Space and the installed extensions.
List Shared Spaces
Retrieve all Shared Spaces in your organization:
| Method | Endpoint | Description |
|---|---|---|
GET | /shared-spaces | Returns a list of all Shared Spaces in your organization. |
Example Request
- cURL
- JavaScript
- Python
curl "https://{{subdomain}}.api.showpad.com/v4/shared-spaces?participantEmail=bob.smith%40showpad.com&limit=100" \
-H "Authorization: Bearer {access_token}"
const response = await fetch('https://{{subdomain}}.api.showpad.com/v4/shared-spaces?limit=100', {
headers: { Authorization: 'Bearer {access_token}' },
});
const sharedSpaces = await response.json();
import requests
response = requests.get(
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces',
headers={'Authorization': 'Bearer {access_token}'},
params={'limit': 100}
)
shared_spaces = response.json()
Example Response
{
"count": 1,
"items": [
{
"id": "shared-space-id",
"title": "Sales and Marketing teams",
"status": "ACTIVE",
"createdAt": "2019-08-24T14:15:22.000Z",
"lastActivityAt": "2019-08-24T14:15:22.000Z"
}
]
}
List of Shared Space Extensions
This request uses the Apps API base endpoint (/apps/v1), not the standard v4 endpoint.
Retrieve a list of all installed Shared Space extensions:
| Method | Endpoint | Description |
|---|---|---|
GET | /apps/v1/shared-space-extensions | Returns all Shared Space extensions installed in your organization. |
Example Request
- cURL
- JavaScript
- Python
curl "https://{{subdomain}}.api.showpad.com/apps/v1/shared-space-extensions" \
-H "Authorization: Bearer {access_token}"
const response = await fetch('https://{{subdomain}}.api.showpad.com/apps/v1/shared-space-extensions', {
headers: { Authorization: 'Bearer {access_token}' },
});
const extensions = await response.json();
import requests
response = requests.get(
'https://{{subdomain}}.api.showpad.com/apps/v1/shared-space-extensions',
headers={'Authorization': 'Bearer {access_token}'}
)
extensions = response.json()
Example Response
{
"items": [
{
"id": "SharedSpaceExtensionId",
"appId": "appId",
"versionId": "versionId",
"name": "Shared Space Calendar Extension",
"extensionKey": "shared-spaces-calendar-extensions",
"description": "My Shared Space Calendar Extension",
"icon": "https://some-png-icon.png",
"injectShowpadJs": true
}
],
"itemsCount": 1
}
Quick Actions
Create Quick Action
Add a new Quick Action to a Shared Space:
| Method | Endpoint | Description |
|---|---|---|
POST | /shared-spaces/{id}/quick-actions | Creates a Quick Action in a Shared Space. |
Example Request
- cURL
- JavaScript
- Python
curl -X POST "https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"title": "Schedule Meeting",
"url": "https://calendly.com/your-link",
"sharedSpaceExtensionId": "extension-id",
"isInternal": false
}'
const response = await fetch('https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions', {
method: 'POST',
headers: {
Authorization: 'Bearer {access_token}',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Schedule Meeting',
url: 'https://calendly.com/your-link',
sharedSpaceExtensionId: 'extension-id',
isInternal: false,
}),
});
const quickAction = await response.json();
import requests
response = requests.post(
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions',
headers={
'Authorization': 'Bearer {access_token}',
'Content-Type': 'application/json'
},
json={
'title': 'Schedule Meeting',
'url': 'https://calendly.com/your-link',
'sharedSpaceExtensionId': 'extension-id',
'isInternal': False
}
)
quick_action = response.json()
Example Response
{
"id": "QuickActionId",
"title": "Schedule Meeting",
"url": "https://calendly.com/your-link",
"isInternal": false,
"sharedSpaceExtension": {
"id": "SharedSpaceExtensionId",
"name": "Shared Space Calendar Extension",
"description": "My Shared Space Calendar Extension",
"icon": "https://some-png-icon.png"
}
}
List of Quick Actions
Retrieve all Quick Actions in a Shared Space:
| Method | Endpoint | Description |
|---|---|---|
GET | /shared-spaces/{id}/quick-actions | Returns all Quick Actions in a Shared Space. |
Example Request
- cURL
- JavaScript
- Python
curl "https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions" \
-H "Authorization: Bearer {access_token}"
const response = await fetch('https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions', {
headers: { Authorization: 'Bearer {access_token}' },
});
const quickActions = await response.json();
import requests
response = requests.get(
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions',
headers={'Authorization': 'Bearer {access_token}'}
)
quick_actions = response.json()
Example Response
{
"count": 1,
"items": [
{
"id": "QuickActionId",
"title": "Schedule Meeting",
"url": "https://calendly.com/your-link",
"isInternal": false,
"sharedSpaceExtension": {
"id": "SharedSpaceExtensionId",
"name": "Shared Space Calendar Extension",
"description": "My Shared Space Calendar Extension",
"icon": "https://some-png-icon.png"
}
}
]
}
Get Quick Action by ID
Retrieve a specific Quick Action:
| Method | Endpoint | Description |
|---|---|---|
GET | /shared-spaces/{id}/quick-actions/{quickActionId} | Returns the specified Quick Action. |
Example Request
curl "https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions/{quickActionId}" \
-H "Authorization: Bearer {access_token}"
Example Response
{
"id": "QuickActionId",
"title": "Schedule Meeting",
"url": "https://calendly.com/your-link",
"isInternal": false,
"sharedSpaceExtension": {
"id": "SharedSpaceExtensionId",
"name": "Shared Space Calendar Extension",
"description": "My Shared Space Calendar Extension",
"icon": "https://some-png-icon.png"
}
}
Update Quick Action
Update a Quick Action's properties:
| Method | Endpoint | Description |
|---|---|---|
PATCH | /shared-spaces/{id}/quick-actions/{quickActionId} | Modifies the specified Quick Action. |
Example Request
- cURL
- JavaScript
- Python
curl -X PATCH "https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions/{quickActionId}" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{"title": "Book a Demo Call"}'
const response = await fetch(
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions/{quickActionId}',
{
method: 'PATCH',
headers: {
Authorization: 'Bearer {access_token}',
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: 'Book a Demo Call' }),
}
);
const updatedAction = await response.json();
import requests
response = requests.patch(
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions/{quickActionId}',
headers={
'Authorization': 'Bearer {access_token}',
'Content-Type': 'application/json'
},
json={'title': 'Book a Demo Call'}
)
updated_action = response.json()
Example Response
{
"id": "QuickActionId",
"title": "Book a Demo Call",
"url": "https://calendly.com/your-link",
"isInternal": false,
"sharedSpaceExtension": {
"id": "SharedSpaceExtensionId",
"name": "Shared Space Calendar Extension",
"description": "My Shared Space Calendar Extension",
"icon": "https://some-png-icon.png"
}
}
Delete Quick Action
Permanently remove a Quick Action:
| Method | Endpoint | Description |
|---|---|---|
DELETE | /shared-spaces/{id}/quick-actions/{quickActionId} | Permanently removes the Quick Action. |
Example Request
curl -X DELETE "https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{sharedSpaceId}/quick-actions/{quickActionId}" \
-H "Authorization: Bearer {access_token}"
Example Response
HTTP Status 204 No Content
Next steps
Now that you understand how to work with Quick Actions, explore these related topics:
- CRM Recommendation Rules - Configure content recommendations based on CRM data
- CRM Log History - Track CRM activity and content sharing
- Shared Space Extensions - Build custom extensions for Quick Actions
- Webhooks - Subscribe to Shared Space events for real-time updates
Was this page helpful?