@marktoflow/integrations 2.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1341 -0
- package/dist/adapters/claude-agent-hooks.d.ts.map +1 -0
- package/dist/adapters/claude-agent-hooks.js +339 -0
- package/dist/adapters/claude-agent-hooks.js.map +1 -0
- package/dist/adapters/claude-agent-types.d.ts +426 -0
- package/dist/adapters/claude-agent-types.d.ts.map +1 -0
- package/dist/adapters/claude-agent-types.js +62 -0
- package/dist/adapters/claude-agent-types.js.map +1 -0
- package/dist/adapters/claude-agent-workflow.d.ts +393 -0
- package/dist/adapters/claude-agent-workflow.d.ts.map +1 -0
- package/dist/adapters/claude-agent-workflow.js +445 -0
- package/dist/adapters/claude-agent-workflow.js.map +1 -0
- package/dist/adapters/claude-agent.d.ts +189 -0
- package/dist/adapters/claude-agent.d.ts.map +1 -0
- package/dist/adapters/claude-agent.js +504 -0
- package/dist/adapters/claude-agent.js.map +1 -0
- package/dist/adapters/claude-code.d.ts +34 -0
- package/dist/adapters/claude-code.d.ts.map +1 -0
- package/dist/adapters/claude-code.js +89 -0
- package/dist/adapters/claude-code.js.map +1 -0
- package/dist/adapters/codex-types.d.ts +463 -0
- package/dist/adapters/codex-types.d.ts.map +1 -0
- package/dist/adapters/codex-types.js +53 -0
- package/dist/adapters/codex-types.js.map +1 -0
- package/dist/adapters/codex-workflow.d.ts +414 -0
- package/dist/adapters/codex-workflow.d.ts.map +1 -0
- package/dist/adapters/codex-workflow.js +470 -0
- package/dist/adapters/codex-workflow.js.map +1 -0
- package/dist/adapters/codex.d.ts +154 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/codex.js +416 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/github-copilot-types.d.ts +1012 -0
- package/dist/adapters/github-copilot-types.d.ts.map +1 -0
- package/dist/adapters/github-copilot-types.js +80 -0
- package/dist/adapters/github-copilot-types.js.map +1 -0
- package/dist/adapters/github-copilot-workflow.d.ts +462 -0
- package/dist/adapters/github-copilot-workflow.d.ts.map +1 -0
- package/dist/adapters/github-copilot-workflow.js +473 -0
- package/dist/adapters/github-copilot-workflow.js.map +1 -0
- package/dist/adapters/github-copilot.d.ts +280 -0
- package/dist/adapters/github-copilot.d.ts.map +1 -0
- package/dist/adapters/github-copilot.js +468 -0
- package/dist/adapters/github-copilot.js.map +1 -0
- package/dist/adapters/ollama.d.ts.map +1 -0
- package/dist/adapters/ollama.js +9 -0
- package/dist/adapters/ollama.js.map +1 -0
- package/dist/adapters/opencode.d.ts +41 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/opencode.js +148 -0
- package/dist/adapters/opencode.js.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +161 -0
- package/dist/index.js.map +1 -0
- package/dist/services/ai-browser.d.ts +112 -0
- package/dist/services/ai-browser.d.ts.map +1 -0
- package/dist/services/ai-browser.js +363 -0
- package/dist/services/ai-browser.js.map +1 -0
- package/dist/services/airtable.d.ts.map +1 -0
- package/dist/services/airtable.js +295 -0
- package/dist/services/airtable.js.map +1 -0
- package/dist/services/asana.d.ts +159 -0
- package/dist/services/asana.d.ts.map +1 -0
- package/dist/services/asana.js +196 -0
- package/dist/services/asana.js.map +1 -0
- package/dist/services/aws-s3.d.ts +89 -0
- package/dist/services/aws-s3.d.ts.map +1 -0
- package/dist/services/aws-s3.js +154 -0
- package/dist/services/aws-s3.js.map +1 -0
- package/dist/services/confluence.d.ts.map +1 -0
- package/dist/services/confluence.js +356 -0
- package/dist/services/confluence.js.map +1 -0
- package/dist/services/discord.d.ts.map +1 -0
- package/dist/services/discord.js +279 -0
- package/dist/services/discord.js.map +1 -0
- package/dist/services/dropbox.d.ts +134 -0
- package/dist/services/dropbox.d.ts.map +1 -0
- package/dist/services/dropbox.js +190 -0
- package/dist/services/dropbox.js.map +1 -0
- package/dist/services/github.d.ts.map +1 -0
- package/dist/services/github.js +13 -0
- package/dist/services/github.js.map +1 -0
- package/dist/services/gmail-trigger.d.ts.map +1 -0
- package/dist/services/gmail-trigger.js +172 -0
- package/dist/services/gmail-trigger.js.map +1 -0
- package/dist/services/gmail.d.ts.map +1 -0
- package/dist/services/gmail.js +372 -0
- package/dist/services/gmail.js.map +1 -0
- package/dist/services/google-calendar.d.ts.map +1 -0
- package/dist/services/google-calendar.js +357 -0
- package/dist/services/google-calendar.js.map +1 -0
- package/dist/services/google-docs.d.ts.map +1 -0
- package/dist/services/google-docs.js +332 -0
- package/dist/services/google-docs.js.map +1 -0
- package/dist/services/google-drive.d.ts.map +1 -0
- package/dist/services/google-drive.js +327 -0
- package/dist/services/google-drive.js.map +1 -0
- package/dist/services/google-sheets.d.ts.map +1 -0
- package/dist/services/google-sheets.js +391 -0
- package/dist/services/google-sheets.js.map +1 -0
- package/dist/services/http.d.ts.map +1 -0
- package/dist/services/http.js +284 -0
- package/dist/services/http.js.map +1 -0
- package/dist/services/jira.d.ts.map +1 -0
- package/dist/services/jira.js +35 -0
- package/dist/services/jira.js.map +1 -0
- package/dist/services/linear.d.ts.map +1 -0
- package/dist/services/linear.js +326 -0
- package/dist/services/linear.js.map +1 -0
- package/dist/services/mailchimp.d.ts +169 -0
- package/dist/services/mailchimp.d.ts.map +1 -0
- package/dist/services/mailchimp.js +180 -0
- package/dist/services/mailchimp.js.map +1 -0
- package/dist/services/mysql.d.ts.map +1 -0
- package/dist/services/mysql.js +250 -0
- package/dist/services/mysql.js.map +1 -0
- package/dist/services/notion.d.ts.map +1 -0
- package/dist/services/notion.js +358 -0
- package/dist/services/notion.js.map +1 -0
- package/dist/services/outlook-trigger.d.ts.map +1 -0
- package/dist/services/outlook-trigger.js +204 -0
- package/dist/services/outlook-trigger.js.map +1 -0
- package/dist/services/outlook.d.ts.map +1 -0
- package/dist/services/outlook.js +486 -0
- package/dist/services/outlook.js.map +1 -0
- package/dist/services/playwright.d.ts +678 -0
- package/dist/services/playwright.d.ts.map +1 -0
- package/dist/services/playwright.js +1141 -0
- package/dist/services/playwright.js.map +1 -0
- package/dist/services/postgres.d.ts.map +1 -0
- package/dist/services/postgres.js +230 -0
- package/dist/services/postgres.js.map +1 -0
- package/dist/services/sendgrid.d.ts +43 -0
- package/dist/services/sendgrid.d.ts.map +1 -0
- package/dist/services/sendgrid.js +87 -0
- package/dist/services/sendgrid.js.map +1 -0
- package/dist/services/shopify.d.ts +160 -0
- package/dist/services/shopify.d.ts.map +1 -0
- package/dist/services/shopify.js +166 -0
- package/dist/services/shopify.js.map +1 -0
- package/dist/services/slack-socket.d.ts.map +1 -0
- package/dist/services/slack-socket.js +48 -0
- package/dist/services/slack-socket.js.map +1 -0
- package/dist/services/slack.d.ts.map +1 -0
- package/dist/services/slack.js +11 -0
- package/dist/services/slack.js.map +1 -0
- package/dist/services/stripe.d.ts +275 -0
- package/dist/services/stripe.d.ts.map +1 -0
- package/dist/services/stripe.js +229 -0
- package/dist/services/stripe.js.map +1 -0
- package/dist/services/supabase.d.ts.map +1 -0
- package/dist/services/supabase.js +328 -0
- package/dist/services/supabase.js.map +1 -0
- package/dist/services/teams.d.ts +224 -0
- package/dist/services/teams.d.ts.map +1 -0
- package/dist/services/teams.js +229 -0
- package/dist/services/teams.js.map +1 -0
- package/dist/services/telegram.d.ts.map +1 -0
- package/dist/services/telegram.js +247 -0
- package/dist/services/telegram.js.map +1 -0
- package/dist/services/trello.d.ts +160 -0
- package/dist/services/trello.d.ts.map +1 -0
- package/dist/services/trello.js +194 -0
- package/dist/services/trello.js.map +1 -0
- package/dist/services/twilio.d.ts +126 -0
- package/dist/services/twilio.d.ts.map +1 -0
- package/dist/services/twilio.js +153 -0
- package/dist/services/twilio.js.map +1 -0
- package/dist/services/whatsapp.d.ts.map +1 -0
- package/dist/services/whatsapp.js +253 -0
- package/dist/services/whatsapp.js.map +1 -0
- package/dist/services/zendesk.d.ts +134 -0
- package/dist/services/zendesk.d.ts.map +1 -0
- package/dist/services/zendesk.js +148 -0
- package/dist/services/zendesk.js.map +1 -0
- package/dist/tools/script.d.ts +21 -0
- package/dist/tools/script.d.ts.map +1 -0
- package/dist/tools/script.js +136 -0
- package/dist/tools/script.js.map +1 -0
- package/package.json +98 -0
package/README.md
ADDED
|
@@ -0,0 +1,1341 @@
|
|
|
1
|
+
# @marktoflow/integrations
|
|
2
|
+
|
|
3
|
+
> **Author:** Scott Glover <scottgl@gmail.com>
|
|
4
|
+
|
|
5
|
+
Standard integrations for marktoflow - connect to Slack, GitHub, Jira, Gmail, and more.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
`@marktoflow/integrations` provides ready-to-use service integrations and AI agent adapters for the marktoflow automation framework.
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
### Service Integrations (30)
|
|
14
|
+
|
|
15
|
+
- **Slack** - Send messages, manage channels, socket mode
|
|
16
|
+
- **Microsoft Teams** - Channel messages, chats, meetings, collaboration
|
|
17
|
+
- **GitHub** - Create PRs, issues, comments, manage repos
|
|
18
|
+
- **Jira** - Create/update issues, transitions, search
|
|
19
|
+
- **Gmail** - Send emails, read inbox, manage labels, webhook triggers
|
|
20
|
+
- **Outlook** - Send emails, read calendar/inbox, webhook triggers
|
|
21
|
+
- **Google Sheets** - Spreadsheet operations, read/write data
|
|
22
|
+
- **Google Calendar** - Calendar events, scheduling
|
|
23
|
+
- **Google Drive** - File storage and management
|
|
24
|
+
- **Google Docs** - Document creation and editing
|
|
25
|
+
- **Linear** - Issue tracking and project management
|
|
26
|
+
- **Notion** - Database operations, page management
|
|
27
|
+
- **Discord** - Bot interactions, message management
|
|
28
|
+
- **Airtable** - Spreadsheet database operations
|
|
29
|
+
- **Confluence** - Wiki page management
|
|
30
|
+
- **Telegram** - Bot messaging and interactions
|
|
31
|
+
- **WhatsApp** - Business messaging API
|
|
32
|
+
- **Stripe** - Payment processing, subscriptions, invoicing
|
|
33
|
+
- **Shopify** - E-commerce store management, products, orders
|
|
34
|
+
- **Twilio** - SMS, voice calls, WhatsApp, phone numbers
|
|
35
|
+
- **SendGrid** - Transactional email delivery
|
|
36
|
+
- **Mailchimp** - Email marketing campaigns and automation
|
|
37
|
+
- **Zendesk** - Customer support tickets and users
|
|
38
|
+
- **Asana** - Task and project management
|
|
39
|
+
- **Trello** - Kanban boards and cards
|
|
40
|
+
- **Dropbox** - Cloud file storage and sharing
|
|
41
|
+
- **AWS S3** - Amazon object storage
|
|
42
|
+
- **Supabase** - PostgreSQL database with real-time subscriptions
|
|
43
|
+
- **PostgreSQL** - Direct PostgreSQL database access
|
|
44
|
+
- **MySQL** - Direct MySQL database access
|
|
45
|
+
- **HTTP** - Generic HTTP requests with auth
|
|
46
|
+
|
|
47
|
+
### AI Agent Adapters (6)
|
|
48
|
+
|
|
49
|
+
- **Ollama** - Local LLM integration
|
|
50
|
+
- **Claude Agent** - Anthropic Claude Agent SDK integration
|
|
51
|
+
- **Claude Code** - Anthropic Claude Code CLI integration
|
|
52
|
+
- **OpenAI Codex** - OpenAI Codex SDK integration
|
|
53
|
+
- **OpenCode** - OpenCode AI integration (75+ backends)
|
|
54
|
+
- **GitHub Copilot** - GitHub Copilot SDK integration
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install @marktoflow/integrations
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This package depends on `@marktoflow/core` which will be installed automatically.
|
|
63
|
+
|
|
64
|
+
## Quick Start
|
|
65
|
+
|
|
66
|
+
### Using in Workflows
|
|
67
|
+
|
|
68
|
+
Integrations are designed to work seamlessly in workflow YAML definitions:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
workflow:
|
|
72
|
+
id: slack-notification
|
|
73
|
+
name: Send Slack Notification
|
|
74
|
+
|
|
75
|
+
tools:
|
|
76
|
+
slack:
|
|
77
|
+
sdk: '@slack/web-api'
|
|
78
|
+
auth:
|
|
79
|
+
token: '${SLACK_BOT_TOKEN}'
|
|
80
|
+
|
|
81
|
+
steps:
|
|
82
|
+
- action: slack.chat.postMessage
|
|
83
|
+
inputs:
|
|
84
|
+
channel: '#general'
|
|
85
|
+
text: 'Hello from marktoflow!'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Programmatic Usage
|
|
89
|
+
|
|
90
|
+
You can also use integrations directly in TypeScript:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
import { SlackInitializer } from '@marktoflow/integrations';
|
|
94
|
+
import { SDKRegistry } from '@marktoflow/core';
|
|
95
|
+
|
|
96
|
+
// Register Slack integration
|
|
97
|
+
const registry = new SDKRegistry();
|
|
98
|
+
await registry.registerSDK(SlackInitializer);
|
|
99
|
+
|
|
100
|
+
// Load and use SDK
|
|
101
|
+
const slack = await registry.loadSDK('slack', {
|
|
102
|
+
auth: { token: process.env.SLACK_BOT_TOKEN },
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// Execute action
|
|
106
|
+
const result = await registry.executeAction('slack', 'chat.postMessage', slack, {
|
|
107
|
+
channel: '#general',
|
|
108
|
+
text: 'Hello World!',
|
|
109
|
+
});
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Available Integrations
|
|
113
|
+
|
|
114
|
+
### Slack
|
|
115
|
+
|
|
116
|
+
Send messages, manage channels, handle events.
|
|
117
|
+
|
|
118
|
+
**Setup**:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Set environment variable
|
|
122
|
+
export SLACK_BOT_TOKEN=xoxb-your-token
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Actions**:
|
|
126
|
+
|
|
127
|
+
- `chat.postMessage` - Send a message
|
|
128
|
+
- `conversations.list` - List channels
|
|
129
|
+
- `conversations.create` - Create channel
|
|
130
|
+
- `users.list` - List workspace users
|
|
131
|
+
|
|
132
|
+
**Example**:
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
action: slack.chat.postMessage
|
|
136
|
+
inputs:
|
|
137
|
+
channel: '#general'
|
|
138
|
+
text: 'Deployment complete!'
|
|
139
|
+
blocks:
|
|
140
|
+
- type: section
|
|
141
|
+
text:
|
|
142
|
+
type: mrkdwn
|
|
143
|
+
text: '*Status:* ✅ Success'
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### GitHub
|
|
147
|
+
|
|
148
|
+
Manage repositories, PRs, issues, and more.
|
|
149
|
+
|
|
150
|
+
**Setup**:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
export GITHUB_TOKEN=ghp_your-token
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Actions**:
|
|
157
|
+
|
|
158
|
+
- `repos.get` - Get repository info
|
|
159
|
+
- `pulls.create` - Create pull request
|
|
160
|
+
- `issues.create` - Create issue
|
|
161
|
+
- `issues.createComment` - Comment on issue
|
|
162
|
+
|
|
163
|
+
**Example**:
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
action: github.pulls.create
|
|
167
|
+
inputs:
|
|
168
|
+
owner: marktoflow
|
|
169
|
+
repo: marktoflow
|
|
170
|
+
title: 'Add new feature'
|
|
171
|
+
head: feature-branch
|
|
172
|
+
base: main
|
|
173
|
+
body: 'This PR adds...'
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Jira
|
|
177
|
+
|
|
178
|
+
Issue tracking and project management.
|
|
179
|
+
|
|
180
|
+
**Setup**:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
export JIRA_HOST=your-domain.atlassian.net
|
|
184
|
+
export JIRA_EMAIL=your@email.com
|
|
185
|
+
export JIRA_API_TOKEN=your-token
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Actions**:
|
|
189
|
+
|
|
190
|
+
- `issues.createIssue` - Create issue
|
|
191
|
+
- `issues.updateIssue` - Update issue
|
|
192
|
+
- `issues.searchIssues` - Search issues
|
|
193
|
+
- `issues.getIssue` - Get issue details
|
|
194
|
+
|
|
195
|
+
**Example**:
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
action: jira.issues.createIssue
|
|
199
|
+
inputs:
|
|
200
|
+
fields:
|
|
201
|
+
project:
|
|
202
|
+
key: PROJ
|
|
203
|
+
summary: 'Bug: Login fails'
|
|
204
|
+
description: 'Users cannot log in'
|
|
205
|
+
issuetype:
|
|
206
|
+
name: Bug
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Gmail
|
|
210
|
+
|
|
211
|
+
Email operations with webhook support.
|
|
212
|
+
|
|
213
|
+
**Setup**:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
export GMAIL_CLIENT_ID=your-client-id
|
|
217
|
+
export GMAIL_CLIENT_SECRET=your-secret
|
|
218
|
+
export GMAIL_REFRESH_TOKEN=your-refresh-token
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Actions**:
|
|
222
|
+
|
|
223
|
+
- `users.messages.send` - Send email
|
|
224
|
+
- `users.messages.list` - List messages
|
|
225
|
+
- `users.labels.list` - List labels
|
|
226
|
+
- `users.messages.get` - Get message details
|
|
227
|
+
|
|
228
|
+
**Example**:
|
|
229
|
+
|
|
230
|
+
```yaml
|
|
231
|
+
action: gmail.users.messages.send
|
|
232
|
+
inputs:
|
|
233
|
+
to: user@example.com
|
|
234
|
+
subject: 'Daily Report'
|
|
235
|
+
body: 'Here is your daily report...'
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Outlook
|
|
239
|
+
|
|
240
|
+
Microsoft 365 email and calendar.
|
|
241
|
+
|
|
242
|
+
**Setup**:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
export OUTLOOK_CLIENT_ID=your-client-id
|
|
246
|
+
export OUTLOOK_CLIENT_SECRET=your-secret
|
|
247
|
+
export OUTLOOK_TENANT_ID=your-tenant-id
|
|
248
|
+
export OUTLOOK_REFRESH_TOKEN=your-refresh-token
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Actions**:
|
|
252
|
+
|
|
253
|
+
- `sendMail` - Send email
|
|
254
|
+
- `listMessages` - List inbox messages
|
|
255
|
+
- `listCalendarEvents` - List calendar events
|
|
256
|
+
- `createCalendarEvent` - Create calendar event
|
|
257
|
+
|
|
258
|
+
**Example**:
|
|
259
|
+
|
|
260
|
+
```yaml
|
|
261
|
+
action: outlook.sendMail
|
|
262
|
+
inputs:
|
|
263
|
+
to: [user@example.com]
|
|
264
|
+
subject: 'Meeting Reminder'
|
|
265
|
+
body: 'Don't forget our meeting at 2pm'
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Microsoft Teams
|
|
269
|
+
|
|
270
|
+
Team collaboration and communication via Microsoft Graph API.
|
|
271
|
+
|
|
272
|
+
**Setup**:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
export TEAMS_ACCESS_TOKEN=your-access-token
|
|
276
|
+
# Or use client credentials:
|
|
277
|
+
export TEAMS_CLIENT_ID=your-client-id
|
|
278
|
+
export TEAMS_CLIENT_SECRET=your-secret
|
|
279
|
+
export TEAMS_TENANT_ID=your-tenant-id
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Actions**:
|
|
283
|
+
|
|
284
|
+
- `listTeams` - List teams user is a member of
|
|
285
|
+
- `listChannels` - List channels in a team
|
|
286
|
+
- `createChannel` - Create a channel in a team
|
|
287
|
+
- `sendMessage` - Send message to a channel
|
|
288
|
+
- `listMessages` - List messages in a channel
|
|
289
|
+
- `replyToMessage` - Reply to a message
|
|
290
|
+
- `sendChatMessage` - Send message in a chat
|
|
291
|
+
- `createMeeting` - Create an online meeting
|
|
292
|
+
- `listTeamMembers` - List members of a team
|
|
293
|
+
- `addTeamMember` - Add member to a team
|
|
294
|
+
|
|
295
|
+
**Example**:
|
|
296
|
+
|
|
297
|
+
```yaml
|
|
298
|
+
tools:
|
|
299
|
+
teams:
|
|
300
|
+
sdk: 'teams'
|
|
301
|
+
auth:
|
|
302
|
+
access_token: '${TEAMS_ACCESS_TOKEN}'
|
|
303
|
+
|
|
304
|
+
steps:
|
|
305
|
+
- action: teams.sendMessage
|
|
306
|
+
inputs:
|
|
307
|
+
teamId: '${TEAM_ID}'
|
|
308
|
+
channelId: '${CHANNEL_ID}'
|
|
309
|
+
content: 'Deployment complete!'
|
|
310
|
+
contentType: 'html'
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Stripe
|
|
314
|
+
|
|
315
|
+
Payment processing and subscription management.
|
|
316
|
+
|
|
317
|
+
**Setup**:
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
export STRIPE_API_KEY=sk_test_your-key
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Actions**:
|
|
324
|
+
|
|
325
|
+
**Customers:**
|
|
326
|
+
- `createCustomer` - Create a customer
|
|
327
|
+
- `getCustomer` - Get customer by ID
|
|
328
|
+
- `updateCustomer` - Update customer
|
|
329
|
+
- `deleteCustomer` - Delete customer
|
|
330
|
+
- `listCustomers` - List customers
|
|
331
|
+
|
|
332
|
+
**Payment Intents:**
|
|
333
|
+
- `createPaymentIntent` - Create payment intent
|
|
334
|
+
- `getPaymentIntent` - Get payment intent
|
|
335
|
+
- `confirmPaymentIntent` - Confirm payment
|
|
336
|
+
- `cancelPaymentIntent` - Cancel payment
|
|
337
|
+
|
|
338
|
+
**Subscriptions:**
|
|
339
|
+
- `createSubscription` - Create subscription
|
|
340
|
+
- `getSubscription` - Get subscription
|
|
341
|
+
- `updateSubscription` - Update subscription
|
|
342
|
+
- `cancelSubscription` - Cancel subscription
|
|
343
|
+
- `listSubscriptions` - List subscriptions
|
|
344
|
+
|
|
345
|
+
**Invoices:**
|
|
346
|
+
- `createInvoice` - Create invoice
|
|
347
|
+
- `getInvoice` - Get invoice
|
|
348
|
+
- `finalizeInvoice` - Finalize invoice
|
|
349
|
+
- `payInvoice` - Pay invoice
|
|
350
|
+
- `sendInvoice` - Send invoice
|
|
351
|
+
|
|
352
|
+
**Example**:
|
|
353
|
+
|
|
354
|
+
```yaml
|
|
355
|
+
tools:
|
|
356
|
+
stripe:
|
|
357
|
+
sdk: 'stripe'
|
|
358
|
+
auth:
|
|
359
|
+
api_key: '${STRIPE_API_KEY}'
|
|
360
|
+
|
|
361
|
+
steps:
|
|
362
|
+
- action: stripe.createCustomer
|
|
363
|
+
inputs:
|
|
364
|
+
email: 'customer@example.com'
|
|
365
|
+
name: 'John Doe'
|
|
366
|
+
metadata:
|
|
367
|
+
source: 'workflow'
|
|
368
|
+
output_variable: customer
|
|
369
|
+
|
|
370
|
+
- action: stripe.createPaymentIntent
|
|
371
|
+
inputs:
|
|
372
|
+
amount: 2000
|
|
373
|
+
currency: 'usd'
|
|
374
|
+
customer: '{{ customer.id }}'
|
|
375
|
+
description: 'Service subscription'
|
|
376
|
+
output_variable: payment
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Linear
|
|
380
|
+
|
|
381
|
+
Modern issue tracking.
|
|
382
|
+
|
|
383
|
+
**Setup**:
|
|
384
|
+
|
|
385
|
+
```bash
|
|
386
|
+
export LINEAR_API_KEY=your-api-key
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
**Actions**:
|
|
390
|
+
|
|
391
|
+
- `createIssue` - Create issue
|
|
392
|
+
- `updateIssue` - Update issue
|
|
393
|
+
- `listIssues` - List issues
|
|
394
|
+
|
|
395
|
+
### Notion
|
|
396
|
+
|
|
397
|
+
Database and page management.
|
|
398
|
+
|
|
399
|
+
**Setup**:
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
export NOTION_TOKEN=secret_your-token
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
**Actions**:
|
|
406
|
+
|
|
407
|
+
- `databases.query` - Query database
|
|
408
|
+
- `pages.create` - Create page
|
|
409
|
+
- `blocks.children.append` - Add content blocks
|
|
410
|
+
|
|
411
|
+
### Discord
|
|
412
|
+
|
|
413
|
+
Bot interactions and messaging.
|
|
414
|
+
|
|
415
|
+
**Setup**:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
export DISCORD_BOT_TOKEN=your-bot-token
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
**Actions**:
|
|
422
|
+
|
|
423
|
+
- `sendMessage` - Send message to channel
|
|
424
|
+
- `editMessage` - Edit message
|
|
425
|
+
- `deleteMessage` - Delete message
|
|
426
|
+
|
|
427
|
+
### Airtable
|
|
428
|
+
|
|
429
|
+
Spreadsheet database operations.
|
|
430
|
+
|
|
431
|
+
**Setup**:
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
export AIRTABLE_API_KEY=your-api-key
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Actions**:
|
|
438
|
+
|
|
439
|
+
- `select` - Query records
|
|
440
|
+
- `create` - Create records
|
|
441
|
+
- `update` - Update records
|
|
442
|
+
- `delete` - Delete records
|
|
443
|
+
|
|
444
|
+
### Confluence
|
|
445
|
+
|
|
446
|
+
Wiki page management.
|
|
447
|
+
|
|
448
|
+
**Setup**:
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
export CONFLUENCE_HOST=your-domain.atlassian.net
|
|
452
|
+
export CONFLUENCE_EMAIL=your@email.com
|
|
453
|
+
export CONFLUENCE_API_TOKEN=your-token
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
**Actions**:
|
|
457
|
+
|
|
458
|
+
- `getPage` - Get page content
|
|
459
|
+
- `createPage` - Create page
|
|
460
|
+
- `updatePage` - Update page
|
|
461
|
+
- `deletePage` - Delete page
|
|
462
|
+
|
|
463
|
+
### Google Sheets
|
|
464
|
+
|
|
465
|
+
Spreadsheet operations for Google Sheets.
|
|
466
|
+
|
|
467
|
+
**Setup**:
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
export GOOGLE_SHEETS_CLIENT_ID=your-client-id
|
|
471
|
+
export GOOGLE_SHEETS_CLIENT_SECRET=your-secret
|
|
472
|
+
export GOOGLE_SHEETS_REFRESH_TOKEN=your-refresh-token
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
**Actions**:
|
|
476
|
+
|
|
477
|
+
- `getSpreadsheet` - Get spreadsheet metadata
|
|
478
|
+
- `getValues` - Read cell values
|
|
479
|
+
- `updateValues` - Update cell values
|
|
480
|
+
- `appendValues` - Append rows to sheet
|
|
481
|
+
|
|
482
|
+
**Example**:
|
|
483
|
+
|
|
484
|
+
```yaml
|
|
485
|
+
action: google-sheets.updateValues
|
|
486
|
+
inputs:
|
|
487
|
+
spreadsheetId: '1BxiMVs0XRA5...'
|
|
488
|
+
range: 'Sheet1!A1:B2'
|
|
489
|
+
values:
|
|
490
|
+
- [Name, Email]
|
|
491
|
+
- [John Doe, john@example.com]
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
### Google Calendar
|
|
495
|
+
|
|
496
|
+
Calendar event management.
|
|
497
|
+
|
|
498
|
+
**Setup**:
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
export GOOGLE_CALENDAR_CLIENT_ID=your-client-id
|
|
502
|
+
export GOOGLE_CALENDAR_CLIENT_SECRET=your-secret
|
|
503
|
+
export GOOGLE_CALENDAR_REFRESH_TOKEN=your-refresh-token
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
**Actions**:
|
|
507
|
+
|
|
508
|
+
- `listEvents` - List calendar events
|
|
509
|
+
- `createEvent` - Create calendar event
|
|
510
|
+
- `updateEvent` - Update event
|
|
511
|
+
- `deleteEvent` - Delete event
|
|
512
|
+
|
|
513
|
+
**Example**:
|
|
514
|
+
|
|
515
|
+
```yaml
|
|
516
|
+
action: google-calendar.createEvent
|
|
517
|
+
inputs:
|
|
518
|
+
calendarId: primary
|
|
519
|
+
summary: 'Team Meeting'
|
|
520
|
+
start:
|
|
521
|
+
dateTime: '2024-01-25T14:00:00-07:00'
|
|
522
|
+
end:
|
|
523
|
+
dateTime: '2024-01-25T15:00:00-07:00'
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
### Google Drive
|
|
527
|
+
|
|
528
|
+
File storage and management.
|
|
529
|
+
|
|
530
|
+
**Setup**:
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
export GOOGLE_DRIVE_CLIENT_ID=your-client-id
|
|
534
|
+
export GOOGLE_DRIVE_CLIENT_SECRET=your-secret
|
|
535
|
+
export GOOGLE_DRIVE_REFRESH_TOKEN=your-refresh-token
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
**Actions**:
|
|
539
|
+
|
|
540
|
+
- `listFiles` - List files in Drive
|
|
541
|
+
- `getFile` - Get file metadata
|
|
542
|
+
- `uploadFile` - Upload file
|
|
543
|
+
- `downloadFile` - Download file
|
|
544
|
+
- `deleteFile` - Delete file
|
|
545
|
+
|
|
546
|
+
### Google Docs
|
|
547
|
+
|
|
548
|
+
Document creation and editing.
|
|
549
|
+
|
|
550
|
+
**Setup**:
|
|
551
|
+
|
|
552
|
+
```bash
|
|
553
|
+
export GOOGLE_DOCS_CLIENT_ID=your-client-id
|
|
554
|
+
export GOOGLE_DOCS_CLIENT_SECRET=your-secret
|
|
555
|
+
export GOOGLE_DOCS_REFRESH_TOKEN=your-refresh-token
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
**Actions**:
|
|
559
|
+
|
|
560
|
+
- `getDocument` - Get document content
|
|
561
|
+
- `createDocument` - Create new document
|
|
562
|
+
- `updateDocument` - Batch update document
|
|
563
|
+
- `appendText` - Append text to document
|
|
564
|
+
|
|
565
|
+
### Telegram
|
|
566
|
+
|
|
567
|
+
Telegram bot messaging.
|
|
568
|
+
|
|
569
|
+
**Setup**:
|
|
570
|
+
|
|
571
|
+
```bash
|
|
572
|
+
export TELEGRAM_BOT_TOKEN=your-bot-token
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
**Actions**:
|
|
576
|
+
|
|
577
|
+
- `sendMessage` - Send message to chat
|
|
578
|
+
- `sendPhoto` - Send photo
|
|
579
|
+
- `sendDocument` - Send document
|
|
580
|
+
- `getUpdates` - Get bot updates
|
|
581
|
+
|
|
582
|
+
**Example**:
|
|
583
|
+
|
|
584
|
+
```yaml
|
|
585
|
+
action: telegram.sendMessage
|
|
586
|
+
inputs:
|
|
587
|
+
chatId: '123456789'
|
|
588
|
+
text: 'Hello from marktoflow!'
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
### WhatsApp
|
|
592
|
+
|
|
593
|
+
WhatsApp Business API messaging.
|
|
594
|
+
|
|
595
|
+
**Setup**:
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
export WHATSAPP_PHONE_NUMBER_ID=your-phone-id
|
|
599
|
+
export WHATSAPP_ACCESS_TOKEN=your-access-token
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
**Actions**:
|
|
603
|
+
|
|
604
|
+
- `sendMessage` - Send text message
|
|
605
|
+
- `sendTemplate` - Send message template
|
|
606
|
+
- `sendMedia` - Send media (image, video, document)
|
|
607
|
+
|
|
608
|
+
**Example**:
|
|
609
|
+
|
|
610
|
+
```yaml
|
|
611
|
+
action: whatsapp.sendMessage
|
|
612
|
+
inputs:
|
|
613
|
+
to: '+1234567890'
|
|
614
|
+
text: 'Hello from marktoflow!'
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
### Supabase
|
|
618
|
+
|
|
619
|
+
PostgreSQL database with real-time capabilities.
|
|
620
|
+
|
|
621
|
+
**Setup**:
|
|
622
|
+
|
|
623
|
+
```bash
|
|
624
|
+
export SUPABASE_URL=https://your-project.supabase.co
|
|
625
|
+
export SUPABASE_KEY=your-anon-key
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
**Actions**:
|
|
629
|
+
|
|
630
|
+
- `select` - Query records
|
|
631
|
+
- `insert` - Insert records
|
|
632
|
+
- `update` - Update records
|
|
633
|
+
- `delete` - Delete records
|
|
634
|
+
- `rpc` - Call stored procedure
|
|
635
|
+
|
|
636
|
+
**Example**:
|
|
637
|
+
|
|
638
|
+
```yaml
|
|
639
|
+
action: supabase.select
|
|
640
|
+
inputs:
|
|
641
|
+
table: users
|
|
642
|
+
filters:
|
|
643
|
+
email: 'eq.user@example.com'
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
### PostgreSQL
|
|
647
|
+
|
|
648
|
+
Direct PostgreSQL database access.
|
|
649
|
+
|
|
650
|
+
**Setup**:
|
|
651
|
+
|
|
652
|
+
```bash
|
|
653
|
+
export POSTGRES_HOST=localhost
|
|
654
|
+
export POSTGRES_PORT=5432
|
|
655
|
+
export POSTGRES_USER=postgres
|
|
656
|
+
export POSTGRES_PASSWORD=your-password
|
|
657
|
+
export POSTGRES_DATABASE=mydb
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
**Actions**:
|
|
661
|
+
|
|
662
|
+
- `query` - Execute SQL query
|
|
663
|
+
- `insert` - Insert records
|
|
664
|
+
- `update` - Update records
|
|
665
|
+
- `delete` - Delete records
|
|
666
|
+
|
|
667
|
+
### MySQL
|
|
668
|
+
|
|
669
|
+
Direct MySQL database access.
|
|
670
|
+
|
|
671
|
+
**Setup**:
|
|
672
|
+
|
|
673
|
+
```bash
|
|
674
|
+
export MYSQL_HOST=localhost
|
|
675
|
+
export MYSQL_PORT=3306
|
|
676
|
+
export MYSQL_USER=root
|
|
677
|
+
export MYSQL_PASSWORD=your-password
|
|
678
|
+
export MYSQL_DATABASE=mydb
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
**Actions**:
|
|
682
|
+
|
|
683
|
+
- `query` - Execute SQL query
|
|
684
|
+
- `insert` - Insert records
|
|
685
|
+
- `update` - Update records
|
|
686
|
+
- `delete` - Delete records
|
|
687
|
+
|
|
688
|
+
### HTTP
|
|
689
|
+
|
|
690
|
+
Generic HTTP requests with authentication.
|
|
691
|
+
|
|
692
|
+
**Actions**:
|
|
693
|
+
|
|
694
|
+
- `request` - Make HTTP request
|
|
695
|
+
|
|
696
|
+
**Example**:
|
|
697
|
+
|
|
698
|
+
```yaml
|
|
699
|
+
action: http.request
|
|
700
|
+
inputs:
|
|
701
|
+
method: POST
|
|
702
|
+
url: https://api.example.com/endpoint
|
|
703
|
+
headers:
|
|
704
|
+
Authorization: 'Bearer ${API_TOKEN}'
|
|
705
|
+
body:
|
|
706
|
+
key: value
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
### Twilio
|
|
710
|
+
|
|
711
|
+
SMS, voice calls, WhatsApp messaging, and phone number management.
|
|
712
|
+
|
|
713
|
+
**Setup**:
|
|
714
|
+
|
|
715
|
+
```bash
|
|
716
|
+
export TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
717
|
+
export TWILIO_AUTH_TOKEN=your-auth-token
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
**Actions**:
|
|
721
|
+
|
|
722
|
+
- `sendSMS` - Send SMS message
|
|
723
|
+
- `makeCall` - Make phone call
|
|
724
|
+
- `sendWhatsApp` - Send WhatsApp message
|
|
725
|
+
- `listMessages` - List sent/received messages
|
|
726
|
+
- `sendVerification` - Send verification code
|
|
727
|
+
|
|
728
|
+
**Example**:
|
|
729
|
+
|
|
730
|
+
```yaml
|
|
731
|
+
action: twilio.sendSMS
|
|
732
|
+
inputs:
|
|
733
|
+
to: '+1234567890'
|
|
734
|
+
from: '+0987654321'
|
|
735
|
+
body: 'Your verification code is 123456'
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
### SendGrid
|
|
739
|
+
|
|
740
|
+
Transactional email delivery service.
|
|
741
|
+
|
|
742
|
+
**Setup**:
|
|
743
|
+
|
|
744
|
+
```bash
|
|
745
|
+
export SENDGRID_API_KEY=SG.your-api-key
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
**Actions**:
|
|
749
|
+
|
|
750
|
+
- `sendEmail` - Send single email
|
|
751
|
+
- `sendMultiple` - Send multiple emails
|
|
752
|
+
|
|
753
|
+
**Example**:
|
|
754
|
+
|
|
755
|
+
```yaml
|
|
756
|
+
action: sendgrid.sendEmail
|
|
757
|
+
inputs:
|
|
758
|
+
to: 'user@example.com'
|
|
759
|
+
from: 'noreply@yourapp.com'
|
|
760
|
+
subject: 'Welcome!'
|
|
761
|
+
html: '<h1>Welcome to our service!</h1>'
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
### Shopify
|
|
765
|
+
|
|
766
|
+
E-commerce platform for online stores.
|
|
767
|
+
|
|
768
|
+
**Setup**:
|
|
769
|
+
|
|
770
|
+
```bash
|
|
771
|
+
export SHOPIFY_SHOP=your-store.myshopify.com
|
|
772
|
+
export SHOPIFY_ACCESS_TOKEN=shpat_your-token
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
**Actions**:
|
|
776
|
+
|
|
777
|
+
- `getProducts` - List products
|
|
778
|
+
- `createProduct` - Create product
|
|
779
|
+
- `createOrder` - Create order
|
|
780
|
+
- `createCustomer` - Create customer
|
|
781
|
+
- `updateInventoryLevel` - Update inventory
|
|
782
|
+
|
|
783
|
+
**Example**:
|
|
784
|
+
|
|
785
|
+
```yaml
|
|
786
|
+
action: shopify.createProduct
|
|
787
|
+
inputs:
|
|
788
|
+
title: 'New Product'
|
|
789
|
+
body_html: '<p>Product description</p>'
|
|
790
|
+
vendor: 'Your Brand'
|
|
791
|
+
variants:
|
|
792
|
+
- price: '29.99'
|
|
793
|
+
sku: 'PROD-001'
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
### Zendesk
|
|
797
|
+
|
|
798
|
+
Customer support ticketing platform.
|
|
799
|
+
|
|
800
|
+
**Setup**:
|
|
801
|
+
|
|
802
|
+
```bash
|
|
803
|
+
export ZENDESK_SUBDOMAIN=your-company
|
|
804
|
+
export ZENDESK_EMAIL=support@yourcompany.com
|
|
805
|
+
export ZENDESK_TOKEN=your-api-token
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
**Actions**:
|
|
809
|
+
|
|
810
|
+
- `createTicket` - Create support ticket
|
|
811
|
+
- `updateTicket` - Update ticket
|
|
812
|
+
- `addComment` - Add comment to ticket
|
|
813
|
+
- `createUser` - Create user
|
|
814
|
+
- `search` - Search tickets/users
|
|
815
|
+
|
|
816
|
+
**Example**:
|
|
817
|
+
|
|
818
|
+
```yaml
|
|
819
|
+
action: zendesk.createTicket
|
|
820
|
+
inputs:
|
|
821
|
+
subject: 'Login Issue'
|
|
822
|
+
comment:
|
|
823
|
+
body: 'User cannot log in to account'
|
|
824
|
+
priority: 'high'
|
|
825
|
+
```
|
|
826
|
+
|
|
827
|
+
### Mailchimp
|
|
828
|
+
|
|
829
|
+
Email marketing automation platform.
|
|
830
|
+
|
|
831
|
+
**Setup**:
|
|
832
|
+
|
|
833
|
+
```bash
|
|
834
|
+
export MAILCHIMP_API_KEY=your-api-key
|
|
835
|
+
export MAILCHIMP_SERVER=us1
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
**Actions**:
|
|
839
|
+
|
|
840
|
+
- `getLists` - Get mailing lists
|
|
841
|
+
- `addMember` - Add member to list
|
|
842
|
+
- `createCampaign` - Create email campaign
|
|
843
|
+
- `sendCampaign` - Send campaign
|
|
844
|
+
- `addMemberTags` - Add tags to member
|
|
845
|
+
|
|
846
|
+
**Example**:
|
|
847
|
+
|
|
848
|
+
```yaml
|
|
849
|
+
action: mailchimp.addMember
|
|
850
|
+
inputs:
|
|
851
|
+
email_address: 'user@example.com'
|
|
852
|
+
status: 'subscribed'
|
|
853
|
+
merge_fields:
|
|
854
|
+
FNAME: 'John'
|
|
855
|
+
LNAME: 'Doe'
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
### Asana
|
|
859
|
+
|
|
860
|
+
Task and project management platform.
|
|
861
|
+
|
|
862
|
+
**Setup**:
|
|
863
|
+
|
|
864
|
+
```bash
|
|
865
|
+
export ASANA_ACCESS_TOKEN=your-personal-access-token
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
**Actions**:
|
|
869
|
+
|
|
870
|
+
- `createTask` - Create task
|
|
871
|
+
- `updateTask` - Update task
|
|
872
|
+
- `getTasksInProject` - Get project tasks
|
|
873
|
+
- `createProject` - Create project
|
|
874
|
+
- `addComment` - Add comment to task
|
|
875
|
+
|
|
876
|
+
**Example**:
|
|
877
|
+
|
|
878
|
+
```yaml
|
|
879
|
+
action: asana.createTask
|
|
880
|
+
inputs:
|
|
881
|
+
name: 'Implement new feature'
|
|
882
|
+
notes: 'Add user authentication'
|
|
883
|
+
projects: ['project-gid-123']
|
|
884
|
+
due_on: '2026-02-01'
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
### Trello
|
|
888
|
+
|
|
889
|
+
Visual project management with boards and cards.
|
|
890
|
+
|
|
891
|
+
**Setup**:
|
|
892
|
+
|
|
893
|
+
```bash
|
|
894
|
+
export TRELLO_API_KEY=your-api-key
|
|
895
|
+
export TRELLO_TOKEN=your-token
|
|
896
|
+
```
|
|
897
|
+
|
|
898
|
+
**Actions**:
|
|
899
|
+
|
|
900
|
+
- `createCard` - Create card
|
|
901
|
+
- `updateCard` - Update card
|
|
902
|
+
- `createList` - Create list
|
|
903
|
+
- `addCommentToCard` - Add comment
|
|
904
|
+
- `addChecklistToCard` - Add checklist
|
|
905
|
+
|
|
906
|
+
**Example**:
|
|
907
|
+
|
|
908
|
+
```yaml
|
|
909
|
+
action: trello.createCard
|
|
910
|
+
inputs:
|
|
911
|
+
name: 'New Task'
|
|
912
|
+
desc: 'Task description'
|
|
913
|
+
idList: 'list-id-123'
|
|
914
|
+
due: '2026-02-01'
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
### Dropbox
|
|
918
|
+
|
|
919
|
+
Cloud file storage and collaboration.
|
|
920
|
+
|
|
921
|
+
**Setup**:
|
|
922
|
+
|
|
923
|
+
```bash
|
|
924
|
+
export DROPBOX_ACCESS_TOKEN=your-access-token
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
**Actions**:
|
|
928
|
+
|
|
929
|
+
- `uploadFile` - Upload file
|
|
930
|
+
- `downloadFile` - Download file
|
|
931
|
+
- `listFolder` - List folder contents
|
|
932
|
+
- `createFolder` - Create folder
|
|
933
|
+
- `createSharedLink` - Create shared link
|
|
934
|
+
|
|
935
|
+
**Example**:
|
|
936
|
+
|
|
937
|
+
```yaml
|
|
938
|
+
action: dropbox.uploadFile
|
|
939
|
+
inputs:
|
|
940
|
+
path: '/documents/report.pdf'
|
|
941
|
+
contents: '${file_contents}'
|
|
942
|
+
mode: 'overwrite'
|
|
943
|
+
```
|
|
944
|
+
|
|
945
|
+
### AWS S3
|
|
946
|
+
|
|
947
|
+
Amazon Simple Storage Service for object storage.
|
|
948
|
+
|
|
949
|
+
**Setup**:
|
|
950
|
+
|
|
951
|
+
```bash
|
|
952
|
+
export AWS_REGION=us-east-1
|
|
953
|
+
export AWS_ACCESS_KEY_ID=your-access-key
|
|
954
|
+
export AWS_SECRET_ACCESS_KEY=your-secret-key
|
|
955
|
+
```
|
|
956
|
+
|
|
957
|
+
**Actions**:
|
|
958
|
+
|
|
959
|
+
- `uploadObject` - Upload object
|
|
960
|
+
- `getObject` - Get object
|
|
961
|
+
- `listObjects` - List bucket objects
|
|
962
|
+
- `deleteObject` - Delete object
|
|
963
|
+
- `createBucket` - Create bucket
|
|
964
|
+
|
|
965
|
+
**Example**:
|
|
966
|
+
|
|
967
|
+
```yaml
|
|
968
|
+
action: aws-s3.uploadObject
|
|
969
|
+
inputs:
|
|
970
|
+
bucket: 'my-bucket'
|
|
971
|
+
key: 'uploads/file.txt'
|
|
972
|
+
body: 'File contents'
|
|
973
|
+
contentType: 'text/plain'
|
|
974
|
+
```
|
|
975
|
+
|
|
976
|
+
## AI Agent Adapters
|
|
977
|
+
|
|
978
|
+
### Ollama
|
|
979
|
+
|
|
980
|
+
Run local LLMs via Ollama.
|
|
981
|
+
|
|
982
|
+
**Setup**:
|
|
983
|
+
|
|
984
|
+
```bash
|
|
985
|
+
export OLLAMA_BASE_URL=http://localhost:11434
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
**Example**:
|
|
989
|
+
|
|
990
|
+
```yaml
|
|
991
|
+
tools:
|
|
992
|
+
ollama:
|
|
993
|
+
adapter: ollama
|
|
994
|
+
|
|
995
|
+
steps:
|
|
996
|
+
- action: ollama.generate
|
|
997
|
+
inputs:
|
|
998
|
+
model: llama2
|
|
999
|
+
prompt: 'Explain quantum computing'
|
|
1000
|
+
```
|
|
1001
|
+
|
|
1002
|
+
### Claude Agent
|
|
1003
|
+
|
|
1004
|
+
Anthropic Claude Agent SDK integration with agentic workflows.
|
|
1005
|
+
|
|
1006
|
+
**Setup**:
|
|
1007
|
+
|
|
1008
|
+
```bash
|
|
1009
|
+
export ANTHROPIC_API_KEY=sk-ant-your-key
|
|
1010
|
+
```
|
|
1011
|
+
|
|
1012
|
+
**Features**:
|
|
1013
|
+
|
|
1014
|
+
- Multi-turn conversations with memory
|
|
1015
|
+
- Tool calling and custom tools
|
|
1016
|
+
- Streaming responses
|
|
1017
|
+
- Extended thinking mode
|
|
1018
|
+
|
|
1019
|
+
**Example**:
|
|
1020
|
+
|
|
1021
|
+
```yaml
|
|
1022
|
+
tools:
|
|
1023
|
+
claude:
|
|
1024
|
+
adapter: claude-agent
|
|
1025
|
+
config:
|
|
1026
|
+
model: claude-3-5-sonnet-20241022
|
|
1027
|
+
|
|
1028
|
+
steps:
|
|
1029
|
+
- action: claude.send
|
|
1030
|
+
inputs:
|
|
1031
|
+
prompt: 'Analyze this codebase'
|
|
1032
|
+
tools:
|
|
1033
|
+
- name: read_file
|
|
1034
|
+
description: Read file contents
|
|
1035
|
+
output_variable: analysis
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
### Claude Code
|
|
1039
|
+
|
|
1040
|
+
Anthropic Claude Code CLI integration.
|
|
1041
|
+
|
|
1042
|
+
**Setup**:
|
|
1043
|
+
|
|
1044
|
+
```bash
|
|
1045
|
+
# Install Claude Code CLI
|
|
1046
|
+
# Follow: https://github.com/anthropics/claude-code
|
|
1047
|
+
|
|
1048
|
+
export ANTHROPIC_API_KEY=sk-ant-your-key
|
|
1049
|
+
```
|
|
1050
|
+
|
|
1051
|
+
**Features**:
|
|
1052
|
+
|
|
1053
|
+
- File-based context awareness
|
|
1054
|
+
- Native MCP server integration
|
|
1055
|
+
- Extended reasoning capabilities
|
|
1056
|
+
|
|
1057
|
+
### OpenAI Codex
|
|
1058
|
+
|
|
1059
|
+
OpenAI Codex SDK integration with workflow execution capabilities.
|
|
1060
|
+
|
|
1061
|
+
**Setup**:
|
|
1062
|
+
|
|
1063
|
+
```bash
|
|
1064
|
+
# Authenticate via Codex CLI
|
|
1065
|
+
# Follow OpenAI Codex documentation for setup
|
|
1066
|
+
```
|
|
1067
|
+
|
|
1068
|
+
**Features**:
|
|
1069
|
+
|
|
1070
|
+
- Code generation and analysis
|
|
1071
|
+
- Function calling support
|
|
1072
|
+
- Streaming responses
|
|
1073
|
+
- Sandboxed execution environment
|
|
1074
|
+
|
|
1075
|
+
**Example**:
|
|
1076
|
+
|
|
1077
|
+
```yaml
|
|
1078
|
+
tools:
|
|
1079
|
+
codex:
|
|
1080
|
+
adapter: openai-codex
|
|
1081
|
+
config:
|
|
1082
|
+
model: codex-latest
|
|
1083
|
+
|
|
1084
|
+
steps:
|
|
1085
|
+
- action: codex.complete
|
|
1086
|
+
inputs:
|
|
1087
|
+
prompt: 'Write a function to sort an array'
|
|
1088
|
+
output_variable: code
|
|
1089
|
+
```
|
|
1090
|
+
|
|
1091
|
+
### OpenCode
|
|
1092
|
+
|
|
1093
|
+
OpenCode AI integration supporting 75+ backends.
|
|
1094
|
+
|
|
1095
|
+
**Setup**:
|
|
1096
|
+
|
|
1097
|
+
```bash
|
|
1098
|
+
# Configure OpenCode
|
|
1099
|
+
opencode /connect
|
|
1100
|
+
```
|
|
1101
|
+
|
|
1102
|
+
**Features**:
|
|
1103
|
+
|
|
1104
|
+
- GitHub Copilot backend (free with subscription)
|
|
1105
|
+
- Ollama for local models
|
|
1106
|
+
- Multiple cloud providers (GPT-4, Claude, Gemini)
|
|
1107
|
+
- CLI and server modes
|
|
1108
|
+
|
|
1109
|
+
**Example**:
|
|
1110
|
+
|
|
1111
|
+
```yaml
|
|
1112
|
+
tools:
|
|
1113
|
+
opencode:
|
|
1114
|
+
adapter: opencode
|
|
1115
|
+
config:
|
|
1116
|
+
backend: copilot # or ollama, claude, gpt-4, etc.
|
|
1117
|
+
|
|
1118
|
+
steps:
|
|
1119
|
+
- action: opencode.complete
|
|
1120
|
+
inputs:
|
|
1121
|
+
prompt: 'Explain async/await in JavaScript'
|
|
1122
|
+
output_variable: explanation
|
|
1123
|
+
```
|
|
1124
|
+
|
|
1125
|
+
### GitHub Copilot
|
|
1126
|
+
|
|
1127
|
+
GitHub Copilot CLI integration with advanced agentic capabilities.
|
|
1128
|
+
|
|
1129
|
+
**Requirements**:
|
|
1130
|
+
|
|
1131
|
+
- GitHub Copilot subscription (Individual, Business, or Enterprise)
|
|
1132
|
+
- Copilot CLI installed: [Installation Guide](https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli)
|
|
1133
|
+
|
|
1134
|
+
**Installation**:
|
|
1135
|
+
|
|
1136
|
+
```bash
|
|
1137
|
+
# Install Copilot CLI
|
|
1138
|
+
npm install -g @githubnext/github-copilot-cli
|
|
1139
|
+
|
|
1140
|
+
# Verify installation
|
|
1141
|
+
copilot --version
|
|
1142
|
+
```
|
|
1143
|
+
|
|
1144
|
+
**Authentication**:
|
|
1145
|
+
|
|
1146
|
+
The GitHub Copilot adapter uses **OAuth authentication** managed by the Copilot CLI, not API keys. Authentication is a one-time setup:
|
|
1147
|
+
|
|
1148
|
+
```bash
|
|
1149
|
+
# Authenticate with GitHub via OAuth
|
|
1150
|
+
copilot auth login
|
|
1151
|
+
```
|
|
1152
|
+
|
|
1153
|
+
This command will:
|
|
1154
|
+
|
|
1155
|
+
1. Open your browser to GitHub's OAuth consent page
|
|
1156
|
+
2. Prompt you to authorize GitHub Copilot CLI
|
|
1157
|
+
3. Save the OAuth token locally in `~/.copilot/`
|
|
1158
|
+
|
|
1159
|
+
**No API keys are required** - the adapter automatically uses the CLI's stored OAuth token. Your GitHub Copilot subscription determines your access level.
|
|
1160
|
+
|
|
1161
|
+
**Verify Authentication**:
|
|
1162
|
+
|
|
1163
|
+
```bash
|
|
1164
|
+
# Test CLI connectivity
|
|
1165
|
+
copilot --version
|
|
1166
|
+
copilot ping
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
**Basic Usage**:
|
|
1170
|
+
|
|
1171
|
+
```yaml
|
|
1172
|
+
tools:
|
|
1173
|
+
copilot:
|
|
1174
|
+
adapter: github-copilot
|
|
1175
|
+
config:
|
|
1176
|
+
model: gpt-4.1 # Optional, defaults to gpt-4.1
|
|
1177
|
+
|
|
1178
|
+
steps:
|
|
1179
|
+
- action: copilot.send
|
|
1180
|
+
inputs:
|
|
1181
|
+
prompt: 'Explain TypeScript generics'
|
|
1182
|
+
output_variable: explanation
|
|
1183
|
+
```
|
|
1184
|
+
|
|
1185
|
+
**Streaming Responses**:
|
|
1186
|
+
|
|
1187
|
+
```yaml
|
|
1188
|
+
steps:
|
|
1189
|
+
- action: copilot.stream
|
|
1190
|
+
inputs:
|
|
1191
|
+
prompt: 'Write a function to calculate fibonacci'
|
|
1192
|
+
onChunk: '${print_chunk}' # Callback for each chunk
|
|
1193
|
+
output_variable: code
|
|
1194
|
+
```
|
|
1195
|
+
|
|
1196
|
+
**With File Attachments**:
|
|
1197
|
+
|
|
1198
|
+
```yaml
|
|
1199
|
+
steps:
|
|
1200
|
+
- action: copilot.send
|
|
1201
|
+
inputs:
|
|
1202
|
+
prompt: 'Review this code for security issues'
|
|
1203
|
+
attachments:
|
|
1204
|
+
- type: file
|
|
1205
|
+
path: ./src/app.ts
|
|
1206
|
+
displayName: app.ts
|
|
1207
|
+
output_variable: review
|
|
1208
|
+
```
|
|
1209
|
+
|
|
1210
|
+
**System Message Customization**:
|
|
1211
|
+
|
|
1212
|
+
```yaml
|
|
1213
|
+
steps:
|
|
1214
|
+
- action: copilot.send
|
|
1215
|
+
inputs:
|
|
1216
|
+
prompt: 'Help me optimize this function'
|
|
1217
|
+
systemMessage: |
|
|
1218
|
+
You are a performance optimization expert.
|
|
1219
|
+
Focus on time and space complexity.
|
|
1220
|
+
output_variable: suggestions
|
|
1221
|
+
```
|
|
1222
|
+
|
|
1223
|
+
**External CLI Server**:
|
|
1224
|
+
|
|
1225
|
+
For development or shared CLI instances:
|
|
1226
|
+
|
|
1227
|
+
```bash
|
|
1228
|
+
# Terminal 1: Start CLI in server mode
|
|
1229
|
+
copilot --server --port 4321
|
|
1230
|
+
|
|
1231
|
+
# Terminal 2: Use in workflow
|
|
1232
|
+
```
|
|
1233
|
+
|
|
1234
|
+
```yaml
|
|
1235
|
+
tools:
|
|
1236
|
+
copilot:
|
|
1237
|
+
adapter: github-copilot
|
|
1238
|
+
auth:
|
|
1239
|
+
cli_url: localhost:4321 # Connect to external server
|
|
1240
|
+
```
|
|
1241
|
+
|
|
1242
|
+
**Configuration Options**:
|
|
1243
|
+
|
|
1244
|
+
- `model`: Model to use (gpt-4.1, gpt-5, claude-sonnet-4.5, etc.)
|
|
1245
|
+
- `cli_path`: Custom path to CLI binary (default: 'copilot')
|
|
1246
|
+
- `cli_url`: External CLI server URL (mutually exclusive with cli_path)
|
|
1247
|
+
- `autoStart`: Auto-start CLI (default: true)
|
|
1248
|
+
- `logLevel`: Log verbosity (info, debug, error, warning, none, all)
|
|
1249
|
+
|
|
1250
|
+
**Troubleshooting Authentication**:
|
|
1251
|
+
|
|
1252
|
+
If you encounter authentication issues:
|
|
1253
|
+
|
|
1254
|
+
```bash
|
|
1255
|
+
# Check if authenticated
|
|
1256
|
+
copilot ping
|
|
1257
|
+
|
|
1258
|
+
# Re-authenticate if needed
|
|
1259
|
+
copilot auth logout
|
|
1260
|
+
copilot auth login
|
|
1261
|
+
|
|
1262
|
+
# Verify subscription status at https://github.com/settings/copilot
|
|
1263
|
+
```
|
|
1264
|
+
|
|
1265
|
+
**Note**: The adapter does **not** require or use API keys. All authentication is handled through the CLI's OAuth flow.
|
|
1266
|
+
|
|
1267
|
+
**Advanced Features** (See [COPILOT_SDK_ANALYSIS.md](../../docs/COPILOT_SDK_ANALYSIS.md)):
|
|
1268
|
+
|
|
1269
|
+
- Custom tool definitions
|
|
1270
|
+
- MCP server integration
|
|
1271
|
+
- Session persistence
|
|
1272
|
+
- Infinite sessions (automatic context compaction)
|
|
1273
|
+
- Multi-turn conversations
|
|
1274
|
+
|
|
1275
|
+
## Advanced Usage
|
|
1276
|
+
|
|
1277
|
+
### Custom Integration
|
|
1278
|
+
|
|
1279
|
+
Create your own integration:
|
|
1280
|
+
|
|
1281
|
+
```typescript
|
|
1282
|
+
import type { SDKInitializer } from '@marktoflow/core';
|
|
1283
|
+
|
|
1284
|
+
export const MyServiceInitializer: SDKInitializer = {
|
|
1285
|
+
name: 'myservice',
|
|
1286
|
+
async initialize(config) {
|
|
1287
|
+
return new MyServiceClient(config.auth.apiKey);
|
|
1288
|
+
},
|
|
1289
|
+
actions: {
|
|
1290
|
+
doSomething: async (sdk, inputs) => {
|
|
1291
|
+
return sdk.doSomething(inputs);
|
|
1292
|
+
},
|
|
1293
|
+
},
|
|
1294
|
+
};
|
|
1295
|
+
```
|
|
1296
|
+
|
|
1297
|
+
### Error Handling
|
|
1298
|
+
|
|
1299
|
+
All integrations support automatic retry and error handling:
|
|
1300
|
+
|
|
1301
|
+
```yaml
|
|
1302
|
+
steps:
|
|
1303
|
+
- action: slack.chat.postMessage
|
|
1304
|
+
inputs:
|
|
1305
|
+
channel: '#general'
|
|
1306
|
+
text: 'Message'
|
|
1307
|
+
retry:
|
|
1308
|
+
max_attempts: 3
|
|
1309
|
+
backoff: exponential
|
|
1310
|
+
initial_delay: 1000
|
|
1311
|
+
on_error: continue # or 'fail', 'retry'
|
|
1312
|
+
```
|
|
1313
|
+
|
|
1314
|
+
## OAuth Setup Guides
|
|
1315
|
+
|
|
1316
|
+
For Gmail and Outlook, use the CLI to set up OAuth:
|
|
1317
|
+
|
|
1318
|
+
```bash
|
|
1319
|
+
# Gmail OAuth
|
|
1320
|
+
npx @marktoflow/cli@alpha connect gmail
|
|
1321
|
+
|
|
1322
|
+
# Outlook OAuth
|
|
1323
|
+
npx @marktoflow/cli@alpha connect outlook
|
|
1324
|
+
```
|
|
1325
|
+
|
|
1326
|
+
## Testing
|
|
1327
|
+
|
|
1328
|
+
```bash
|
|
1329
|
+
npm test
|
|
1330
|
+
```
|
|
1331
|
+
|
|
1332
|
+
## Links
|
|
1333
|
+
|
|
1334
|
+
- [Main Repository](https://github.com/marktoflow/marktoflow)
|
|
1335
|
+
- [Documentation](https://github.com/marktoflow/marktoflow#readme)
|
|
1336
|
+
- [Core Package](@marktoflow/core)
|
|
1337
|
+
- [CLI Package](@marktoflow/cli)
|
|
1338
|
+
|
|
1339
|
+
## License
|
|
1340
|
+
|
|
1341
|
+
Apache-2.0
|