Integrations
Integrations connect workflows to external services.
GitHub
Interact with GitHub repositories:
steps: - id: create_issue github: action: create_issue repository: owner/repo title: "Bug Report" body: ${steps.analyze.output} labels: - bug - automated token: ${GITHUB_TOKEN}GitHub Actions
create_issue- Create an issuecomment_on_pr- Comment on pull requestcreate_pr- Create pull requestget_pr- Get PR detailslist_issues- List repository issues
Slack
Send messages to Slack:
steps: - id: notify slack: action: send_message channel: "#alerts" text: ${steps.summary.output} token: ${SLACK_TOKEN}Slack Actions
send_message- Post message to channelsend_dm- Send direct messageupload_file- Upload file to channellist_channels- Get channel list
Jira
Manage Jira tickets:
steps: - id: create_ticket jira: action: create_issue project: PROJ issue_type: Task summary: ${steps.generate.output} description: "Automated task creation" credentials: url: https://company.atlassian.net email: ${JIRA_EMAIL} token: ${JIRA_TOKEN}Jira Actions
create_issue- Create ticketupdate_issue- Update ticketadd_comment- Comment on tickettransition- Move ticket statussearch- JQL search
Discord
Post to Discord channels:
steps: - id: announce discord: action: send_message webhook_url: ${DISCORD_WEBHOOK} content: ${steps.announcement.output} embeds: - title: "Weekly Update" description: ${steps.summary.output} color: 5814783Discord Actions
send_message- Post to channelsend_embed- Rich embedded messageupload_file- Attach file
Notion
Create and update Notion pages and database items:
integrations: notion: from: integrations/notion
steps: - id: save_item type: integration integration: notion.create_database_item inputs: database_id: "{{.inputs.database_id}}" properties: Name: title: - text: content: "{{.steps.generate.response}}" Status: select: name: "New"Notion Actions
create_page- Create a new page under a parentget_page- Retrieve page propertiesupdate_page- Update page title, icon, or coverupsert_page- Update if exists by title, create if notappend_blocks- Add content blocks to a pagequery_database- Query with filters and sortscreate_database_item- Add item to a databaseupdate_database_item- Update database item properties
Authentication
All integrations require credentials. Configure them using conductor integrations add:
conductor integrations add notion --token "secret_..."conductor integrations add github --token "ghp_..."conductor integrations add slack --token "xoxb-..."Then declare and use the integration in your workflow:
integrations: notion: from: integrations/notion
steps: - id: save type: integration integration: notion.create_page inputs: # ...Never hardcode tokens in workflow files.
Rate Limits
Each service has rate limits:
- GitHub: 5000 requests/hour (authenticated)
- Slack: Tier-based limits (typically 1 req/sec)
- Jira: Cloud plans vary (10-25 req/sec)
- Discord: 50 requests/sec per webhook
- Notion: 3 requests/sec
Conductor does not automatically handle rate limiting. Add delays or implement retry logic if needed.