Connectors are step functions for workflows that behave like Slack functions for services external to Slack. They take inputs and perform work for you when added as steps to your workflows.
Auth strategy | Capabilities |
---|---|
user | Can use End-user authentication via OAuth |
dev | Can use Developer authentication via OAuth configured by an app collaborator |
vars | Requires workspace environment variables for authentication |
Service | Connector | Auth strategies |
---|---|---|
Adobe Acrobat Sign | Send an agreement | user dev vars |
Airtable | Add a record | user |
Airtable | Delete a record | user |
Airtable | Select a record | user |
Airtable | Update a record | user |
Asana | Add task to a section | user dev |
Asana | Comment on a task | user dev |
Asana | Create a project | user dev |
Asana | Create a task | user dev |
Asana | Update a task | user dev |
Basecamp | Create a project | user dev |
Basecamp | Create a to-do | user dev |
Basecamp | Create a to-do list | user dev |
Basecamp | Mark a to-do complete | user dev |
Basecamp | Mark a to-do pending | user dev |
Bitbucket | Create an issue | user |
Bitbucket | Merge pull request | user |
Box | Copy a file | user dev |
Box | Create a folder | user dev |
Box Sign | Create a sign request with a template | user |
Calendly | Get meeting link | user dev |
ClickUp | Create a task in a folder | user dev |
Deel | Add a time off request | user dev |
Deel | Create a new contract | user |
Dialpad | Send an SMS | user dev |
DocuSign | Create an envelope | user dev |
DocuSign | Send an envelope | user dev |
Dropbox | Copy a document | user |
Dropbox | Create a folder | user |
Dropbox | Create a shared link | user |
Dropbox | Delete a document | user |
Dropbox | Move a document | user |
Dropbox Sign | Send signature request using a template | user |
FireHydrant | Create an incident | vars |
FireHydrant | Create a task | vars |
FireHydrant | Update an incident | vars |
FireHydrant | Update a task | vars |
Giphy | Random GIF | |
Giphy | Search for a GIF | |
GitHub | Create an issue | user dev |
GitHub Enterprise Server | Create an issue | user dev vars |
GitLab | Create an issue | user dev |
Google Calendar | Add attendee to an event | user dev |
Google Calendar | Create a calendar event | user |
Google Mail | Send an email | user |
Google Meet | Start a meeting | user dev |
Google Sheets | Add to spreadsheet | user dev |
Google Sheets | Delete from a spreadsheet | user dev |
Google Sheets | Select a spreadsheet row | user dev |
Google Sheets | Update a spreadsheet | user dev |
Google Tasks | Create a task list | user dev |
Google Tasks | Insert a task | user dev |
Greenhouse Onboarding | Create pending hire | vars |
Greenhouse Onboarding | Fetch employees | vars |
Greenhouse Recruiting | Hire Application | vars |
Greenhouse Recruiting | Candidate activity | vars |
Greenhouse Recruiting | List job candidates | vars |
Greenhouse Recruiting | Reject Application | vars |
Guru | Add a comment | user |
Guru | Create a card | user |
Guru | Delete a card | user |
Guru | Unverify a card | user |
Guru | Update a card | user |
Guru | Verify a card | user |
Intercom | Create an article | user dev |
Intercom | Create a ticket | user dev |
JIRA Cloud | Create an issue | user dev |
JIRA Cloud | Edit an issue | user dev |
LaunchDarkly | Create approval request to update a feature flag's state | user dev |
LaunchDarkly | Create a boolean feature flag | user dev |
LaunchDarkly | Update a feature flag's state | user dev |
LaunchDarkly | Update a target in a feature flag | user dev |
LaunchDarkly | Update a target in a segment | user dev |
Lever | Create an interview | vars |
Lever | Create an opportunity | vars |
Lever | Create a panel | vars |
Linear | Add a comment | user dev |
Linear | Create an issue | user dev |
Linear | Create a project | user dev |
Linear | Update an issue | user dev |
Loopio | Create a project | vars |
Lucid | Create a document | user dev |
Mailchimp | Add a contact to audience | user dev |
Mailchimp | Create an email campaign | user |
Mailchimp | Get campaign report | user |
Mailchimp | Send a Campaign | user dev |
Microsoft Excel | Add to worksheet | user |
Microsoft Excel | Delete from a worksheet | user |
Microsoft Excel | Select a worksheet row | user |
Microsoft Excel | Update a worksheet | user |
Microsoft OneDrive | Copy a file | user |
Microsoft OneDrive | Create a file | user |
Microsoft OneNote | Create a page | user |
Microsoft OneNote | Update a page | user |
Microsoft Outlook Calendar | Create a calendar event | user |
Microsoft Outlook Email | Send an email | user |
Microsoft Teams Calls | Create a meeting | user |
Miro | Copy board | user dev |
Miro | Create board | user dev |
Monday | Archive a board | user |
Monday | Create a board | user |
Monday | Create a group | user |
Monday | Create an item | user |
Notion | Archive a page | user |
Notion | Create a page | user |
PagerDuty | Add a note | user dev |
PagerDuty | Trigger an incident | user dev |
PagerDuty | Change escalation level | user dev |
PagerDuty | Resolve an incident | user dev |
PagerDuty | Send status update | user dev |
Ramp | Create new physical card | user dev |
Ramp | Create spend request | user dev |
Ramp | Create new virtual card | user dev |
Ramp | Get a spend request | user dev |
Ramp | Suspend a card | user dev |
Ramp | Terminate a card | user |
Ramp | Unlock a card | user dev |
RingCentral | Send a SMS | user dev |
Rootly | Create an alert | vars |
Rootly | Create a cause | vars |
Rootly | Update a cause | vars |
Salesforce | Create a record | user |
Salesforce | Delete a record | user |
Salesforce | Read a record | user |
Salesforce | Run a Flow | user dev |
Salesforce | Update a record | user |
ServiceNow | Create an incident | user dev vars |
ServiceNow | Get an incident | user dev vars |
SmartRecruiters | Create a candidate | vars |
SmartRecruiters | Create a candidate and assign to job | vars |
SmartRecruiters | Provide feedback for a candidate | vars |
Smartsheet | Add a row to a Smartsheet | user dev |
Smartsheet | Delete a row from Smartsheet | user dev |
Smartsheet | Select a Smartsheet row | user dev |
Smartsheet | Update a row to Smartsheet | user dev |
Snyk | Ignore an issue | user |
SurveyMonkey | Copy a survey | user |
SurveyMonkey | Copy a survey from a template | user |
Travis CI | Cancel build | vars |
Travis CI | Restart build | vars |
Travis CI | Trigger build | vars |
Twilio | Send SMS | vars |
Typeform | Create a workspace | user dev |
Typeform | Duplicate an existing form | user dev |
Typeform | Get a form | user dev |
Typeform | Get form insights | user dev |
Webex | Create a meeting | user |
Workast | Create a task | user dev |
Wrike | Comment on a folder | user dev |
Wrike | Comment on a task | user dev |
Wrike | Create a folder | user dev |
Wrike | Create a task | user dev |
Wrike | Update a task | user dev |
Zendesk | Add tags | user dev vars |
Zendesk | Create a ticket | user dev vars |
Zendesk | Remove tags | user dev vars |
Zendesk | Update a ticket | user dev vars |
Zoom | Create a meeting | user |
Connectors use either OAuth or workspace environment variables to handle authentication.
Most connectors rely on one of two OAuth strategies: End-user and Developer. These connectors reply on an access token input parameter that you as a developer configure while adding the connector as a step in a workflow.
The first authentication strategy is called END_USER
. This strategy is supported by most connectors.
// An example access token property for a Salesforce connector:
salesforce_access_token: {
credential_source: "END_USER"
}
When a connector's access token credential source is set to END_USER
, the
auth token of the user who started the workflow will be used in the connector
step.
In cases like this, when a user starts a workflow from a shortcut link, the user will be prompted to connect their third-party service account via an OAuth flow. All of this— except for when they are sent to a browser to complete the authentication flow—happens inside their Slack client.
You do not need to do anything else besides set the credential_source
to END_USER
to configure end-user authentication for a connector.
The second authentication strategy is DEVELOPER
. This strategy is not supported by all connectors.
// An example access token property for a Salesforce connector:
salesforce_access_token: {
credential_source: "DEVELOPER"
}
When a connector's access token credential source is set to DEVELOPER
,
the auth token that an app collaborator configured as part of a CLI-initiated
OAuth flow before deploying the app will be used.
In cases like this, when a user starts a workflow from a shortcut link, the user is not prompted to connect any third-party service account. Instead, the connector step will run using the auth token configured by one of the app's collaborators.
In addition to setting the credential_source
to DEVELOPER
, you'll also need to define an OAuth2 provider
and then configure external authentication for your app. You can do this by following the steps in the External auth guide.
Connectors that rely on workspace environment variables to handle authentication will require workspace admins to set these up before the connector can be used in a workflow.
Admins can set workspace environment variables for connectors that require them from within Workflow Builder, in the Manage Integrations section.
To open the Manage Integrations section, open Workflow Builder and access the additional options menu to the right of the Create Workflow button.
Creating your own connectors opens many more interoperability possibilities. We're not quite ready to enable developers to build their own connectors, but we'd love to hear from you if you're interested and patient.
In the meantime, we recommend building custom functions that call APIs with external authentication.