mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-15 01:47:59 -05:00
Compare commits
11 Commits
improvemen
...
feat/reord
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ea4a19de9 | ||
|
|
83ec55b944 | ||
|
|
a2df89ee29 | ||
|
|
e350a9c611 | ||
|
|
df54029344 | ||
|
|
2ffc55b92b | ||
|
|
4b145a89a9 | ||
|
|
7d4671674c | ||
|
|
78d6082235 | ||
|
|
f0d22246a7 | ||
|
|
7dc4919220 |
@@ -351,16 +351,14 @@ Enables AI-assisted field generation.
|
||||
|
||||
## Tools Configuration
|
||||
|
||||
**Preferred:** Use tool names directly as dropdown option IDs to avoid switch cases:
|
||||
### Simple Tool Selector
|
||||
```typescript
|
||||
// Dropdown options use tool IDs directly
|
||||
options: [
|
||||
{ label: 'Create', id: 'service_create' },
|
||||
{ label: 'Read', id: 'service_read' },
|
||||
]
|
||||
|
||||
// Tool selector just returns the operation value
|
||||
tool: (params) => params.operation,
|
||||
tools: {
|
||||
access: ['service_create', 'service_read', 'service_update'],
|
||||
config: {
|
||||
tool: (params) => `service_${params.operation}`,
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### With Parameter Transformation
|
||||
@@ -579,17 +577,6 @@ export const ServiceBlock: BlockConfig = {
|
||||
|
||||
See the `/add-trigger` skill for creating triggers.
|
||||
|
||||
## Icon Requirement
|
||||
|
||||
If the icon doesn't already exist in `@/components/icons.tsx`, **do NOT search for it yourself**. After completing the block, ask the user to provide the SVG:
|
||||
|
||||
```
|
||||
The block is complete, but I need an icon for {Service}.
|
||||
Please provide the SVG and I'll convert it to a React component.
|
||||
|
||||
You can usually find this in the service's brand/press kit page, or copy it from their website.
|
||||
```
|
||||
|
||||
## Checklist Before Finishing
|
||||
|
||||
- [ ] All subBlocks have `id`, `title` (except switch), and `type`
|
||||
@@ -601,5 +588,4 @@ You can usually find this in the service's brand/press kit page, or copy it from
|
||||
- [ ] Tools.config.tool returns correct tool ID
|
||||
- [ ] Outputs match tool outputs
|
||||
- [ ] Block registered in registry.ts
|
||||
- [ ] If icon missing: asked user to provide SVG
|
||||
- [ ] If triggers exist: `triggers` config set, trigger subBlocks spread
|
||||
|
||||
@@ -226,26 +226,17 @@ export function {Service}Icon(props: SVGProps<SVGSVGElement>) {
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
{/* SVG paths from user-provided SVG */}
|
||||
{/* SVG paths from brand assets */}
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
### Getting Icons
|
||||
**Do NOT search for icons yourself.** At the end of implementation, ask the user to provide the SVG:
|
||||
|
||||
```
|
||||
I've completed the integration. Before I can add the icon, please provide the SVG for {Service}.
|
||||
You can usually find this in the service's brand/press kit page, or copy it from their website.
|
||||
|
||||
Paste the SVG code here and I'll convert it to a React component.
|
||||
```
|
||||
|
||||
Once the user provides the SVG:
|
||||
1. Extract the SVG paths/content
|
||||
2. Create a React component that spreads props
|
||||
3. Ensure viewBox is preserved from the original SVG
|
||||
### Finding Icons
|
||||
1. Check the service's brand/press kit page
|
||||
2. Download SVG logo
|
||||
3. Convert to React component
|
||||
4. Ensure it accepts and spreads props
|
||||
|
||||
## Step 5: Create Triggers (Optional)
|
||||
|
||||
@@ -414,7 +405,6 @@ If creating V2 versions (API-aligned outputs):
|
||||
- [ ] If triggers: spread trigger subBlocks with `getTrigger()`
|
||||
|
||||
### Icon
|
||||
- [ ] Asked user to provide SVG
|
||||
- [ ] Added icon to `components/icons.tsx`
|
||||
- [ ] Icon spreads props correctly
|
||||
|
||||
@@ -443,18 +433,11 @@ You: I'll add the Stripe integration. Let me:
|
||||
1. First, research the Stripe API using Context7
|
||||
2. Create the tools for key operations (payments, subscriptions, etc.)
|
||||
3. Create the block with operation dropdown
|
||||
4. Register everything
|
||||
5. Generate docs
|
||||
6. Ask you for the Stripe icon SVG
|
||||
4. Add the Stripe icon
|
||||
5. Register everything
|
||||
6. Generate docs
|
||||
|
||||
[Proceed with implementation...]
|
||||
|
||||
[After completing steps 1-5...]
|
||||
|
||||
I've completed the Stripe integration. Before I can add the icon, please provide the SVG for Stripe.
|
||||
You can usually find this in the service's brand/press kit page, or copy it from their website.
|
||||
|
||||
Paste the SVG code here and I'll convert it to a React component.
|
||||
```
|
||||
|
||||
## Common Gotchas
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -55,7 +55,6 @@ import {
|
||||
JiraIcon,
|
||||
JiraServiceManagementIcon,
|
||||
KalshiIcon,
|
||||
LangsmithIcon,
|
||||
LemlistIcon,
|
||||
LinearIcon,
|
||||
LinkedInIcon,
|
||||
@@ -181,7 +180,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
jira_service_management: JiraServiceManagementIcon,
|
||||
kalshi: KalshiIcon,
|
||||
knowledge: PackageSearchIcon,
|
||||
langsmith: LangsmithIcon,
|
||||
lemlist: LemlistIcon,
|
||||
linear: LinearIcon,
|
||||
linkedin: LinkedInIcon,
|
||||
@@ -233,6 +231,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
supabase: SupabaseIcon,
|
||||
tavily: TavilyIcon,
|
||||
telegram: TelegramIcon,
|
||||
thinking: BrainIcon,
|
||||
tinybird: TinybirdIcon,
|
||||
translate: TranslateIcon,
|
||||
trello: TrelloIcon,
|
||||
|
||||
@@ -72,13 +72,6 @@ Get a list of backlinks pointing to a target domain or URL. Returns details abou
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `backlinks` | array | List of backlinks pointing to the target |
|
||||
| ↳ `urlFrom` | string | The URL of the page containing the backlink |
|
||||
| ↳ `urlTo` | string | The URL being linked to |
|
||||
| ↳ `anchor` | string | The anchor text of the link |
|
||||
| ↳ `domainRatingSource` | number | Domain Rating of the linking domain |
|
||||
| ↳ `isDofollow` | boolean | Whether the link is dofollow |
|
||||
| ↳ `firstSeen` | string | When the backlink was first discovered |
|
||||
| ↳ `lastVisited` | string | When the backlink was last checked |
|
||||
|
||||
### `ahrefs_backlinks_stats`
|
||||
|
||||
@@ -98,12 +91,6 @@ Get backlink statistics for a target domain or URL. Returns totals for different
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `stats` | object | Backlink statistics summary |
|
||||
| ↳ `total` | number | Total number of live backlinks |
|
||||
| ↳ `dofollow` | number | Number of dofollow backlinks |
|
||||
| ↳ `nofollow` | number | Number of nofollow backlinks |
|
||||
| ↳ `text` | number | Number of text backlinks |
|
||||
| ↳ `image` | number | Number of image backlinks |
|
||||
| ↳ `redirect` | number | Number of redirect backlinks |
|
||||
|
||||
### `ahrefs_referring_domains`
|
||||
|
||||
@@ -125,12 +112,6 @@ Get a list of domains that link to a target domain or URL. Returns unique referr
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `referringDomains` | array | List of domains linking to the target |
|
||||
| ↳ `domain` | string | The referring domain |
|
||||
| ↳ `domainRating` | number | Domain Rating of the referring domain |
|
||||
| ↳ `backlinks` | number | Total number of backlinks from this domain |
|
||||
| ↳ `dofollowBacklinks` | number | Number of dofollow backlinks from this domain |
|
||||
| ↳ `firstSeen` | string | When the domain was first seen linking |
|
||||
| ↳ `lastVisited` | string | When the domain was last checked |
|
||||
|
||||
### `ahrefs_organic_keywords`
|
||||
|
||||
@@ -153,12 +134,6 @@ Get organic keywords that a target domain or URL ranks for in Google search resu
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `keywords` | array | List of organic keywords the target ranks for |
|
||||
| ↳ `keyword` | string | The keyword |
|
||||
| ↳ `volume` | number | Monthly search volume |
|
||||
| ↳ `position` | number | Current ranking position |
|
||||
| ↳ `url` | string | The URL that ranks for this keyword |
|
||||
| ↳ `traffic` | number | Estimated monthly organic traffic |
|
||||
| ↳ `keywordDifficulty` | number | Keyword difficulty score \(0-100\) |
|
||||
|
||||
### `ahrefs_top_pages`
|
||||
|
||||
@@ -182,11 +157,6 @@ Get the top pages of a target domain sorted by organic traffic. Returns page URL
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pages` | array | List of top pages by organic traffic |
|
||||
| ↳ `url` | string | The page URL |
|
||||
| ↳ `traffic` | number | Estimated monthly organic traffic |
|
||||
| ↳ `keywords` | number | Number of keywords the page ranks for |
|
||||
| ↳ `topKeyword` | string | The top keyword driving traffic to this page |
|
||||
| ↳ `value` | number | Estimated traffic value in USD |
|
||||
|
||||
### `ahrefs_keyword_overview`
|
||||
|
||||
@@ -205,14 +175,6 @@ Get detailed metrics for a keyword including search volume, keyword difficulty,
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `overview` | object | Keyword metrics overview |
|
||||
| ↳ `keyword` | string | The analyzed keyword |
|
||||
| ↳ `searchVolume` | number | Monthly search volume |
|
||||
| ↳ `keywordDifficulty` | number | Keyword difficulty score \(0-100\) |
|
||||
| ↳ `cpc` | number | Cost per click in USD |
|
||||
| ↳ `clicks` | number | Estimated clicks per month |
|
||||
| ↳ `clicksPercentage` | number | Percentage of searches that result in clicks |
|
||||
| ↳ `parentTopic` | string | The parent topic for this keyword |
|
||||
| ↳ `trafficPotential` | number | Estimated traffic potential if ranking #1 |
|
||||
|
||||
### `ahrefs_broken_backlinks`
|
||||
|
||||
@@ -234,10 +196,5 @@ Get a list of broken backlinks pointing to a target domain or URL. Useful for id
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `brokenBacklinks` | array | List of broken backlinks |
|
||||
| ↳ `urlFrom` | string | The URL of the page containing the broken link |
|
||||
| ↳ `urlTo` | string | The broken URL being linked to |
|
||||
| ↳ `httpCode` | number | HTTP status code \(e.g., 404, 410\) |
|
||||
| ↳ `anchor` | string | The anchor text of the link |
|
||||
| ↳ `domainRatingSource` | number | Domain Rating of the linking domain |
|
||||
|
||||
|
||||
|
||||
@@ -50,7 +50,6 @@ Read records from an Airtable table
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `records` | json | Array of retrieved Airtable records |
|
||||
| `metadata` | json | Operation metadata including pagination offset and total records count |
|
||||
|
||||
### `airtable_get_record`
|
||||
|
||||
@@ -89,7 +88,6 @@ Write new records to an Airtable table
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `records` | json | Array of created Airtable records |
|
||||
| `metadata` | json | Operation metadata |
|
||||
|
||||
### `airtable_update_record`
|
||||
|
||||
@@ -128,6 +126,5 @@ Update multiple existing records in an Airtable table
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `records` | json | Array of updated Airtable records |
|
||||
| `metadata` | json | Operation metadata including record count and updated record IDs |
|
||||
|
||||
|
||||
|
||||
@@ -52,7 +52,6 @@ Search for academic papers on ArXiv by keywords, authors, titles, or other field
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `papers` | json | Array of papers matching the search query |
|
||||
| `totalResults` | number | Total number of results found for the search query |
|
||||
|
||||
### `arxiv_get_paper`
|
||||
|
||||
@@ -86,6 +85,5 @@ Search for papers by a specific author on ArXiv.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `authorPapers` | json | Array of papers authored by the specified author |
|
||||
| `totalResults` | number | Total number of papers found for the author |
|
||||
|
||||
|
||||
|
||||
@@ -44,18 +44,6 @@ Retrieve a single task by GID or get multiple tasks with filters
|
||||
| `notes` | string | Task notes or description |
|
||||
| `completed` | boolean | Whether the task is completed |
|
||||
| `assignee` | object | Assignee details |
|
||||
| ↳ `gid` | string | Assignee GID |
|
||||
| ↳ `name` | string | Assignee name |
|
||||
| `created_by` | object | Creator details |
|
||||
| ↳ `gid` | string | Creator GID |
|
||||
| ↳ `name` | string | Creator name |
|
||||
| `due_on` | string | Due date \(YYYY-MM-DD\) |
|
||||
| `created_at` | string | Task creation timestamp |
|
||||
| `modified_at` | string | Task last modified timestamp |
|
||||
| `tasks` | array | Array of tasks \(when fetching multiple\) |
|
||||
| ↳ `gid` | string | Task GID |
|
||||
| ↳ `name` | string | Task name |
|
||||
| ↳ `completed` | boolean | Completion status |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -128,9 +116,6 @@ Retrieve all projects from an Asana workspace
|
||||
| `success` | boolean | Operation success status |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `projects` | array | Array of projects |
|
||||
| ↳ `gid` | string | Project GID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `resource_type` | string | Resource type \(project\) |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -153,22 +138,6 @@ Search for tasks in an Asana workspace
|
||||
| `success` | boolean | Operation success status |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `tasks` | array | Array of matching tasks |
|
||||
| ↳ `gid` | string | Assignee GID |
|
||||
| ↳ `resource_type` | string | Resource type |
|
||||
| ↳ `resource_subtype` | string | Resource subtype |
|
||||
| ↳ `name` | string | Assignee name |
|
||||
| ↳ `notes` | string | Task notes |
|
||||
| ↳ `completed` | boolean | Completion status |
|
||||
| ↳ `assignee` | object | Assignee details |
|
||||
| ↳ `gid` | string | Assignee GID |
|
||||
| ↳ `name` | string | Assignee name |
|
||||
| ↳ `due_on` | string | Due date |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `modified_at` | string | Modified timestamp |
|
||||
| `next_page` | object | Pagination info |
|
||||
| ↳ `offset` | string | Offset token |
|
||||
| ↳ `path` | string | API path |
|
||||
| ↳ `uri` | string | Full URI |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -191,7 +160,5 @@ Add a comment (story) to an Asana task
|
||||
| `text` | string | Comment text content |
|
||||
| `created_at` | string | Comment creation timestamp |
|
||||
| `created_by` | object | Comment author details |
|
||||
| ↳ `gid` | string | Author GID |
|
||||
| ↳ `name` | string | Author name |
|
||||
|
||||
|
||||
|
||||
@@ -47,16 +47,6 @@ Get information about the currently authenticated Calendly user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Current user information |
|
||||
| ↳ `uri` | string | Canonical reference to the user |
|
||||
| ↳ `name` | string | User full name |
|
||||
| ↳ `slug` | string | Unique identifier for the user in URLs |
|
||||
| ↳ `email` | string | User email address |
|
||||
| ↳ `scheduling_url` | string | URL to the user |
|
||||
| ↳ `timezone` | string | User timezone |
|
||||
| ↳ `avatar_url` | string | URL to user avatar image |
|
||||
| ↳ `created_at` | string | ISO timestamp when user was created |
|
||||
| ↳ `updated_at` | string | ISO timestamp when user was last updated |
|
||||
| ↳ `current_organization` | string | URI of current organization |
|
||||
|
||||
### `calendly_list_event_types`
|
||||
|
||||
@@ -79,25 +69,6 @@ Retrieve a list of all event types for a user or organization
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `collection` | array | Array of event type objects |
|
||||
| ↳ `uri` | string | Canonical reference to the event type |
|
||||
| ↳ `name` | string | Event type name |
|
||||
| ↳ `active` | boolean | Whether the event type is active |
|
||||
| ↳ `booking_method` | string | Booking method \(e.g., |
|
||||
| ↳ `color` | string | Hex color code |
|
||||
| ↳ `created_at` | string | ISO timestamp of creation |
|
||||
| ↳ `description_html` | string | HTML formatted description |
|
||||
| ↳ `description_plain` | string | Plain text description |
|
||||
| ↳ `duration` | number | Duration in minutes |
|
||||
| ↳ `scheduling_url` | string | URL to scheduling page |
|
||||
| ↳ `slug` | string | Unique identifier for URLs |
|
||||
| ↳ `type` | string | Event type classification |
|
||||
| ↳ `updated_at` | string | ISO timestamp of last update |
|
||||
| `pagination` | object | Pagination information |
|
||||
| ↳ `count` | number | Number of results in this page |
|
||||
| ↳ `next_page` | string | URL to next page \(if available\) |
|
||||
| ↳ `previous_page` | string | URL to previous page \(if available\) |
|
||||
| ↳ `next_page_token` | string | Token for next page |
|
||||
| ↳ `previous_page_token` | string | Token for previous page |
|
||||
|
||||
### `calendly_get_event_type`
|
||||
|
||||
@@ -115,30 +86,6 @@ Get detailed information about a specific event type
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Event type details |
|
||||
| ↳ `uri` | string | Canonical reference to the event type |
|
||||
| ↳ `name` | string | Question text |
|
||||
| ↳ `active` | boolean | Whether the event type is active |
|
||||
| ↳ `booking_method` | string | Booking method |
|
||||
| ↳ `color` | string | Hex color code |
|
||||
| ↳ `created_at` | string | ISO timestamp of creation |
|
||||
| ↳ `custom_questions` | array | Custom questions for invitees |
|
||||
| ↳ `name` | string | Question text |
|
||||
| ↳ `type` | string | Question type \(text, single_select, multi_select, etc.\) |
|
||||
| ↳ `position` | number | Question order |
|
||||
| ↳ `enabled` | boolean | Whether question is enabled |
|
||||
| ↳ `required` | boolean | Whether question is required |
|
||||
| ↳ `answer_choices` | array | Available answer choices |
|
||||
| ↳ `type` | string | Event type classification |
|
||||
| ↳ `position` | number | Question order |
|
||||
| ↳ `enabled` | boolean | Whether question is enabled |
|
||||
| ↳ `required` | boolean | Whether question is required |
|
||||
| ↳ `answer_choices` | array | Available answer choices |
|
||||
| ↳ `description_html` | string | HTML formatted description |
|
||||
| ↳ `description_plain` | string | Plain text description |
|
||||
| ↳ `duration` | number | Duration in minutes |
|
||||
| ↳ `scheduling_url` | string | URL to scheduling page |
|
||||
| ↳ `slug` | string | Unique identifier for URLs |
|
||||
| ↳ `updated_at` | string | ISO timestamp of last update |
|
||||
|
||||
### `calendly_list_scheduled_events`
|
||||
|
||||
@@ -164,30 +111,6 @@ Retrieve a list of scheduled events for a user or organization
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `collection` | array | Array of scheduled event objects |
|
||||
| ↳ `uri` | string | Canonical reference to the event |
|
||||
| ↳ `name` | string | Event name |
|
||||
| ↳ `status` | string | Event status \(active or canceled\) |
|
||||
| ↳ `start_time` | string | ISO timestamp of event start |
|
||||
| ↳ `end_time` | string | ISO timestamp of event end |
|
||||
| ↳ `event_type` | string | URI of the event type |
|
||||
| ↳ `location` | string | Location description |
|
||||
| ↳ `type` | string | Location type \(e.g., |
|
||||
| ↳ `join_url` | string | URL to join online meeting \(if applicable\) |
|
||||
| ↳ `invitees_counter` | object | Invitee count information |
|
||||
| ↳ `total` | number | Total number of invitees |
|
||||
| ↳ `active` | number | Number of active invitees |
|
||||
| ↳ `limit` | number | Maximum number of invitees |
|
||||
| ↳ `total` | number | Total number of invitees |
|
||||
| ↳ `active` | number | Number of active invitees |
|
||||
| ↳ `limit` | number | Maximum number of invitees |
|
||||
| ↳ `created_at` | string | ISO timestamp of event creation |
|
||||
| ↳ `updated_at` | string | ISO timestamp of last update |
|
||||
| `pagination` | object | Pagination information |
|
||||
| ↳ `count` | number | Number of results in this page |
|
||||
| ↳ `next_page` | string | URL to next page \(if available\) |
|
||||
| ↳ `previous_page` | string | URL to previous page \(if available\) |
|
||||
| ↳ `next_page_token` | string | Token for next page |
|
||||
| ↳ `previous_page_token` | string | Token for previous page |
|
||||
|
||||
### `calendly_get_scheduled_event`
|
||||
|
||||
@@ -205,36 +128,6 @@ Get detailed information about a specific scheduled event
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Scheduled event details |
|
||||
| ↳ `uri` | string | Canonical reference to the event |
|
||||
| ↳ `name` | string | Event name |
|
||||
| ↳ `status` | string | Event status \(active or canceled\) |
|
||||
| ↳ `start_time` | string | ISO timestamp of event start |
|
||||
| ↳ `end_time` | string | ISO timestamp of event end |
|
||||
| ↳ `event_type` | string | URI of the event type |
|
||||
| ↳ `location` | string | Location description |
|
||||
| ↳ `type` | string | Location type |
|
||||
| ↳ `join_url` | string | URL to join online meeting |
|
||||
| ↳ `invitees_counter` | object | Invitee count information |
|
||||
| ↳ `total` | number | Total number of invitees |
|
||||
| ↳ `active` | number | Number of active invitees |
|
||||
| ↳ `limit` | number | Maximum number of invitees |
|
||||
| ↳ `total` | number | Total number of invitees |
|
||||
| ↳ `active` | number | Number of active invitees |
|
||||
| ↳ `limit` | number | Maximum number of invitees |
|
||||
| ↳ `event_memberships` | array | Event hosts/members |
|
||||
| ↳ `user` | string | User URI |
|
||||
| ↳ `user_email` | string | User email |
|
||||
| ↳ `user_name` | string | User name |
|
||||
| ↳ `user` | string | User URI |
|
||||
| ↳ `user_email` | string | User email |
|
||||
| ↳ `user_name` | string | User name |
|
||||
| ↳ `event_guests` | array | Additional guests |
|
||||
| ↳ `email` | string | Guest email |
|
||||
| ↳ `created_at` | string | When guest was added |
|
||||
| ↳ `updated_at` | string | When guest info was updated |
|
||||
| ↳ `email` | string | Guest email |
|
||||
| ↳ `created_at` | string | ISO timestamp of event creation |
|
||||
| ↳ `updated_at` | string | ISO timestamp of last update |
|
||||
|
||||
### `calendly_list_event_invitees`
|
||||
|
||||
@@ -257,32 +150,6 @@ Retrieve a list of invitees for a scheduled event
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `collection` | array | Array of invitee objects |
|
||||
| ↳ `uri` | string | Canonical reference to the invitee |
|
||||
| ↳ `email` | string | Invitee email address |
|
||||
| ↳ `name` | string | Invitee full name |
|
||||
| ↳ `first_name` | string | Invitee first name |
|
||||
| ↳ `last_name` | string | Invitee last name |
|
||||
| ↳ `status` | string | Invitee status \(active or canceled\) |
|
||||
| ↳ `questions_and_answers` | array | Responses to custom questions |
|
||||
| ↳ `question` | string | Question text |
|
||||
| ↳ `answer` | string | Invitee answer |
|
||||
| ↳ `position` | number | Question order |
|
||||
| ↳ `question` | string | Question text |
|
||||
| ↳ `answer` | string | Invitee answer |
|
||||
| ↳ `position` | number | Question order |
|
||||
| ↳ `timezone` | string | Invitee timezone |
|
||||
| ↳ `event` | string | URI of the scheduled event |
|
||||
| ↳ `created_at` | string | ISO timestamp when invitee was created |
|
||||
| ↳ `updated_at` | string | ISO timestamp when invitee was updated |
|
||||
| ↳ `cancel_url` | string | URL to cancel the booking |
|
||||
| ↳ `reschedule_url` | string | URL to reschedule the booking |
|
||||
| ↳ `rescheduled` | boolean | Whether invitee rescheduled |
|
||||
| `pagination` | object | Pagination information |
|
||||
| ↳ `count` | number | Number of results in this page |
|
||||
| ↳ `next_page` | string | URL to next page \(if available\) |
|
||||
| ↳ `previous_page` | string | URL to previous page \(if available\) |
|
||||
| ↳ `next_page_token` | string | Token for next page |
|
||||
| ↳ `previous_page_token` | string | Token for previous page |
|
||||
|
||||
### `calendly_cancel_event`
|
||||
|
||||
@@ -301,9 +168,5 @@ Cancel a scheduled event
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Cancellation details |
|
||||
| ↳ `canceler_type` | string | Type of canceler \(host or invitee\) |
|
||||
| ↳ `canceled_by` | string | Name of person who canceled |
|
||||
| ↳ `reason` | string | Cancellation reason |
|
||||
| ↳ `created_at` | string | ISO timestamp when event was canceled |
|
||||
|
||||
|
||||
|
||||
@@ -61,10 +61,5 @@ Populate Clay with data from a JSON file. Enables direct communication and notif
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | json | Response data from Clay webhook |
|
||||
| `metadata` | object | Webhook response metadata |
|
||||
| ↳ `status` | number | HTTP status code |
|
||||
| ↳ `statusText` | string | HTTP status text |
|
||||
| ↳ `headers` | object | Response headers from Clay |
|
||||
| ↳ `timestamp` | string | ISO timestamp when webhook was received |
|
||||
| ↳ `contentType` | string | Content type of the response |
|
||||
|
||||
|
||||
|
||||
@@ -99,15 +99,6 @@ Post an event to the Datadog event stream. Use for deployment notifications, ale
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `event` | object | The created event details |
|
||||
| ↳ `id` | number | Event ID |
|
||||
| ↳ `title` | string | Event title |
|
||||
| ↳ `text` | string | Event text |
|
||||
| ↳ `date_happened` | number | Unix timestamp when event occurred |
|
||||
| ↳ `priority` | string | Event priority |
|
||||
| ↳ `alert_type` | string | Alert type |
|
||||
| ↳ `host` | string | Associated host |
|
||||
| ↳ `tags` | array | Event tags |
|
||||
| ↳ `url` | string | URL to view the event in Datadog |
|
||||
|
||||
### `datadog_create_monitor`
|
||||
|
||||
@@ -133,16 +124,6 @@ Create a new monitor/alert in Datadog. Monitors can track metrics, service check
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `monitor` | object | The created monitor details |
|
||||
| ↳ `id` | number | Monitor ID |
|
||||
| ↳ `name` | string | Monitor name |
|
||||
| ↳ `type` | string | Monitor type |
|
||||
| ↳ `query` | string | Monitor query |
|
||||
| ↳ `message` | string | Notification message |
|
||||
| ↳ `tags` | array | Monitor tags |
|
||||
| ↳ `priority` | number | Monitor priority |
|
||||
| ↳ `overall_state` | string | Current monitor state |
|
||||
| ↳ `created` | string | Creation timestamp |
|
||||
| ↳ `modified` | string | Last modification timestamp |
|
||||
|
||||
### `datadog_get_monitor`
|
||||
|
||||
@@ -164,16 +145,6 @@ Retrieve details of a specific monitor by ID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `monitor` | object | The monitor details |
|
||||
| ↳ `id` | number | Monitor ID |
|
||||
| ↳ `name` | string | Monitor name |
|
||||
| ↳ `type` | string | Monitor type |
|
||||
| ↳ `query` | string | Monitor query |
|
||||
| ↳ `message` | string | Notification message |
|
||||
| ↳ `tags` | array | Monitor tags |
|
||||
| ↳ `priority` | number | Monitor priority |
|
||||
| ↳ `overall_state` | string | Current monitor state |
|
||||
| ↳ `created` | string | Creation timestamp |
|
||||
| ↳ `modified` | string | Last modification timestamp |
|
||||
|
||||
### `datadog_list_monitors`
|
||||
|
||||
@@ -199,12 +170,6 @@ List all monitors in Datadog with optional filtering by name, tags, or state.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `monitors` | array | List of monitors |
|
||||
| ↳ `id` | number | Monitor ID |
|
||||
| ↳ `name` | string | Monitor name |
|
||||
| ↳ `type` | string | Monitor type |
|
||||
| ↳ `query` | string | Monitor query |
|
||||
| ↳ `overall_state` | string | Current state |
|
||||
| ↳ `tags` | array | Tags |
|
||||
|
||||
### `datadog_mute_monitor`
|
||||
|
||||
@@ -250,19 +215,6 @@ Search and retrieve logs from Datadog. Use for troubleshooting, analysis, or mon
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `logs` | array | List of log entries |
|
||||
| ↳ `id` | string | Log ID |
|
||||
| ↳ `content` | object | Log content |
|
||||
| ↳ `timestamp` | string | Log timestamp |
|
||||
| ↳ `host` | string | Host name |
|
||||
| ↳ `service` | string | Service name |
|
||||
| ↳ `message` | string | Log message |
|
||||
| ↳ `status` | string | Log status/level |
|
||||
| ↳ `timestamp` | string | Log timestamp |
|
||||
| ↳ `host` | string | Host name |
|
||||
| ↳ `service` | string | Service name |
|
||||
| ↳ `message` | string | Log message |
|
||||
| ↳ `status` | string | Log status/level |
|
||||
| `nextLogId` | string | Cursor for pagination |
|
||||
|
||||
### `datadog_send_logs`
|
||||
|
||||
@@ -307,12 +259,6 @@ Schedule a downtime to suppress monitor notifications during maintenance windows
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `downtime` | object | The created downtime details |
|
||||
| ↳ `id` | number | Downtime ID |
|
||||
| ↳ `scope` | array | Downtime scope |
|
||||
| ↳ `message` | string | Downtime message |
|
||||
| ↳ `start` | number | Start time \(Unix timestamp\) |
|
||||
| ↳ `end` | number | End time \(Unix timestamp\) |
|
||||
| ↳ `active` | boolean | Whether downtime is currently active |
|
||||
|
||||
### `datadog_list_downtimes`
|
||||
|
||||
@@ -333,12 +279,6 @@ List all scheduled downtimes in Datadog.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `downtimes` | array | List of downtimes |
|
||||
| ↳ `id` | number | Downtime ID |
|
||||
| ↳ `scope` | array | Downtime scope |
|
||||
| ↳ `message` | string | Downtime message |
|
||||
| ↳ `start` | number | Start time \(Unix timestamp\) |
|
||||
| ↳ `end` | number | End time \(Unix timestamp\) |
|
||||
| ↳ `active` | boolean | Whether downtime is currently active |
|
||||
|
||||
### `datadog_cancel_downtime`
|
||||
|
||||
|
||||
@@ -64,24 +64,6 @@ Send a message to a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Discord message data |
|
||||
| ↳ `id` | string | Author user ID |
|
||||
| ↳ `content` | string | Message content |
|
||||
| ↳ `channel_id` | string | Channel ID where message was sent |
|
||||
| ↳ `author` | object | Message author information |
|
||||
| ↳ `id` | string | Author user ID |
|
||||
| ↳ `username` | string | Author username |
|
||||
| ↳ `avatar` | string | Author avatar hash |
|
||||
| ↳ `bot` | boolean | Whether author is a bot |
|
||||
| ↳ `username` | string | Author username |
|
||||
| ↳ `avatar` | string | Author avatar hash |
|
||||
| ↳ `bot` | boolean | Whether author is a bot |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
| ↳ `edited_timestamp` | string | Message edited timestamp |
|
||||
| ↳ `embeds` | array | Message embeds |
|
||||
| ↳ `attachments` | array | Message attachments |
|
||||
| ↳ `mentions` | array | User mentions in message |
|
||||
| ↳ `mention_roles` | array | Role mentions in message |
|
||||
| ↳ `mention_everyone` | boolean | Whether message mentions everyone |
|
||||
|
||||
### `discord_get_messages`
|
||||
|
||||
@@ -101,43 +83,6 @@ Retrieve messages from a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Container for messages data |
|
||||
| ↳ `messages` | array | Array of Discord messages with full metadata |
|
||||
| ↳ `id` | string | Author user ID |
|
||||
| ↳ `content` | string | Message content |
|
||||
| ↳ `channel_id` | string | Channel ID |
|
||||
| ↳ `author` | object | Message author information |
|
||||
| ↳ `id` | string | Author user ID |
|
||||
| ↳ `username` | string | Author username |
|
||||
| ↳ `avatar` | string | Author avatar hash |
|
||||
| ↳ `bot` | boolean | Whether author is a bot |
|
||||
| ↳ `username` | string | Author username |
|
||||
| ↳ `avatar` | string | Author avatar hash |
|
||||
| ↳ `bot` | boolean | Whether author is a bot |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
| ↳ `edited_timestamp` | string | Message edited timestamp |
|
||||
| ↳ `embeds` | array | Message embeds |
|
||||
| ↳ `attachments` | array | Message attachments |
|
||||
| ↳ `mentions` | array | User mentions in message |
|
||||
| ↳ `mention_roles` | array | Role mentions in message |
|
||||
| ↳ `mention_everyone` | boolean | Whether message mentions everyone |
|
||||
| ↳ `id` | string | Author user ID |
|
||||
| ↳ `content` | string | Message content |
|
||||
| ↳ `channel_id` | string | Channel ID |
|
||||
| ↳ `author` | object | Message author information |
|
||||
| ↳ `id` | string | Author user ID |
|
||||
| ↳ `username` | string | Author username |
|
||||
| ↳ `avatar` | string | Author avatar hash |
|
||||
| ↳ `bot` | boolean | Whether author is a bot |
|
||||
| ↳ `username` | string | Author username |
|
||||
| ↳ `avatar` | string | Author avatar hash |
|
||||
| ↳ `bot` | boolean | Whether author is a bot |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
| ↳ `edited_timestamp` | string | Message edited timestamp |
|
||||
| ↳ `embeds` | array | Message embeds |
|
||||
| ↳ `attachments` | array | Message attachments |
|
||||
| ↳ `mentions` | array | User mentions in message |
|
||||
| ↳ `mention_roles` | array | Role mentions in message |
|
||||
| ↳ `mention_everyone` | boolean | Whether message mentions everyone |
|
||||
|
||||
### `discord_get_server`
|
||||
|
||||
@@ -156,14 +101,6 @@ Retrieve information about a Discord server (guild)
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Discord server \(guild\) information |
|
||||
| ↳ `id` | string | Server ID |
|
||||
| ↳ `name` | string | Server name |
|
||||
| ↳ `icon` | string | Server icon hash |
|
||||
| ↳ `description` | string | Server description |
|
||||
| ↳ `owner_id` | string | Server owner user ID |
|
||||
| ↳ `roles` | array | Server roles |
|
||||
| ↳ `channels` | array | Server channels |
|
||||
| ↳ `member_count` | number | Number of members in server |
|
||||
|
||||
### `discord_get_user`
|
||||
|
||||
@@ -182,14 +119,6 @@ Retrieve information about a Discord user
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Discord user information |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `discriminator` | string | User discriminator \(4-digit number\) |
|
||||
| ↳ `avatar` | string | User avatar hash |
|
||||
| ↳ `bot` | boolean | Whether user is a bot |
|
||||
| ↳ `system` | boolean | Whether user is a system user |
|
||||
| ↳ `email` | string | User email \(if available\) |
|
||||
| ↳ `verified` | boolean | Whether user email is verified |
|
||||
|
||||
### `discord_edit_message`
|
||||
|
||||
@@ -211,10 +140,6 @@ Edit an existing message in a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Updated Discord message data |
|
||||
| ↳ `id` | string | Message ID |
|
||||
| ↳ `content` | string | Updated message content |
|
||||
| ↳ `channel_id` | string | Channel ID |
|
||||
| ↳ `edited_timestamp` | string | Message edited timestamp |
|
||||
|
||||
### `discord_delete_message`
|
||||
|
||||
@@ -335,11 +260,6 @@ Create a thread in a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Created thread data |
|
||||
| ↳ `id` | string | Thread ID |
|
||||
| ↳ `name` | string | Thread name |
|
||||
| ↳ `type` | number | Thread channel type |
|
||||
| ↳ `guild_id` | string | Server ID |
|
||||
| ↳ `parent_id` | string | Parent channel ID |
|
||||
|
||||
### `discord_join_thread`
|
||||
|
||||
@@ -396,8 +316,6 @@ Archive or unarchive a thread in Discord
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Updated thread data |
|
||||
| ↳ `id` | string | Thread ID |
|
||||
| ↳ `archived` | boolean | Whether thread is archived |
|
||||
|
||||
### `discord_create_channel`
|
||||
|
||||
@@ -420,10 +338,6 @@ Create a new channel in a Discord server
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Created channel data |
|
||||
| ↳ `id` | string | Channel ID |
|
||||
| ↳ `name` | string | Channel name |
|
||||
| ↳ `type` | number | Channel type |
|
||||
| ↳ `guild_id` | string | Server ID |
|
||||
|
||||
### `discord_update_channel`
|
||||
|
||||
@@ -445,10 +359,6 @@ Update a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Updated channel data |
|
||||
| ↳ `id` | string | Channel ID |
|
||||
| ↳ `name` | string | Channel name |
|
||||
| ↳ `type` | number | Channel type |
|
||||
| ↳ `topic` | string | Channel topic |
|
||||
|
||||
### `discord_delete_channel`
|
||||
|
||||
@@ -486,11 +396,6 @@ Get information about a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Channel data |
|
||||
| ↳ `id` | string | Channel ID |
|
||||
| ↳ `name` | string | Channel name |
|
||||
| ↳ `type` | number | Channel type |
|
||||
| ↳ `topic` | string | Channel topic |
|
||||
| ↳ `guild_id` | string | Server ID |
|
||||
|
||||
### `discord_create_role`
|
||||
|
||||
@@ -513,11 +418,6 @@ Create a new role in a Discord server
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Created role data |
|
||||
| ↳ `id` | string | Role ID |
|
||||
| ↳ `name` | string | Role name |
|
||||
| ↳ `color` | number | Role color |
|
||||
| ↳ `hoist` | boolean | Whether role is hoisted |
|
||||
| ↳ `mentionable` | boolean | Whether role is mentionable |
|
||||
|
||||
### `discord_update_role`
|
||||
|
||||
@@ -541,9 +441,6 @@ Update a role in a Discord server
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Updated role data |
|
||||
| ↳ `id` | string | Role ID |
|
||||
| ↳ `name` | string | Role name |
|
||||
| ↳ `color` | number | Role color |
|
||||
|
||||
### `discord_delete_role`
|
||||
|
||||
@@ -677,16 +574,6 @@ Get information about a member in a Discord server
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Member data |
|
||||
| ↳ `user` | object | User information |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `avatar` | string | Avatar hash |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `avatar` | string | Avatar hash |
|
||||
| ↳ `nick` | string | Server nickname |
|
||||
| ↳ `roles` | array | Array of role IDs |
|
||||
| ↳ `joined_at` | string | When the member joined |
|
||||
|
||||
### `discord_update_member`
|
||||
|
||||
@@ -709,9 +596,6 @@ Update a member in a Discord server (e.g., change nickname)
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Updated member data |
|
||||
| ↳ `nick` | string | Server nickname |
|
||||
| ↳ `mute` | boolean | Voice mute status |
|
||||
| ↳ `deaf` | boolean | Voice deaf status |
|
||||
|
||||
### `discord_create_invite`
|
||||
|
||||
@@ -734,11 +618,6 @@ Create an invite link for a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Created invite data |
|
||||
| ↳ `code` | string | Invite code |
|
||||
| ↳ `url` | string | Full invite URL |
|
||||
| ↳ `max_age` | number | Max age in seconds |
|
||||
| ↳ `max_uses` | number | Max uses |
|
||||
| ↳ `temporary` | boolean | Whether temporary |
|
||||
|
||||
### `discord_get_invite`
|
||||
|
||||
@@ -758,11 +637,6 @@ Get information about a Discord invite
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Invite data |
|
||||
| ↳ `code` | string | Invite code |
|
||||
| ↳ `guild` | object | Server information |
|
||||
| ↳ `channel` | object | Channel information |
|
||||
| ↳ `approximate_member_count` | number | Approximate member count |
|
||||
| ↳ `approximate_presence_count` | number | Approximate online count |
|
||||
|
||||
### `discord_delete_invite`
|
||||
|
||||
@@ -801,11 +675,6 @@ Create a webhook in a Discord channel
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Created webhook data |
|
||||
| ↳ `id` | string | Webhook ID |
|
||||
| ↳ `name` | string | Webhook name |
|
||||
| ↳ `token` | string | Webhook token |
|
||||
| ↳ `url` | string | Webhook URL |
|
||||
| ↳ `channel_id` | string | Channel ID |
|
||||
|
||||
### `discord_execute_webhook`
|
||||
|
||||
@@ -827,10 +696,6 @@ Execute a Discord webhook to send a message
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Message sent via webhook |
|
||||
| ↳ `id` | string | Message ID |
|
||||
| ↳ `content` | string | Message content |
|
||||
| ↳ `channel_id` | string | Channel ID |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
|
||||
### `discord_get_webhook`
|
||||
|
||||
@@ -850,11 +715,6 @@ Get information about a Discord webhook
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Webhook data |
|
||||
| ↳ `id` | string | Webhook ID |
|
||||
| ↳ `name` | string | Webhook name |
|
||||
| ↳ `channel_id` | string | Channel ID |
|
||||
| ↳ `guild_id` | string | Server ID |
|
||||
| ↳ `token` | string | Webhook token |
|
||||
|
||||
### `discord_delete_webhook`
|
||||
|
||||
|
||||
@@ -54,15 +54,6 @@ Upload a file to Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | The uploaded file metadata |
|
||||
| ↳ `id` | string | Unique identifier for the file |
|
||||
| ↳ `name` | string | Name of the file |
|
||||
| ↳ `path_display` | string | Display path of the file |
|
||||
| ↳ `path_lower` | string | Lowercase path of the file |
|
||||
| ↳ `size` | number | Size of the file in bytes |
|
||||
| ↳ `client_modified` | string | Client modification time |
|
||||
| ↳ `server_modified` | string | Server modification time |
|
||||
| ↳ `rev` | string | Revision identifier |
|
||||
| ↳ `content_hash` | string | Content hash for the file |
|
||||
|
||||
### `dropbox_download`
|
||||
|
||||
@@ -79,12 +70,6 @@ Download a file from Dropbox and get a temporary link
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | The file metadata |
|
||||
| ↳ `id` | string | Unique identifier for the file |
|
||||
| ↳ `name` | string | Name of the file |
|
||||
| ↳ `path_display` | string | Display path of the file |
|
||||
| ↳ `size` | number | Size of the file in bytes |
|
||||
| `temporaryLink` | string | Temporary link to download the file \(valid for ~4 hours\) |
|
||||
| `content` | string | Base64 encoded file content \(if fetched\) |
|
||||
|
||||
### `dropbox_list_folder`
|
||||
|
||||
@@ -105,12 +90,6 @@ List the contents of a folder in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `entries` | array | List of files and folders in the directory |
|
||||
| ↳ `id` | string | Unique identifier |
|
||||
| ↳ `name` | string | Name of the file/folder |
|
||||
| ↳ `path_display` | string | Display path |
|
||||
| ↳ `size` | number | Size in bytes \(files only\) |
|
||||
| `cursor` | string | Cursor for pagination |
|
||||
| `hasMore` | boolean | Whether there are more results |
|
||||
|
||||
### `dropbox_create_folder`
|
||||
|
||||
@@ -128,10 +107,6 @@ Create a new folder in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `folder` | object | The created folder metadata |
|
||||
| ↳ `id` | string | Unique identifier for the folder |
|
||||
| ↳ `name` | string | Name of the folder |
|
||||
| ↳ `path_display` | string | Display path of the folder |
|
||||
| ↳ `path_lower` | string | Lowercase path of the folder |
|
||||
|
||||
### `dropbox_delete`
|
||||
|
||||
@@ -148,9 +123,6 @@ Delete a file or folder in Dropbox (moves to trash)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadata of the deleted item |
|
||||
| ↳ `name` | string | Name of the deleted item |
|
||||
| ↳ `path_display` | string | Display path |
|
||||
| `deleted` | boolean | Whether the deletion was successful |
|
||||
|
||||
### `dropbox_copy`
|
||||
|
||||
@@ -169,10 +141,6 @@ Copy a file or folder in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadata of the copied item |
|
||||
| ↳ `id` | string | Unique identifier |
|
||||
| ↳ `name` | string | Name of the copied item |
|
||||
| ↳ `path_display` | string | Display path |
|
||||
| ↳ `size` | number | Size in bytes \(files only\) |
|
||||
|
||||
### `dropbox_move`
|
||||
|
||||
@@ -191,10 +159,6 @@ Move or rename a file or folder in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadata of the moved item |
|
||||
| ↳ `id` | string | Unique identifier |
|
||||
| ↳ `name` | string | Name of the moved item |
|
||||
| ↳ `path_display` | string | Display path |
|
||||
| ↳ `size` | number | Size in bytes \(files only\) |
|
||||
|
||||
### `dropbox_get_metadata`
|
||||
|
||||
@@ -213,15 +177,6 @@ Get metadata for a file or folder in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadata for the file or folder |
|
||||
| ↳ `id` | string | Unique identifier |
|
||||
| ↳ `name` | string | Name of the item |
|
||||
| ↳ `path_display` | string | Display path |
|
||||
| ↳ `path_lower` | string | Lowercase path |
|
||||
| ↳ `size` | number | Size in bytes \(files only\) |
|
||||
| ↳ `client_modified` | string | Client modification time |
|
||||
| ↳ `server_modified` | string | Server modification time |
|
||||
| ↳ `rev` | string | Revision identifier |
|
||||
| ↳ `content_hash` | string | Content hash |
|
||||
|
||||
### `dropbox_create_shared_link`
|
||||
|
||||
@@ -241,11 +196,6 @@ Create a shareable link for a file or folder in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sharedLink` | object | The created shared link |
|
||||
| ↳ `url` | string | The shared link URL |
|
||||
| ↳ `name` | string | Name of the shared item |
|
||||
| ↳ `path_lower` | string | Lowercase path of the shared item |
|
||||
| ↳ `expires` | string | Expiration date if set |
|
||||
| ↳ `link_permissions` | object | Permissions for the shared link |
|
||||
|
||||
### `dropbox_search`
|
||||
|
||||
@@ -265,9 +215,5 @@ Search for files and folders in Dropbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matches` | array | Search results |
|
||||
| ↳ `match_type` | object | Type of match: filename, content, or both |
|
||||
| ↳ `metadata` | object | File or folder metadata |
|
||||
| `hasMore` | boolean | Whether there are more results |
|
||||
| `cursor` | string | Cursor for pagination |
|
||||
|
||||
|
||||
|
||||
@@ -59,12 +59,5 @@ Search the web using DuckDuckGo Instant Answers API. Returns instant answers, ab
|
||||
| `answerType` | string | Type of the answer \(e.g., calc, ip, etc.\) |
|
||||
| `type` | string | Response type: A \(article\), D \(disambiguation\), C \(category\), N \(name\), E \(exclusive\) |
|
||||
| `relatedTopics` | array | Array of related topics with URLs and descriptions |
|
||||
| ↳ `FirstURL` | string | URL to the related topic |
|
||||
| ↳ `Text` | string | Description of the related topic |
|
||||
| ↳ `Result` | string | HTML result snippet |
|
||||
| `results` | array | Array of external link results |
|
||||
| ↳ `FirstURL` | string | URL of the result |
|
||||
| ↳ `Text` | string | Description of the result |
|
||||
| ↳ `Result` | string | HTML result snippet |
|
||||
|
||||
|
||||
|
||||
@@ -61,15 +61,6 @@ Search the web using Exa AI. Returns relevant search results with titles, URLs,
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Search results with titles, URLs, and text snippets |
|
||||
| ↳ `title` | string | The title of the search result |
|
||||
| ↳ `url` | string | The URL of the search result |
|
||||
| ↳ `publishedDate` | string | Date when the content was published |
|
||||
| ↳ `author` | string | The author of the content |
|
||||
| ↳ `summary` | string | A brief summary of the content |
|
||||
| ↳ `favicon` | string | URL of the site |
|
||||
| ↳ `image` | string | URL of a representative image from the page |
|
||||
| ↳ `text` | string | Text snippet or full content from the page |
|
||||
| ↳ `score` | number | Relevance score for the search result |
|
||||
|
||||
### `exa_get_contents`
|
||||
|
||||
@@ -93,10 +84,6 @@ Retrieve the contents of webpages using Exa AI. Returns the title, text content,
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Retrieved content from URLs with title, text, and summaries |
|
||||
| ↳ `url` | string | The URL that content was retrieved from |
|
||||
| ↳ `title` | string | The title of the webpage |
|
||||
| ↳ `text` | string | The full text content of the webpage |
|
||||
| ↳ `summary` | string | AI-generated summary of the webpage content |
|
||||
|
||||
### `exa_find_similar_links`
|
||||
|
||||
@@ -122,10 +109,6 @@ Find webpages similar to a given URL using Exa AI. Returns a list of similar lin
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `similarLinks` | array | Similar links found with titles, URLs, and text snippets |
|
||||
| ↳ `title` | string | The title of the similar webpage |
|
||||
| ↳ `url` | string | The URL of the similar webpage |
|
||||
| ↳ `text` | string | Text snippet or full content from the similar webpage |
|
||||
| ↳ `score` | number | Similarity score indicating how similar the page is |
|
||||
|
||||
### `exa_answer`
|
||||
|
||||
@@ -145,9 +128,6 @@ Get an AI-generated answer to a question with citations from the web using Exa A
|
||||
| --------- | ---- | ----------- |
|
||||
| `answer` | string | AI-generated answer to the question |
|
||||
| `citations` | array | Sources and citations for the answer |
|
||||
| ↳ `title` | string | The title of the cited source |
|
||||
| ↳ `url` | string | The URL of the cited source |
|
||||
| ↳ `text` | string | Relevant text from the cited source |
|
||||
|
||||
### `exa_research`
|
||||
|
||||
|
||||
@@ -97,21 +97,6 @@ Crawl entire websites and extract structured content from all accessible pages
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pages` | array | Array of crawled pages with their content and metadata |
|
||||
| ↳ `markdown` | string | Page content in markdown format |
|
||||
| ↳ `html` | string | Page HTML content |
|
||||
| ↳ `metadata` | object | Page metadata |
|
||||
| ↳ `title` | string | Page title |
|
||||
| ↳ `description` | string | Page description |
|
||||
| ↳ `language` | string | Page language |
|
||||
| ↳ `sourceURL` | string | Source URL of the page |
|
||||
| ↳ `statusCode` | number | HTTP status code |
|
||||
| ↳ `title` | string | Page title |
|
||||
| ↳ `description` | string | Page description |
|
||||
| ↳ `language` | string | Page language |
|
||||
| ↳ `sourceURL` | string | Source URL of the page |
|
||||
| ↳ `statusCode` | number | HTTP status code |
|
||||
| `total` | number | Total number of pages found during crawl |
|
||||
| `creditsUsed` | number | Number of credits consumed by the crawl operation |
|
||||
|
||||
### `firecrawl_map`
|
||||
|
||||
|
||||
@@ -75,18 +75,6 @@ Get a single transcript with full details including summary, action items, and a
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | The transcript with full details |
|
||||
| ↳ `id` | string | Transcript ID |
|
||||
| ↳ `title` | string | Meeting title |
|
||||
| ↳ `date` | number | Meeting timestamp |
|
||||
| ↳ `duration` | number | Meeting duration in seconds |
|
||||
| ↳ `transcript_url` | string | URL to view transcript |
|
||||
| ↳ `audio_url` | string | URL to audio recording |
|
||||
| ↳ `host_email` | string | Host email address |
|
||||
| ↳ `participants` | array | List of participant emails |
|
||||
| ↳ `speakers` | array | List of speakers |
|
||||
| ↳ `sentences` | array | Transcript sentences |
|
||||
| ↳ `summary` | object | Meeting summary and action items |
|
||||
| ↳ `analytics` | object | Meeting analytics and sentiment |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
@@ -104,15 +92,6 @@ Get user information from Fireflies.ai. Returns current user if no ID specified.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | User information |
|
||||
| ↳ `user_id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `integrations` | array | Connected integrations |
|
||||
| ↳ `is_admin` | boolean | Whether user is admin |
|
||||
| ↳ `minutes_consumed` | number | Total minutes transcribed |
|
||||
| ↳ `num_transcripts` | number | Number of transcripts |
|
||||
| ↳ `recent_transcript` | string | Most recent transcript ID |
|
||||
| ↳ `recent_meeting` | string | Most recent meeting date |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
@@ -214,9 +193,6 @@ Create a soundbite/highlight from a specific time range in a transcript
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | Created bite details |
|
||||
| ↳ `id` | string | Bite ID |
|
||||
| ↳ `name` | string | Bite name |
|
||||
| ↳ `status` | string | Processing status |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
|
||||
@@ -87,10 +87,6 @@ Read content from a Google Docs document
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Extracted document text content |
|
||||
| `metadata` | json | Document metadata including ID, title, and URL |
|
||||
| ↳ `documentId` | string | Google Docs document ID |
|
||||
| ↳ `title` | string | Document title |
|
||||
| ↳ `mimeType` | string | Document MIME type |
|
||||
| ↳ `url` | string | Document URL |
|
||||
|
||||
### `google_docs_write`
|
||||
|
||||
@@ -109,10 +105,6 @@ Write or update content in a Google Docs document
|
||||
| --------- | ---- | ----------- |
|
||||
| `updatedContent` | boolean | Indicates if document content was updated successfully |
|
||||
| `metadata` | json | Updated document metadata including ID, title, and URL |
|
||||
| ↳ `documentId` | string | Google Docs document ID |
|
||||
| ↳ `title` | string | Document title |
|
||||
| ↳ `mimeType` | string | Document MIME type |
|
||||
| ↳ `url` | string | Document URL |
|
||||
|
||||
### `google_docs_create`
|
||||
|
||||
@@ -132,9 +124,5 @@ Create a new Google Docs document
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | json | Created document metadata including ID, title, and URL |
|
||||
| ↳ `documentId` | string | Google Docs document ID |
|
||||
| ↳ `title` | string | Document title |
|
||||
| ↳ `mimeType` | string | Document MIME type |
|
||||
| ↳ `url` | string | Document URL |
|
||||
|
||||
|
||||
|
||||
@@ -66,58 +66,6 @@ Upload a file to Google Drive with complete metadata returned
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | Complete uploaded file metadata from Google Drive |
|
||||
| ↳ `id` | string | Google Drive file ID |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimeType` | string | MIME type |
|
||||
| ↳ `kind` | string | Resource type identifier |
|
||||
| ↳ `description` | string | File description |
|
||||
| ↳ `originalFilename` | string | Original uploaded filename |
|
||||
| ↳ `fullFileExtension` | string | Full file extension |
|
||||
| ↳ `fileExtension` | string | File extension |
|
||||
| ↳ `owners` | json | List of file owners |
|
||||
| ↳ `permissions` | json | File permissions |
|
||||
| ↳ `permissionIds` | json | Permission IDs |
|
||||
| ↳ `shared` | boolean | Whether file is shared |
|
||||
| ↳ `ownedByMe` | boolean | Whether owned by current user |
|
||||
| ↳ `writersCanShare` | boolean | Whether writers can share |
|
||||
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
|
||||
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
|
||||
| ↳ `sharingUser` | json | User who shared the file |
|
||||
| ↳ `starred` | boolean | Whether file is starred |
|
||||
| ↳ `trashed` | boolean | Whether file is in trash |
|
||||
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
|
||||
| ↳ `appProperties` | json | App-specific properties |
|
||||
| ↳ `createdTime` | string | File creation time |
|
||||
| ↳ `modifiedTime` | string | Last modification time |
|
||||
| ↳ `modifiedByMeTime` | string | When modified by current user |
|
||||
| ↳ `viewedByMeTime` | string | When last viewed by current user |
|
||||
| ↳ `sharedWithMeTime` | string | When shared with current user |
|
||||
| ↳ `lastModifyingUser` | json | User who last modified the file |
|
||||
| ↳ `viewedByMe` | boolean | Whether viewed by current user |
|
||||
| ↳ `modifiedByMe` | boolean | Whether modified by current user |
|
||||
| ↳ `webViewLink` | string | URL to view in browser |
|
||||
| ↳ `webContentLink` | string | Direct download URL |
|
||||
| ↳ `iconLink` | string | URL to file icon |
|
||||
| ↳ `thumbnailLink` | string | URL to thumbnail |
|
||||
| ↳ `exportLinks` | json | Export format links |
|
||||
| ↳ `size` | string | File size in bytes |
|
||||
| ↳ `quotaBytesUsed` | string | Storage quota used |
|
||||
| ↳ `md5Checksum` | string | MD5 hash |
|
||||
| ↳ `sha1Checksum` | string | SHA-1 hash |
|
||||
| ↳ `sha256Checksum` | string | SHA-256 hash |
|
||||
| ↳ `parents` | json | Parent folder IDs |
|
||||
| ↳ `spaces` | json | Spaces containing file |
|
||||
| ↳ `driveId` | string | Shared drive ID |
|
||||
| ↳ `capabilities` | json | User capabilities on file |
|
||||
| ↳ `version` | string | Version number |
|
||||
| ↳ `headRevisionId` | string | Head revision ID |
|
||||
| ↳ `hasThumbnail` | boolean | Whether has thumbnail |
|
||||
| ↳ `thumbnailVersion` | string | Thumbnail version |
|
||||
| ↳ `imageMediaMetadata` | json | Image-specific metadata |
|
||||
| ↳ `videoMediaMetadata` | json | Video-specific metadata |
|
||||
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
|
||||
| ↳ `contentRestrictions` | json | Content restrictions |
|
||||
| ↳ `linkShareMetadata` | json | Link share metadata |
|
||||
|
||||
### `google_drive_create_folder`
|
||||
|
||||
@@ -136,43 +84,6 @@ Create a new folder in Google Drive with complete metadata returned
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | Complete created folder metadata from Google Drive |
|
||||
| ↳ `id` | string | Google Drive folder ID |
|
||||
| ↳ `name` | string | Folder name |
|
||||
| ↳ `mimeType` | string | MIME type \(application/vnd.google-apps.folder\) |
|
||||
| ↳ `kind` | string | Resource type identifier |
|
||||
| ↳ `description` | string | Folder description |
|
||||
| ↳ `owners` | json | List of folder owners |
|
||||
| ↳ `permissions` | json | Folder permissions |
|
||||
| ↳ `permissionIds` | json | Permission IDs |
|
||||
| ↳ `shared` | boolean | Whether folder is shared |
|
||||
| ↳ `ownedByMe` | boolean | Whether owned by current user |
|
||||
| ↳ `writersCanShare` | boolean | Whether writers can share |
|
||||
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
|
||||
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
|
||||
| ↳ `sharingUser` | json | User who shared the folder |
|
||||
| ↳ `starred` | boolean | Whether folder is starred |
|
||||
| ↳ `trashed` | boolean | Whether folder is in trash |
|
||||
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
|
||||
| ↳ `appProperties` | json | App-specific properties |
|
||||
| ↳ `folderColorRgb` | string | Folder color |
|
||||
| ↳ `createdTime` | string | Folder creation time |
|
||||
| ↳ `modifiedTime` | string | Last modification time |
|
||||
| ↳ `modifiedByMeTime` | string | When modified by current user |
|
||||
| ↳ `viewedByMeTime` | string | When last viewed by current user |
|
||||
| ↳ `sharedWithMeTime` | string | When shared with current user |
|
||||
| ↳ `lastModifyingUser` | json | User who last modified the folder |
|
||||
| ↳ `viewedByMe` | boolean | Whether viewed by current user |
|
||||
| ↳ `modifiedByMe` | boolean | Whether modified by current user |
|
||||
| ↳ `webViewLink` | string | URL to view in browser |
|
||||
| ↳ `iconLink` | string | URL to folder icon |
|
||||
| ↳ `parents` | json | Parent folder IDs |
|
||||
| ↳ `spaces` | json | Spaces containing folder |
|
||||
| ↳ `driveId` | string | Shared drive ID |
|
||||
| ↳ `capabilities` | json | User capabilities on folder |
|
||||
| ↳ `version` | string | Version number |
|
||||
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
|
||||
| ↳ `contentRestrictions` | json | Content restrictions |
|
||||
| ↳ `linkShareMetadata` | json | Link share metadata |
|
||||
|
||||
### `google_drive_download`
|
||||
|
||||
@@ -192,64 +103,6 @@ Download a file from Google Drive with complete metadata (exports Google Workspa
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | Downloaded file data |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimeType` | string | MIME type of the file |
|
||||
| ↳ `data` | string | File content as base64-encoded string |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| `metadata` | object | Complete file metadata from Google Drive |
|
||||
| ↳ `id` | string | Google Drive file ID |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimeType` | string | MIME type |
|
||||
| ↳ `kind` | string | Resource type identifier |
|
||||
| ↳ `description` | string | File description |
|
||||
| ↳ `originalFilename` | string | Original uploaded filename |
|
||||
| ↳ `fullFileExtension` | string | Full file extension |
|
||||
| ↳ `fileExtension` | string | File extension |
|
||||
| ↳ `owners` | json | List of file owners |
|
||||
| ↳ `permissions` | json | File permissions |
|
||||
| ↳ `permissionIds` | json | Permission IDs |
|
||||
| ↳ `shared` | boolean | Whether file is shared |
|
||||
| ↳ `ownedByMe` | boolean | Whether owned by current user |
|
||||
| ↳ `writersCanShare` | boolean | Whether writers can share |
|
||||
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
|
||||
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
|
||||
| ↳ `sharingUser` | json | User who shared the file |
|
||||
| ↳ `starred` | boolean | Whether file is starred |
|
||||
| ↳ `trashed` | boolean | Whether file is in trash |
|
||||
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
|
||||
| ↳ `appProperties` | json | App-specific properties |
|
||||
| ↳ `createdTime` | string | File creation time |
|
||||
| ↳ `modifiedTime` | string | Last modification time |
|
||||
| ↳ `modifiedByMeTime` | string | When modified by current user |
|
||||
| ↳ `viewedByMeTime` | string | When last viewed by current user |
|
||||
| ↳ `sharedWithMeTime` | string | When shared with current user |
|
||||
| ↳ `lastModifyingUser` | json | User who last modified the file |
|
||||
| ↳ `viewedByMe` | boolean | Whether viewed by current user |
|
||||
| ↳ `modifiedByMe` | boolean | Whether modified by current user |
|
||||
| ↳ `webViewLink` | string | URL to view in browser |
|
||||
| ↳ `webContentLink` | string | Direct download URL |
|
||||
| ↳ `iconLink` | string | URL to file icon |
|
||||
| ↳ `thumbnailLink` | string | URL to thumbnail |
|
||||
| ↳ `exportLinks` | json | Export format links |
|
||||
| ↳ `size` | string | File size in bytes |
|
||||
| ↳ `quotaBytesUsed` | string | Storage quota used |
|
||||
| ↳ `md5Checksum` | string | MD5 hash |
|
||||
| ↳ `sha1Checksum` | string | SHA-1 hash |
|
||||
| ↳ `sha256Checksum` | string | SHA-256 hash |
|
||||
| ↳ `parents` | json | Parent folder IDs |
|
||||
| ↳ `spaces` | json | Spaces containing file |
|
||||
| ↳ `driveId` | string | Shared drive ID |
|
||||
| ↳ `capabilities` | json | User capabilities on file |
|
||||
| ↳ `version` | string | Version number |
|
||||
| ↳ `headRevisionId` | string | Head revision ID |
|
||||
| ↳ `hasThumbnail` | boolean | Whether has thumbnail |
|
||||
| ↳ `thumbnailVersion` | string | Thumbnail version |
|
||||
| ↳ `imageMediaMetadata` | json | Image-specific metadata |
|
||||
| ↳ `videoMediaMetadata` | json | Video-specific metadata |
|
||||
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
|
||||
| ↳ `contentRestrictions` | json | Content restrictions |
|
||||
| ↳ `linkShareMetadata` | json | Link share metadata |
|
||||
| ↳ `revisions` | json | File revision history \(first 100 revisions only\) |
|
||||
|
||||
### `google_drive_list`
|
||||
|
||||
@@ -270,58 +123,5 @@ List files and folders in Google Drive with complete metadata
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Array of file metadata objects from Google Drive |
|
||||
| ↳ `id` | string | Google Drive file ID |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimeType` | string | MIME type |
|
||||
| ↳ `kind` | string | Resource type identifier |
|
||||
| ↳ `description` | string | File description |
|
||||
| ↳ `originalFilename` | string | Original uploaded filename |
|
||||
| ↳ `fullFileExtension` | string | Full file extension |
|
||||
| ↳ `fileExtension` | string | File extension |
|
||||
| ↳ `owners` | json | List of file owners |
|
||||
| ↳ `permissions` | json | File permissions |
|
||||
| ↳ `permissionIds` | json | Permission IDs |
|
||||
| ↳ `shared` | boolean | Whether file is shared |
|
||||
| ↳ `ownedByMe` | boolean | Whether owned by current user |
|
||||
| ↳ `writersCanShare` | boolean | Whether writers can share |
|
||||
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
|
||||
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
|
||||
| ↳ `sharingUser` | json | User who shared the file |
|
||||
| ↳ `starred` | boolean | Whether file is starred |
|
||||
| ↳ `trashed` | boolean | Whether file is in trash |
|
||||
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
|
||||
| ↳ `appProperties` | json | App-specific properties |
|
||||
| ↳ `createdTime` | string | File creation time |
|
||||
| ↳ `modifiedTime` | string | Last modification time |
|
||||
| ↳ `modifiedByMeTime` | string | When modified by current user |
|
||||
| ↳ `viewedByMeTime` | string | When last viewed by current user |
|
||||
| ↳ `sharedWithMeTime` | string | When shared with current user |
|
||||
| ↳ `lastModifyingUser` | json | User who last modified the file |
|
||||
| ↳ `viewedByMe` | boolean | Whether viewed by current user |
|
||||
| ↳ `modifiedByMe` | boolean | Whether modified by current user |
|
||||
| ↳ `webViewLink` | string | URL to view in browser |
|
||||
| ↳ `webContentLink` | string | Direct download URL |
|
||||
| ↳ `iconLink` | string | URL to file icon |
|
||||
| ↳ `thumbnailLink` | string | URL to thumbnail |
|
||||
| ↳ `exportLinks` | json | Export format links |
|
||||
| ↳ `size` | string | File size in bytes |
|
||||
| ↳ `quotaBytesUsed` | string | Storage quota used |
|
||||
| ↳ `md5Checksum` | string | MD5 hash |
|
||||
| ↳ `sha1Checksum` | string | SHA-1 hash |
|
||||
| ↳ `sha256Checksum` | string | SHA-256 hash |
|
||||
| ↳ `parents` | json | Parent folder IDs |
|
||||
| ↳ `spaces` | json | Spaces containing file |
|
||||
| ↳ `driveId` | string | Shared drive ID |
|
||||
| ↳ `capabilities` | json | User capabilities on file |
|
||||
| ↳ `version` | string | Version number |
|
||||
| ↳ `headRevisionId` | string | Head revision ID |
|
||||
| ↳ `hasThumbnail` | boolean | Whether has thumbnail |
|
||||
| ↳ `thumbnailVersion` | string | Thumbnail version |
|
||||
| ↳ `imageMediaMetadata` | json | Image-specific metadata |
|
||||
| ↳ `videoMediaMetadata` | json | Video-specific metadata |
|
||||
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
|
||||
| ↳ `contentRestrictions` | json | Content restrictions |
|
||||
| ↳ `linkShareMetadata` | json | Link share metadata |
|
||||
| `nextPageToken` | string | Token for fetching the next page of results |
|
||||
|
||||
|
||||
|
||||
@@ -63,15 +63,5 @@ Search the web with the Custom Search API
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Array of search results from Google |
|
||||
| ↳ `title` | string | Title of the search result |
|
||||
| ↳ `link` | string | URL of the search result |
|
||||
| ↳ `snippet` | string | Snippet or description of the search result |
|
||||
| ↳ `displayLink` | string | Display URL |
|
||||
| ↳ `pagemap` | object | Additional page metadata |
|
||||
| `searchInformation` | object | Information about the search query and results |
|
||||
| ↳ `totalResults` | string | Total number of search results available |
|
||||
| ↳ `searchTime` | number | Time taken to perform the search in seconds |
|
||||
| ↳ `formattedSearchTime` | string | Formatted search time for display |
|
||||
| ↳ `formattedTotalResults` | string | Formatted total results count for display |
|
||||
|
||||
|
||||
|
||||
@@ -100,8 +100,6 @@ Read data from a Google Sheets spreadsheet
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | json | Sheet data including range and cell values |
|
||||
| `metadata` | json | Spreadsheet metadata including ID and URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
|
||||
| ↳ `spreadsheetUrl` | string | Spreadsheet URL |
|
||||
|
||||
### `google_sheets_write`
|
||||
|
||||
@@ -126,8 +124,6 @@ Write data to a Google Sheets spreadsheet
|
||||
| `updatedColumns` | number | Number of columns updated |
|
||||
| `updatedCells` | number | Number of cells updated |
|
||||
| `metadata` | json | Spreadsheet metadata including ID and URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
|
||||
| ↳ `spreadsheetUrl` | string | Spreadsheet URL |
|
||||
|
||||
### `google_sheets_update`
|
||||
|
||||
@@ -152,8 +148,6 @@ Update data in a Google Sheets spreadsheet
|
||||
| `updatedColumns` | number | Number of columns updated |
|
||||
| `updatedCells` | number | Number of cells updated |
|
||||
| `metadata` | json | Spreadsheet metadata including ID and URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
|
||||
| ↳ `spreadsheetUrl` | string | Spreadsheet URL |
|
||||
|
||||
### `google_sheets_append`
|
||||
|
||||
@@ -180,7 +174,5 @@ Append data to the end of a Google Sheets spreadsheet
|
||||
| `updatedColumns` | number | Number of columns updated |
|
||||
| `updatedCells` | number | Number of cells updated |
|
||||
| `metadata` | json | Spreadsheet metadata including ID and URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
|
||||
| ↳ `spreadsheetUrl` | string | Spreadsheet URL |
|
||||
|
||||
|
||||
|
||||
@@ -80,12 +80,6 @@ Search and list all dashboards
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `dashboards` | array | List of dashboard search results |
|
||||
| ↳ `id` | number | Dashboard ID |
|
||||
| ↳ `uid` | string | Dashboard UID |
|
||||
| ↳ `title` | string | Dashboard title |
|
||||
| ↳ `url` | string | Dashboard URL path |
|
||||
| ↳ `tags` | array | Dashboard tags |
|
||||
| ↳ `folderTitle` | string | Parent folder title |
|
||||
|
||||
### `grafana_create_dashboard`
|
||||
|
||||
@@ -188,13 +182,6 @@ List all alert rules in the Grafana instance
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `rules` | array | List of alert rules |
|
||||
| ↳ `uid` | string | Alert rule UID |
|
||||
| ↳ `title` | string | Alert rule title |
|
||||
| ↳ `condition` | string | Alert condition |
|
||||
| ↳ `folderUID` | string | Parent folder UID |
|
||||
| ↳ `ruleGroup` | string | Rule group name |
|
||||
| ↳ `noDataState` | string | State when no data is returned |
|
||||
| ↳ `execErrState` | string | State on execution error |
|
||||
|
||||
### `grafana_get_alert_rule`
|
||||
|
||||
@@ -323,10 +310,6 @@ List all alert notification contact points
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contactPoints` | array | List of contact points |
|
||||
| ↳ `uid` | string | Contact point UID |
|
||||
| ↳ `name` | string | Contact point name |
|
||||
| ↳ `type` | string | Notification type \(email, slack, etc.\) |
|
||||
| ↳ `settings` | object | Type-specific settings |
|
||||
|
||||
### `grafana_create_annotation`
|
||||
|
||||
@@ -377,19 +360,6 @@ Query annotations by time range, dashboard, or tags
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `annotations` | array | List of annotations |
|
||||
| ↳ `id` | number | Annotation ID |
|
||||
| ↳ `dashboardId` | number | Dashboard ID |
|
||||
| ↳ `dashboardUID` | string | Dashboard UID |
|
||||
| ↳ `created` | number | Creation timestamp in epoch ms |
|
||||
| ↳ `updated` | number | Last update timestamp in epoch ms |
|
||||
| ↳ `time` | number | Start time in epoch ms |
|
||||
| ↳ `timeEnd` | number | End time in epoch ms |
|
||||
| ↳ `text` | string | Annotation text |
|
||||
| ↳ `tags` | array | Annotation tags |
|
||||
| ↳ `login` | string | Login of the user who created the annotation |
|
||||
| ↳ `email` | string | Email of the user who created the annotation |
|
||||
| ↳ `avatarUrl` | string | Avatar URL of the user |
|
||||
| ↳ `data` | json | Additional annotation data object from Grafana |
|
||||
|
||||
### `grafana_update_annotation`
|
||||
|
||||
@@ -451,12 +421,6 @@ List all data sources configured in Grafana
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `dataSources` | array | List of data sources |
|
||||
| ↳ `id` | number | Data source ID |
|
||||
| ↳ `uid` | string | Data source UID |
|
||||
| ↳ `name` | string | Data source name |
|
||||
| ↳ `type` | string | Data source type \(prometheus, mysql, etc.\) |
|
||||
| ↳ `url` | string | Data source URL |
|
||||
| ↳ `isDefault` | boolean | Whether this is the default data source |
|
||||
|
||||
### `grafana_get_data_source`
|
||||
|
||||
@@ -503,19 +467,6 @@ List all folders in Grafana
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `folders` | array | List of folders |
|
||||
| ↳ `id` | number | Folder ID |
|
||||
| ↳ `uid` | string | Folder UID |
|
||||
| ↳ `title` | string | Folder title |
|
||||
| ↳ `hasAcl` | boolean | Whether the folder has custom ACL permissions |
|
||||
| ↳ `canSave` | boolean | Whether the current user can save the folder |
|
||||
| ↳ `canEdit` | boolean | Whether the current user can edit the folder |
|
||||
| ↳ `canAdmin` | boolean | Whether the current user has admin rights |
|
||||
| ↳ `canDelete` | boolean | Whether the current user can delete the folder |
|
||||
| ↳ `createdBy` | string | Username of who created the folder |
|
||||
| ↳ `created` | string | Timestamp when the folder was created |
|
||||
| ↳ `updatedBy` | string | Username of who last updated the folder |
|
||||
| ↳ `updated` | string | Timestamp when the folder was last updated |
|
||||
| ↳ `version` | number | Version number of the folder |
|
||||
|
||||
### `grafana_create_folder`
|
||||
|
||||
|
||||
@@ -64,19 +64,6 @@ List recordings from Grain with optional filters and pagination
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `recordings` | array | Array of recording objects |
|
||||
| ↳ `id` | string | Recording UUID |
|
||||
| ↳ `title` | string | Recording title |
|
||||
| ↳ `start_datetime` | string | ISO8601 start timestamp |
|
||||
| ↳ `end_datetime` | string | ISO8601 end timestamp |
|
||||
| ↳ `duration_ms` | number | Duration in milliseconds |
|
||||
| ↳ `media_type` | string | audio, transcript, or video |
|
||||
| ↳ `source` | string | Recording source |
|
||||
| ↳ `url` | string | URL to view in Grain |
|
||||
| ↳ `thumbnail_url` | string | Thumbnail URL |
|
||||
| ↳ `tags` | array | Array of tags |
|
||||
| ↳ `teams` | array | Teams the recording belongs to |
|
||||
| ↳ `meeting_type` | object | Meeting type info |
|
||||
| `cursor` | string | Cursor for next page \(null if no more\) |
|
||||
|
||||
### `grain_get_recording`
|
||||
|
||||
@@ -132,11 +119,6 @@ Get the full transcript of a recording
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | array | Array of transcript sections |
|
||||
| ↳ `participant_id` | string | Participant UUID \(nullable\) |
|
||||
| ↳ `speaker` | string | Speaker name |
|
||||
| ↳ `start` | number | Start timestamp in ms |
|
||||
| ↳ `end` | number | End timestamp in ms |
|
||||
| ↳ `text` | string | Transcript text |
|
||||
|
||||
### `grain_list_teams`
|
||||
|
||||
@@ -153,8 +135,6 @@ List all teams in the workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `teams` | array | Array of team objects |
|
||||
| ↳ `id` | string | Team UUID |
|
||||
| ↳ `name` | string | Team name |
|
||||
|
||||
### `grain_list_meeting_types`
|
||||
|
||||
@@ -171,9 +151,6 @@ List all meeting types in the workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `meeting_types` | array | Array of meeting type objects |
|
||||
| ↳ `id` | string | Meeting type UUID |
|
||||
| ↳ `name` | string | Meeting type name |
|
||||
| ↳ `scope` | string | internal or external |
|
||||
|
||||
### `grain_create_hook`
|
||||
|
||||
@@ -222,13 +199,6 @@ List all webhooks for the account
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `hooks` | array | Array of hook objects |
|
||||
| ↳ `id` | string | Hook UUID |
|
||||
| ↳ `enabled` | boolean | Whether hook is active |
|
||||
| ↳ `hook_url` | string | Webhook URL |
|
||||
| ↳ `hook_type` | string | Type: recording_added or upload_status |
|
||||
| ↳ `filter` | object | Applied filters |
|
||||
| ↳ `include` | object | Included fields |
|
||||
| ↳ `inserted_at` | string | Creation timestamp |
|
||||
|
||||
### `grain_delete_hook`
|
||||
|
||||
|
||||
@@ -59,14 +59,6 @@ Query repositories in natural language and get answers with relevant code refere
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | AI-generated answer to the query |
|
||||
| `sources` | array | Relevant code references that support the answer |
|
||||
| ↳ `repository` | string | Repository name \(owner/repo\) |
|
||||
| ↳ `remote` | string | Git remote \(github/gitlab\) |
|
||||
| ↳ `branch` | string | Branch name |
|
||||
| ↳ `filepath` | string | Path to the file |
|
||||
| ↳ `linestart` | number | Starting line number |
|
||||
| ↳ `lineend` | number | Ending line number |
|
||||
| ↳ `summary` | string | Summary of the code section |
|
||||
| ↳ `distance` | number | Similarity score \(lower = more relevant\) |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
@@ -88,14 +80,6 @@ Search repositories in natural language and get relevant code references without
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | Relevant code references matching the search query |
|
||||
| ↳ `repository` | string | Repository name \(owner/repo\) |
|
||||
| ↳ `remote` | string | Git remote \(github/gitlab\) |
|
||||
| ↳ `branch` | string | Branch name |
|
||||
| ↳ `filepath` | string | Path to the file |
|
||||
| ↳ `linestart` | number | Starting line number |
|
||||
| ↳ `lineend` | number | Ending line number |
|
||||
| ↳ `summary` | string | Summary of the code section |
|
||||
| ↳ `distance` | number | Similarity score \(lower = more relevant\) |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
|
||||
@@ -54,14 +54,5 @@ Generate completions using Hugging Face Inference API
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Chat completion results |
|
||||
| ↳ `content` | string | Generated text content |
|
||||
| ↳ `model` | string | Model used for generation |
|
||||
| ↳ `usage` | object | Token usage information |
|
||||
| ↳ `prompt_tokens` | number | Number of tokens in the prompt |
|
||||
| ↳ `completion_tokens` | number | Number of tokens in the completion |
|
||||
| ↳ `total_tokens` | number | Total number of tokens used |
|
||||
| ↳ `prompt_tokens` | number | Number of tokens in the prompt |
|
||||
| ↳ `completion_tokens` | number | Number of tokens in the completion |
|
||||
| ↳ `total_tokens` | number | Total number of tokens used |
|
||||
|
||||
|
||||
|
||||
@@ -58,10 +58,5 @@ Generate images using OpenAI
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Generated image data |
|
||||
| ↳ `content` | string | Image URL or identifier |
|
||||
| ↳ `image` | string | Base64 encoded image data |
|
||||
| ↳ `metadata` | object | Image generation metadata |
|
||||
| ↳ `model` | string | Model used for image generation |
|
||||
| ↳ `model` | string | Model used for image generation |
|
||||
|
||||
|
||||
|
||||
@@ -57,35 +57,6 @@ List incidents from incident.io. Returns a list of incidents with their details
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incidents` | array | List of incidents |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `summary` | string | Brief summary of the incident |
|
||||
| ↳ `description` | string | Detailed description of the incident |
|
||||
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
|
||||
| ↳ `call_url` | string | URL for the incident call/bridge |
|
||||
| ↳ `severity` | object | Severity of the incident |
|
||||
| ↳ `id` | string | Severity ID |
|
||||
| ↳ `name` | string | Severity name |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `status` | object | Current status of the incident |
|
||||
| ↳ `id` | string | Status ID |
|
||||
| ↳ `name` | string | Status name |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `incident_type` | object | Type of the incident |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_url` | string | URL to the incident |
|
||||
| ↳ `slack_channel_id` | string | Associated Slack channel ID |
|
||||
| ↳ `slack_channel_name` | string | Associated Slack channel name |
|
||||
| ↳ `visibility` | string | Incident visibility |
|
||||
| `pagination_meta` | object | Pagination metadata |
|
||||
| ↳ `after` | string | Cursor for the next page |
|
||||
| ↳ `page_size` | number | Number of items per page |
|
||||
| ↳ `total_record_count` | number | Total number of records available |
|
||||
|
||||
### `incidentio_incidents_create`
|
||||
|
||||
@@ -109,31 +80,6 @@ Create a new incident in incident.io. Requires idempotency_key, severity_id, and
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident` | object | The created incident object |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `summary` | string | Brief summary of the incident |
|
||||
| ↳ `description` | string | Detailed description of the incident |
|
||||
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
|
||||
| ↳ `call_url` | string | URL for the incident call/bridge |
|
||||
| ↳ `severity` | object | Severity of the incident |
|
||||
| ↳ `id` | string | Severity ID |
|
||||
| ↳ `name` | string | Severity name |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `status` | object | Current status of the incident |
|
||||
| ↳ `id` | string | Status ID |
|
||||
| ↳ `name` | string | Status name |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `incident_type` | object | Type of the incident |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_url` | string | URL to the incident |
|
||||
| ↳ `slack_channel_id` | string | Associated Slack channel ID |
|
||||
| ↳ `slack_channel_name` | string | Associated Slack channel name |
|
||||
| ↳ `visibility` | string | Incident visibility |
|
||||
|
||||
### `incidentio_incidents_show`
|
||||
|
||||
@@ -151,34 +97,6 @@ Retrieve detailed information about a specific incident from incident.io by its
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident` | object | Detailed incident information |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `summary` | string | Brief summary of the incident |
|
||||
| ↳ `description` | string | Detailed description of the incident |
|
||||
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
|
||||
| ↳ `call_url` | string | URL for the incident call/bridge |
|
||||
| ↳ `permalink` | string | Permanent link to the incident |
|
||||
| ↳ `severity` | object | Severity of the incident |
|
||||
| ↳ `id` | string | Severity ID |
|
||||
| ↳ `name` | string | Severity name |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `status` | object | Current status of the incident |
|
||||
| ↳ `id` | string | Status ID |
|
||||
| ↳ `name` | string | Status name |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `incident_type` | object | Type of the incident |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_url` | string | URL to the incident |
|
||||
| ↳ `slack_channel_id` | string | Associated Slack channel ID |
|
||||
| ↳ `slack_channel_name` | string | Associated Slack channel name |
|
||||
| ↳ `visibility` | string | Incident visibility |
|
||||
| ↳ `custom_field_entries` | array | Custom field values for the incident |
|
||||
| ↳ `incident_role_assignments` | array | Role assignments for the incident |
|
||||
|
||||
### `incidentio_incidents_update`
|
||||
|
||||
@@ -202,31 +120,6 @@ Update an existing incident in incident.io. Can update name, summary, severity,
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident` | object | The updated incident object |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `summary` | string | Brief summary of the incident |
|
||||
| ↳ `description` | string | Detailed description of the incident |
|
||||
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
|
||||
| ↳ `call_url` | string | URL for the incident call/bridge |
|
||||
| ↳ `severity` | object | Severity of the incident |
|
||||
| ↳ `id` | string | Severity ID |
|
||||
| ↳ `name` | string | Severity name |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `status` | object | Current status of the incident |
|
||||
| ↳ `id` | string | Status ID |
|
||||
| ↳ `name` | string | Status name |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `incident_type` | object | Type of the incident |
|
||||
| ↳ `id` | string | Type ID |
|
||||
| ↳ `name` | string | Type name |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_url` | string | URL to the incident |
|
||||
| ↳ `slack_channel_id` | string | Associated Slack channel ID |
|
||||
| ↳ `slack_channel_name` | string | Associated Slack channel name |
|
||||
| ↳ `visibility` | string | Incident visibility |
|
||||
|
||||
### `incidentio_actions_list`
|
||||
|
||||
@@ -245,31 +138,6 @@ List actions from incident.io. Optionally filter by incident ID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `actions` | array | List of actions |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `description` | string | Action description |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `status` | string | Action status |
|
||||
| ↳ `due_at` | string | Due date/time |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_id` | string | Associated incident ID |
|
||||
| ↳ `creator` | object | User who created the action |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `completed_at` | string | Completion timestamp |
|
||||
| ↳ `external_issue_reference` | object | External issue tracking reference |
|
||||
| ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) |
|
||||
| ↳ `issue_name` | string | Issue identifier |
|
||||
| ↳ `issue_permalink` | string | URL to the external issue |
|
||||
| ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) |
|
||||
| ↳ `issue_name` | string | Issue identifier |
|
||||
| ↳ `issue_permalink` | string | URL to the external issue |
|
||||
|
||||
### `incidentio_actions_show`
|
||||
|
||||
@@ -287,31 +155,6 @@ Get detailed information about a specific action from incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `action` | object | Action details |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `description` | string | Action description |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `status` | string | Action status |
|
||||
| ↳ `due_at` | string | Due date/time |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_id` | string | Associated incident ID |
|
||||
| ↳ `creator` | object | User who created the action |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `completed_at` | string | Completion timestamp |
|
||||
| ↳ `external_issue_reference` | object | External issue tracking reference |
|
||||
| ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) |
|
||||
| ↳ `issue_name` | string | Issue identifier |
|
||||
| ↳ `issue_permalink` | string | URL to the external issue |
|
||||
| ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) |
|
||||
| ↳ `issue_name` | string | Issue identifier |
|
||||
| ↳ `issue_permalink` | string | URL to the external issue |
|
||||
|
||||
### `incidentio_follow_ups_list`
|
||||
|
||||
@@ -330,38 +173,6 @@ List follow-ups from incident.io. Optionally filter by incident ID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `follow_ups` | array | List of follow-ups |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `title` | string | Follow-up title |
|
||||
| ↳ `description` | string | Priority description |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `status` | string | Follow-up status |
|
||||
| ↳ `priority` | object | Follow-up priority |
|
||||
| ↳ `id` | string | Priority ID |
|
||||
| ↳ `name` | string | Priority name |
|
||||
| ↳ `description` | string | Priority description |
|
||||
| ↳ `rank` | number | Priority rank |
|
||||
| ↳ `rank` | number | Priority rank |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_id` | string | Associated incident ID |
|
||||
| ↳ `creator` | object | User who created the follow-up |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `completed_at` | string | Completion timestamp |
|
||||
| ↳ `labels` | array | Labels associated with the follow-up |
|
||||
| ↳ `external_issue_reference` | object | External issue tracking reference |
|
||||
| ↳ `provider` | string | External provider name |
|
||||
| ↳ `issue_name` | string | External issue name or ID |
|
||||
| ↳ `issue_permalink` | string | Permalink to external issue |
|
||||
| ↳ `provider` | string | External provider name |
|
||||
| ↳ `issue_name` | string | External issue name or ID |
|
||||
| ↳ `issue_permalink` | string | Permalink to external issue |
|
||||
|
||||
### `incidentio_follow_ups_show`
|
||||
|
||||
@@ -379,38 +190,6 @@ Get detailed information about a specific follow-up from incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `follow_up` | object | Follow-up details |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `title` | string | Follow-up title |
|
||||
| ↳ `description` | string | Priority description |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `status` | string | Follow-up status |
|
||||
| ↳ `priority` | object | Follow-up priority |
|
||||
| ↳ `id` | string | Priority ID |
|
||||
| ↳ `name` | string | Priority name |
|
||||
| ↳ `description` | string | Priority description |
|
||||
| ↳ `rank` | number | Priority rank |
|
||||
| ↳ `rank` | number | Priority rank |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `incident_id` | string | Associated incident ID |
|
||||
| ↳ `creator` | object | User who created the follow-up |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `completed_at` | string | Completion timestamp |
|
||||
| ↳ `labels` | array | Labels associated with the follow-up |
|
||||
| ↳ `external_issue_reference` | object | External issue tracking reference |
|
||||
| ↳ `provider` | string | External provider name |
|
||||
| ↳ `issue_name` | string | External issue name or ID |
|
||||
| ↳ `issue_permalink` | string | Permalink to external issue |
|
||||
| ↳ `provider` | string | External provider name |
|
||||
| ↳ `issue_name` | string | External issue name or ID |
|
||||
| ↳ `issue_permalink` | string | Permalink to external issue |
|
||||
|
||||
### `incidentio_users_list`
|
||||
|
||||
@@ -428,10 +207,6 @@ List all users in your Incident.io workspace. Returns user details including id,
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | List of users in the workspace |
|
||||
| ↳ `id` | string | Unique identifier for the user |
|
||||
| ↳ `name` | string | Full name of the user |
|
||||
| ↳ `email` | string | Email address of the user |
|
||||
| ↳ `role` | string | Role of the user in the workspace |
|
||||
|
||||
### `incidentio_users_show`
|
||||
|
||||
@@ -449,10 +224,6 @@ Get detailed information about a specific user in your Incident.io workspace by
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Details of the requested user |
|
||||
| ↳ `id` | string | Unique identifier for the user |
|
||||
| ↳ `name` | string | Full name of the user |
|
||||
| ↳ `email` | string | Email address of the user |
|
||||
| ↳ `role` | string | Role of the user in the workspace |
|
||||
|
||||
### `incidentio_workflows_list`
|
||||
|
||||
@@ -471,15 +242,6 @@ List all workflows in your incident.io workspace.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `workflows` | array | List of workflows |
|
||||
| ↳ `id` | string | Unique identifier for the workflow |
|
||||
| ↳ `name` | string | Name of the workflow |
|
||||
| ↳ `state` | string | State of the workflow \(active, draft, or disabled\) |
|
||||
| ↳ `folder` | string | Folder the workflow belongs to |
|
||||
| ↳ `created_at` | string | When the workflow was created |
|
||||
| ↳ `updated_at` | string | When the workflow was last updated |
|
||||
| `pagination_meta` | object | Pagination metadata |
|
||||
| ↳ `after` | string | Cursor for next page |
|
||||
| ↳ `page_size` | number | Number of results per page |
|
||||
|
||||
### `incidentio_workflows_show`
|
||||
|
||||
@@ -497,12 +259,6 @@ Get details of a specific workflow in incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `workflow` | object | The workflow details |
|
||||
| ↳ `id` | string | Unique identifier for the workflow |
|
||||
| ↳ `name` | string | Name of the workflow |
|
||||
| ↳ `state` | string | State of the workflow \(active, draft, or disabled\) |
|
||||
| ↳ `folder` | string | Folder the workflow belongs to |
|
||||
| ↳ `created_at` | string | When the workflow was created |
|
||||
| ↳ `updated_at` | string | When the workflow was last updated |
|
||||
|
||||
### `incidentio_workflows_update`
|
||||
|
||||
@@ -523,12 +279,6 @@ Update an existing workflow in incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `workflow` | object | The updated workflow |
|
||||
| ↳ `id` | string | Unique identifier for the workflow |
|
||||
| ↳ `name` | string | Name of the workflow |
|
||||
| ↳ `state` | string | State of the workflow \(active, draft, or disabled\) |
|
||||
| ↳ `folder` | string | Folder the workflow belongs to |
|
||||
| ↳ `created_at` | string | When the workflow was created |
|
||||
| ↳ `updated_at` | string | When the workflow was last updated |
|
||||
|
||||
### `incidentio_workflows_delete`
|
||||
|
||||
@@ -564,14 +314,6 @@ List all schedules in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `schedules` | array | List of schedules |
|
||||
| ↳ `id` | string | The schedule ID |
|
||||
| ↳ `name` | string | The schedule name |
|
||||
| ↳ `timezone` | string | The schedule timezone |
|
||||
| ↳ `created_at` | string | When the schedule was created |
|
||||
| ↳ `updated_at` | string | When the schedule was last updated |
|
||||
| `pagination_meta` | object | Pagination metadata |
|
||||
| ↳ `after` | string | Cursor for next page |
|
||||
| ↳ `page_size` | number | Number of results per page |
|
||||
|
||||
### `incidentio_schedules_create`
|
||||
|
||||
@@ -592,11 +334,6 @@ Create a new schedule in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `schedule` | object | The created schedule |
|
||||
| ↳ `id` | string | The schedule ID |
|
||||
| ↳ `name` | string | The schedule name |
|
||||
| ↳ `timezone` | string | The schedule timezone |
|
||||
| ↳ `created_at` | string | When the schedule was created |
|
||||
| ↳ `updated_at` | string | When the schedule was last updated |
|
||||
|
||||
### `incidentio_schedules_show`
|
||||
|
||||
@@ -614,11 +351,6 @@ Get details of a specific schedule in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `schedule` | object | The schedule details |
|
||||
| ↳ `id` | string | The schedule ID |
|
||||
| ↳ `name` | string | The schedule name |
|
||||
| ↳ `timezone` | string | The schedule timezone |
|
||||
| ↳ `created_at` | string | When the schedule was created |
|
||||
| ↳ `updated_at` | string | When the schedule was last updated |
|
||||
|
||||
### `incidentio_schedules_update`
|
||||
|
||||
@@ -640,11 +372,6 @@ Update an existing schedule in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `schedule` | object | The updated schedule |
|
||||
| ↳ `id` | string | The schedule ID |
|
||||
| ↳ `name` | string | The schedule name |
|
||||
| ↳ `timezone` | string | The schedule timezone |
|
||||
| ↳ `created_at` | string | When the schedule was created |
|
||||
| ↳ `updated_at` | string | When the schedule was last updated |
|
||||
|
||||
### `incidentio_schedules_delete`
|
||||
|
||||
@@ -679,10 +406,6 @@ List all escalation policies in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `escalations` | array | List of escalation policies |
|
||||
| ↳ `id` | string | The escalation policy ID |
|
||||
| ↳ `name` | string | The escalation policy name |
|
||||
| ↳ `created_at` | string | When the escalation policy was created |
|
||||
| ↳ `updated_at` | string | When the escalation policy was last updated |
|
||||
|
||||
### `incidentio_escalations_create`
|
||||
|
||||
@@ -703,10 +426,6 @@ Create a new escalation policy in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `escalation` | object | The created escalation policy |
|
||||
| ↳ `id` | string | The escalation policy ID |
|
||||
| ↳ `name` | string | The escalation policy name |
|
||||
| ↳ `created_at` | string | When the escalation policy was created |
|
||||
| ↳ `updated_at` | string | When the escalation policy was last updated |
|
||||
|
||||
### `incidentio_escalations_show`
|
||||
|
||||
@@ -724,10 +443,6 @@ Get details of a specific escalation policy in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `escalation` | object | The escalation policy details |
|
||||
| ↳ `id` | string | The escalation policy ID |
|
||||
| ↳ `name` | string | The escalation policy name |
|
||||
| ↳ `created_at` | string | When the escalation policy was created |
|
||||
| ↳ `updated_at` | string | When the escalation policy was last updated |
|
||||
|
||||
### `incidentio_custom_fields_list`
|
||||
|
||||
@@ -744,12 +459,6 @@ List all custom fields from incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `custom_fields` | array | List of custom fields |
|
||||
| ↳ `id` | string | Custom field ID |
|
||||
| ↳ `name` | string | Custom field name |
|
||||
| ↳ `description` | string | Custom field description |
|
||||
| ↳ `field_type` | string | Custom field type |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
|
||||
### `incidentio_custom_fields_create`
|
||||
|
||||
@@ -769,12 +478,6 @@ Create a new custom field in incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `custom_field` | object | Created custom field |
|
||||
| ↳ `id` | string | Custom field ID |
|
||||
| ↳ `name` | string | Custom field name |
|
||||
| ↳ `description` | string | Custom field description |
|
||||
| ↳ `field_type` | string | Custom field type |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
|
||||
### `incidentio_custom_fields_show`
|
||||
|
||||
@@ -792,12 +495,6 @@ Get detailed information about a specific custom field from incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `custom_field` | object | Custom field details |
|
||||
| ↳ `id` | string | Custom field ID |
|
||||
| ↳ `name` | string | Custom field name |
|
||||
| ↳ `description` | string | Custom field description |
|
||||
| ↳ `field_type` | string | Custom field type |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
|
||||
### `incidentio_custom_fields_update`
|
||||
|
||||
@@ -817,12 +514,6 @@ Update an existing custom field in incident.io.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `custom_field` | object | Updated custom field |
|
||||
| ↳ `id` | string | Custom field ID |
|
||||
| ↳ `name` | string | Custom field name |
|
||||
| ↳ `description` | string | Custom field description |
|
||||
| ↳ `field_type` | string | Custom field type |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
|
||||
### `incidentio_custom_fields_delete`
|
||||
|
||||
@@ -856,10 +547,6 @@ List all severity levels configured in your Incident.io workspace. Returns sever
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `severities` | array | List of severity levels |
|
||||
| ↳ `id` | string | Unique identifier for the severity level |
|
||||
| ↳ `name` | string | Name of the severity level |
|
||||
| ↳ `description` | string | Description of the severity level |
|
||||
| ↳ `rank` | number | Rank/order of the severity level |
|
||||
|
||||
### `incidentio_incident_statuses_list`
|
||||
|
||||
@@ -876,10 +563,6 @@ List all incident statuses configured in your Incident.io workspace. Returns sta
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_statuses` | array | List of incident statuses |
|
||||
| ↳ `id` | string | Unique identifier for the incident status |
|
||||
| ↳ `name` | string | Name of the incident status |
|
||||
| ↳ `description` | string | Description of the incident status |
|
||||
| ↳ `category` | string | Category of the incident status |
|
||||
|
||||
### `incidentio_incident_types_list`
|
||||
|
||||
@@ -896,10 +579,6 @@ List all incident types configured in your Incident.io workspace. Returns type d
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_types` | array | List of incident types |
|
||||
| ↳ `id` | string | Unique identifier for the incident type |
|
||||
| ↳ `name` | string | Name of the incident type |
|
||||
| ↳ `description` | string | Description of the incident type |
|
||||
| ↳ `is_default` | boolean | Whether this is the default incident type |
|
||||
|
||||
### `incidentio_incident_roles_list`
|
||||
|
||||
@@ -916,15 +595,6 @@ List all incident roles in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_roles` | array | List of incident roles |
|
||||
| ↳ `id` | string | The incident role ID |
|
||||
| ↳ `name` | string | The incident role name |
|
||||
| ↳ `description` | string | The incident role description |
|
||||
| ↳ `instructions` | string | Instructions for the role |
|
||||
| ↳ `shortform` | string | Short form abbreviation of the role |
|
||||
| ↳ `role_type` | string | The type of role |
|
||||
| ↳ `required` | boolean | Whether the role is required |
|
||||
| ↳ `created_at` | string | When the role was created |
|
||||
| ↳ `updated_at` | string | When the role was last updated |
|
||||
|
||||
### `incidentio_incident_roles_create`
|
||||
|
||||
@@ -945,15 +615,6 @@ Create a new incident role in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_role` | object | The created incident role |
|
||||
| ↳ `id` | string | The incident role ID |
|
||||
| ↳ `name` | string | The incident role name |
|
||||
| ↳ `description` | string | The incident role description |
|
||||
| ↳ `instructions` | string | Instructions for the role |
|
||||
| ↳ `shortform` | string | Short form abbreviation of the role |
|
||||
| ↳ `role_type` | string | The type of role |
|
||||
| ↳ `required` | boolean | Whether the role is required |
|
||||
| ↳ `created_at` | string | When the role was created |
|
||||
| ↳ `updated_at` | string | When the role was last updated |
|
||||
|
||||
### `incidentio_incident_roles_show`
|
||||
|
||||
@@ -971,15 +632,6 @@ Get details of a specific incident role in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_role` | object | The incident role details |
|
||||
| ↳ `id` | string | The incident role ID |
|
||||
| ↳ `name` | string | The incident role name |
|
||||
| ↳ `description` | string | The incident role description |
|
||||
| ↳ `instructions` | string | Instructions for the role |
|
||||
| ↳ `shortform` | string | Short form abbreviation of the role |
|
||||
| ↳ `role_type` | string | The type of role |
|
||||
| ↳ `required` | boolean | Whether the role is required |
|
||||
| ↳ `created_at` | string | When the role was created |
|
||||
| ↳ `updated_at` | string | When the role was last updated |
|
||||
|
||||
### `incidentio_incident_roles_update`
|
||||
|
||||
@@ -1001,15 +653,6 @@ Update an existing incident role in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_role` | object | The updated incident role |
|
||||
| ↳ `id` | string | The incident role ID |
|
||||
| ↳ `name` | string | The incident role name |
|
||||
| ↳ `description` | string | The incident role description |
|
||||
| ↳ `instructions` | string | Instructions for the role |
|
||||
| ↳ `shortform` | string | Short form abbreviation of the role |
|
||||
| ↳ `role_type` | string | The type of role |
|
||||
| ↳ `required` | boolean | Whether the role is required |
|
||||
| ↳ `created_at` | string | When the role was created |
|
||||
| ↳ `updated_at` | string | When the role was last updated |
|
||||
|
||||
### `incidentio_incident_roles_delete`
|
||||
|
||||
@@ -1043,11 +686,6 @@ List all incident timestamp definitions in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_timestamps` | array | List of incident timestamp definitions |
|
||||
| ↳ `id` | string | The timestamp ID |
|
||||
| ↳ `name` | string | The timestamp name |
|
||||
| ↳ `rank` | number | The rank/order of the timestamp |
|
||||
| ↳ `created_at` | string | When the timestamp was created |
|
||||
| ↳ `updated_at` | string | When the timestamp was last updated |
|
||||
|
||||
### `incidentio_incident_timestamps_show`
|
||||
|
||||
@@ -1065,11 +703,6 @@ Get details of a specific incident timestamp definition in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_timestamp` | object | The incident timestamp details |
|
||||
| ↳ `id` | string | The timestamp ID |
|
||||
| ↳ `name` | string | The timestamp name |
|
||||
| ↳ `rank` | number | The rank/order of the timestamp |
|
||||
| ↳ `created_at` | string | When the timestamp was created |
|
||||
| ↳ `updated_at` | string | When the timestamp was last updated |
|
||||
|
||||
### `incidentio_incident_updates_list`
|
||||
|
||||
@@ -1089,30 +722,6 @@ List all updates for a specific incident in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `incident_updates` | array | List of incident updates |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `incident_id` | string | The incident ID |
|
||||
| ↳ `message` | string | The update message |
|
||||
| ↳ `new_severity` | object | New severity if changed |
|
||||
| ↳ `id` | string | Severity ID |
|
||||
| ↳ `name` | string | Severity name |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `rank` | number | Severity rank |
|
||||
| ↳ `new_status` | object | New status if changed |
|
||||
| ↳ `id` | string | Status ID |
|
||||
| ↳ `name` | string | Status name |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `category` | string | Status category |
|
||||
| ↳ `updater` | object | User who created the update |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `created_at` | string | When the update was created |
|
||||
| ↳ `updated_at` | string | When the update was last modified |
|
||||
| `pagination_meta` | object | Pagination information |
|
||||
| ↳ `after` | string | Cursor for next page |
|
||||
| ↳ `page_size` | number | Number of results per page |
|
||||
|
||||
### `incidentio_schedule_entries_list`
|
||||
|
||||
@@ -1134,23 +743,6 @@ List all entries for a specific schedule in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `schedule_entries` | array | List of schedule entries |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `schedule_id` | string | The schedule ID |
|
||||
| ↳ `user` | object | User assigned to this entry |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `start_at` | string | When the entry starts |
|
||||
| ↳ `end_at` | string | When the entry ends |
|
||||
| ↳ `layer_id` | string | The schedule layer ID |
|
||||
| ↳ `created_at` | string | When the entry was created |
|
||||
| ↳ `updated_at` | string | When the entry was last updated |
|
||||
| `pagination_meta` | object | Pagination information |
|
||||
| ↳ `after` | string | Cursor for next page |
|
||||
| ↳ `after_url` | string | URL for next page |
|
||||
| ↳ `page_size` | number | Number of results per page |
|
||||
|
||||
### `incidentio_schedule_overrides_create`
|
||||
|
||||
@@ -1174,19 +766,6 @@ Create a new schedule override in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `override` | object | The created schedule override |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `rotation_id` | string | The rotation ID |
|
||||
| ↳ `schedule_id` | string | The schedule ID |
|
||||
| ↳ `user` | object | User assigned to this override |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `start_at` | string | When the override starts |
|
||||
| ↳ `end_at` | string | When the override ends |
|
||||
| ↳ `created_at` | string | When the override was created |
|
||||
| ↳ `updated_at` | string | When the override was last updated |
|
||||
|
||||
### `incidentio_escalation_paths_create`
|
||||
|
||||
@@ -1206,41 +785,6 @@ Create a new escalation path in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `escalation_path` | object | The created escalation path |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `name` | string | The escalation path name |
|
||||
| ↳ `path` | array | Array of escalation levels |
|
||||
| ↳ `targets` | array | Targets for this level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
|
||||
| ↳ `targets` | array | Targets for this level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
|
||||
| ↳ `working_hours` | array | Working hours configuration |
|
||||
| ↳ `weekday` | string | Day of week |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `end_time` | string | End time |
|
||||
| ↳ `weekday` | string | Day of week |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `end_time` | string | End time |
|
||||
| ↳ `created_at` | string | When the path was created |
|
||||
| ↳ `updated_at` | string | When the path was last updated |
|
||||
|
||||
### `incidentio_escalation_paths_show`
|
||||
|
||||
@@ -1258,41 +802,6 @@ Get details of a specific escalation path in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `escalation_path` | object | The escalation path details |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `name` | string | The escalation path name |
|
||||
| ↳ `path` | array | Array of escalation levels |
|
||||
| ↳ `targets` | array | Targets for this level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
|
||||
| ↳ `targets` | array | Targets for this level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
|
||||
| ↳ `working_hours` | array | Working hours configuration |
|
||||
| ↳ `weekday` | string | Day of week |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `end_time` | string | End time |
|
||||
| ↳ `weekday` | string | Day of week |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `end_time` | string | End time |
|
||||
| ↳ `created_at` | string | When the path was created |
|
||||
| ↳ `updated_at` | string | When the path was last updated |
|
||||
|
||||
### `incidentio_escalation_paths_update`
|
||||
|
||||
@@ -1313,41 +822,6 @@ Update an existing escalation path in incident.io
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `escalation_path` | object | The updated escalation path |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `name` | string | The escalation path name |
|
||||
| ↳ `path` | array | Array of escalation levels |
|
||||
| ↳ `targets` | array | Targets for this level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
|
||||
| ↳ `targets` | array | Targets for this level |
|
||||
| ↳ `id` | string | Target ID |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `type` | string | Target type |
|
||||
| ↳ `schedule_id` | string | Schedule ID if type is schedule |
|
||||
| ↳ `user_id` | string | User ID if type is user |
|
||||
| ↳ `urgency` | string | Urgency level |
|
||||
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
|
||||
| ↳ `working_hours` | array | Working hours configuration |
|
||||
| ↳ `weekday` | string | Day of week |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `end_time` | string | End time |
|
||||
| ↳ `weekday` | string | Day of week |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `end_time` | string | End time |
|
||||
| ↳ `created_at` | string | When the path was created |
|
||||
| ↳ `updated_at` | string | When the path was last updated |
|
||||
|
||||
### `incidentio_escalation_paths_delete`
|
||||
|
||||
|
||||
@@ -40,60 +40,6 @@ Create a new contact in Intercom with email, external_id, or role. Returns API-a
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Created contact object |
|
||||
| ↳ `id` | string | Unique identifier for the contact |
|
||||
| ↳ `type` | string | List type |
|
||||
| ↳ `role` | string | Role of the contact \(user or lead\) |
|
||||
| ↳ `email` | string | Email address of the contact |
|
||||
| ↳ `phone` | string | Phone number of the contact |
|
||||
| ↳ `name` | string | Name of the contact |
|
||||
| ↳ `avatar` | string | Avatar URL of the contact |
|
||||
| ↳ `owner_id` | string | ID of the admin assigned to this contact |
|
||||
| ↳ `external_id` | string | External identifier for the contact |
|
||||
| ↳ `created_at` | number | Unix timestamp when contact was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when contact was last updated |
|
||||
| ↳ `signed_up_at` | number | Unix timestamp when user signed up |
|
||||
| ↳ `last_seen_at` | number | Unix timestamp when user was last seen |
|
||||
| ↳ `workspace_id` | string | Workspace ID the contact belongs to |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the contact |
|
||||
| ↳ `tags` | object | Tags associated with the contact |
|
||||
| ↳ `type` | string | List type |
|
||||
| ↳ `url` | string | URL to fetch tags |
|
||||
| ↳ `data` | array | Array of tag objects |
|
||||
| ↳ `has_more` | boolean | Whether there are more tags |
|
||||
| ↳ `total_count` | number | Total number of tags |
|
||||
| ↳ `url` | string | URL to fetch companies |
|
||||
| ↳ `data` | array | Array of social profile objects |
|
||||
| ↳ `has_more` | boolean | Whether there are more companies |
|
||||
| ↳ `total_count` | number | Total number of companies |
|
||||
| ↳ `notes` | object | Notes associated with the contact |
|
||||
| ↳ `type` | string | List type |
|
||||
| ↳ `url` | string | URL to fetch notes |
|
||||
| ↳ `data` | array | Array of note objects |
|
||||
| ↳ `has_more` | boolean | Whether there are more notes |
|
||||
| ↳ `total_count` | number | Total number of notes |
|
||||
| ↳ `companies` | object | Companies associated with the contact |
|
||||
| ↳ `type` | string | List type |
|
||||
| ↳ `url` | string | URL to fetch companies |
|
||||
| ↳ `data` | array | Array of company objects |
|
||||
| ↳ `has_more` | boolean | Whether there are more companies |
|
||||
| ↳ `total_count` | number | Total number of companies |
|
||||
| ↳ `location` | object | Location information for the contact |
|
||||
| ↳ `type` | string | Location type |
|
||||
| ↳ `city` | string | City |
|
||||
| ↳ `region` | string | Region/State |
|
||||
| ↳ `country` | string | Country |
|
||||
| ↳ `country_code` | string | Country code |
|
||||
| ↳ `continent_code` | string | Continent code |
|
||||
| ↳ `city` | string | City |
|
||||
| ↳ `region` | string | Region/State |
|
||||
| ↳ `country` | string | Country |
|
||||
| ↳ `country_code` | string | Country code |
|
||||
| ↳ `continent_code` | string | Continent code |
|
||||
| ↳ `social_profiles` | object | Social profiles of the contact |
|
||||
| ↳ `type` | string | List type |
|
||||
| ↳ `data` | array | Array of social profile objects |
|
||||
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
|
||||
| `contactId` | string | ID of the created contact |
|
||||
|
||||
### `intercom_get_contact`
|
||||
|
||||
@@ -110,25 +56,6 @@ Get a single contact by ID from Intercom. Returns API-aligned fields only.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Contact object |
|
||||
| ↳ `id` | string | Unique identifier for the contact |
|
||||
| ↳ `type` | string | Object type \(contact\) |
|
||||
| ↳ `role` | string | Role of the contact \(user or lead\) |
|
||||
| ↳ `email` | string | Email address of the contact |
|
||||
| ↳ `phone` | string | Phone number of the contact |
|
||||
| ↳ `name` | string | Name of the contact |
|
||||
| ↳ `avatar` | string | Avatar URL of the contact |
|
||||
| ↳ `owner_id` | string | ID of the admin assigned to this contact |
|
||||
| ↳ `external_id` | string | External identifier for the contact |
|
||||
| ↳ `created_at` | number | Unix timestamp when contact was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when contact was last updated |
|
||||
| ↳ `workspace_id` | string | Workspace ID the contact belongs to |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the contact |
|
||||
| ↳ `tags` | object | Tags associated with the contact |
|
||||
| ↳ `notes` | object | Notes associated with the contact |
|
||||
| ↳ `companies` | object | Companies associated with the contact |
|
||||
| ↳ `location` | object | Location information for the contact |
|
||||
| ↳ `social_profiles` | object | Social profiles of the contact |
|
||||
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
|
||||
|
||||
### `intercom_update_contact`
|
||||
|
||||
@@ -157,26 +84,6 @@ Update an existing contact in Intercom. Returns API-aligned fields only.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Updated contact object |
|
||||
| ↳ `id` | string | Unique identifier for the contact |
|
||||
| ↳ `type` | string | Object type \(contact\) |
|
||||
| ↳ `role` | string | Role of the contact \(user or lead\) |
|
||||
| ↳ `email` | string | Email address of the contact |
|
||||
| ↳ `phone` | string | Phone number of the contact |
|
||||
| ↳ `name` | string | Name of the contact |
|
||||
| ↳ `avatar` | string | Avatar URL of the contact |
|
||||
| ↳ `owner_id` | string | ID of the admin assigned to this contact |
|
||||
| ↳ `external_id` | string | External identifier for the contact |
|
||||
| ↳ `created_at` | number | Unix timestamp when contact was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when contact was last updated |
|
||||
| ↳ `workspace_id` | string | Workspace ID the contact belongs to |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the contact |
|
||||
| ↳ `tags` | object | Tags associated with the contact |
|
||||
| ↳ `notes` | object | Notes associated with the contact |
|
||||
| ↳ `companies` | object | Companies associated with the contact |
|
||||
| ↳ `location` | object | Location information for the contact |
|
||||
| ↳ `social_profiles` | object | Social profiles of the contact |
|
||||
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
|
||||
| `contactId` | string | ID of the updated contact |
|
||||
|
||||
### `intercom_list_contacts`
|
||||
|
||||
@@ -194,25 +101,6 @@ List all contacts from Intercom with pagination support
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of contact objects |
|
||||
| ↳ `id` | string | Unique identifier for the contact |
|
||||
| ↳ `type` | string | Object type \(contact\) |
|
||||
| ↳ `role` | string | Role of the contact \(user or lead\) |
|
||||
| ↳ `email` | string | Email address of the contact |
|
||||
| ↳ `phone` | string | Phone number of the contact |
|
||||
| ↳ `name` | string | Name of the contact |
|
||||
| ↳ `external_id` | string | External identifier for the contact |
|
||||
| ↳ `created_at` | number | Unix timestamp when contact was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when contact was last updated |
|
||||
| ↳ `workspace_id` | string | Workspace ID the contact belongs to |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the contact |
|
||||
| ↳ `tags` | object | Tags associated with the contact |
|
||||
| ↳ `companies` | object | Companies associated with the contact |
|
||||
| `pages` | object | Pagination information |
|
||||
| ↳ `type` | string | Pages type identifier |
|
||||
| ↳ `page` | number | Current page number |
|
||||
| ↳ `per_page` | number | Number of results per page |
|
||||
| ↳ `total_pages` | number | Total number of pages |
|
||||
| `total_count` | number | Total number of contacts |
|
||||
|
||||
### `intercom_search_contacts`
|
||||
|
||||
@@ -233,33 +121,6 @@ Search for contacts in Intercom using a query
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of matching contact objects |
|
||||
| ↳ `id` | string | Unique identifier for the contact |
|
||||
| ↳ `type` | string | Object type \(contact\) |
|
||||
| ↳ `role` | string | Role of the contact \(user or lead\) |
|
||||
| ↳ `email` | string | Email address of the contact |
|
||||
| ↳ `phone` | string | Phone number of the contact |
|
||||
| ↳ `name` | string | Name of the contact |
|
||||
| ↳ `avatar` | string | Avatar URL of the contact |
|
||||
| ↳ `owner_id` | string | ID of the admin assigned to this contact |
|
||||
| ↳ `external_id` | string | External identifier for the contact |
|
||||
| ↳ `created_at` | number | Unix timestamp when contact was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when contact was last updated |
|
||||
| ↳ `signed_up_at` | number | Unix timestamp when user signed up |
|
||||
| ↳ `last_seen_at` | number | Unix timestamp when user was last seen |
|
||||
| ↳ `workspace_id` | string | Workspace ID the contact belongs to |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the contact |
|
||||
| ↳ `tags` | object | Tags associated with the contact |
|
||||
| ↳ `notes` | object | Notes associated with the contact |
|
||||
| ↳ `companies` | object | Companies associated with the contact |
|
||||
| ↳ `location` | object | Location information for the contact |
|
||||
| ↳ `social_profiles` | object | Social profiles of the contact |
|
||||
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
|
||||
| `pages` | object | Pagination information |
|
||||
| ↳ `type` | string | Pages type identifier |
|
||||
| ↳ `page` | number | Current page number |
|
||||
| ↳ `per_page` | number | Number of results per page |
|
||||
| ↳ `total_pages` | number | Total number of pages |
|
||||
| `total_count` | number | Total number of matching contacts |
|
||||
|
||||
### `intercom_delete_contact`
|
||||
|
||||
@@ -301,25 +162,6 @@ Create or update a company in Intercom
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Created or updated company object |
|
||||
| ↳ `id` | string | Unique identifier for the company |
|
||||
| ↳ `type` | string | Segment list type |
|
||||
| ↳ `app_id` | string | Intercom app ID |
|
||||
| ↳ `company_id` | string | Your unique identifier for the company |
|
||||
| ↳ `name` | string | Name of the company |
|
||||
| ↳ `website` | string | Company website URL |
|
||||
| ↳ `plan` | object | Company plan information |
|
||||
| ↳ `size` | number | Number of employees |
|
||||
| ↳ `industry` | string | Industry the company operates in |
|
||||
| ↳ `monthly_spend` | number | Monthly revenue from this company |
|
||||
| ↳ `session_count` | number | Number of sessions |
|
||||
| ↳ `user_count` | number | Number of users in the company |
|
||||
| ↳ `created_at` | number | Unix timestamp when company was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when company was last updated |
|
||||
| ↳ `remote_created_at` | number | Unix timestamp when company was created by you |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the company |
|
||||
| ↳ `tags` | array | Array of tag objects |
|
||||
| ↳ `segments` | array | Array of segment objects |
|
||||
| `companyId` | string | ID of the created/updated company |
|
||||
|
||||
### `intercom_get_company`
|
||||
|
||||
@@ -336,23 +178,6 @@ Retrieve a single company by ID from Intercom
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Company object |
|
||||
| ↳ `id` | string | Unique identifier for the company |
|
||||
| ↳ `type` | string | Object type \(company\) |
|
||||
| ↳ `app_id` | string | Intercom app ID |
|
||||
| ↳ `company_id` | string | Your unique identifier for the company |
|
||||
| ↳ `name` | string | Name of the company |
|
||||
| ↳ `website` | string | Company website URL |
|
||||
| ↳ `plan` | object | Company plan information |
|
||||
| ↳ `size` | number | Number of employees |
|
||||
| ↳ `industry` | string | Industry the company operates in |
|
||||
| ↳ `monthly_spend` | number | Monthly revenue from this company |
|
||||
| ↳ `session_count` | number | Number of sessions |
|
||||
| ↳ `user_count` | number | Number of users in the company |
|
||||
| ↳ `created_at` | number | Unix timestamp when company was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when company was last updated |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the company |
|
||||
| ↳ `tags` | object | Tags associated with the company |
|
||||
| ↳ `segments` | object | Segments the company belongs to |
|
||||
|
||||
### `intercom_list_companies`
|
||||
|
||||
@@ -371,28 +196,6 @@ List all companies from Intercom with pagination support. Note: This endpoint ha
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array of company objects |
|
||||
| ↳ `id` | string | Unique identifier for the company |
|
||||
| ↳ `type` | string | Object type \(company\) |
|
||||
| ↳ `app_id` | string | Intercom app ID |
|
||||
| ↳ `company_id` | string | Your unique identifier for the company |
|
||||
| ↳ `name` | string | Name of the company |
|
||||
| ↳ `website` | string | Company website URL |
|
||||
| ↳ `plan` | object | Company plan information |
|
||||
| ↳ `monthly_spend` | number | Monthly revenue from this company |
|
||||
| ↳ `session_count` | number | Number of sessions |
|
||||
| ↳ `user_count` | number | Number of users in the company |
|
||||
| ↳ `created_at` | number | Unix timestamp when company was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when company was last updated |
|
||||
| ↳ `custom_attributes` | object | Custom attributes set on the company |
|
||||
| ↳ `tags` | object | Tags associated with the company |
|
||||
| ↳ `segments` | object | Segments the company belongs to |
|
||||
| `pages` | object | Pagination information |
|
||||
| ↳ `type` | string | Pages type identifier |
|
||||
| ↳ `page` | number | Current page number |
|
||||
| ↳ `per_page` | number | Number of results per page |
|
||||
| ↳ `total_pages` | number | Total number of pages |
|
||||
| `total_count` | number | Total number of companies |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_get_conversation`
|
||||
|
||||
@@ -411,26 +214,6 @@ Retrieve a single conversation by ID from Intercom
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversation` | object | Conversation object |
|
||||
| ↳ `id` | string | Unique identifier for the conversation |
|
||||
| ↳ `type` | string | Object type \(conversation\) |
|
||||
| ↳ `title` | string | Title of the conversation |
|
||||
| ↳ `created_at` | number | Unix timestamp when conversation was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
|
||||
| ↳ `waiting_since` | number | Unix timestamp when waiting for reply |
|
||||
| ↳ `snoozed_until` | number | Unix timestamp when snooze ends |
|
||||
| ↳ `open` | boolean | Whether the conversation is open |
|
||||
| ↳ `state` | string | State of the conversation |
|
||||
| ↳ `read` | boolean | Whether the conversation has been read |
|
||||
| ↳ `priority` | string | Priority of the conversation |
|
||||
| ↳ `admin_assignee_id` | number | ID of assigned admin |
|
||||
| ↳ `team_assignee_id` | string | ID of assigned team |
|
||||
| ↳ `tags` | object | Tags on the conversation |
|
||||
| ↳ `source` | object | Source of the conversation |
|
||||
| ↳ `contacts` | object | Contacts in the conversation |
|
||||
| ↳ `teammates` | object | Teammates in the conversation |
|
||||
| ↳ `conversation_parts` | object | Parts of the conversation |
|
||||
| ↳ `statistics` | object | Conversation statistics |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_list_conversations`
|
||||
|
||||
@@ -450,28 +233,6 @@ List all conversations from Intercom with pagination support
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversations` | array | Array of conversation objects |
|
||||
| ↳ `id` | string | Unique identifier for the conversation |
|
||||
| ↳ `type` | string | Object type \(conversation\) |
|
||||
| ↳ `title` | string | Title of the conversation |
|
||||
| ↳ `created_at` | number | Unix timestamp when conversation was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
|
||||
| ↳ `waiting_since` | number | Unix timestamp when waiting for reply |
|
||||
| ↳ `open` | boolean | Whether the conversation is open |
|
||||
| ↳ `state` | string | State of the conversation |
|
||||
| ↳ `read` | boolean | Whether the conversation has been read |
|
||||
| ↳ `priority` | string | Priority of the conversation |
|
||||
| ↳ `admin_assignee_id` | number | ID of assigned admin |
|
||||
| ↳ `team_assignee_id` | string | ID of assigned team |
|
||||
| ↳ `tags` | object | Tags on the conversation |
|
||||
| ↳ `source` | object | Source of the conversation |
|
||||
| ↳ `contacts` | object | Contacts in the conversation |
|
||||
| `pages` | object | Pagination information |
|
||||
| ↳ `type` | string | Pages type identifier |
|
||||
| ↳ `page` | number | Current page number |
|
||||
| ↳ `per_page` | number | Number of results per page |
|
||||
| ↳ `total_pages` | number | Total number of pages |
|
||||
| `total_count` | number | Total number of conversations |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_reply_conversation`
|
||||
|
||||
@@ -493,24 +254,6 @@ Reply to a conversation as an admin in Intercom
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversation` | object | Updated conversation object |
|
||||
| ↳ `id` | string | Unique identifier for the conversation |
|
||||
| ↳ `type` | string | Object type \(conversation\) |
|
||||
| ↳ `title` | string | Title of the conversation |
|
||||
| ↳ `created_at` | number | Unix timestamp when conversation was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
|
||||
| ↳ `waiting_since` | number | Unix timestamp when waiting for reply |
|
||||
| ↳ `open` | boolean | Whether the conversation is open |
|
||||
| ↳ `state` | string | State of the conversation |
|
||||
| ↳ `read` | boolean | Whether the conversation has been read |
|
||||
| ↳ `priority` | string | Priority of the conversation |
|
||||
| ↳ `admin_assignee_id` | number | ID of assigned admin |
|
||||
| ↳ `team_assignee_id` | string | ID of assigned team |
|
||||
| ↳ `tags` | object | Tags on the conversation |
|
||||
| ↳ `source` | object | Source of the conversation |
|
||||
| ↳ `contacts` | object | Contacts in the conversation |
|
||||
| ↳ `conversation_parts` | object | Parts of the conversation |
|
||||
| `conversationId` | string | ID of the conversation |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_search_conversations`
|
||||
|
||||
@@ -531,28 +274,6 @@ Search for conversations in Intercom using a query. Returns API-aligned fields o
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversations` | array | Array of matching conversation objects |
|
||||
| ↳ `id` | string | Unique identifier for the conversation |
|
||||
| ↳ `type` | string | Object type \(conversation\) |
|
||||
| ↳ `title` | string | Title of the conversation |
|
||||
| ↳ `created_at` | number | Unix timestamp when conversation was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
|
||||
| ↳ `waiting_since` | number | Unix timestamp when waiting for reply |
|
||||
| ↳ `open` | boolean | Whether the conversation is open |
|
||||
| ↳ `state` | string | State of the conversation |
|
||||
| ↳ `read` | boolean | Whether the conversation has been read |
|
||||
| ↳ `priority` | string | Priority of the conversation |
|
||||
| ↳ `admin_assignee_id` | number | ID of assigned admin |
|
||||
| ↳ `team_assignee_id` | string | ID of assigned team |
|
||||
| ↳ `tags` | object | Tags on the conversation |
|
||||
| ↳ `source` | object | Source of the conversation |
|
||||
| ↳ `contacts` | object | Contacts in the conversation |
|
||||
| `pages` | object | Pagination information |
|
||||
| ↳ `type` | string | Pages type identifier |
|
||||
| ↳ `page` | number | Current page number |
|
||||
| ↳ `per_page` | number | Number of results per page |
|
||||
| ↳ `total_pages` | number | Total number of pages |
|
||||
| `total_count` | number | Total number of matching conversations |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_create_ticket`
|
||||
|
||||
@@ -575,23 +296,6 @@ Create a new ticket in Intercom. Returns API-aligned fields only.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Created ticket object |
|
||||
| ↳ `id` | string | Unique identifier for the ticket |
|
||||
| ↳ `type` | string | Object type \(ticket\) |
|
||||
| ↳ `ticket_id` | string | Ticket ID |
|
||||
| ↳ `ticket_type` | object | Type of the ticket |
|
||||
| ↳ `ticket_attributes` | object | Attributes of the ticket |
|
||||
| ↳ `ticket_state` | string | State of the ticket |
|
||||
| ↳ `ticket_state_internal_label` | string | Internal label for ticket state |
|
||||
| ↳ `ticket_state_external_label` | string | External label for ticket state |
|
||||
| ↳ `created_at` | number | Unix timestamp when ticket was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when ticket was last updated |
|
||||
| ↳ `contacts` | object | Contacts associated with the ticket |
|
||||
| ↳ `admin_assignee_id` | string | ID of assigned admin |
|
||||
| ↳ `team_assignee_id` | string | ID of assigned team |
|
||||
| ↳ `is_shared` | boolean | Whether the ticket is shared |
|
||||
| ↳ `open` | boolean | Whether the ticket is open |
|
||||
| `ticketId` | string | ID of the created ticket |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_get_ticket`
|
||||
|
||||
@@ -608,23 +312,6 @@ Retrieve a single ticket by ID from Intercom. Returns API-aligned fields only.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Ticket object |
|
||||
| ↳ `id` | string | Unique identifier for the ticket |
|
||||
| ↳ `type` | string | Object type \(ticket\) |
|
||||
| ↳ `ticket_id` | string | Ticket ID |
|
||||
| ↳ `ticket_type` | object | Type of the ticket |
|
||||
| ↳ `ticket_attributes` | object | Attributes of the ticket |
|
||||
| ↳ `ticket_state` | string | State of the ticket |
|
||||
| ↳ `ticket_state_internal_label` | string | Internal label for ticket state |
|
||||
| ↳ `ticket_state_external_label` | string | External label for ticket state |
|
||||
| ↳ `created_at` | number | Unix timestamp when ticket was created |
|
||||
| ↳ `updated_at` | number | Unix timestamp when ticket was last updated |
|
||||
| ↳ `contacts` | object | Contacts associated with the ticket |
|
||||
| ↳ `admin_assignee_id` | string | ID of assigned admin |
|
||||
| ↳ `team_assignee_id` | string | ID of assigned team |
|
||||
| ↳ `is_shared` | boolean | Whether the ticket is shared |
|
||||
| ↳ `open` | boolean | Whether the ticket is open |
|
||||
| `ticketId` | string | ID of the retrieved ticket |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `intercom_create_message`
|
||||
|
||||
@@ -649,14 +336,5 @@ Create and send a new admin-initiated message in Intercom. Returns API-aligned f
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | object | Created message object |
|
||||
| ↳ `id` | string | Unique identifier for the message |
|
||||
| ↳ `type` | string | Object type \(message\) |
|
||||
| ↳ `created_at` | number | Unix timestamp when message was created |
|
||||
| ↳ `body` | string | Body of the message |
|
||||
| ↳ `message_type` | string | Type of the message \(in_app or email\) |
|
||||
| ↳ `conversation_id` | string | ID of the conversation created |
|
||||
| ↳ `owner` | object | Owner of the message |
|
||||
| `messageId` | string | ID of the created message |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
|
||||
|
||||
@@ -108,7 +108,6 @@ Get a single service request from Jira Service Management
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `request` | json | The service request object |
|
||||
|
||||
### `jsm_get_requests`
|
||||
|
||||
|
||||
@@ -57,15 +57,6 @@ Search for similar content in a knowledge base using vector similarity
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Array of search results from the knowledge base |
|
||||
| ↳ `documentId` | string | Document ID |
|
||||
| ↳ `documentName` | string | Document name |
|
||||
| ↳ `content` | string | Content of the result |
|
||||
| ↳ `chunkIndex` | number | Index of the chunk within the document |
|
||||
| ↳ `similarity` | number | Similarity score of the result |
|
||||
| ↳ `metadata` | object | Metadata of the result, including tags |
|
||||
| `query` | string | The search query that was executed |
|
||||
| `totalResults` | number | Total number of results found |
|
||||
| `cost` | object | Cost information for the search operation |
|
||||
|
||||
### `knowledge_upload_chunk`
|
||||
|
||||
@@ -84,18 +75,6 @@ Upload a new chunk to a document in a knowledge base
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Information about the uploaded chunk |
|
||||
| ↳ `chunkId` | string | Chunk ID |
|
||||
| ↳ `chunkIndex` | number | Index of the chunk within the document |
|
||||
| ↳ `content` | string | Content of the chunk |
|
||||
| ↳ `contentLength` | number | Length of the content in characters |
|
||||
| ↳ `tokenCount` | number | Number of tokens in the chunk |
|
||||
| ↳ `enabled` | boolean | Whether the chunk is enabled |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| `message` | string | Success or error message describing the operation result |
|
||||
| `documentId` | string | ID of the document the chunk was added to |
|
||||
| `documentName` | string | Name of the document the chunk was added to |
|
||||
| `cost` | object | Cost information for the upload operation |
|
||||
|
||||
### `knowledge_create_document`
|
||||
|
||||
@@ -127,13 +106,5 @@ Create a new document in a knowledge base
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Information about the created document |
|
||||
| ↳ `documentId` | string | Document ID |
|
||||
| ↳ `documentName` | string | Document name |
|
||||
| ↳ `type` | string | Document type |
|
||||
| ↳ `enabled` | boolean | Whether the document is enabled |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| `message` | string | Success or error message describing the operation result |
|
||||
| `documentId` | string | ID of the created document |
|
||||
|
||||
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
---
|
||||
title: LangSmith
|
||||
description: Forward workflow runs to LangSmith for observability
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="langsmith"
|
||||
color="#181C1E"
|
||||
/>
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Send run data to LangSmith to trace executions, attach metadata, and monitor workflow performance.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `langsmith_create_run`
|
||||
|
||||
Forward a single run to LangSmith for ingestion.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | LangSmith API key |
|
||||
| `id` | string | No | Unique run identifier |
|
||||
| `name` | string | Yes | Run name |
|
||||
| `run_type` | string | Yes | Run type \(tool, chain, llm, retriever, embedding, prompt, parser\) |
|
||||
| `start_time` | string | No | Run start time in ISO-8601 format |
|
||||
| `end_time` | string | No | Run end time in ISO-8601 format |
|
||||
| `inputs` | json | No | Inputs payload |
|
||||
| `run_outputs` | json | No | Outputs payload |
|
||||
| `extra` | json | No | Additional metadata \(extra\) |
|
||||
| `tags` | json | No | Array of tag strings |
|
||||
| `parent_run_id` | string | No | Parent run ID |
|
||||
| `trace_id` | string | No | Trace ID |
|
||||
| `session_id` | string | No | Session ID |
|
||||
| `session_name` | string | No | Session name |
|
||||
| `status` | string | No | Run status |
|
||||
| `error` | string | No | Error details |
|
||||
| `dotted_order` | string | No | Dotted order string |
|
||||
| `events` | json | No | Structured events array |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `accepted` | boolean | Whether the run was accepted for ingestion |
|
||||
| `runId` | string | Run identifier provided in the request |
|
||||
| `message` | string | Response message from LangSmith |
|
||||
|
||||
### `langsmith_create_runs_batch`
|
||||
|
||||
Forward multiple runs to LangSmith in a single batch.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | LangSmith API key |
|
||||
| `post` | json | No | Array of new runs to ingest |
|
||||
| `patch` | json | No | Array of runs to update/patch |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `accepted` | boolean | Whether the batch was accepted for ingestion |
|
||||
| `runIds` | array | Run identifiers provided in the request |
|
||||
| `message` | string | Response message from LangSmith |
|
||||
| `messages` | array | Per-run response messages, when provided |
|
||||
|
||||
|
||||
@@ -39,14 +39,6 @@ Retrieves campaign activities and steps performed, including email opens, clicks
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | List of activities |
|
||||
| ↳ `_id` | string | Activity ID |
|
||||
| ↳ `type` | string | Activity type |
|
||||
| ↳ `leadId` | string | Associated lead ID |
|
||||
| ↳ `campaignId` | string | Campaign ID |
|
||||
| ↳ `sequenceId` | string | Sequence ID |
|
||||
| ↳ `stepId` | string | Step ID |
|
||||
| ↳ `createdAt` | string | When the activity occurred |
|
||||
| `count` | number | Number of activities returned |
|
||||
|
||||
### `lemlist_get_lead`
|
||||
|
||||
|
||||
@@ -60,27 +60,6 @@ Fetch and filter issues from Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issues` | array | Array of filtered issues from Linear |
|
||||
| ↳ `id` | string | Issue ID |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `description` | string | Issue description |
|
||||
| ↳ `priority` | number | Issue priority |
|
||||
| ↳ `estimate` | number | Issue estimate |
|
||||
| ↳ `url` | string | Issue URL |
|
||||
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `state` | object | Issue state |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `teamId` | string | Team ID |
|
||||
| ↳ `teamName` | string | Team name |
|
||||
| ↳ `projectId` | string | Project ID |
|
||||
| ↳ `projectName` | string | Project name |
|
||||
| ↳ `cycleId` | string | Cycle ID |
|
||||
| ↳ `cycleNumber` | number | Cycle number |
|
||||
| ↳ `cycleName` | string | Cycle name |
|
||||
| ↳ `labels` | array | Issue labels |
|
||||
| `hasNextPage` | boolean | Whether there are more results available |
|
||||
| `endCursor` | string | Cursor for fetching the next page \(use as |
|
||||
|
||||
### `linear_get_issue`
|
||||
|
||||
@@ -97,17 +76,6 @@ Get a single issue by ID from Linear with full details
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | The issue with full details |
|
||||
| ↳ `id` | string | Issue ID |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `description` | string | Issue description |
|
||||
| ↳ `priority` | number | Issue priority \(0-4\) |
|
||||
| ↳ `estimate` | number | Issue estimate in points |
|
||||
| ↳ `url` | string | Issue URL |
|
||||
| ↳ `state` | object | Issue state/status |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `labels` | array | Issue labels |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
|
||||
### `linear_create_issue`
|
||||
|
||||
@@ -137,25 +105,6 @@ Create a new issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | The created issue with all its properties |
|
||||
| ↳ `id` | string | Issue ID |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `description` | string | Issue description |
|
||||
| ↳ `priority` | number | Issue priority |
|
||||
| ↳ `estimate` | number | Issue estimate |
|
||||
| ↳ `url` | string | Issue URL |
|
||||
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
|
||||
| ↳ `state` | object | Issue state |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `teamId` | string | Team ID |
|
||||
| ↳ `projectId` | string | Project ID |
|
||||
| ↳ `cycleId` | string | Cycle ID |
|
||||
| ↳ `cycleNumber` | number | Cycle number |
|
||||
| ↳ `cycleName` | string | Cycle name |
|
||||
| ↳ `parentId` | string | Parent issue ID |
|
||||
| ↳ `parentTitle` | string | Parent issue title |
|
||||
| ↳ `projectMilestoneId` | string | Project milestone ID |
|
||||
| ↳ `projectMilestoneName` | string | Project milestone name |
|
||||
| ↳ `labels` | array | Issue labels |
|
||||
|
||||
### `linear_update_issue`
|
||||
|
||||
@@ -185,22 +134,6 @@ Update an existing issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | The updated issue |
|
||||
| ↳ `id` | string | Issue ID |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `description` | string | Issue description |
|
||||
| ↳ `priority` | number | Issue priority |
|
||||
| ↳ `estimate` | number | Issue estimate |
|
||||
| ↳ `state` | object | Issue state |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `labels` | array | Issue labels |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
|
||||
| ↳ `projectId` | string | Project ID |
|
||||
| ↳ `cycleId` | string | Cycle ID |
|
||||
| ↳ `cycleNumber` | number | Cycle number |
|
||||
| ↳ `cycleName` | string | Cycle name |
|
||||
| ↳ `parentId` | string | Parent issue ID |
|
||||
| ↳ `parentTitle` | string | Parent issue title |
|
||||
|
||||
### `linear_archive_issue`
|
||||
|
||||
@@ -270,16 +203,6 @@ Search for issues in Linear using full-text search
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issues` | array | Array of matching issues |
|
||||
| ↳ `id` | string | Issue ID |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `description` | string | Issue description |
|
||||
| ↳ `priority` | number | Issue priority |
|
||||
| ↳ `state` | object | Issue state |
|
||||
| ↳ `assignee` | object | Assigned user |
|
||||
| ↳ `labels` | array | Issue labels |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
| ↳ `hasNextPage` | boolean | Whether there are more results |
|
||||
| ↳ `endCursor` | string | Cursor for next page |
|
||||
|
||||
### `linear_add_label_to_issue`
|
||||
|
||||
@@ -333,11 +256,6 @@ Add a comment to an issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `comment` | object | The created comment |
|
||||
| ↳ `id` | string | Comment ID |
|
||||
| ↳ `body` | string | Comment text |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `user` | object | User who created the comment |
|
||||
| ↳ `issue` | object | Associated issue |
|
||||
|
||||
### `linear_update_comment`
|
||||
|
||||
@@ -355,10 +273,6 @@ Edit a comment in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `comment` | object | The updated comment |
|
||||
| ↳ `id` | string | Comment ID |
|
||||
| ↳ `body` | string | Comment text |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `user` | object | User who created the comment |
|
||||
|
||||
### `linear_delete_comment`
|
||||
|
||||
@@ -393,14 +307,6 @@ List all comments on an issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `comments` | array | Array of comments on the issue |
|
||||
| ↳ `id` | string | Comment ID |
|
||||
| ↳ `body` | string | Comment text |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `user` | object | User who created the comment |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
| ↳ `hasNextPage` | boolean | Whether there are more results |
|
||||
| ↳ `endCursor` | string | Cursor for next page |
|
||||
|
||||
### `linear_list_projects`
|
||||
|
||||
@@ -420,14 +326,6 @@ List projects in Linear with optional filtering
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | Array of projects |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `description` | string | Project description |
|
||||
| ↳ `state` | string | Project state |
|
||||
| ↳ `priority` | number | Project priority |
|
||||
| ↳ `lead` | object | Project lead |
|
||||
| ↳ `teams` | array | Teams associated with project |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_get_project`
|
||||
|
||||
@@ -444,15 +342,6 @@ Get a single project by ID from Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The project with full details |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `description` | string | Project description |
|
||||
| ↳ `state` | string | Project state |
|
||||
| ↳ `priority` | number | Project priority |
|
||||
| ↳ `startDate` | string | Start date |
|
||||
| ↳ `targetDate` | string | Target completion date |
|
||||
| ↳ `lead` | object | Project lead |
|
||||
| ↳ `teams` | array | Associated teams |
|
||||
|
||||
### `linear_create_project`
|
||||
|
||||
@@ -475,13 +364,6 @@ Create a new project in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The created project |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `description` | string | Project description |
|
||||
| ↳ `state` | string | Project state |
|
||||
| ↳ `priority` | number | Project priority |
|
||||
| ↳ `lead` | object | Project lead |
|
||||
| ↳ `teams` | array | Associated teams |
|
||||
|
||||
### `linear_update_project`
|
||||
|
||||
@@ -505,15 +387,6 @@ Update an existing project in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The updated project |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `description` | string | Project description |
|
||||
| ↳ `state` | string | Project state |
|
||||
| ↳ `priority` | number | Project priority |
|
||||
| ↳ `startDate` | string | Project start date |
|
||||
| ↳ `targetDate` | string | Project target date |
|
||||
| ↳ `lead` | object | Project lead |
|
||||
| ↳ `teams` | array | Associated teams |
|
||||
|
||||
### `linear_archive_project`
|
||||
|
||||
@@ -549,14 +422,6 @@ List all users in the Linear workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of workspace users |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `displayName` | string | Display name |
|
||||
| ↳ `active` | boolean | Whether user is active |
|
||||
| ↳ `admin` | boolean | Whether user is admin |
|
||||
| ↳ `avatarUrl` | string | Avatar URL |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_list_teams`
|
||||
|
||||
@@ -574,11 +439,6 @@ List all teams in the Linear workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `teams` | array | Array of teams |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `key` | string | Team key \(used in issue identifiers\) |
|
||||
| ↳ `description` | string | Team description |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_get_viewer`
|
||||
|
||||
@@ -594,13 +454,6 @@ Get the currently authenticated user (viewer) information
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | The currently authenticated user |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `displayName` | string | Display name |
|
||||
| ↳ `active` | boolean | Whether user is active |
|
||||
| ↳ `admin` | boolean | Whether user is admin |
|
||||
| ↳ `avatarUrl` | string | Avatar URL |
|
||||
|
||||
### `linear_list_labels`
|
||||
|
||||
@@ -619,12 +472,6 @@ List all labels in Linear workspace or team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `labels` | array | Array of labels |
|
||||
| ↳ `id` | string | Label ID |
|
||||
| ↳ `name` | string | Label name |
|
||||
| ↳ `color` | string | Label color \(hex\) |
|
||||
| ↳ `description` | string | Label description |
|
||||
| ↳ `team` | object | Team this label belongs to |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_create_label`
|
||||
|
||||
@@ -644,11 +491,6 @@ Create a new label in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `label` | object | The created label |
|
||||
| ↳ `id` | string | Label ID |
|
||||
| ↳ `name` | string | Label name |
|
||||
| ↳ `color` | string | Label color |
|
||||
| ↳ `description` | string | Label description |
|
||||
| ↳ `team` | object | Team this label belongs to |
|
||||
|
||||
### `linear_update_label`
|
||||
|
||||
@@ -668,10 +510,6 @@ Update an existing label in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `label` | object | The updated label |
|
||||
| ↳ `id` | string | Label ID |
|
||||
| ↳ `name` | string | Label name |
|
||||
| ↳ `color` | string | Label color |
|
||||
| ↳ `description` | string | Label description |
|
||||
|
||||
### `linear_archive_label`
|
||||
|
||||
@@ -707,13 +545,6 @@ List all workflow states (statuses) in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `states` | array | Array of workflow states |
|
||||
| ↳ `id` | string | State ID |
|
||||
| ↳ `name` | string | State name \(e.g., |
|
||||
| ↳ `type` | string | State type \(e.g., |
|
||||
| ↳ `color` | string | State color |
|
||||
| ↳ `position` | number | State position in workflow |
|
||||
| ↳ `team` | object | Team this state belongs to |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_create_workflow_state`
|
||||
|
||||
@@ -735,12 +566,6 @@ Create a new workflow state (status) in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `state` | object | The created workflow state |
|
||||
| ↳ `id` | string | State ID |
|
||||
| ↳ `name` | string | State name |
|
||||
| ↳ `type` | string | State type |
|
||||
| ↳ `color` | string | State color |
|
||||
| ↳ `position` | number | State position |
|
||||
| ↳ `team` | object | Team this state belongs to |
|
||||
|
||||
### `linear_update_workflow_state`
|
||||
|
||||
@@ -761,11 +586,6 @@ Update an existing workflow state in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `state` | object | The updated workflow state |
|
||||
| ↳ `id` | string | State ID |
|
||||
| ↳ `name` | string | State name |
|
||||
| ↳ `type` | string | State type |
|
||||
| ↳ `color` | string | State color |
|
||||
| ↳ `position` | number | State position |
|
||||
|
||||
### `linear_list_cycles`
|
||||
|
||||
@@ -784,15 +604,6 @@ List cycles (sprints/iterations) in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `cycles` | array | Array of cycles |
|
||||
| ↳ `id` | string | Cycle ID |
|
||||
| ↳ `number` | number | Cycle number |
|
||||
| ↳ `name` | string | Cycle name |
|
||||
| ↳ `startsAt` | string | Start date |
|
||||
| ↳ `endsAt` | string | End date |
|
||||
| ↳ `completedAt` | string | Completion date |
|
||||
| ↳ `progress` | number | Progress percentage \(0-1\) |
|
||||
| ↳ `team` | object | Team this cycle belongs to |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_get_cycle`
|
||||
|
||||
@@ -809,13 +620,6 @@ Get a single cycle by ID from Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `cycle` | object | The cycle with full details |
|
||||
| ↳ `id` | string | Cycle ID |
|
||||
| ↳ `number` | number | Cycle number |
|
||||
| ↳ `name` | string | Cycle name |
|
||||
| ↳ `startsAt` | string | Start date |
|
||||
| ↳ `endsAt` | string | End date |
|
||||
| ↳ `progress` | number | Progress percentage |
|
||||
| ↳ `team` | object | Team this cycle belongs to |
|
||||
|
||||
### `linear_create_cycle`
|
||||
|
||||
@@ -835,12 +639,6 @@ Create a new cycle (sprint/iteration) in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `cycle` | object | The created cycle |
|
||||
| ↳ `id` | string | Cycle ID |
|
||||
| ↳ `number` | number | Cycle number |
|
||||
| ↳ `name` | string | Cycle name |
|
||||
| ↳ `startsAt` | string | Start date |
|
||||
| ↳ `endsAt` | string | End date |
|
||||
| ↳ `team` | object | Team this cycle belongs to |
|
||||
|
||||
### `linear_get_active_cycle`
|
||||
|
||||
@@ -857,13 +655,6 @@ Get the currently active cycle for a team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `cycle` | object | The active cycle \(null if no active cycle\) |
|
||||
| ↳ `id` | string | Cycle ID |
|
||||
| ↳ `number` | number | Cycle number |
|
||||
| ↳ `name` | string | Cycle name |
|
||||
| ↳ `startsAt` | string | Start date |
|
||||
| ↳ `endsAt` | string | End date |
|
||||
| ↳ `progress` | number | Progress percentage |
|
||||
| ↳ `team` | object | Team this cycle belongs to |
|
||||
|
||||
### `linear_create_attachment`
|
||||
|
||||
@@ -883,11 +674,6 @@ Add an attachment to an issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `attachment` | object | The created attachment |
|
||||
| ↳ `id` | string | Attachment ID |
|
||||
| ↳ `title` | string | Attachment title |
|
||||
| ↳ `subtitle` | string | Attachment subtitle |
|
||||
| ↳ `url` | string | Attachment URL |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
|
||||
### `linear_list_attachments`
|
||||
|
||||
@@ -906,12 +692,6 @@ List all attachments on an issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `attachments` | array | Array of attachments |
|
||||
| ↳ `id` | string | Attachment ID |
|
||||
| ↳ `title` | string | Attachment title |
|
||||
| ↳ `subtitle` | string | Attachment subtitle |
|
||||
| ↳ `url` | string | Attachment URL |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_update_attachment`
|
||||
|
||||
@@ -930,11 +710,6 @@ Update an attachment metadata in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `attachment` | object | The updated attachment |
|
||||
| ↳ `id` | string | Attachment ID |
|
||||
| ↳ `title` | string | Attachment title |
|
||||
| ↳ `subtitle` | string | Attachment subtitle |
|
||||
| ↳ `url` | string | Attachment URL |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
|
||||
### `linear_delete_attachment`
|
||||
|
||||
@@ -969,10 +744,6 @@ Link two issues together in Linear (blocks, relates to, duplicates)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `relation` | object | The created issue relation |
|
||||
| ↳ `id` | string | Relation ID |
|
||||
| ↳ `type` | string | Relation type |
|
||||
| ↳ `issue` | object | Source issue |
|
||||
| ↳ `relatedIssue` | object | Target issue |
|
||||
|
||||
### `linear_list_issue_relations`
|
||||
|
||||
@@ -991,11 +762,6 @@ List all relations (dependencies) for an issue in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `relations` | array | Array of issue relations |
|
||||
| ↳ `id` | string | Relation ID |
|
||||
| ↳ `type` | string | Relation type |
|
||||
| ↳ `issue` | object | Source issue |
|
||||
| ↳ `relatedIssue` | object | Target issue |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_delete_issue_relation`
|
||||
|
||||
@@ -1031,11 +797,6 @@ Bookmark an issue, project, cycle, or label in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `favorite` | object | The created favorite |
|
||||
| ↳ `id` | string | Favorite ID |
|
||||
| ↳ `type` | string | Favorite type |
|
||||
| ↳ `issue` | object | Favorited issue \(if applicable\) |
|
||||
| ↳ `project` | object | Favorited project \(if applicable\) |
|
||||
| ↳ `cycle` | object | Favorited cycle \(if applicable\) |
|
||||
|
||||
### `linear_list_favorites`
|
||||
|
||||
@@ -1053,12 +814,6 @@ List all bookmarked items for the current user in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `favorites` | array | Array of favorited items |
|
||||
| ↳ `id` | string | Favorite ID |
|
||||
| ↳ `type` | string | Favorite type |
|
||||
| ↳ `issue` | object | Favorited issue |
|
||||
| ↳ `project` | object | Favorited project |
|
||||
| ↳ `cycle` | object | Favorited cycle |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_create_project_update`
|
||||
|
||||
@@ -1077,11 +832,6 @@ Post a status update for a project in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `update` | object | The created project update |
|
||||
| ↳ `id` | string | Update ID |
|
||||
| ↳ `body` | string | Update message |
|
||||
| ↳ `health` | string | Project health status |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `user` | object | User who created the update |
|
||||
|
||||
### `linear_list_project_updates`
|
||||
|
||||
@@ -1100,12 +850,6 @@ List all status updates for a project in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updates` | array | Array of project updates |
|
||||
| ↳ `id` | string | Update ID |
|
||||
| ↳ `body` | string | Update message |
|
||||
| ↳ `health` | string | Project health |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `user` | object | User who created the update |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_list_notifications`
|
||||
|
||||
@@ -1123,12 +867,6 @@ List notifications for the current user in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `notifications` | array | Array of notifications |
|
||||
| ↳ `id` | string | Notification ID |
|
||||
| ↳ `type` | string | Notification type |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `readAt` | string | Read timestamp \(null if unread\) |
|
||||
| ↳ `issue` | object | Related issue |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_update_notification`
|
||||
|
||||
@@ -1146,11 +884,6 @@ Mark a notification as read or unread in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `notification` | object | The updated notification |
|
||||
| ↳ `id` | string | Notification ID |
|
||||
| ↳ `type` | string | Notification type |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `readAt` | string | Read timestamp |
|
||||
| ↳ `issue` | object | Related issue |
|
||||
|
||||
### `linear_create_customer`
|
||||
|
||||
@@ -1175,14 +908,6 @@ Create a new customer in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `customer` | object | The created customer |
|
||||
| ↳ `id` | string | Customer ID |
|
||||
| ↳ `name` | string | Customer name |
|
||||
| ↳ `domains` | array | Associated domains |
|
||||
| ↳ `externalIds` | array | External IDs |
|
||||
| ↳ `logoUrl` | string | Logo URL |
|
||||
| ↳ `approximateNeedCount` | number | Number of customer needs |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
|
||||
|
||||
### `linear_list_customers`
|
||||
|
||||
@@ -1201,15 +926,6 @@ List all customers in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `customers` | array | Array of customers |
|
||||
| ↳ `id` | string | Customer ID |
|
||||
| ↳ `name` | string | Customer name |
|
||||
| ↳ `domains` | array | Associated domains |
|
||||
| ↳ `externalIds` | array | External IDs |
|
||||
| ↳ `logoUrl` | string | Logo URL |
|
||||
| ↳ `approximateNeedCount` | number | Number of customer needs |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_create_customer_request`
|
||||
|
||||
@@ -1230,17 +946,6 @@ Create a customer request (need) in Linear. Assign to customer, set urgency (pri
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `customerNeed` | object | The created customer request |
|
||||
| ↳ `id` | string | Customer request ID |
|
||||
| ↳ `body` | string | Request description |
|
||||
| ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
|
||||
| ↳ `customer` | object | Assigned customer |
|
||||
| ↳ `issue` | object | Linked issue \(null if not linked\) |
|
||||
| ↳ `project` | object | Linked project \(null if not linked\) |
|
||||
| ↳ `creator` | object | User who created the request |
|
||||
| ↳ `url` | string | URL to the customer request |
|
||||
|
||||
### `linear_update_customer_request`
|
||||
|
||||
@@ -1262,17 +967,6 @@ Update a customer request (need) in Linear. Can change urgency, description, cus
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `customerNeed` | object | The updated customer request |
|
||||
| ↳ `id` | string | Customer request ID |
|
||||
| ↳ `body` | string | Request description |
|
||||
| ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
|
||||
| ↳ `customer` | object | Assigned customer |
|
||||
| ↳ `issue` | object | Linked issue \(null if not linked\) |
|
||||
| ↳ `project` | object | Linked project \(null if not linked\) |
|
||||
| ↳ `creator` | object | User who created the request |
|
||||
| ↳ `url` | string | URL to the customer request |
|
||||
|
||||
### `linear_list_customer_requests`
|
||||
|
||||
@@ -1291,18 +985,6 @@ List all customer requests (needs) in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `customerNeeds` | array | Array of customer requests |
|
||||
| ↳ `id` | string | Customer request ID |
|
||||
| ↳ `body` | string | Request description |
|
||||
| ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `updatedAt` | string | Last update timestamp |
|
||||
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
|
||||
| ↳ `customer` | object | Assigned customer |
|
||||
| ↳ `issue` | object | Linked issue \(null if not linked\) |
|
||||
| ↳ `project` | object | Linked project \(null if not linked\) |
|
||||
| ↳ `creator` | object | User who created the request |
|
||||
| ↳ `url` | string | URL to the customer request |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
|
||||
### `linear_get_customer`
|
||||
|
||||
@@ -1319,14 +1001,6 @@ Get a single customer by ID in Linear
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `customer` | object | The customer data |
|
||||
| ↳ `id` | string | Customer ID |
|
||||
| ↳ `name` | string | Customer name |
|
||||
| ↳ `domains` | array | Associated domains |
|
||||
| ↳ `externalIds` | array | External IDs |
|
||||
| ↳ `logoUrl` | string | Logo URL |
|
||||
| ↳ `approximateNeedCount` | number | Number of customer needs |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
|
||||
|
||||
### `linear_update_customer`
|
||||
|
||||
|
||||
@@ -72,9 +72,6 @@ Retrieve a list of audiences (lists) from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the audiences were successfully retrieved |
|
||||
| `output` | object | Audiences data |
|
||||
| ↳ `lists` | json | Array of audience/list objects |
|
||||
| ↳ `total_items` | number | Total number of lists |
|
||||
| ↳ `total_returned` | number | Number of lists returned in this response |
|
||||
|
||||
### `mailchimp_get_audience`
|
||||
|
||||
@@ -93,8 +90,6 @@ Retrieve details of a specific audience (list) from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the audience was successfully retrieved |
|
||||
| `output` | object | Audience data |
|
||||
| ↳ `list` | json | Audience/list object |
|
||||
| ↳ `list_id` | string | The unique ID of the audience |
|
||||
|
||||
### `mailchimp_create_audience`
|
||||
|
||||
@@ -117,9 +112,6 @@ Create a new audience (list) in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created audience data |
|
||||
| ↳ `list` | json | Created audience/list object |
|
||||
| ↳ `list_id` | string | Created audience/list ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_audience`
|
||||
|
||||
@@ -142,9 +134,6 @@ Update an existing audience (list) in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated audience data |
|
||||
| ↳ `list` | object | Updated audience/list object |
|
||||
| ↳ `list_id` | string | List ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_audience`
|
||||
|
||||
@@ -183,9 +172,6 @@ Retrieve a list of members from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the members were successfully retrieved |
|
||||
| `output` | object | Members data |
|
||||
| ↳ `members` | json | Array of member objects |
|
||||
| ↳ `total_items` | number | Total number of members |
|
||||
| ↳ `total_returned` | number | Number of members returned in this response |
|
||||
|
||||
### `mailchimp_get_member`
|
||||
|
||||
@@ -205,8 +191,6 @@ Retrieve details of a specific member from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the member was successfully retrieved |
|
||||
| `output` | object | Member data |
|
||||
| ↳ `member` | json | Member object |
|
||||
| ↳ `subscriber_hash` | string | The MD5 hash of the member email address |
|
||||
|
||||
### `mailchimp_add_member`
|
||||
|
||||
@@ -229,9 +213,6 @@ Add a new member to a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Added member data |
|
||||
| ↳ `member` | json | Added member object |
|
||||
| ↳ `subscriber_hash` | string | Subscriber hash ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_add_or_update_member`
|
||||
|
||||
@@ -255,9 +236,6 @@ Add a new member or update an existing member in a Mailchimp audience (upsert)
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Member data |
|
||||
| ↳ `member` | json | Member object |
|
||||
| ↳ `subscriber_hash` | string | Subscriber hash ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_member`
|
||||
|
||||
@@ -281,9 +259,6 @@ Update an existing member in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated member data |
|
||||
| ↳ `member` | object | Updated member object |
|
||||
| ↳ `subscriber_hash` | string | Subscriber hash |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_member`
|
||||
|
||||
@@ -321,7 +296,6 @@ Permanently archive (delete) a member from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Archive confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_unarchive_member`
|
||||
|
||||
@@ -343,9 +317,6 @@ Restore an archived member to a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Unarchived member data |
|
||||
| ↳ `member` | object | Unarchived member object |
|
||||
| ↳ `subscriber_hash` | string | Subscriber hash |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_campaigns`
|
||||
|
||||
@@ -367,9 +338,6 @@ Retrieve a list of campaigns from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the campaigns were successfully retrieved |
|
||||
| `output` | object | Campaigns data |
|
||||
| ↳ `campaigns` | json | Array of campaign objects |
|
||||
| ↳ `total_items` | number | Total number of campaigns |
|
||||
| ↳ `total_returned` | number | Number of campaigns returned in this response |
|
||||
|
||||
### `mailchimp_get_campaign`
|
||||
|
||||
@@ -388,8 +356,6 @@ Retrieve details of a specific campaign from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the campaign was successfully retrieved |
|
||||
| `output` | object | Campaign data |
|
||||
| ↳ `campaign` | json | Campaign object |
|
||||
| ↳ `campaign_id` | string | The unique ID of the campaign |
|
||||
|
||||
### `mailchimp_create_campaign`
|
||||
|
||||
@@ -410,9 +376,6 @@ Create a new campaign in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created campaign data |
|
||||
| ↳ `campaign` | json | Created campaign object |
|
||||
| ↳ `campaign_id` | string | Created campaign ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_campaign`
|
||||
|
||||
@@ -433,9 +396,6 @@ Update an existing campaign in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated campaign data |
|
||||
| ↳ `campaign` | object | Updated campaign object |
|
||||
| ↳ `campaign_id` | string | Campaign ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_campaign`
|
||||
|
||||
@@ -471,7 +431,6 @@ Send a Mailchimp campaign
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Send confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_schedule_campaign`
|
||||
|
||||
@@ -508,7 +467,6 @@ Unschedule a previously scheduled Mailchimp campaign
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Unschedule confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_replicate_campaign`
|
||||
|
||||
@@ -527,9 +485,6 @@ Create a copy of an existing Mailchimp campaign
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Replicated campaign data |
|
||||
| ↳ `campaign` | object | Replicated campaign object |
|
||||
| ↳ `campaign_id` | string | Campaign ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_campaign_content`
|
||||
|
||||
@@ -548,7 +503,6 @@ Retrieve the HTML and plain-text content for a Mailchimp campaign
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the campaign content was successfully retrieved |
|
||||
| `output` | object | Campaign content data |
|
||||
| ↳ `content` | json | Campaign content object |
|
||||
|
||||
### `mailchimp_set_campaign_content`
|
||||
|
||||
@@ -570,8 +524,6 @@ Set the content for a Mailchimp campaign
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Campaign content data |
|
||||
| ↳ `content` | object | Campaign content object |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_automations`
|
||||
|
||||
@@ -591,9 +543,6 @@ Retrieve a list of automations from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the automations were successfully retrieved |
|
||||
| `output` | object | Automations data |
|
||||
| ↳ `automations` | json | Array of automation objects |
|
||||
| ↳ `total_items` | number | Total number of automations |
|
||||
| ↳ `total_returned` | number | Number of automations returned in this response |
|
||||
|
||||
### `mailchimp_get_automation`
|
||||
|
||||
@@ -612,8 +561,6 @@ Retrieve details of a specific automation from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the automation was successfully retrieved |
|
||||
| `output` | object | Automation data |
|
||||
| ↳ `automation` | json | Automation object |
|
||||
| ↳ `workflow_id` | string | The unique ID of the automation workflow |
|
||||
|
||||
### `mailchimp_start_automation`
|
||||
|
||||
@@ -632,7 +579,6 @@ Start all emails in a Mailchimp automation workflow
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Start confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_pause_automation`
|
||||
|
||||
@@ -651,7 +597,6 @@ Pause all emails in a Mailchimp automation workflow
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Pause confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_add_subscriber_to_automation`
|
||||
|
||||
@@ -672,8 +617,6 @@ Manually add a subscriber to a workflow email queue
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Subscriber queue data |
|
||||
| ↳ `subscriber` | json | Subscriber object |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_templates`
|
||||
|
||||
@@ -693,9 +636,6 @@ Retrieve a list of templates from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the templates were successfully retrieved |
|
||||
| `output` | object | Templates data |
|
||||
| ↳ `templates` | json | Array of template objects |
|
||||
| ↳ `total_items` | number | Total number of templates |
|
||||
| ↳ `total_returned` | number | Number of templates returned in this response |
|
||||
|
||||
### `mailchimp_get_template`
|
||||
|
||||
@@ -714,8 +654,6 @@ Retrieve details of a specific template from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the template was successfully retrieved |
|
||||
| `output` | object | Template data |
|
||||
| ↳ `template` | json | Template object |
|
||||
| ↳ `template_id` | string | The unique ID of the template |
|
||||
|
||||
### `mailchimp_create_template`
|
||||
|
||||
@@ -735,9 +673,6 @@ Create a new template in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created template data |
|
||||
| ↳ `template` | json | Created template object |
|
||||
| ↳ `template_id` | string | Created template ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_template`
|
||||
|
||||
@@ -758,9 +693,6 @@ Update an existing template in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated template data |
|
||||
| ↳ `template` | object | Updated template object |
|
||||
| ↳ `template_id` | string | Template ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_template`
|
||||
|
||||
@@ -797,9 +729,6 @@ Retrieve a list of campaign reports from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the campaign reports were successfully retrieved |
|
||||
| `output` | object | Campaign reports data |
|
||||
| ↳ `reports` | json | Array of campaign report objects |
|
||||
| ↳ `total_items` | number | Total number of reports |
|
||||
| ↳ `total_returned` | number | Number of reports returned in this response |
|
||||
|
||||
### `mailchimp_get_campaign_report`
|
||||
|
||||
@@ -818,8 +747,6 @@ Retrieve the report for a specific campaign from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the campaign report was successfully retrieved |
|
||||
| `output` | object | Campaign report data |
|
||||
| ↳ `report` | json | Campaign report object |
|
||||
| ↳ `campaign_id` | string | The unique ID of the campaign |
|
||||
|
||||
### `mailchimp_get_segments`
|
||||
|
||||
@@ -840,9 +767,6 @@ Retrieve a list of segments from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the segments were successfully retrieved |
|
||||
| `output` | object | Segments data |
|
||||
| ↳ `segments` | json | Array of segment objects |
|
||||
| ↳ `total_items` | number | Total number of segments |
|
||||
| ↳ `total_returned` | number | Number of segments returned in this response |
|
||||
|
||||
### `mailchimp_get_segment`
|
||||
|
||||
@@ -862,8 +786,6 @@ Retrieve details of a specific segment from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the segment was successfully retrieved |
|
||||
| `output` | object | Segment data |
|
||||
| ↳ `segment` | json | Segment object |
|
||||
| ↳ `segment_id` | string | The unique ID of the segment |
|
||||
|
||||
### `mailchimp_create_segment`
|
||||
|
||||
@@ -884,9 +806,6 @@ Create a new segment in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created segment data |
|
||||
| ↳ `segment` | json | Created segment object |
|
||||
| ↳ `segment_id` | string | Created segment ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_segment`
|
||||
|
||||
@@ -908,9 +827,6 @@ Update an existing segment in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated segment data |
|
||||
| ↳ `segment` | object | Updated segment object |
|
||||
| ↳ `segment_id` | string | Segment ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_segment`
|
||||
|
||||
@@ -950,9 +866,6 @@ Retrieve members of a specific segment from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the segment members were successfully retrieved |
|
||||
| `output` | object | Segment members data |
|
||||
| ↳ `members` | json | Array of member objects |
|
||||
| ↳ `total_items` | number | Total number of members |
|
||||
| ↳ `total_returned` | number | Number of members returned in this response |
|
||||
|
||||
### `mailchimp_add_segment_member`
|
||||
|
||||
@@ -973,8 +886,6 @@ Add a member to a specific segment in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Added member data |
|
||||
| ↳ `member` | json | Added member object |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_remove_segment_member`
|
||||
|
||||
@@ -995,7 +906,6 @@ Remove a member from a specific segment in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Removal confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_member_tags`
|
||||
|
||||
@@ -1015,9 +925,6 @@ Retrieve tags associated with a member in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the member tags were successfully retrieved |
|
||||
| `output` | object | Member tags data |
|
||||
| ↳ `tags` | json | Array of tag objects |
|
||||
| ↳ `total_items` | number | Total number of tags |
|
||||
| ↳ `total_returned` | number | Number of tags returned in this response |
|
||||
|
||||
### `mailchimp_add_member_tags`
|
||||
|
||||
@@ -1038,7 +945,6 @@ Add tags to a member in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Tag addition confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_remove_member_tags`
|
||||
|
||||
@@ -1059,7 +965,6 @@ Remove tags from a member in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Tag removal confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_merge_fields`
|
||||
|
||||
@@ -1080,9 +985,6 @@ Retrieve a list of merge fields from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the merge fields were successfully retrieved |
|
||||
| `output` | object | Merge fields data |
|
||||
| ↳ `mergeFields` | json | Array of merge field objects |
|
||||
| ↳ `total_items` | number | Total number of merge fields |
|
||||
| ↳ `total_returned` | number | Number of merge fields returned in this response |
|
||||
|
||||
### `mailchimp_get_merge_field`
|
||||
|
||||
@@ -1102,8 +1004,6 @@ Retrieve details of a specific merge field from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the merge field was successfully retrieved |
|
||||
| `output` | object | Merge field data |
|
||||
| ↳ `mergeField` | json | Merge field object |
|
||||
| ↳ `merge_id` | string | The unique ID of the merge field |
|
||||
|
||||
### `mailchimp_create_merge_field`
|
||||
|
||||
@@ -1124,9 +1024,6 @@ Create a new merge field in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created merge field data |
|
||||
| ↳ `mergeField` | json | Created merge field object |
|
||||
| ↳ `merge_id` | string | Created merge field ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_merge_field`
|
||||
|
||||
@@ -1147,9 +1044,6 @@ Update an existing merge field in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated merge field data |
|
||||
| ↳ `mergeField` | object | Updated merge field object |
|
||||
| ↳ `merge_id` | string | Merge field ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_merge_field`
|
||||
|
||||
@@ -1188,9 +1082,6 @@ Retrieve a list of interest categories from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the interest categories were successfully retrieved |
|
||||
| `output` | object | Interest categories data |
|
||||
| ↳ `categories` | json | Array of interest category objects |
|
||||
| ↳ `total_items` | number | Total number of categories |
|
||||
| ↳ `total_returned` | number | Number of categories returned in this response |
|
||||
|
||||
### `mailchimp_get_interest_category`
|
||||
|
||||
@@ -1210,8 +1101,6 @@ Retrieve details of a specific interest category from a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the interest category was successfully retrieved |
|
||||
| `output` | object | Interest category data |
|
||||
| ↳ `category` | json | Interest category object |
|
||||
| ↳ `interest_category_id` | string | The unique ID of the interest category |
|
||||
|
||||
### `mailchimp_create_interest_category`
|
||||
|
||||
@@ -1232,9 +1121,6 @@ Create a new interest category in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created interest category data |
|
||||
| ↳ `category` | json | Created interest category object |
|
||||
| ↳ `interest_category_id` | string | Created interest category ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_interest_category`
|
||||
|
||||
@@ -1255,9 +1141,6 @@ Update an existing interest category in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated interest category data |
|
||||
| ↳ `category` | object | Updated interest category object |
|
||||
| ↳ `interest_category_id` | string | Interest category ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_interest_category`
|
||||
|
||||
@@ -1297,9 +1180,6 @@ Retrieve a list of interests from an interest category in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the interests were successfully retrieved |
|
||||
| `output` | object | Interests data |
|
||||
| ↳ `interests` | json | Array of interest objects |
|
||||
| ↳ `total_items` | number | Total number of interests |
|
||||
| ↳ `total_returned` | number | Number of interests returned in this response |
|
||||
|
||||
### `mailchimp_get_interest`
|
||||
|
||||
@@ -1320,8 +1200,6 @@ Retrieve details of a specific interest from an interest category in a Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the interest was successfully retrieved |
|
||||
| `output` | object | Interest data |
|
||||
| ↳ `interest` | json | Interest object |
|
||||
| ↳ `interest_id` | string | The unique ID of the interest |
|
||||
|
||||
### `mailchimp_create_interest`
|
||||
|
||||
@@ -1342,9 +1220,6 @@ Create a new interest in an interest category in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created interest data |
|
||||
| ↳ `interest` | json | Created interest object |
|
||||
| ↳ `interest_id` | string | Created interest ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_interest`
|
||||
|
||||
@@ -1366,9 +1241,6 @@ Update an existing interest in an interest category in a Mailchimp audience
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated interest data |
|
||||
| ↳ `interest` | object | Updated interest object |
|
||||
| ↳ `interest_id` | string | Interest ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_interest`
|
||||
|
||||
@@ -1407,9 +1279,6 @@ Retrieve a list of landing pages from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the landing pages were successfully retrieved |
|
||||
| `output` | object | Landing pages data |
|
||||
| ↳ `landingPages` | json | Array of landing page objects |
|
||||
| ↳ `total_items` | number | Total number of landing pages |
|
||||
| ↳ `total_returned` | number | Number of landing pages returned in this response |
|
||||
|
||||
### `mailchimp_get_landing_page`
|
||||
|
||||
@@ -1428,8 +1297,6 @@ Retrieve details of a specific landing page from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the landing page was successfully retrieved |
|
||||
| `output` | object | Landing page data |
|
||||
| ↳ `landingPage` | json | Landing page object |
|
||||
| ↳ `page_id` | string | The unique ID of the landing page |
|
||||
|
||||
### `mailchimp_create_landing_page`
|
||||
|
||||
@@ -1449,9 +1316,6 @@ Create a new landing page in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created landing page data |
|
||||
| ↳ `landingPage` | json | Created landing page object |
|
||||
| ↳ `page_id` | string | Created landing page ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_update_landing_page`
|
||||
|
||||
@@ -1471,9 +1335,6 @@ Update an existing landing page in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated landing page data |
|
||||
| ↳ `landingPage` | object | Updated landing page object |
|
||||
| ↳ `page_id` | string | Landing page ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_landing_page`
|
||||
|
||||
@@ -1509,7 +1370,6 @@ Publish a landing page in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Publish confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_unpublish_landing_page`
|
||||
|
||||
@@ -1528,7 +1388,6 @@ Unpublish a landing page in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Unpublish confirmation |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_get_batch_operations`
|
||||
|
||||
@@ -1548,9 +1407,6 @@ Retrieve a list of batch operations from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the batch operations were successfully retrieved |
|
||||
| `output` | object | Batch operations data |
|
||||
| ↳ `batches` | json | Array of batch operation objects |
|
||||
| ↳ `total_items` | number | Total number of batch operations |
|
||||
| ↳ `total_returned` | number | Number of batch operations returned in this response |
|
||||
|
||||
### `mailchimp_get_batch_operation`
|
||||
|
||||
@@ -1569,8 +1425,6 @@ Retrieve details of a specific batch operation from Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the batch operation was successfully retrieved |
|
||||
| `output` | object | Batch operation data |
|
||||
| ↳ `batch` | json | Batch operation object |
|
||||
| ↳ `batch_id` | string | The unique ID of the batch operation |
|
||||
|
||||
### `mailchimp_create_batch_operation`
|
||||
|
||||
@@ -1589,9 +1443,6 @@ Create a new batch operation in Mailchimp
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created batch operation data |
|
||||
| ↳ `batch` | json | Created batch operation object |
|
||||
| ↳ `batch_id` | string | Created batch operation ID |
|
||||
| ↳ `success` | boolean | Operation success |
|
||||
|
||||
### `mailchimp_delete_batch_operation`
|
||||
|
||||
|
||||
@@ -52,7 +52,6 @@
|
||||
"jira_service_management",
|
||||
"kalshi",
|
||||
"knowledge",
|
||||
"langsmith",
|
||||
"lemlist",
|
||||
"linear",
|
||||
"linkedin",
|
||||
@@ -104,6 +103,7 @@
|
||||
"supabase",
|
||||
"tavily",
|
||||
"telegram",
|
||||
"thinking",
|
||||
"tinybird",
|
||||
"translate",
|
||||
"trello",
|
||||
|
||||
@@ -49,11 +49,6 @@ Read data from a Microsoft Excel spreadsheet
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Range data from the spreadsheet |
|
||||
| ↳ `range` | string | The range that was read |
|
||||
| ↳ `values` | array | Array of rows containing cell values |
|
||||
| `metadata` | object | Spreadsheet metadata |
|
||||
| ↳ `spreadsheetId` | string | The ID of the spreadsheet |
|
||||
| ↳ `spreadsheetUrl` | string | URL to access the spreadsheet |
|
||||
|
||||
### `microsoft_excel_write`
|
||||
|
||||
@@ -78,8 +73,6 @@ Write data to a Microsoft Excel spreadsheet
|
||||
| `updatedColumns` | number | Number of columns that were updated |
|
||||
| `updatedCells` | number | Number of cells that were updated |
|
||||
| `metadata` | object | Spreadsheet metadata |
|
||||
| ↳ `spreadsheetId` | string | The ID of the spreadsheet |
|
||||
| ↳ `spreadsheetUrl` | string | URL to access the spreadsheet |
|
||||
|
||||
### `microsoft_excel_table_add`
|
||||
|
||||
@@ -100,8 +93,6 @@ Add new rows to a Microsoft Excel table
|
||||
| `index` | number | Index of the first row that was added |
|
||||
| `values` | array | Array of rows that were added to the table |
|
||||
| `metadata` | object | Spreadsheet metadata |
|
||||
| ↳ `spreadsheetId` | string | The ID of the spreadsheet |
|
||||
| ↳ `spreadsheetUrl` | string | URL to access the spreadsheet |
|
||||
|
||||
### `microsoft_excel_worksheet_add`
|
||||
|
||||
@@ -119,12 +110,5 @@ Create a new worksheet (sheet) in a Microsoft Excel workbook
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `worksheet` | object | Details of the newly created worksheet |
|
||||
| ↳ `id` | string | The unique ID of the worksheet |
|
||||
| ↳ `name` | string | The name of the worksheet |
|
||||
| ↳ `position` | number | The zero-based position of the worksheet |
|
||||
| ↳ `visibility` | string | The visibility state of the worksheet \(Visible/Hidden/VeryHidden\) |
|
||||
| `metadata` | object | Spreadsheet metadata |
|
||||
| ↳ `spreadsheetId` | string | The ID of the spreadsheet |
|
||||
| ↳ `spreadsheetUrl` | string | URL to access the spreadsheet |
|
||||
|
||||
|
||||
|
||||
@@ -50,9 +50,6 @@ Read tasks from Microsoft Planner - get all user tasks or all tasks from a speci
|
||||
| `success` | boolean | Whether tasks were retrieved successfully |
|
||||
| `tasks` | array | Array of task objects with filtered properties |
|
||||
| `metadata` | object | Metadata including planId, userId, and planUrl |
|
||||
| ↳ `planId` | string | Plan ID |
|
||||
| ↳ `userId` | string | User ID |
|
||||
| ↳ `planUrl` | string | Microsoft Graph API URL for the plan |
|
||||
|
||||
### `microsoft_planner_create_task`
|
||||
|
||||
@@ -76,9 +73,6 @@ Create a new task in Microsoft Planner
|
||||
| `success` | boolean | Whether the task was created successfully |
|
||||
| `task` | object | The created task object with all properties |
|
||||
| `metadata` | object | Metadata including planId, taskId, and taskUrl |
|
||||
| ↳ `planId` | string | Parent plan ID |
|
||||
| ↳ `taskId` | string | Created task ID |
|
||||
| ↳ `taskUrl` | string | Microsoft Graph API URL for the task |
|
||||
|
||||
### `microsoft_planner_update_task`
|
||||
|
||||
@@ -108,9 +102,6 @@ Update a task in Microsoft Planner
|
||||
| `taskId` | string | ID of the updated task |
|
||||
| `etag` | string | New ETag after update - use this for subsequent operations |
|
||||
| `metadata` | object | Metadata including taskId, planId, and taskUrl |
|
||||
| ↳ `taskId` | string | Updated task ID |
|
||||
| ↳ `planId` | string | Parent plan ID |
|
||||
| ↳ `taskUrl` | string | Microsoft Graph API URL for the task |
|
||||
|
||||
### `microsoft_planner_delete_task`
|
||||
|
||||
@@ -147,8 +138,6 @@ List all plans shared with the current user
|
||||
| `success` | boolean | Whether plans were retrieved successfully |
|
||||
| `plans` | array | Array of plan objects shared with the current user |
|
||||
| `metadata` | object | Metadata including userId and count |
|
||||
| ↳ `count` | number | Number of plans returned |
|
||||
| ↳ `userId` | string | User ID |
|
||||
|
||||
### `microsoft_planner_read_plan`
|
||||
|
||||
@@ -167,8 +156,6 @@ Get details of a specific Microsoft Planner plan
|
||||
| `success` | boolean | Whether the plan was retrieved successfully |
|
||||
| `plan` | object | The plan object with all properties |
|
||||
| `metadata` | object | Metadata including planId and planUrl |
|
||||
| ↳ `planId` | string | Plan ID |
|
||||
| ↳ `planUrl` | string | Microsoft Graph API URL for the plan |
|
||||
|
||||
### `microsoft_planner_list_buckets`
|
||||
|
||||
@@ -187,8 +174,6 @@ List all buckets in a Microsoft Planner plan
|
||||
| `success` | boolean | Whether buckets were retrieved successfully |
|
||||
| `buckets` | array | Array of bucket objects |
|
||||
| `metadata` | object | Metadata including planId and count |
|
||||
| ↳ `planId` | string | Plan ID |
|
||||
| ↳ `count` | number | Number of buckets returned |
|
||||
|
||||
### `microsoft_planner_read_bucket`
|
||||
|
||||
@@ -207,8 +192,6 @@ Get details of a specific bucket
|
||||
| `success` | boolean | Whether the bucket was retrieved successfully |
|
||||
| `bucket` | object | The bucket object with all properties |
|
||||
| `metadata` | object | Metadata including bucketId and planId |
|
||||
| ↳ `bucketId` | string | Bucket ID |
|
||||
| ↳ `planId` | string | Parent plan ID |
|
||||
|
||||
### `microsoft_planner_create_bucket`
|
||||
|
||||
@@ -228,8 +211,6 @@ Create a new bucket in a Microsoft Planner plan
|
||||
| `success` | boolean | Whether the bucket was created successfully |
|
||||
| `bucket` | object | The created bucket object with all properties |
|
||||
| `metadata` | object | Metadata including bucketId and planId |
|
||||
| ↳ `bucketId` | string | Created bucket ID |
|
||||
| ↳ `planId` | string | Parent plan ID |
|
||||
|
||||
### `microsoft_planner_update_bucket`
|
||||
|
||||
@@ -250,8 +231,6 @@ Update a bucket in Microsoft Planner
|
||||
| `success` | boolean | Whether the bucket was updated successfully |
|
||||
| `bucket` | object | The updated bucket object with all properties |
|
||||
| `metadata` | object | Metadata including bucketId and planId |
|
||||
| ↳ `bucketId` | string | Updated bucket ID |
|
||||
| ↳ `planId` | string | Parent plan ID |
|
||||
|
||||
### `microsoft_planner_delete_bucket`
|
||||
|
||||
@@ -290,7 +269,6 @@ Get detailed information about a task including checklist and references
|
||||
| `taskDetails` | object | The task details including description, checklist, and references |
|
||||
| `etag` | string | The ETag value for this task details - use this for update operations |
|
||||
| `metadata` | object | Metadata including taskId |
|
||||
| ↳ `taskId` | string | Task ID |
|
||||
|
||||
### `microsoft_planner_update_task_details`
|
||||
|
||||
@@ -314,6 +292,5 @@ Update task details including description, checklist items, and references in Mi
|
||||
| `success` | boolean | Whether the task details were updated successfully |
|
||||
| `taskDetails` | object | The updated task details object with all properties |
|
||||
| `metadata` | object | Metadata including taskId |
|
||||
| ↳ `taskId` | string | Task ID |
|
||||
|
||||
|
||||
|
||||
@@ -254,15 +254,6 @@ Get a specific message from a Microsoft Teams chat or channel
|
||||
| `success` | boolean | Whether the retrieval was successful |
|
||||
| `content` | string | The message content |
|
||||
| `metadata` | object | Message metadata including sender, timestamp, etc. |
|
||||
| ↳ `messageId` | string | Message ID |
|
||||
| ↳ `content` | string | Message content |
|
||||
| ↳ `createdTime` | string | Message creation timestamp |
|
||||
| ↳ `url` | string | Web URL to the message |
|
||||
| ↳ `teamId` | string | Team ID |
|
||||
| ↳ `channelId` | string | Channel ID |
|
||||
| ↳ `chatId` | string | Chat ID |
|
||||
| ↳ `messages` | array | Array of message details |
|
||||
| ↳ `messageCount` | number | Number of messages |
|
||||
|
||||
### `microsoft_teams_set_reaction`
|
||||
|
||||
|
||||
@@ -57,15 +57,5 @@ Parse PDF documents using Mistral OCR API
|
||||
| `success` | boolean | Whether the PDF was parsed successfully |
|
||||
| `content` | string | Extracted content in the requested format \(markdown, text, or JSON\) |
|
||||
| `metadata` | object | Processing metadata including jobId, fileType, pageCount, and usage info |
|
||||
| ↳ `jobId` | string | Unique job identifier |
|
||||
| ↳ `fileType` | string | File type \(e.g., pdf\) |
|
||||
| ↳ `fileName` | string | Original file name |
|
||||
| ↳ `source` | string | Source type \(url\) |
|
||||
| ↳ `pageCount` | number | Number of pages processed |
|
||||
| ↳ `model` | string | Mistral model used |
|
||||
| ↳ `resultType` | string | Output format \(markdown, text, json\) |
|
||||
| ↳ `processedAt` | string | Processing timestamp |
|
||||
| ↳ `sourceUrl` | string | Source URL if applicable |
|
||||
| ↳ `usageInfo` | object | Usage statistics from OCR processing |
|
||||
|
||||
|
||||
|
||||
@@ -116,13 +116,6 @@ Query and filter Notion database entries with advanced filtering
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Array of Notion page objects from the database |
|
||||
| ↳ `id` | string | Page ID |
|
||||
| ↳ `created_time` | string | Creation timestamp |
|
||||
| ↳ `last_edited_time` | string | Last edit timestamp |
|
||||
| ↳ `url` | string | Page URL |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
|
||||
### `notion_search`
|
||||
|
||||
@@ -141,14 +134,6 @@ Search across all pages and databases in Notion workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Array of search results \(pages and databases\) |
|
||||
| ↳ `id` | string | Object ID |
|
||||
| ↳ `object` | string | Object type \(page or database\) |
|
||||
| ↳ `url` | string | Object URL |
|
||||
| ↳ `created_time` | string | Creation timestamp |
|
||||
| ↳ `last_edited_time` | string | Last edit timestamp |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
|
||||
### `notion_create_database`
|
||||
|
||||
|
||||
@@ -54,12 +54,5 @@ Generate embeddings from text using OpenAI
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Embeddings generation results |
|
||||
| ↳ `embeddings` | array | Array of embedding vectors |
|
||||
| ↳ `model` | string | Model used for generating embeddings |
|
||||
| ↳ `usage` | object | Token usage information |
|
||||
| ↳ `prompt_tokens` | number | Number of tokens in the prompt |
|
||||
| ↳ `total_tokens` | number | Total number of tokens used |
|
||||
| ↳ `prompt_tokens` | number | Number of tokens in the prompt |
|
||||
| ↳ `total_tokens` | number | Total number of tokens used |
|
||||
|
||||
|
||||
|
||||
@@ -135,12 +135,6 @@ Forward an existing Outlook message to specified recipients
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `results` | object | Delivery result details |
|
||||
| ↳ `status` | string | Delivery status of the email |
|
||||
| ↳ `timestamp` | string | Timestamp when email was forwarded |
|
||||
| ↳ `httpStatus` | number | HTTP status code returned by the API |
|
||||
| ↳ `requestId` | string | Microsoft Graph request-id header for tracing |
|
||||
| ↳ `messageId` | string | Forwarded message ID if provided by API |
|
||||
| ↳ `internetMessageId` | string | RFC 822 Message-ID if provided |
|
||||
|
||||
### `outlook_move`
|
||||
|
||||
|
||||
@@ -55,9 +55,6 @@ Search the web using Parallel AI. Provides comprehensive search results with int
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Search results with excerpts from relevant pages |
|
||||
| ↳ `url` | string | The URL of the search result |
|
||||
| ↳ `title` | string | The title of the search result |
|
||||
| ↳ `excerpts` | array | Text excerpts from the page |
|
||||
|
||||
### `parallel_extract`
|
||||
|
||||
@@ -78,10 +75,6 @@ Extract targeted information from specific URLs using Parallel AI. Processes pro
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Extracted information from the provided URLs |
|
||||
| ↳ `url` | string | The source URL |
|
||||
| ↳ `title` | string | The title of the page |
|
||||
| ↳ `content` | string | Extracted content |
|
||||
| ↳ `excerpts` | array | Relevant text excerpts |
|
||||
|
||||
### `parallel_deep_research`
|
||||
|
||||
@@ -106,15 +99,5 @@ Conduct comprehensive deep research across the web using Parallel AI. Synthesize
|
||||
| `message` | string | Status message |
|
||||
| `content` | object | Research results \(structured based on output_schema\) |
|
||||
| `basis` | array | Citations and sources with reasoning and confidence levels |
|
||||
| ↳ `field` | string | Output field name |
|
||||
| ↳ `reasoning` | string | Explanation for the result |
|
||||
| ↳ `citations` | array | Array of sources |
|
||||
| ↳ `url` | string | Source URL |
|
||||
| ↳ `title` | string | Source title |
|
||||
| ↳ `excerpts` | array | Relevant excerpts from the source |
|
||||
| ↳ `url` | string | Source URL |
|
||||
| ↳ `title` | string | Source title |
|
||||
| ↳ `excerpts` | array | Relevant excerpts from the source |
|
||||
| ↳ `confidence` | string | Confidence level indicator |
|
||||
|
||||
|
||||
|
||||
@@ -57,9 +57,6 @@ Generate completions using Perplexity AI chat models
|
||||
| `content` | string | Generated text content |
|
||||
| `model` | string | Model used for generation |
|
||||
| `usage` | object | Token usage information |
|
||||
| ↳ `prompt_tokens` | number | Number of tokens in the prompt |
|
||||
| ↳ `completion_tokens` | number | Number of tokens in the completion |
|
||||
| ↳ `total_tokens` | number | Total number of tokens used |
|
||||
|
||||
### `perplexity_search`
|
||||
|
||||
@@ -84,10 +81,5 @@ Get ranked search results from Perplexity
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Array of search results |
|
||||
| ↳ `title` | string | Title of the search result |
|
||||
| ↳ `url` | string | URL of the search result |
|
||||
| ↳ `snippet` | string | Brief excerpt or summary of the content |
|
||||
| ↳ `date` | string | Date the page was crawled and added to Perplexity |
|
||||
| ↳ `last_updated` | string | Date the page was last updated in Perplexity |
|
||||
|
||||
|
||||
|
||||
@@ -97,13 +97,6 @@ Search for similar text in a Pinecone index
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matches` | array | Search results with ID, score, and metadata |
|
||||
| ↳ `id` | string | Vector ID |
|
||||
| ↳ `score` | number | Similarity score |
|
||||
| ↳ `metadata` | object | Associated metadata |
|
||||
| `usage` | object | Usage statistics including tokens, read units, and rerank units |
|
||||
| ↳ `total_tokens` | number | Total tokens used for embedding |
|
||||
| ↳ `read_units` | number | Read units consumed |
|
||||
| ↳ `rerank_units` | number | Rerank units used |
|
||||
|
||||
### `pinecone_search_vector`
|
||||
|
||||
@@ -147,14 +140,5 @@ Fetch vectors by ID from a Pinecone index
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matches` | array | Fetched vectors with ID, values, metadata, and score |
|
||||
| ↳ `id` | string | Vector ID |
|
||||
| ↳ `values` | array | Vector values |
|
||||
| ↳ `metadata` | object | Associated metadata |
|
||||
| ↳ `score` | number | Match score \(1.0 for exact matches\) |
|
||||
| `data` | array | Vector data with values and vector type |
|
||||
| ↳ `values` | array | Vector values |
|
||||
| ↳ `vector_type` | string | Vector type \(dense/sparse\) |
|
||||
| `usage` | object | Usage statistics including total read units |
|
||||
| ↳ `total_tokens` | number | Read units consumed |
|
||||
|
||||
|
||||
|
||||
@@ -100,12 +100,6 @@ List persons (users) in PostHog. Returns user profiles with their properties and
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `persons` | array | List of persons with their properties and identifiers |
|
||||
| ↳ `id` | string | Person ID |
|
||||
| ↳ `name` | string | Person name |
|
||||
| ↳ `distinct_ids` | array | All distinct IDs associated with this person |
|
||||
| ↳ `created_at` | string | When the person was first seen |
|
||||
| ↳ `uuid` | string | Person UUID |
|
||||
| `next` | string | URL for the next page of results \(if available\) |
|
||||
|
||||
### `posthog_get_person`
|
||||
|
||||
@@ -125,11 +119,6 @@ Get detailed information about a specific person in PostHog by their ID or UUID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `person` | object | Person details including properties and identifiers |
|
||||
| ↳ `id` | string | Person ID |
|
||||
| ↳ `name` | string | Person name |
|
||||
| ↳ `distinct_ids` | array | All distinct IDs associated with this person |
|
||||
| ↳ `created_at` | string | When the person was first seen |
|
||||
| ↳ `uuid` | string | Person UUID |
|
||||
|
||||
### `posthog_delete_person`
|
||||
|
||||
@@ -171,10 +160,6 @@ Execute a HogQL query in PostHog. HogQL is PostHog
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Query results as an array of rows |
|
||||
| `columns` | array | Column names in the result set |
|
||||
| `types` | array | Data types of columns in the result set |
|
||||
| `hogql` | string | The actual HogQL query that was executed |
|
||||
| `has_more` | boolean | Whether there are more results available |
|
||||
|
||||
### `posthog_list_insights`
|
||||
|
||||
@@ -198,17 +183,6 @@ List all insights in a PostHog project. Returns insight configurations, filters,
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of insights with their configurations and metadata |
|
||||
| ↳ `id` | number | Unique identifier for the insight |
|
||||
| ↳ `name` | string | Name of the insight |
|
||||
| ↳ `description` | string | Description of the insight |
|
||||
| ↳ `filters` | object | Filter configuration for the insight |
|
||||
| ↳ `query` | object | Query configuration for the insight |
|
||||
| ↳ `created_at` | string | ISO timestamp when insight was created |
|
||||
| ↳ `created_by` | object | User who created the insight |
|
||||
| ↳ `last_modified_at` | string | ISO timestamp when insight was last modified |
|
||||
| ↳ `last_modified_by` | object | User who last modified the insight |
|
||||
| ↳ `saved` | boolean | Whether the insight is saved |
|
||||
| ↳ `dashboards` | array | IDs of dashboards this insight appears on |
|
||||
|
||||
### `posthog_get_insight`
|
||||
|
||||
@@ -297,17 +271,6 @@ List all dashboards in a PostHog project. Returns dashboard configurations, tile
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of dashboards with their configurations and metadata |
|
||||
| ↳ `id` | number | Unique identifier for the dashboard |
|
||||
| ↳ `name` | string | Name of the dashboard |
|
||||
| ↳ `description` | string | Description of the dashboard |
|
||||
| ↳ `pinned` | boolean | Whether the dashboard is pinned |
|
||||
| ↳ `created_at` | string | ISO timestamp when dashboard was created |
|
||||
| ↳ `created_by` | object | User who created the dashboard |
|
||||
| ↳ `last_modified_at` | string | ISO timestamp when dashboard was last modified |
|
||||
| ↳ `last_modified_by` | object | User who last modified the dashboard |
|
||||
| ↳ `tiles` | array | Tiles/widgets on the dashboard |
|
||||
| ↳ `filters` | object | Global filters for the dashboard |
|
||||
| ↳ `tags` | array | Tags associated with the dashboard |
|
||||
|
||||
### `posthog_get_dashboard`
|
||||
|
||||
@@ -361,18 +324,6 @@ List all actions in a PostHog project. Returns action definitions, steps, and me
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of actions with their definitions and metadata |
|
||||
| ↳ `id` | number | Unique identifier for the action |
|
||||
| ↳ `name` | string | Name of the action |
|
||||
| ↳ `description` | string | Description of the action |
|
||||
| ↳ `tags` | array | Tags associated with the action |
|
||||
| ↳ `post_to_slack` | boolean | Whether to post this action to Slack |
|
||||
| ↳ `slack_message_format` | string | Format string for Slack messages |
|
||||
| ↳ `steps` | array | Steps that define the action |
|
||||
| ↳ `created_at` | string | ISO timestamp when action was created |
|
||||
| ↳ `created_by` | object | User who created the action |
|
||||
| ↳ `deleted` | boolean | Whether the action is deleted |
|
||||
| ↳ `is_calculating` | boolean | Whether the action is being calculated |
|
||||
| ↳ `last_calculated_at` | string | ISO timestamp of last calculation |
|
||||
|
||||
### `posthog_list_cohorts`
|
||||
|
||||
@@ -396,20 +347,6 @@ List all cohorts in a PostHog project. Returns cohort definitions, filters, and
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of cohorts with their definitions and metadata |
|
||||
| ↳ `id` | number | Unique identifier for the cohort |
|
||||
| ↳ `name` | string | Name of the cohort |
|
||||
| ↳ `description` | string | Description of the cohort |
|
||||
| ↳ `groups` | array | Groups that define the cohort |
|
||||
| ↳ `deleted` | boolean | Whether the cohort is deleted |
|
||||
| ↳ `filters` | object | Filter configuration for the cohort |
|
||||
| ↳ `query` | object | Query configuration for the cohort |
|
||||
| ↳ `created_at` | string | ISO timestamp when cohort was created |
|
||||
| ↳ `created_by` | object | User who created the cohort |
|
||||
| ↳ `is_calculating` | boolean | Whether the cohort is being calculated |
|
||||
| ↳ `last_calculation` | string | ISO timestamp of last calculation |
|
||||
| ↳ `errors_calculating` | number | Number of errors during calculation |
|
||||
| ↳ `count` | number | Number of users in the cohort |
|
||||
| ↳ `is_static` | boolean | Whether the cohort is static |
|
||||
|
||||
### `posthog_get_cohort`
|
||||
|
||||
@@ -502,17 +439,6 @@ List all annotations in a PostHog project. Returns annotation content, timestamp
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of annotations with their content and metadata |
|
||||
| ↳ `id` | number | Unique identifier for the annotation |
|
||||
| ↳ `content` | string | Content/text of the annotation |
|
||||
| ↳ `date_marker` | string | ISO timestamp marking when the annotation applies |
|
||||
| ↳ `created_at` | string | ISO timestamp when annotation was created |
|
||||
| ↳ `updated_at` | string | ISO timestamp when annotation was last updated |
|
||||
| ↳ `created_by` | object | User who created the annotation |
|
||||
| ↳ `dashboard_item` | number | ID of dashboard item this annotation is attached to |
|
||||
| ↳ `insight_short_id` | string | Short ID of the insight this annotation is attached to |
|
||||
| ↳ `insight_name` | string | Name of the insight this annotation is attached to |
|
||||
| ↳ `scope` | string | Scope of the annotation \(project or dashboard\) |
|
||||
| ↳ `deleted` | boolean | Whether the annotation is deleted |
|
||||
|
||||
### `posthog_create_annotation`
|
||||
|
||||
@@ -566,20 +492,6 @@ List all feature flags in a PostHog project
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | List of feature flags |
|
||||
| ↳ `id` | number | Feature flag ID |
|
||||
| ↳ `name` | string | Feature flag name |
|
||||
| ↳ `key` | string | Feature flag key |
|
||||
| ↳ `filters` | object | Feature flag filters |
|
||||
| ↳ `deleted` | boolean | Whether the flag is deleted |
|
||||
| ↳ `active` | boolean | Whether the flag is active |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
|
||||
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
|
||||
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
|
||||
| `count` | number | Total number of feature flags |
|
||||
| `next` | string | URL to next page of results |
|
||||
| `previous` | string | URL to previous page of results |
|
||||
|
||||
### `posthog_get_feature_flag`
|
||||
|
||||
@@ -599,19 +511,6 @@ Get details of a specific feature flag
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `flag` | object | Feature flag details |
|
||||
| ↳ `id` | number | Feature flag ID |
|
||||
| ↳ `name` | string | Feature flag name |
|
||||
| ↳ `key` | string | Feature flag key |
|
||||
| ↳ `filters` | object | Feature flag filters |
|
||||
| ↳ `deleted` | boolean | Whether the flag is deleted |
|
||||
| ↳ `active` | boolean | Whether the flag is active |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
|
||||
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
|
||||
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
|
||||
| ↳ `usage_dashboard` | number | Usage dashboard ID |
|
||||
| ↳ `has_enriched_analytics` | boolean | Whether enriched analytics are enabled |
|
||||
|
||||
### `posthog_create_feature_flag`
|
||||
|
||||
@@ -636,17 +535,6 @@ Create a new feature flag in PostHog
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `flag` | object | Created feature flag |
|
||||
| ↳ `id` | number | Feature flag ID |
|
||||
| ↳ `name` | string | Feature flag name |
|
||||
| ↳ `key` | string | Feature flag key |
|
||||
| ↳ `filters` | object | Feature flag filters |
|
||||
| ↳ `deleted` | boolean | Whether the flag is deleted |
|
||||
| ↳ `active` | boolean | Whether the flag is active |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
|
||||
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
|
||||
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
|
||||
|
||||
### `posthog_update_feature_flag`
|
||||
|
||||
@@ -672,17 +560,6 @@ Update an existing feature flag in PostHog
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `flag` | object | Updated feature flag |
|
||||
| ↳ `id` | number | Feature flag ID |
|
||||
| ↳ `name` | string | Feature flag name |
|
||||
| ↳ `key` | string | Feature flag key |
|
||||
| ↳ `filters` | object | Feature flag filters |
|
||||
| ↳ `deleted` | boolean | Whether the flag is deleted |
|
||||
| ↳ `active` | boolean | Whether the flag is active |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
|
||||
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
|
||||
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
|
||||
|
||||
### `posthog_delete_feature_flag`
|
||||
|
||||
@@ -746,22 +623,6 @@ List all experiments in a PostHog project
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | List of experiments |
|
||||
| ↳ `id` | number | Experiment ID |
|
||||
| ↳ `name` | string | Experiment name |
|
||||
| ↳ `description` | string | Experiment description |
|
||||
| ↳ `feature_flag_key` | string | Associated feature flag key |
|
||||
| ↳ `feature_flag` | object | Feature flag details |
|
||||
| ↳ `parameters` | object | Experiment parameters |
|
||||
| ↳ `filters` | object | Experiment filters |
|
||||
| ↳ `variants` | object | Experiment variants |
|
||||
| ↳ `start_date` | string | Start date |
|
||||
| ↳ `end_date` | string | End date |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `archived` | boolean | Whether the experiment is archived |
|
||||
| `count` | number | Total number of experiments |
|
||||
| `next` | string | URL to next page of results |
|
||||
| `previous` | string | URL to previous page of results |
|
||||
|
||||
### `posthog_get_experiment`
|
||||
|
||||
@@ -781,21 +642,6 @@ Get details of a specific experiment
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `experiment` | object | Experiment details |
|
||||
| ↳ `id` | number | Experiment ID |
|
||||
| ↳ `name` | string | Experiment name |
|
||||
| ↳ `description` | string | Experiment description |
|
||||
| ↳ `feature_flag_key` | string | Associated feature flag key |
|
||||
| ↳ `feature_flag` | object | Feature flag details |
|
||||
| ↳ `parameters` | object | Experiment parameters |
|
||||
| ↳ `filters` | object | Experiment filters |
|
||||
| ↳ `variants` | object | Experiment variants |
|
||||
| ↳ `start_date` | string | Start date |
|
||||
| ↳ `end_date` | string | End date |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `archived` | boolean | Whether the experiment is archived |
|
||||
| ↳ `metrics` | array | Primary metrics |
|
||||
| ↳ `metrics_secondary` | array | Secondary metrics |
|
||||
|
||||
### `posthog_create_experiment`
|
||||
|
||||
@@ -822,19 +668,6 @@ Create a new experiment in PostHog
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `experiment` | object | Created experiment |
|
||||
| ↳ `id` | number | Experiment ID |
|
||||
| ↳ `name` | string | Experiment name |
|
||||
| ↳ `description` | string | Experiment description |
|
||||
| ↳ `feature_flag_key` | string | Associated feature flag key |
|
||||
| ↳ `feature_flag` | object | Feature flag details |
|
||||
| ↳ `parameters` | object | Experiment parameters |
|
||||
| ↳ `filters` | object | Experiment filters |
|
||||
| ↳ `variants` | object | Experiment variants |
|
||||
| ↳ `start_date` | string | Start date |
|
||||
| ↳ `end_date` | string | End date |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `archived` | boolean | Whether the experiment is archived |
|
||||
|
||||
### `posthog_list_surveys`
|
||||
|
||||
@@ -855,18 +688,6 @@ List all surveys in a PostHog project. Surveys allow you to collect feedback fro
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `surveys` | array | List of surveys in the project |
|
||||
| ↳ `id` | string | Survey ID |
|
||||
| ↳ `name` | string | Survey name |
|
||||
| ↳ `description` | string | Survey description |
|
||||
| ↳ `type` | string | Survey type \(popover or api\) |
|
||||
| ↳ `questions` | array | Survey questions |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `start_date` | string | Survey start date |
|
||||
| ↳ `end_date` | string | Survey end date |
|
||||
| ↳ `archived` | boolean | Whether survey is archived |
|
||||
| `count` | number | Total number of surveys |
|
||||
| `next` | string | URL for next page of results |
|
||||
| `previous` | string | URL for previous page of results |
|
||||
|
||||
### `posthog_get_survey`
|
||||
|
||||
@@ -886,19 +707,6 @@ Get details of a specific survey in PostHog by ID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `survey` | object | Survey details |
|
||||
| ↳ `id` | string | Survey ID |
|
||||
| ↳ `name` | string | Survey name |
|
||||
| ↳ `description` | string | Survey description |
|
||||
| ↳ `type` | string | Survey type \(popover or api\) |
|
||||
| ↳ `questions` | array | Survey questions |
|
||||
| ↳ `appearance` | object | Survey appearance configuration |
|
||||
| ↳ `conditions` | object | Survey display conditions |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `start_date` | string | Survey start date |
|
||||
| ↳ `end_date` | string | Survey end date |
|
||||
| ↳ `archived` | boolean | Whether survey is archived |
|
||||
| ↳ `responses_limit` | number | Maximum number of responses |
|
||||
|
||||
### `posthog_create_survey`
|
||||
|
||||
@@ -928,14 +736,6 @@ Create a new survey in PostHog. Supports question types: Basic (open), Link, Rat
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `survey` | object | Created survey details |
|
||||
| ↳ `id` | string | Survey ID |
|
||||
| ↳ `name` | string | Survey name |
|
||||
| ↳ `description` | string | Survey description |
|
||||
| ↳ `type` | string | Survey type \(popover or api\) |
|
||||
| ↳ `questions` | array | Survey questions |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `start_date` | string | Survey start date |
|
||||
| ↳ `end_date` | string | Survey end date |
|
||||
|
||||
### `posthog_update_survey`
|
||||
|
||||
@@ -967,15 +767,6 @@ Update an existing survey in PostHog. Can modify questions, appearance, conditio
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `survey` | object | Updated survey details |
|
||||
| ↳ `id` | string | Survey ID |
|
||||
| ↳ `name` | string | Survey name |
|
||||
| ↳ `description` | string | Survey description |
|
||||
| ↳ `type` | string | Survey type \(popover or api\) |
|
||||
| ↳ `questions` | array | Survey questions |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `start_date` | string | Survey start date |
|
||||
| ↳ `end_date` | string | Survey end date |
|
||||
| ↳ `archived` | boolean | Whether survey is archived |
|
||||
|
||||
### `posthog_list_session_recordings`
|
||||
|
||||
@@ -996,23 +787,6 @@ List session recordings in a PostHog project. Session recordings capture user in
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `recordings` | array | List of session recordings |
|
||||
| ↳ `id` | string | Recording ID |
|
||||
| ↳ `distinct_id` | string | User distinct ID |
|
||||
| ↳ `viewed` | boolean | Whether recording has been viewed |
|
||||
| ↳ `recording_duration` | number | Recording duration in seconds |
|
||||
| ↳ `active_seconds` | number | Active time in seconds |
|
||||
| ↳ `inactive_seconds` | number | Inactive time in seconds |
|
||||
| ↳ `start_time` | string | Recording start timestamp |
|
||||
| ↳ `end_time` | string | Recording end timestamp |
|
||||
| ↳ `click_count` | number | Number of clicks |
|
||||
| ↳ `keypress_count` | number | Number of keypresses |
|
||||
| ↳ `console_log_count` | number | Number of console logs |
|
||||
| ↳ `console_warn_count` | number | Number of console warnings |
|
||||
| ↳ `console_error_count` | number | Number of console errors |
|
||||
| ↳ `person` | object | Person information |
|
||||
| `count` | number | Total number of recordings |
|
||||
| `next` | string | URL for next page of results |
|
||||
| `previous` | string | URL for previous page of results |
|
||||
|
||||
### `posthog_get_session_recording`
|
||||
|
||||
@@ -1032,22 +806,6 @@ Get details of a specific session recording in PostHog by ID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `recording` | object | Session recording details |
|
||||
| ↳ `id` | string | Recording ID |
|
||||
| ↳ `distinct_id` | string | User distinct ID |
|
||||
| ↳ `viewed` | boolean | Whether recording has been viewed |
|
||||
| ↳ `recording_duration` | number | Recording duration in seconds |
|
||||
| ↳ `active_seconds` | number | Active time in seconds |
|
||||
| ↳ `inactive_seconds` | number | Inactive time in seconds |
|
||||
| ↳ `start_time` | string | Recording start timestamp |
|
||||
| ↳ `end_time` | string | Recording end timestamp |
|
||||
| ↳ `click_count` | number | Number of clicks |
|
||||
| ↳ `keypress_count` | number | Number of keypresses |
|
||||
| ↳ `console_log_count` | number | Number of console logs |
|
||||
| ↳ `console_warn_count` | number | Number of console warnings |
|
||||
| ↳ `console_error_count` | number | Number of console errors |
|
||||
| ↳ `start_url` | string | Starting URL of the recording |
|
||||
| ↳ `person` | object | Person information |
|
||||
| ↳ `matching_events` | array | Events that occurred during recording |
|
||||
|
||||
### `posthog_list_recording_playlists`
|
||||
|
||||
@@ -1068,20 +826,6 @@ List session recording playlists in a PostHog project. Playlists allow you to or
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `playlists` | array | List of session recording playlists |
|
||||
| ↳ `id` | string | Playlist ID |
|
||||
| ↳ `short_id` | string | Playlist short ID |
|
||||
| ↳ `name` | string | Playlist name |
|
||||
| ↳ `description` | string | Playlist description |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `created_by` | object | Creator information |
|
||||
| ↳ `deleted` | boolean | Whether playlist is deleted |
|
||||
| ↳ `filters` | object | Playlist filters |
|
||||
| ↳ `last_modified_at` | string | Last modification timestamp |
|
||||
| ↳ `last_modified_by` | object | Last modifier information |
|
||||
| ↳ `derived_name` | string | Auto-generated name from filters |
|
||||
| `count` | number | Total number of playlists |
|
||||
| `next` | string | URL for next page of results |
|
||||
| `previous` | string | URL for previous page of results |
|
||||
|
||||
### `posthog_list_event_definitions`
|
||||
|
||||
@@ -1106,16 +850,6 @@ List all event definitions in a PostHog project. Event definitions represent tra
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of event definitions |
|
||||
| ↳ `id` | string | Unique identifier for the event definition |
|
||||
| ↳ `name` | string | Event name |
|
||||
| ↳ `description` | string | Event description |
|
||||
| ↳ `tags` | array | Tags associated with the event |
|
||||
| ↳ `volume_30_day` | number | Number of events received in the last 30 days |
|
||||
| ↳ `query_usage_30_day` | number | Number of times this event was queried in the last 30 days |
|
||||
| ↳ `created_at` | string | ISO timestamp when the event was created |
|
||||
| ↳ `last_seen_at` | string | ISO timestamp when the event was last seen |
|
||||
| ↳ `updated_at` | string | ISO timestamp when the event was updated |
|
||||
| ↳ `updated_by` | object | User who last updated the event |
|
||||
|
||||
### `posthog_get_event_definition`
|
||||
|
||||
@@ -1206,19 +940,6 @@ List all property definitions in a PostHog project. Property definitions represe
|
||||
| `next` | string | URL for the next page of results |
|
||||
| `previous` | string | URL for the previous page of results |
|
||||
| `results` | array | List of property definitions |
|
||||
| ↳ `id` | string | Unique identifier for the property definition |
|
||||
| ↳ `name` | string | Property name |
|
||||
| ↳ `description` | string | Property description |
|
||||
| ↳ `tags` | array | Tags associated with the property |
|
||||
| ↳ `is_numerical` | boolean | Whether the property is numerical |
|
||||
| ↳ `is_seen_on_filtered_events` | boolean | Whether the property is seen on filtered events |
|
||||
| ↳ `property_type` | string | The data type of the property |
|
||||
| ↳ `type` | string | Property type: event, person, or group |
|
||||
| ↳ `volume_30_day` | number | Number of times property was seen in the last 30 days |
|
||||
| ↳ `query_usage_30_day` | number | Number of times this property was queried in the last 30 days |
|
||||
| ↳ `created_at` | string | ISO timestamp when the property was created |
|
||||
| ↳ `updated_at` | string | ISO timestamp when the property was updated |
|
||||
| ↳ `updated_by` | object | User who last updated the property |
|
||||
|
||||
### `posthog_get_property_definition`
|
||||
|
||||
@@ -1310,22 +1031,6 @@ List all projects in the organization. Returns project details including IDs, na
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | List of projects with their configuration and settings |
|
||||
| ↳ `id` | number | Project ID |
|
||||
| ↳ `uuid` | string | Project UUID |
|
||||
| ↳ `organization` | string | Organization UUID |
|
||||
| ↳ `api_token` | string | Project API token for ingestion |
|
||||
| ↳ `app_urls` | array | Allowed app URLs |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `slack_incoming_webhook` | string | Slack webhook URL for notifications |
|
||||
| ↳ `created_at` | string | Project creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `anonymize_ips` | boolean | Whether IP anonymization is enabled |
|
||||
| ↳ `completed_snippet_onboarding` | boolean | Whether snippet onboarding is completed |
|
||||
| ↳ `ingested_event` | boolean | Whether any event has been ingested |
|
||||
| ↳ `test_account_filters` | array | Filters for test accounts |
|
||||
| ↳ `is_demo` | boolean | Whether this is a demo project |
|
||||
| ↳ `timezone` | string | Project timezone |
|
||||
| ↳ `data_attributes` | array | Custom data attributes |
|
||||
|
||||
### `posthog_get_project`
|
||||
|
||||
@@ -1344,29 +1049,6 @@ Get detailed information about a specific project by ID. Returns comprehensive p
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | Detailed project information with all configuration settings |
|
||||
| ↳ `id` | number | Project ID |
|
||||
| ↳ `uuid` | string | Project UUID |
|
||||
| ↳ `organization` | string | Organization UUID |
|
||||
| ↳ `api_token` | string | Project API token for ingestion |
|
||||
| ↳ `app_urls` | array | Allowed app URLs |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `slack_incoming_webhook` | string | Slack webhook URL for notifications |
|
||||
| ↳ `created_at` | string | Project creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `anonymize_ips` | boolean | Whether IP anonymization is enabled |
|
||||
| ↳ `completed_snippet_onboarding` | boolean | Whether snippet onboarding is completed |
|
||||
| ↳ `ingested_event` | boolean | Whether any event has been ingested |
|
||||
| ↳ `test_account_filters` | array | Filters for test accounts |
|
||||
| ↳ `is_demo` | boolean | Whether this is a demo project |
|
||||
| ↳ `timezone` | string | Project timezone |
|
||||
| ↳ `data_attributes` | array | Custom data attributes |
|
||||
| ↳ `person_display_name_properties` | array | Properties used for person display names |
|
||||
| ↳ `correlation_config` | object | Configuration for correlation analysis |
|
||||
| ↳ `autocapture_opt_out` | boolean | Whether autocapture is disabled |
|
||||
| ↳ `autocapture_exceptions_opt_in` | boolean | Whether exception autocapture is enabled |
|
||||
| ↳ `session_recording_opt_in` | boolean | Whether session recording is enabled |
|
||||
| ↳ `capture_console_log_opt_in` | boolean | Whether console log capture is enabled |
|
||||
| ↳ `capture_performance_opt_in` | boolean | Whether performance capture is enabled |
|
||||
|
||||
### `posthog_list_organizations`
|
||||
|
||||
@@ -1384,15 +1066,6 @@ List all organizations the user has access to. Returns organization details incl
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | array | List of organizations with their settings and features |
|
||||
| ↳ `id` | string | Organization ID \(UUID\) |
|
||||
| ↳ `name` | string | Organization name |
|
||||
| ↳ `slug` | string | Organization slug |
|
||||
| ↳ `created_at` | string | Organization creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `membership_level` | number | User membership level in organization |
|
||||
| ↳ `plugins_access_level` | number | Access level for plugins/apps |
|
||||
| ↳ `teams` | array | List of team IDs in this organization |
|
||||
| ↳ `available_product_features` | array | Available product features and their limits |
|
||||
|
||||
### `posthog_get_organization`
|
||||
|
||||
@@ -1411,20 +1084,5 @@ Get detailed information about a specific organization by ID. Returns comprehens
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organization` | object | Detailed organization information with settings and features |
|
||||
| ↳ `id` | string | Organization ID \(UUID\) |
|
||||
| ↳ `name` | string | Organization name |
|
||||
| ↳ `slug` | string | Organization slug |
|
||||
| ↳ `created_at` | string | Organization creation timestamp |
|
||||
| ↳ `updated_at` | string | Last update timestamp |
|
||||
| ↳ `membership_level` | number | User membership level in organization |
|
||||
| ↳ `plugins_access_level` | number | Access level for plugins/apps |
|
||||
| ↳ `teams` | array | List of team IDs in this organization |
|
||||
| ↳ `available_product_features` | array | Available product features with their limits and descriptions |
|
||||
| ↳ `domain_whitelist` | array | Whitelisted domains for organization |
|
||||
| ↳ `is_member_join_email_enabled` | boolean | Whether member join emails are enabled |
|
||||
| ↳ `metadata` | object | Organization metadata |
|
||||
| ↳ `customer_id` | string | Customer ID for billing |
|
||||
| ↳ `available_features` | array | List of available feature flags for organization |
|
||||
| ↳ `usage` | object | Organization usage statistics |
|
||||
|
||||
|
||||
|
||||
@@ -54,18 +54,6 @@ Fetch posts from a subreddit with different sorting options
|
||||
| --------- | ---- | ----------- |
|
||||
| `subreddit` | string | Name of the subreddit where posts were fetched from |
|
||||
| `posts` | array | Array of posts with title, author, URL, score, comments count, and metadata |
|
||||
| ↳ `id` | string | Post ID |
|
||||
| ↳ `title` | string | Post title |
|
||||
| ↳ `author` | string | Author username |
|
||||
| ↳ `url` | string | Post URL |
|
||||
| ↳ `permalink` | string | Reddit permalink |
|
||||
| ↳ `score` | number | Post score \(upvotes - downvotes\) |
|
||||
| ↳ `num_comments` | number | Number of comments |
|
||||
| ↳ `created_utc` | number | Creation timestamp \(UTC\) |
|
||||
| ↳ `is_self` | boolean | Whether this is a text post |
|
||||
| ↳ `selftext` | string | Text content for self posts |
|
||||
| ↳ `thumbnail` | string | Thumbnail URL |
|
||||
| ↳ `subreddit` | string | Subreddit name |
|
||||
|
||||
### `reddit_get_comments`
|
||||
|
||||
@@ -95,21 +83,6 @@ Fetch comments from a specific Reddit post
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `post` | object | Post information including ID, title, author, content, and metadata |
|
||||
| ↳ `id` | string | Post ID |
|
||||
| ↳ `title` | string | Post title |
|
||||
| ↳ `author` | string | Post author |
|
||||
| ↳ `selftext` | string | Post text content |
|
||||
| ↳ `score` | number | Post score |
|
||||
| ↳ `created_utc` | number | Creation timestamp |
|
||||
| ↳ `permalink` | string | Reddit permalink |
|
||||
| `comments` | array | Nested comments with author, body, score, timestamps, and replies |
|
||||
| ↳ `id` | string | Comment ID |
|
||||
| ↳ `author` | string | Comment author |
|
||||
| ↳ `body` | string | Comment text |
|
||||
| ↳ `score` | number | Comment score |
|
||||
| ↳ `created_utc` | number | Creation timestamp |
|
||||
| ↳ `permalink` | string | Comment permalink |
|
||||
| ↳ `replies` | array | Nested reply comments |
|
||||
|
||||
### `reddit_get_controversial`
|
||||
|
||||
@@ -134,18 +107,6 @@ Fetch controversial posts from a subreddit
|
||||
| --------- | ---- | ----------- |
|
||||
| `subreddit` | string | Name of the subreddit where posts were fetched from |
|
||||
| `posts` | array | Array of controversial posts with title, author, URL, score, comments count, and metadata |
|
||||
| ↳ `id` | string | Post ID |
|
||||
| ↳ `title` | string | Post title |
|
||||
| ↳ `author` | string | Author username |
|
||||
| ↳ `url` | string | Post URL |
|
||||
| ↳ `permalink` | string | Reddit permalink |
|
||||
| ↳ `score` | number | Post score \(upvotes - downvotes\) |
|
||||
| ↳ `num_comments` | number | Number of comments |
|
||||
| ↳ `created_utc` | number | Creation timestamp \(UTC\) |
|
||||
| ↳ `is_self` | boolean | Whether this is a text post |
|
||||
| ↳ `selftext` | string | Text content for self posts |
|
||||
| ↳ `thumbnail` | string | Thumbnail URL |
|
||||
| ↳ `subreddit` | string | Subreddit name |
|
||||
|
||||
### `reddit_search`
|
||||
|
||||
@@ -172,18 +133,6 @@ Search for posts within a subreddit
|
||||
| --------- | ---- | ----------- |
|
||||
| `subreddit` | string | Name of the subreddit where search was performed |
|
||||
| `posts` | array | Array of search result posts with title, author, URL, score, comments count, and metadata |
|
||||
| ↳ `id` | string | Post ID |
|
||||
| ↳ `title` | string | Post title |
|
||||
| ↳ `author` | string | Author username |
|
||||
| ↳ `url` | string | Post URL |
|
||||
| ↳ `permalink` | string | Reddit permalink |
|
||||
| ↳ `score` | number | Post score \(upvotes - downvotes\) |
|
||||
| ↳ `num_comments` | number | Number of comments |
|
||||
| ↳ `created_utc` | number | Creation timestamp \(UTC\) |
|
||||
| ↳ `is_self` | boolean | Whether this is a text post |
|
||||
| ↳ `selftext` | string | Text content for self posts |
|
||||
| ↳ `thumbnail` | string | Thumbnail URL |
|
||||
| ↳ `subreddit` | string | Subreddit name |
|
||||
|
||||
### `reddit_submit_post`
|
||||
|
||||
|
||||
@@ -100,11 +100,6 @@ List objects in an AWS S3 bucket
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `objects` | array | List of S3 objects |
|
||||
| ↳ `key` | string | Object key |
|
||||
| ↳ `size` | number | Object size in bytes |
|
||||
| ↳ `lastModified` | string | Last modified timestamp |
|
||||
| ↳ `etag` | string | Entity tag |
|
||||
| `metadata` | object | Listing metadata including pagination info |
|
||||
|
||||
### `s3_delete_object`
|
||||
|
||||
|
||||
@@ -53,20 +53,6 @@ Retrieve accounts from Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Accounts data |
|
||||
| ↳ `accounts` | array | Array of account objects |
|
||||
| ↳ `paging` | object | Pagination information |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of accounts returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of accounts returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_create_account`
|
||||
|
||||
@@ -98,9 +84,6 @@ Create a new account in Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created account data |
|
||||
| ↳ `id` | string | Created account ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
| ↳ `created` | boolean | Whether account was created |
|
||||
|
||||
### `salesforce_update_account`
|
||||
|
||||
@@ -133,8 +116,6 @@ Update an existing account in Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated account data |
|
||||
| ↳ `id` | string | Updated account ID |
|
||||
| ↳ `updated` | boolean | Whether account was updated |
|
||||
|
||||
### `salesforce_delete_account`
|
||||
|
||||
@@ -154,8 +135,6 @@ Delete an account from Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted account data |
|
||||
| ↳ `id` | string | Deleted account ID |
|
||||
| ↳ `deleted` | boolean | Whether account was deleted |
|
||||
|
||||
### `salesforce_get_contacts`
|
||||
|
||||
@@ -178,22 +157,6 @@ Get contact(s) from Salesforce - single contact if ID provided, or list if not
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Contact\(s\) data |
|
||||
| ↳ `contacts` | array | Array of contacts \(list query\) |
|
||||
| ↳ `contact` | object | Single contact \(by ID\) |
|
||||
| ↳ `paging` | object | Pagination information |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of contacts returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of contacts returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `singleContact` | boolean | Whether single contact was returned |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_create_contact`
|
||||
|
||||
@@ -225,9 +188,6 @@ Create a new contact in Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created contact data |
|
||||
| ↳ `id` | string | Created contact ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
| ↳ `created` | boolean | Whether contact was created |
|
||||
|
||||
### `salesforce_update_contact`
|
||||
|
||||
@@ -260,8 +220,6 @@ Update an existing contact in Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated contact data |
|
||||
| ↳ `id` | string | Updated contact ID |
|
||||
| ↳ `updated` | boolean | Whether contact was updated |
|
||||
|
||||
### `salesforce_delete_contact`
|
||||
|
||||
@@ -281,8 +239,6 @@ Delete a contact from Salesforce CRM
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted contact data |
|
||||
| ↳ `id` | string | Deleted contact ID |
|
||||
| ↳ `deleted` | boolean | Whether contact was deleted |
|
||||
|
||||
### `salesforce_get_leads`
|
||||
|
||||
@@ -305,22 +261,6 @@ Get lead(s) from Salesforce
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Lead data |
|
||||
| ↳ `lead` | object | Single lead object \(when leadId provided\) |
|
||||
| ↳ `leads` | array | Array of lead objects \(when listing\) |
|
||||
| ↳ `paging` | object | Pagination information |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of leads returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of leads returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `singleLead` | boolean | Whether single lead was returned |
|
||||
| ↳ `success` | boolean | Operation success status |
|
||||
|
||||
### `salesforce_create_lead`
|
||||
|
||||
@@ -348,9 +288,6 @@ Create a new lead
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created lead data |
|
||||
| ↳ `id` | string | Created lead ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
| ↳ `created` | boolean | Whether lead was created |
|
||||
|
||||
### `salesforce_update_lead`
|
||||
|
||||
@@ -379,8 +316,6 @@ Update an existing lead
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated lead data |
|
||||
| ↳ `id` | string | Updated lead ID |
|
||||
| ↳ `updated` | boolean | Whether lead was updated |
|
||||
|
||||
### `salesforce_delete_lead`
|
||||
|
||||
@@ -400,8 +335,6 @@ Delete a lead
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted lead data |
|
||||
| ↳ `id` | string | Deleted lead ID |
|
||||
| ↳ `deleted` | boolean | Whether lead was deleted |
|
||||
|
||||
### `salesforce_get_opportunities`
|
||||
|
||||
@@ -424,21 +357,6 @@ Get opportunity(ies) from Salesforce
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Opportunity data |
|
||||
| ↳ `opportunity` | object | Single opportunity object \(when opportunityId provided\) |
|
||||
| ↳ `opportunities` | array | Array of opportunity objects \(when listing\) |
|
||||
| ↳ `paging` | object | Pagination information |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of opportunities returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of opportunities returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `success` | boolean | Operation success status |
|
||||
|
||||
### `salesforce_create_opportunity`
|
||||
|
||||
@@ -464,9 +382,6 @@ Create a new opportunity
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created opportunity data |
|
||||
| ↳ `id` | string | Created opportunity ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
| ↳ `created` | boolean | Whether opportunity was created |
|
||||
|
||||
### `salesforce_update_opportunity`
|
||||
|
||||
@@ -493,8 +408,6 @@ Update an existing opportunity
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated opportunity data |
|
||||
| ↳ `id` | string | Updated opportunity ID |
|
||||
| ↳ `updated` | boolean | Whether opportunity was updated |
|
||||
|
||||
### `salesforce_delete_opportunity`
|
||||
|
||||
@@ -514,8 +427,6 @@ Delete an opportunity
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted opportunity data |
|
||||
| ↳ `id` | string | Deleted opportunity ID |
|
||||
| ↳ `deleted` | boolean | Whether opportunity was deleted |
|
||||
|
||||
### `salesforce_get_cases`
|
||||
|
||||
@@ -538,21 +449,6 @@ Get case(s) from Salesforce
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Case data |
|
||||
| ↳ `case` | object | Single case object \(when caseId provided\) |
|
||||
| ↳ `cases` | array | Array of case objects \(when listing\) |
|
||||
| ↳ `paging` | object | Pagination information |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of cases returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of cases returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `success` | boolean | Operation success status |
|
||||
|
||||
### `salesforce_create_case`
|
||||
|
||||
@@ -578,9 +474,6 @@ Create a new case
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created case data |
|
||||
| ↳ `id` | string | Created case ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
| ↳ `created` | boolean | Whether case was created |
|
||||
|
||||
### `salesforce_update_case`
|
||||
|
||||
@@ -604,8 +497,6 @@ Update an existing case
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated case data |
|
||||
| ↳ `id` | string | Updated case ID |
|
||||
| ↳ `updated` | boolean | Whether case was updated |
|
||||
|
||||
### `salesforce_delete_case`
|
||||
|
||||
@@ -625,8 +516,6 @@ Delete a case
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted case data |
|
||||
| ↳ `id` | string | Deleted case ID |
|
||||
| ↳ `deleted` | boolean | Whether case was deleted |
|
||||
|
||||
### `salesforce_get_tasks`
|
||||
|
||||
@@ -649,21 +538,6 @@ Get task(s) from Salesforce
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Task data |
|
||||
| ↳ `task` | object | Single task object \(when taskId provided\) |
|
||||
| ↳ `tasks` | array | Array of task objects \(when listing\) |
|
||||
| ↳ `paging` | object | Pagination information |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL for next page of results |
|
||||
| ↳ `totalSize` | number | Total number of records |
|
||||
| ↳ `done` | boolean | Whether all records returned |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of tasks returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of tasks returned |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `success` | boolean | Operation success status |
|
||||
|
||||
### `salesforce_create_task`
|
||||
|
||||
@@ -689,9 +563,6 @@ Create a new task
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created task data |
|
||||
| ↳ `id` | string | Created task ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
| ↳ `created` | boolean | Whether task was created |
|
||||
|
||||
### `salesforce_update_task`
|
||||
|
||||
@@ -716,8 +587,6 @@ Update an existing task
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated task data |
|
||||
| ↳ `id` | string | Updated task ID |
|
||||
| ↳ `updated` | boolean | Whether task was updated |
|
||||
|
||||
### `salesforce_delete_task`
|
||||
|
||||
@@ -737,8 +606,6 @@ Delete a task
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted task data |
|
||||
| ↳ `id` | string | Deleted task ID |
|
||||
| ↳ `deleted` | boolean | Whether task was deleted |
|
||||
|
||||
### `salesforce_list_reports`
|
||||
|
||||
@@ -759,9 +626,6 @@ Get a list of reports accessible by the current user
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Reports data |
|
||||
| ↳ `reports` | array | Array of report objects |
|
||||
| ↳ `totalReturned` | number | Number of reports returned |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_get_report`
|
||||
|
||||
@@ -781,9 +645,6 @@ Get metadata and describe information for a specific report
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Report metadata |
|
||||
| ↳ `report` | object | Report metadata object |
|
||||
| ↳ `reportId` | string | Report ID |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_run_report`
|
||||
|
||||
@@ -805,17 +666,6 @@ Execute a report and retrieve the results
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Report results |
|
||||
| ↳ `reportId` | string | Report ID |
|
||||
| ↳ `reportMetadata` | object | Report metadata |
|
||||
| ↳ `reportExtendedMetadata` | object | Extended metadata |
|
||||
| ↳ `factMap` | object | Report data organized by groupings |
|
||||
| ↳ `groupingsDown` | object | Row groupings |
|
||||
| ↳ `groupingsAcross` | object | Column groupings |
|
||||
| ↳ `hasDetailRows` | boolean | Whether report has detail rows |
|
||||
| ↳ `allData` | boolean | Whether all data is returned |
|
||||
| ↳ `reportName` | string | Report name |
|
||||
| ↳ `reportFormat` | string | Report format type |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_list_report_types`
|
||||
|
||||
@@ -834,9 +684,6 @@ Get a list of available report types
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Report types data |
|
||||
| ↳ `reportTypes` | array | Array of report type objects |
|
||||
| ↳ `totalReturned` | number | Number of report types returned |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_list_dashboards`
|
||||
|
||||
@@ -856,9 +703,6 @@ Get a list of dashboards accessible by the current user
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Dashboards data |
|
||||
| ↳ `dashboards` | array | Array of dashboard objects |
|
||||
| ↳ `totalReturned` | number | Number of dashboards returned |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_get_dashboard`
|
||||
|
||||
@@ -878,13 +722,6 @@ Get details and results for a specific dashboard
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Dashboard data |
|
||||
| ↳ `dashboard` | object | Dashboard details |
|
||||
| ↳ `dashboardId` | string | Dashboard ID |
|
||||
| ↳ `components` | array | Dashboard component data |
|
||||
| ↳ `dashboardName` | string | Dashboard name |
|
||||
| ↳ `folderId` | string | Folder ID containing the dashboard |
|
||||
| ↳ `runningUser` | object | Running user information |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_refresh_dashboard`
|
||||
|
||||
@@ -904,13 +741,6 @@ Refresh a dashboard to get the latest data
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Refreshed dashboard data |
|
||||
| ↳ `dashboard` | object | Dashboard details |
|
||||
| ↳ `dashboardId` | string | Dashboard ID |
|
||||
| ↳ `components` | array | Dashboard component data |
|
||||
| ↳ `status` | object | Dashboard status |
|
||||
| ↳ `dashboardName` | string | Dashboard name |
|
||||
| ↳ `refreshDate` | string | Date when dashboard was refreshed |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_query`
|
||||
|
||||
@@ -930,17 +760,6 @@ Execute a custom SOQL query to retrieve data from Salesforce
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Query results |
|
||||
| ↳ `records` | array | Array of record objects |
|
||||
| ↳ `totalSize` | number | Total number of records matching query |
|
||||
| ↳ `done` | boolean | Whether all records have been returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL to fetch next batch of records |
|
||||
| ↳ `query` | string | The executed SOQL query |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of records returned in this response |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of records returned in this response |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_query_more`
|
||||
|
||||
@@ -960,16 +779,6 @@ Retrieve additional query results using the nextRecordsUrl from a previous query
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Query results |
|
||||
| ↳ `records` | array | Array of record objects |
|
||||
| ↳ `totalSize` | number | Total number of records matching query |
|
||||
| ↳ `done` | boolean | Whether all records have been returned |
|
||||
| ↳ `nextRecordsUrl` | string | URL to fetch next batch of records |
|
||||
| ↳ `metadata` | object | Response metadata |
|
||||
| ↳ `totalReturned` | number | Number of records returned in this response |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `totalReturned` | number | Number of records returned in this response |
|
||||
| ↳ `hasMore` | boolean | Whether more records exist |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_describe_object`
|
||||
|
||||
@@ -989,19 +798,6 @@ Get metadata and field information for a Salesforce object
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Object metadata |
|
||||
| ↳ `objectName` | string | API name of the object |
|
||||
| ↳ `label` | string | Display label |
|
||||
| ↳ `labelPlural` | string | Plural display label |
|
||||
| ↳ `fields` | array | Array of field definitions |
|
||||
| ↳ `keyPrefix` | string | ID prefix for this object type |
|
||||
| ↳ `queryable` | boolean | Whether object can be queried |
|
||||
| ↳ `createable` | boolean | Whether records can be created |
|
||||
| ↳ `updateable` | boolean | Whether records can be updated |
|
||||
| ↳ `deletable` | boolean | Whether records can be deleted |
|
||||
| ↳ `childRelationships` | array | Child relationship definitions |
|
||||
| ↳ `recordTypeInfos` | array | Record type information |
|
||||
| ↳ `fieldCount` | number | Number of fields in the object |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
### `salesforce_list_objects`
|
||||
|
||||
@@ -1020,10 +816,5 @@ Get a list of all available Salesforce objects
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Objects list |
|
||||
| ↳ `objects` | array | Array of available Salesforce objects |
|
||||
| ↳ `encoding` | string | Encoding used |
|
||||
| ↳ `maxBatchSize` | number | Maximum batch size |
|
||||
| ↳ `totalReturned` | number | Number of objects returned |
|
||||
| ↳ `success` | boolean | Salesforce operation success |
|
||||
|
||||
|
||||
|
||||
@@ -68,50 +68,6 @@ List issues from Sentry for a specific organization and optionally a specific pr
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issues` | array | List of Sentry issues |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `shortId` | string | Short issue identifier |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `culprit` | string | Function or location that caused the issue |
|
||||
| ↳ `permalink` | string | Direct link to the issue in Sentry |
|
||||
| ↳ `logger` | string | Logger name that reported the issue |
|
||||
| ↳ `level` | string | Severity level \(error, warning, info, etc.\) |
|
||||
| ↳ `status` | string | Current issue status |
|
||||
| ↳ `statusDetails` | object | Additional details about the status |
|
||||
| ↳ `isPublic` | boolean | Whether the issue is publicly visible |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `project` | object | Project information |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError\) |
|
||||
| ↳ `metadata` | object | Error metadata |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError\) |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `numComments` | number | Number of comments on the issue |
|
||||
| ↳ `assignedTo` | object | User assigned to the issue |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `isBookmarked` | boolean | Whether the issue is bookmarked |
|
||||
| ↳ `isSubscribed` | boolean | Whether subscribed to updates |
|
||||
| ↳ `hasSeen` | boolean | Whether the user has seen this issue |
|
||||
| ↳ `annotations` | array | Issue annotations |
|
||||
| ↳ `isUnhandled` | boolean | Whether the issue is unhandled |
|
||||
| ↳ `count` | string | Total number of occurrences |
|
||||
| ↳ `userCount` | number | Number of unique users affected |
|
||||
| ↳ `firstSeen` | string | When the issue was first seen \(ISO timestamp\) |
|
||||
| ↳ `lastSeen` | string | When the issue was last seen \(ISO timestamp\) |
|
||||
| ↳ `stats` | object | Statistical information about the issue |
|
||||
| `metadata` | object | Pagination metadata |
|
||||
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
|
||||
| ↳ `hasMore` | boolean | Whether there are more results available |
|
||||
|
||||
### `sentry_issues_get`
|
||||
|
||||
@@ -130,47 +86,6 @@ Retrieve detailed information about a specific Sentry issue by its ID. Returns c
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | Detailed information about the Sentry issue |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `shortId` | string | Short issue identifier |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `culprit` | string | Function or location that caused the issue |
|
||||
| ↳ `permalink` | string | Direct link to the issue in Sentry |
|
||||
| ↳ `logger` | string | Logger name that reported the issue |
|
||||
| ↳ `level` | string | Severity level \(error, warning, info, etc.\) |
|
||||
| ↳ `status` | string | Current issue status |
|
||||
| ↳ `statusDetails` | object | Additional details about the status |
|
||||
| ↳ `isPublic` | boolean | Whether the issue is publicly visible |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `project` | object | Project information |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) |
|
||||
| ↳ `metadata` | object | Error metadata |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `numComments` | number | Number of comments on the issue |
|
||||
| ↳ `assignedTo` | object | User assigned to the issue \(if any\) |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `isBookmarked` | boolean | Whether the issue is bookmarked |
|
||||
| ↳ `isSubscribed` | boolean | Whether the user is subscribed to updates |
|
||||
| ↳ `hasSeen` | boolean | Whether the user has seen this issue |
|
||||
| ↳ `annotations` | array | Issue annotations |
|
||||
| ↳ `isUnhandled` | boolean | Whether the issue is unhandled |
|
||||
| ↳ `count` | string | Total number of occurrences |
|
||||
| ↳ `userCount` | number | Number of unique users affected |
|
||||
| ↳ `firstSeen` | string | When the issue was first seen \(ISO timestamp\) |
|
||||
| ↳ `lastSeen` | string | When the issue was last seen \(ISO timestamp\) |
|
||||
| ↳ `stats` | object | Statistical information about the issue |
|
||||
|
||||
### `sentry_issues_update`
|
||||
|
||||
@@ -194,20 +109,6 @@ Update a Sentry issue by changing its status, assignment, bookmark state, or oth
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | The updated Sentry issue |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `shortId` | string | Short issue identifier |
|
||||
| ↳ `title` | string | Issue title |
|
||||
| ↳ `status` | string | Updated issue status |
|
||||
| ↳ `assignedTo` | object | User assigned to the issue \(if any\) |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `isBookmarked` | boolean | Whether the issue is bookmarked |
|
||||
| ↳ `isSubscribed` | boolean | Whether the user is subscribed to updates |
|
||||
| ↳ `isPublic` | boolean | Whether the issue is publicly visible |
|
||||
| ↳ `permalink` | string | Direct link to the issue in Sentry |
|
||||
|
||||
### `sentry_projects_list`
|
||||
|
||||
@@ -227,27 +128,6 @@ List all projects in a Sentry organization. Returns project details including na
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | List of Sentry projects |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `platform` | string | Platform/language \(e.g., javascript, python\) |
|
||||
| ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) |
|
||||
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
|
||||
| ↳ `isMember` | boolean | Whether the user is a member of the project |
|
||||
| ↳ `features` | array | Enabled features for the project |
|
||||
| ↳ `organization` | object | Organization information |
|
||||
| ↳ `id` | string | Organization ID |
|
||||
| ↳ `slug` | string | Organization slug |
|
||||
| ↳ `name` | string | Organization name |
|
||||
| ↳ `teams` | array | Teams associated with the project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `status` | string | Project status |
|
||||
| ↳ `isPublic` | boolean | Whether the project is publicly visible |
|
||||
| `metadata` | object | Pagination metadata |
|
||||
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
|
||||
| ↳ `hasMore` | boolean | Whether there are more results available |
|
||||
|
||||
### `sentry_projects_get`
|
||||
|
||||
@@ -266,39 +146,6 @@ Retrieve detailed information about a specific Sentry project by its slug. Retur
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | Detailed information about the Sentry project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `platform` | string | Platform/language \(e.g., javascript, python\) |
|
||||
| ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) |
|
||||
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
|
||||
| ↳ `isMember` | boolean | Whether the user is a member of the project |
|
||||
| ↳ `features` | array | Enabled features for the project |
|
||||
| ↳ `firstEvent` | string | When the first event was received \(ISO timestamp\) |
|
||||
| ↳ `firstTransactionEvent` | string | When the first transaction event was received |
|
||||
| ↳ `access` | array | Access permissions |
|
||||
| ↳ `organization` | object | Organization information |
|
||||
| ↳ `id` | string | Organization ID |
|
||||
| ↳ `slug` | string | Organization slug |
|
||||
| ↳ `name` | string | Organization name |
|
||||
| ↳ `team` | object | Primary team for the project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `teams` | array | Teams associated with the project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `status` | string | Project status |
|
||||
| ↳ `color` | string | Project color code |
|
||||
| ↳ `isPublic` | boolean | Whether the project is publicly visible |
|
||||
| ↳ `isInternal` | boolean | Whether the project is internal |
|
||||
| ↳ `hasAccess` | boolean | Whether the user has access to this project |
|
||||
| ↳ `hasMinifiedStackTrace` | boolean | Whether minified stack traces are available |
|
||||
| ↳ `hasMonitors` | boolean | Whether the project has monitors configured |
|
||||
| ↳ `hasProfiles` | boolean | Whether the project has profiling enabled |
|
||||
| ↳ `hasReplays` | boolean | Whether the project has session replays enabled |
|
||||
| ↳ `hasSessions` | boolean | Whether the project has sessions enabled |
|
||||
|
||||
### `sentry_projects_create`
|
||||
|
||||
@@ -321,31 +168,6 @@ Create a new Sentry project in an organization. Requires a team to associate the
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The newly created Sentry project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `platform` | string | Platform/language |
|
||||
| ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) |
|
||||
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
|
||||
| ↳ `isMember` | boolean | Whether the user is a member |
|
||||
| ↳ `hasAccess` | boolean | Whether the user has access |
|
||||
| ↳ `features` | array | Enabled features |
|
||||
| ↳ `firstEvent` | string | First event timestamp |
|
||||
| ↳ `organization` | object | Organization information |
|
||||
| ↳ `id` | string | Organization ID |
|
||||
| ↳ `slug` | string | Organization slug |
|
||||
| ↳ `name` | string | Organization name |
|
||||
| ↳ `team` | object | Primary team for the project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `teams` | array | Teams associated with the project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `status` | string | Project status |
|
||||
| ↳ `color` | string | Project color code |
|
||||
| ↳ `isPublic` | boolean | Whether the project is public |
|
||||
|
||||
### `sentry_projects_update`
|
||||
|
||||
@@ -370,19 +192,6 @@ Update a Sentry project by changing its name, slug, platform, or other settings.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The updated Sentry project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `platform` | string | Platform/language |
|
||||
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
|
||||
| ↳ `organization` | object | Organization information |
|
||||
| ↳ `id` | string | Organization ID |
|
||||
| ↳ `slug` | string | Organization slug |
|
||||
| ↳ `name` | string | Organization name |
|
||||
| ↳ `teams` | array | Teams associated with the project |
|
||||
| ↳ `id` | string | Team ID |
|
||||
| ↳ `name` | string | Team name |
|
||||
| ↳ `slug` | string | Team slug |
|
||||
|
||||
### `sentry_events_list`
|
||||
|
||||
@@ -406,50 +215,6 @@ List events from a Sentry project. Can be filtered by issue ID, query, or time p
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `events` | array | List of Sentry events |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `eventID` | string | Event identifier |
|
||||
| ↳ `projectID` | string | Project ID |
|
||||
| ↳ `groupID` | string | Issue group ID |
|
||||
| ↳ `message` | string | Event message |
|
||||
| ↳ `title` | string | Event title |
|
||||
| ↳ `location` | string | Location information |
|
||||
| ↳ `culprit` | string | Function or location that caused the event |
|
||||
| ↳ `dateCreated` | string | When the event was created \(ISO timestamp\) |
|
||||
| ↳ `dateReceived` | string | When Sentry received the event \(ISO timestamp\) |
|
||||
| ↳ `user` | object | User information associated with the event |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `ipAddress` | string | IP address |
|
||||
| ↳ `name` | string | User display name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `ipAddress` | string | IP address |
|
||||
| ↳ `name` | string | SDK name |
|
||||
| ↳ `tags` | array | Tags associated with the event |
|
||||
| ↳ `key` | string | Tag key |
|
||||
| ↳ `value` | string | Tag value |
|
||||
| ↳ `key` | string | Tag key |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `contexts` | object | Additional context data \(device, OS, etc.\) |
|
||||
| ↳ `platform` | string | Platform where the event occurred |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError\) |
|
||||
| ↳ `metadata` | object | Error metadata |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError\) |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `entries` | array | Event entries \(exception, breadcrumbs, etc.\) |
|
||||
| ↳ `errors` | array | Processing errors |
|
||||
| ↳ `dist` | string | Distribution identifier |
|
||||
| ↳ `fingerprints` | array | Fingerprints for grouping |
|
||||
| ↳ `sdk` | object | SDK information |
|
||||
| ↳ `name` | string | SDK name |
|
||||
| ↳ `version` | string | SDK version |
|
||||
| ↳ `version` | string | SDK version |
|
||||
| `metadata` | object | Pagination metadata |
|
||||
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
|
||||
| ↳ `hasMore` | boolean | Whether there are more results available |
|
||||
|
||||
### `sentry_events_get`
|
||||
|
||||
@@ -469,47 +234,6 @@ Retrieve detailed information about a specific Sentry event by its ID. Returns c
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `event` | object | Detailed information about the Sentry event |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `eventID` | string | Event identifier |
|
||||
| ↳ `projectID` | string | Project ID |
|
||||
| ↳ `groupID` | string | Issue group ID this event belongs to |
|
||||
| ↳ `message` | string | Event message |
|
||||
| ↳ `title` | string | Event title |
|
||||
| ↳ `location` | string | Location information |
|
||||
| ↳ `culprit` | string | Function or location that caused the event |
|
||||
| ↳ `dateCreated` | string | When the event was created \(ISO timestamp\) |
|
||||
| ↳ `dateReceived` | string | When Sentry received the event \(ISO timestamp\) |
|
||||
| ↳ `user` | object | User information associated with the event |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `ipAddress` | string | IP address |
|
||||
| ↳ `name` | string | User display name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `ipAddress` | string | IP address |
|
||||
| ↳ `name` | string | SDK name |
|
||||
| ↳ `tags` | array | Tags associated with the event |
|
||||
| ↳ `key` | string | Tag key |
|
||||
| ↳ `value` | string | Tag value |
|
||||
| ↳ `key` | string | Tag key |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `contexts` | object | Additional context data \(device, OS, browser, etc.\) |
|
||||
| ↳ `platform` | string | Platform where the event occurred |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) |
|
||||
| ↳ `metadata` | object | Error metadata |
|
||||
| ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) |
|
||||
| ↳ `value` | string | Error message or value |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `function` | string | Function where the error occurred |
|
||||
| ↳ `entries` | array | Event entries including exception, breadcrumbs, and request data |
|
||||
| ↳ `errors` | array | Processing errors that occurred |
|
||||
| ↳ `dist` | string | Distribution identifier |
|
||||
| ↳ `fingerprints` | array | Fingerprints used for grouping events |
|
||||
| ↳ `sdk` | object | SDK information |
|
||||
| ↳ `name` | string | SDK name |
|
||||
| ↳ `version` | string | SDK version |
|
||||
| ↳ `version` | string | SDK version |
|
||||
|
||||
### `sentry_releases_list`
|
||||
|
||||
@@ -531,61 +255,6 @@ List releases for a Sentry organization or project. Returns release details incl
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `releases` | array | List of Sentry releases |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `version` | object | Version details |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `shortVersion` | string | Shortened version identifier |
|
||||
| ↳ `ref` | string | Git reference \(commit SHA, tag, or branch\) |
|
||||
| ↳ `url` | string | URL to the release \(e.g., GitHub release page\) |
|
||||
| ↳ `dateReleased` | string | When the release was deployed \(ISO timestamp\) |
|
||||
| ↳ `dateCreated` | string | Commit timestamp |
|
||||
| ↳ `dateStarted` | string | Deploy start timestamp |
|
||||
| ↳ `newGroups` | number | Number of new issues introduced in this release |
|
||||
| ↳ `owner` | object | Owner of the release |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | User name |
|
||||
| ↳ `email` | string | User email |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `email` | string | Author email |
|
||||
| ↳ `commitCount` | number | Number of commits in this release |
|
||||
| ↳ `deployCount` | number | Number of deploys for this release |
|
||||
| ↳ `lastCommit` | object | Last commit in the release |
|
||||
| ↳ `id` | string | Commit SHA |
|
||||
| ↳ `message` | string | Commit message |
|
||||
| ↳ `dateCreated` | string | Commit timestamp |
|
||||
| ↳ `message` | string | Commit message |
|
||||
| ↳ `lastDeploy` | object | Last deploy of the release |
|
||||
| ↳ `id` | string | Deploy ID |
|
||||
| ↳ `environment` | string | Deploy environment |
|
||||
| ↳ `dateStarted` | string | Deploy start timestamp |
|
||||
| ↳ `dateFinished` | string | Deploy finish timestamp |
|
||||
| ↳ `environment` | string | Deploy environment |
|
||||
| ↳ `dateFinished` | string | Deploy finish timestamp |
|
||||
| ↳ `authors` | array | Authors of commits in the release |
|
||||
| ↳ `id` | string | Author ID |
|
||||
| ↳ `name` | string | Author name |
|
||||
| ↳ `email` | string | Author email |
|
||||
| ↳ `projects` | array | Projects associated with this release |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `firstEvent` | string | First event timestamp |
|
||||
| ↳ `lastEvent` | string | Last event timestamp |
|
||||
| ↳ `versionInfo` | object | Version metadata |
|
||||
| ↳ `buildHash` | string | Build hash |
|
||||
| ↳ `version` | object | Version details |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `package` | string | Package name |
|
||||
| ↳ `buildHash` | string | Build hash |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `package` | string | Package name |
|
||||
| `metadata` | object | Pagination metadata |
|
||||
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
|
||||
| ↳ `hasMore` | boolean | Whether there are more results available |
|
||||
|
||||
### `sentry_releases_create`
|
||||
|
||||
@@ -609,58 +278,6 @@ Create a new release in Sentry. A release is a version of your code deployed to
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `release` | object | The newly created Sentry release |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `version` | object | Version details |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `shortVersion` | string | Shortened version identifier |
|
||||
| ↳ `ref` | string | Git reference \(commit SHA, tag, or branch\) |
|
||||
| ↳ `url` | string | URL to the release |
|
||||
| ↳ `dateReleased` | string | When the release was deployed \(ISO timestamp\) |
|
||||
| ↳ `dateCreated` | string | Commit timestamp |
|
||||
| ↳ `dateStarted` | string | Deploy start timestamp |
|
||||
| ↳ `newGroups` | number | Number of new issues introduced |
|
||||
| ↳ `commitCount` | number | Number of commits in this release |
|
||||
| ↳ `deployCount` | number | Number of deploys for this release |
|
||||
| ↳ `owner` | object | Release owner |
|
||||
| ↳ `id` | string | Owner ID |
|
||||
| ↳ `name` | string | Owner name |
|
||||
| ↳ `email` | string | Owner email |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `email` | string | Author email |
|
||||
| ↳ `lastCommit` | object | Last commit in the release |
|
||||
| ↳ `id` | string | Commit SHA |
|
||||
| ↳ `message` | string | Commit message |
|
||||
| ↳ `dateCreated` | string | Commit timestamp |
|
||||
| ↳ `message` | string | Commit message |
|
||||
| ↳ `lastDeploy` | object | Last deploy of the release |
|
||||
| ↳ `id` | string | Deploy ID |
|
||||
| ↳ `environment` | string | Deploy environment |
|
||||
| ↳ `dateStarted` | string | Deploy start timestamp |
|
||||
| ↳ `dateFinished` | string | Deploy finish timestamp |
|
||||
| ↳ `environment` | string | Deploy environment |
|
||||
| ↳ `dateFinished` | string | Deploy finish timestamp |
|
||||
| ↳ `authors` | array | Authors of commits in the release |
|
||||
| ↳ `id` | string | Author ID |
|
||||
| ↳ `name` | string | Author name |
|
||||
| ↳ `email` | string | Author email |
|
||||
| ↳ `projects` | array | Projects associated with this release |
|
||||
| ↳ `id` | string | Project ID |
|
||||
| ↳ `name` | string | Project name |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `slug` | string | Project slug |
|
||||
| ↳ `platform` | string | Project platform |
|
||||
| ↳ `firstEvent` | string | First event timestamp |
|
||||
| ↳ `lastEvent` | string | Last event timestamp |
|
||||
| ↳ `versionInfo` | object | Version metadata |
|
||||
| ↳ `buildHash` | string | Build hash |
|
||||
| ↳ `version` | object | Version details |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `package` | string | Package name |
|
||||
| ↳ `buildHash` | string | Build hash |
|
||||
| ↳ `raw` | string | Raw version string |
|
||||
| ↳ `package` | string | Package name |
|
||||
|
||||
### `sentry_releases_deploy`
|
||||
|
||||
@@ -684,11 +301,5 @@ Create a deploy record for a Sentry release in a specific environment. Deploys t
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deploy` | object | The newly created deploy record |
|
||||
| ↳ `id` | string | Unique deploy ID |
|
||||
| ↳ `environment` | string | Environment name where the release was deployed |
|
||||
| ↳ `name` | string | Name of the deploy |
|
||||
| ↳ `url` | string | URL pointing to the deploy |
|
||||
| ↳ `dateStarted` | string | When the deploy started \(ISO timestamp\) |
|
||||
| ↳ `dateFinished` | string | When the deploy finished \(ISO timestamp\) |
|
||||
|
||||
|
||||
|
||||
@@ -52,13 +52,6 @@ Create a new page in a SharePoint site
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | object | Created SharePoint page information |
|
||||
| ↳ `id` | string | The unique ID of the created page |
|
||||
| ↳ `name` | string | The name of the created page |
|
||||
| ↳ `title` | string | The title of the created page |
|
||||
| ↳ `webUrl` | string | The URL to access the page |
|
||||
| ↳ `pageLayout` | string | The layout type of the page |
|
||||
| ↳ `createdDateTime` | string | When the page was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the page was last modified |
|
||||
|
||||
### `sharepoint_read_page`
|
||||
|
||||
@@ -79,35 +72,6 @@ Read a specific page from a SharePoint site
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | object | Information about the SharePoint page |
|
||||
| ↳ `id` | string | The unique ID of the page |
|
||||
| ↳ `name` | string | The name of the page |
|
||||
| ↳ `title` | string | The title of the page |
|
||||
| ↳ `webUrl` | string | The URL to access the page |
|
||||
| ↳ `pageLayout` | string | The layout type of the page |
|
||||
| ↳ `createdDateTime` | string | When the page was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the page was last modified |
|
||||
| `pages` | array | List of SharePoint pages |
|
||||
| ↳ `page` | object | The unique ID of the page |
|
||||
| ↳ `id` | string | The unique ID of the page |
|
||||
| ↳ `name` | string | The name of the page |
|
||||
| ↳ `title` | string | The title of the page |
|
||||
| ↳ `webUrl` | string | The URL to access the page |
|
||||
| ↳ `pageLayout` | string | The layout type of the page |
|
||||
| ↳ `createdDateTime` | string | When the page was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the page was last modified |
|
||||
| ↳ `id` | string | The unique ID of the page |
|
||||
| ↳ `name` | string | The name of the page |
|
||||
| ↳ `title` | string | The title of the page |
|
||||
| ↳ `webUrl` | string | The URL to access the page |
|
||||
| ↳ `pageLayout` | string | The layout type of the page |
|
||||
| ↳ `createdDateTime` | string | When the page was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the page was last modified |
|
||||
| ↳ `content` | string | Extracted text content from the page |
|
||||
| ↳ `canvasLayout` | object | Raw SharePoint canvas layout structure |
|
||||
| `content` | object | Content of the SharePoint page |
|
||||
| ↳ `content` | string | Extracted text content from the page |
|
||||
| ↳ `canvasLayout` | object | Raw SharePoint canvas layout structure |
|
||||
| `totalPages` | number | Total number of pages found |
|
||||
|
||||
### `sharepoint_list_sites`
|
||||
|
||||
@@ -125,28 +89,6 @@ List details of all SharePoint sites
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `site` | object | Information about the current SharePoint site |
|
||||
| ↳ `id` | string | The unique ID of the site |
|
||||
| ↳ `name` | string | The name of the site |
|
||||
| ↳ `displayName` | string | The display name of the site |
|
||||
| ↳ `webUrl` | string | The URL to access the site |
|
||||
| ↳ `description` | string | The description of the site |
|
||||
| ↳ `createdDateTime` | string | When the site was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the site was last modified |
|
||||
| ↳ `isPersonalSite` | boolean | Whether this is a personal site |
|
||||
| ↳ `root` | object | Server relative URL |
|
||||
| ↳ `serverRelativeUrl` | string | Server relative URL |
|
||||
| ↳ `serverRelativeUrl` | string | Server relative URL |
|
||||
| ↳ `siteCollection` | object | Site collection hostname |
|
||||
| ↳ `hostname` | string | Site collection hostname |
|
||||
| ↳ `hostname` | string | Site collection hostname |
|
||||
| `sites` | array | List of all accessible SharePoint sites |
|
||||
| ↳ `id` | string | The unique ID of the site |
|
||||
| ↳ `name` | string | The name of the site |
|
||||
| ↳ `displayName` | string | The display name of the site |
|
||||
| ↳ `webUrl` | string | The URL to access the site |
|
||||
| ↳ `description` | string | The description of the site |
|
||||
| ↳ `createdDateTime` | string | When the site was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the site was last modified |
|
||||
|
||||
### `sharepoint_create_list`
|
||||
|
||||
@@ -168,13 +110,6 @@ Create a new list in a SharePoint site
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `list` | object | Created SharePoint list information |
|
||||
| ↳ `id` | string | The unique ID of the list |
|
||||
| ↳ `displayName` | string | The display name of the list |
|
||||
| ↳ `name` | string | The internal name of the list |
|
||||
| ↳ `webUrl` | string | The web URL of the list |
|
||||
| ↳ `createdDateTime` | string | When the list was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the list was last modified |
|
||||
| ↳ `list` | object | List properties \(e.g., template\) |
|
||||
|
||||
### `sharepoint_get_list`
|
||||
|
||||
@@ -193,16 +128,6 @@ Get metadata (and optionally columns/items) for a SharePoint list
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `list` | object | Information about the SharePoint list |
|
||||
| ↳ `id` | string | Item ID |
|
||||
| ↳ `displayName` | string | The display name of the list |
|
||||
| ↳ `name` | string | The internal name of the list |
|
||||
| ↳ `webUrl` | string | The web URL of the list |
|
||||
| ↳ `createdDateTime` | string | When the list was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the list was last modified |
|
||||
| ↳ `list` | object | List properties \(e.g., template\) |
|
||||
| ↳ `columns` | array | List column definitions |
|
||||
| ↳ `fields` | object | Field values for the item |
|
||||
| `lists` | array | All lists in the site when no listId/title provided |
|
||||
|
||||
### `sharepoint_update_list`
|
||||
|
||||
@@ -223,8 +148,6 @@ Update the properties (fields) on a SharePoint list item
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `item` | object | Updated SharePoint list item |
|
||||
| ↳ `id` | string | Item ID |
|
||||
| ↳ `fields` | object | Updated field values |
|
||||
|
||||
### `sharepoint_add_list_items`
|
||||
|
||||
@@ -244,8 +167,6 @@ Add a new item to a SharePoint list
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `item` | object | Created SharePoint list item |
|
||||
| ↳ `id` | string | Item ID |
|
||||
| ↳ `fields` | object | Field values for the new item |
|
||||
|
||||
### `sharepoint_upload_file`
|
||||
|
||||
@@ -266,12 +187,5 @@ Upload files to a SharePoint document library
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `uploadedFiles` | array | Array of uploaded file objects |
|
||||
| ↳ `id` | string | The unique ID of the uploaded file |
|
||||
| ↳ `name` | string | The name of the uploaded file |
|
||||
| ↳ `webUrl` | string | The URL to access the file |
|
||||
| ↳ `size` | number | The size of the file in bytes |
|
||||
| ↳ `createdDateTime` | string | When the file was created |
|
||||
| ↳ `lastModifiedDateTime` | string | When the file was last modified |
|
||||
| `fileCount` | number | Number of files uploaded |
|
||||
|
||||
|
||||
|
||||
@@ -123,51 +123,6 @@ Read the latest messages from Slack channels. Retrieve conversation history with
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array of message objects from the channel |
|
||||
| ↳ `type` | string | Message type |
|
||||
| ↳ `ts` | string | Edit timestamp |
|
||||
| ↳ `text` | string | Message text content |
|
||||
| ↳ `user` | string | User ID who edited |
|
||||
| ↳ `bot_id` | string | Bot ID if sent by a bot |
|
||||
| ↳ `username` | string | Display username |
|
||||
| ↳ `channel` | string | Channel ID |
|
||||
| ↳ `team` | string | Team ID |
|
||||
| ↳ `thread_ts` | string | Thread parent message timestamp |
|
||||
| ↳ `parent_user_id` | string | User ID of thread parent |
|
||||
| ↳ `reply_count` | number | Number of thread replies |
|
||||
| ↳ `reply_users_count` | number | Number of users who replied |
|
||||
| ↳ `latest_reply` | string | Timestamp of latest reply |
|
||||
| ↳ `subscribed` | boolean | Whether user is subscribed to thread |
|
||||
| ↳ `last_read` | string | Last read timestamp |
|
||||
| ↳ `unread_count` | number | Number of unread messages |
|
||||
| ↳ `subtype` | string | Message subtype |
|
||||
| ↳ `reactions` | array | Array of reactions on this message |
|
||||
| ↳ `name` | string | Emoji name |
|
||||
| ↳ `count` | number | Number of reactions |
|
||||
| ↳ `users` | array | Array of user IDs who reacted |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `count` | number | Number of reactions |
|
||||
| ↳ `users` | array | Array of user IDs who reacted |
|
||||
| ↳ `is_starred` | boolean | Whether message is starred |
|
||||
| ↳ `pinned_to` | array | Array of channel IDs where message is pinned |
|
||||
| ↳ `files` | array | Array of files attached to message |
|
||||
| ↳ `id` | string | File ID |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimetype` | string | MIME type |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| ↳ `url_private` | string | Private download URL |
|
||||
| ↳ `permalink` | string | Permanent link to file |
|
||||
| ↳ `mode` | string | File mode |
|
||||
| ↳ `id` | string | File ID |
|
||||
| ↳ `mimetype` | string | MIME type |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| ↳ `url_private` | string | Private download URL |
|
||||
| ↳ `permalink` | string | Permanent link to message |
|
||||
| ↳ `mode` | string | File mode |
|
||||
| ↳ `attachments` | array | Array of legacy attachments |
|
||||
| ↳ `blocks` | array | Array of Block Kit blocks |
|
||||
| ↳ `edited` | object | Edit information if message was edited |
|
||||
| ↳ `user` | string | User ID who edited |
|
||||
| ↳ `ts` | string | Edit timestamp |
|
||||
|
||||
### `slack_get_message`
|
||||
|
||||
@@ -187,46 +142,6 @@ Retrieve a specific message by its timestamp. Useful for getting a thread parent
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | object | The retrieved message object |
|
||||
| ↳ `type` | string | Message type |
|
||||
| ↳ `ts` | string | Edit timestamp |
|
||||
| ↳ `text` | string | Message text content |
|
||||
| ↳ `user` | string | User ID who edited |
|
||||
| ↳ `bot_id` | string | Bot ID if sent by a bot |
|
||||
| ↳ `username` | string | Display username |
|
||||
| ↳ `channel` | string | Channel ID |
|
||||
| ↳ `team` | string | Team ID |
|
||||
| ↳ `thread_ts` | string | Thread parent timestamp |
|
||||
| ↳ `parent_user_id` | string | User ID of thread parent |
|
||||
| ↳ `reply_count` | number | Number of thread replies |
|
||||
| ↳ `reply_users_count` | number | Number of users who replied |
|
||||
| ↳ `latest_reply` | string | Timestamp of latest reply |
|
||||
| ↳ `subtype` | string | Message subtype |
|
||||
| ↳ `reactions` | array | Array of reactions on this message |
|
||||
| ↳ `name` | string | Emoji name |
|
||||
| ↳ `count` | number | Number of reactions |
|
||||
| ↳ `users` | array | User IDs who reacted |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `count` | number | Number of reactions |
|
||||
| ↳ `users` | array | User IDs who reacted |
|
||||
| ↳ `is_starred` | boolean | Whether message is starred |
|
||||
| ↳ `pinned_to` | array | Channel IDs where message is pinned |
|
||||
| ↳ `files` | array | Files attached to message |
|
||||
| ↳ `id` | string | File ID |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimetype` | string | MIME type |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| ↳ `url_private` | string | Private download URL |
|
||||
| ↳ `permalink` | string | Permanent link to file |
|
||||
| ↳ `id` | string | File ID |
|
||||
| ↳ `mimetype` | string | MIME type |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| ↳ `url_private` | string | Private download URL |
|
||||
| ↳ `permalink` | string | Permanent link to message |
|
||||
| ↳ `attachments` | array | Legacy attachments |
|
||||
| ↳ `blocks` | array | Block Kit blocks |
|
||||
| ↳ `edited` | object | Edit information if message was edited |
|
||||
| ↳ `user` | string | User ID who edited |
|
||||
| ↳ `ts` | string | Edit timestamp |
|
||||
|
||||
### `slack_get_thread`
|
||||
|
||||
@@ -247,39 +162,6 @@ Retrieve an entire thread including the parent message and all replies. Useful f
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `parentMessage` | object | The thread parent message |
|
||||
| ↳ `type` | string | Message type |
|
||||
| ↳ `ts` | string | Message timestamp |
|
||||
| ↳ `text` | string | Message text content |
|
||||
| ↳ `user` | string | User ID who sent the message |
|
||||
| ↳ `bot_id` | string | Bot ID if sent by a bot |
|
||||
| ↳ `username` | string | Display username |
|
||||
| ↳ `reply_count` | number | Total number of thread replies |
|
||||
| ↳ `reply_users_count` | number | Number of users who replied |
|
||||
| ↳ `latest_reply` | string | Timestamp of latest reply |
|
||||
| ↳ `reactions` | array | Array of reactions on the parent message |
|
||||
| ↳ `name` | string | Emoji name |
|
||||
| ↳ `count` | number | Number of reactions |
|
||||
| ↳ `users` | array | User IDs who reacted |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `count` | number | Number of reactions |
|
||||
| ↳ `users` | array | User IDs who reacted |
|
||||
| ↳ `files` | array | Files attached to the parent message |
|
||||
| ↳ `id` | string | File ID |
|
||||
| ↳ `name` | string | File name |
|
||||
| ↳ `mimetype` | string | MIME type |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| ↳ `id` | string | File ID |
|
||||
| ↳ `mimetype` | string | MIME type |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| `replies` | array | Array of reply messages in the thread \(excluding the parent\) |
|
||||
| ↳ `ts` | string | Message timestamp |
|
||||
| ↳ `text` | string | Message text content |
|
||||
| ↳ `user` | string | User ID who sent the reply |
|
||||
| ↳ `reactions` | array | Reactions on the reply |
|
||||
| ↳ `files` | array | Files attached to the reply |
|
||||
| `messages` | array | All messages in the thread \(parent + replies\) in chronological order |
|
||||
| `replyCount` | number | Number of replies returned in this response |
|
||||
| `hasMore` | boolean | Whether there are more messages in the thread \(pagination needed\) |
|
||||
|
||||
### `slack_list_channels`
|
||||
|
||||
@@ -300,19 +182,6 @@ List all channels in a Slack workspace. Returns public and private channels the
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `channels` | array | Array of channel objects from the workspace |
|
||||
| ↳ `id` | string | Channel ID \(e.g., C1234567890\) |
|
||||
| ↳ `name` | string | Channel name without # prefix |
|
||||
| ↳ `is_private` | boolean | Whether the channel is private |
|
||||
| ↳ `is_archived` | boolean | Whether the channel is archived |
|
||||
| ↳ `is_member` | boolean | Whether the bot is a member of the channel |
|
||||
| ↳ `num_members` | number | Number of members in the channel |
|
||||
| ↳ `topic` | string | Channel topic |
|
||||
| ↳ `purpose` | string | Channel purpose/description |
|
||||
| ↳ `created` | number | Unix timestamp when channel was created |
|
||||
| ↳ `creator` | string | User ID of channel creator |
|
||||
| `ids` | array | Array of channel IDs for easy access |
|
||||
| `names` | array | Array of channel names for easy access |
|
||||
| `count` | number | Total number of channels returned |
|
||||
|
||||
### `slack_list_members`
|
||||
|
||||
@@ -332,7 +201,6 @@ List all members (user IDs) in a Slack channel. Use with Get User Info to resolv
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `members` | array | Array of user IDs who are members of the channel \(e.g., U1234567890\) |
|
||||
| `count` | number | Total number of members returned |
|
||||
|
||||
### `slack_list_users`
|
||||
|
||||
@@ -352,21 +220,6 @@ List all users in a Slack workspace. Returns user profiles with names and avatar
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of user objects from the workspace |
|
||||
| ↳ `id` | string | User ID \(e.g., U1234567890\) |
|
||||
| ↳ `name` | string | Username \(handle\) |
|
||||
| ↳ `real_name` | string | Full real name |
|
||||
| ↳ `display_name` | string | Display name shown in Slack |
|
||||
| ↳ `is_bot` | boolean | Whether the user is a bot |
|
||||
| ↳ `is_admin` | boolean | Whether the user is a workspace admin |
|
||||
| ↳ `is_owner` | boolean | Whether the user is the workspace owner |
|
||||
| ↳ `deleted` | boolean | Whether the user is deactivated |
|
||||
| ↳ `timezone` | string | User timezone identifier |
|
||||
| ↳ `avatar` | string | URL to user avatar image |
|
||||
| ↳ `status_text` | string | Custom status text |
|
||||
| ↳ `status_emoji` | string | Custom status emoji |
|
||||
| `ids` | array | Array of user IDs for easy access |
|
||||
| `names` | array | Array of usernames for easy access |
|
||||
| `count` | number | Total number of users returned |
|
||||
|
||||
### `slack_get_user`
|
||||
|
||||
@@ -385,34 +238,6 @@ Get detailed information about a specific Slack user by their user ID.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Detailed user information |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `name` | string | Username \(handle\) |
|
||||
| ↳ `real_name` | string | Full real name |
|
||||
| ↳ `display_name` | string | Display name shown in Slack |
|
||||
| ↳ `first_name` | string | First name |
|
||||
| ↳ `last_name` | string | Last name |
|
||||
| ↳ `title` | string | Job title |
|
||||
| ↳ `phone` | string | Phone number |
|
||||
| ↳ `skype` | string | Skype handle |
|
||||
| ↳ `is_bot` | boolean | Whether the user is a bot |
|
||||
| ↳ `is_admin` | boolean | Whether the user is a workspace admin |
|
||||
| ↳ `is_owner` | boolean | Whether the user is the workspace owner |
|
||||
| ↳ `is_primary_owner` | boolean | Whether the user is the primary owner |
|
||||
| ↳ `is_restricted` | boolean | Whether the user is a guest \(restricted\) |
|
||||
| ↳ `is_ultra_restricted` | boolean | Whether the user is a single-channel guest |
|
||||
| ↳ `deleted` | boolean | Whether the user is deactivated |
|
||||
| ↳ `timezone` | string | Timezone identifier \(e.g., America/Los_Angeles\) |
|
||||
| ↳ `timezone_label` | string | Human-readable timezone label |
|
||||
| ↳ `timezone_offset` | number | Timezone offset in seconds from UTC |
|
||||
| ↳ `avatar_24` | string | URL to 24px avatar |
|
||||
| ↳ `avatar_48` | string | URL to 48px avatar |
|
||||
| ↳ `avatar_72` | string | URL to 72px avatar |
|
||||
| ↳ `avatar_192` | string | URL to 192px avatar |
|
||||
| ↳ `avatar_512` | string | URL to 512px avatar |
|
||||
| ↳ `status_text` | string | Custom status text |
|
||||
| ↳ `status_emoji` | string | Custom status emoji |
|
||||
| ↳ `status_expiration` | number | Unix timestamp when status expires |
|
||||
| ↳ `updated` | number | Unix timestamp of last profile update |
|
||||
|
||||
### `slack_download`
|
||||
|
||||
@@ -454,9 +279,6 @@ Update a message previously sent by the bot in Slack
|
||||
| `message` | object | Complete updated message object with all properties returned by Slack |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Updated message metadata |
|
||||
| ↳ `channel` | string | Channel ID |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
| ↳ `text` | string | Updated message text |
|
||||
|
||||
### `slack_delete_message`
|
||||
|
||||
@@ -477,8 +299,6 @@ Delete a message previously sent by the bot in Slack
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Deleted message metadata |
|
||||
| ↳ `channel` | string | Channel ID |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
|
||||
### `slack_add_reaction`
|
||||
|
||||
@@ -500,8 +320,5 @@ Add an emoji reaction to a Slack message
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Reaction metadata |
|
||||
| ↳ `channel` | string | Channel ID |
|
||||
| ↳ `timestamp` | string | Message timestamp |
|
||||
| ↳ `reaction` | string | Emoji reaction name |
|
||||
|
||||
|
||||
|
||||
@@ -37,17 +37,6 @@ Search for tracks, albums, artists, or playlists on Spotify. Returns matching re
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tracks` | array | List of matching tracks |
|
||||
| ↳ `id` | string | Spotify track ID |
|
||||
| ↳ `name` | string | Track name |
|
||||
| ↳ `artists` | array | List of artist names |
|
||||
| ↳ `album` | string | Album name |
|
||||
| ↳ `duration_ms` | number | Track duration in milliseconds |
|
||||
| ↳ `popularity` | number | Popularity score \(0-100\) |
|
||||
| ↳ `preview_url` | string | URL to 30-second preview |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
| `artists` | array | List of matching artists |
|
||||
| `albums` | array | List of matching albums |
|
||||
| `playlists` | array | List of matching playlists |
|
||||
|
||||
### `spotify_get_track`
|
||||
|
||||
@@ -91,15 +80,6 @@ Get detailed information about multiple tracks on Spotify by their IDs (up to 50
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tracks` | array | List of tracks |
|
||||
| ↳ `id` | string | Spotify track ID |
|
||||
| ↳ `name` | string | Track name |
|
||||
| ↳ `artists` | array | List of artists |
|
||||
| ↳ `album` | object | Album information |
|
||||
| ↳ `duration_ms` | number | Track duration in milliseconds |
|
||||
| ↳ `explicit` | boolean | Whether the track has explicit content |
|
||||
| ↳ `popularity` | number | Popularity score \(0-100\) |
|
||||
| ↳ `preview_url` | string | URL to 30-second preview |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
|
||||
### `spotify_get_album`
|
||||
|
||||
@@ -291,15 +271,6 @@ Get albums by an artist on Spotify. Can filter by album type.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `albums` | array | Artist |
|
||||
| ↳ `id` | string | Spotify album ID |
|
||||
| ↳ `name` | string | Album name |
|
||||
| ↳ `album_type` | string | Type \(album, single, compilation\) |
|
||||
| ↳ `total_tracks` | number | Number of tracks |
|
||||
| ↳ `release_date` | string | Release date |
|
||||
| ↳ `image_url` | string | Album cover URL |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
| `total` | number | Total number of albums available |
|
||||
| `next` | string | URL for next page of results |
|
||||
|
||||
### `spotify_get_artist_top_tracks`
|
||||
|
||||
@@ -317,13 +288,6 @@ Get the top 10 most popular tracks by an artist on Spotify.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tracks` | array | Artist |
|
||||
| ↳ `id` | string | Spotify track ID |
|
||||
| ↳ `name` | string | Track name |
|
||||
| ↳ `album` | object | Album information |
|
||||
| ↳ `duration_ms` | number | Track duration in milliseconds |
|
||||
| ↳ `popularity` | number | Popularity score \(0-100\) |
|
||||
| ↳ `preview_url` | string | URL to 30-second preview |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
|
||||
### `spotify_follow_artists`
|
||||
|
||||
@@ -808,11 +772,6 @@ Get the tracks in a Spotify playlist.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tracks` | array | List of tracks in the playlist |
|
||||
| ↳ `added_at` | string | When the track was added |
|
||||
| ↳ `added_by` | string | User ID who added the track |
|
||||
| ↳ `track` | object | Track information |
|
||||
| `total` | number | Total number of tracks in playlist |
|
||||
| `next` | string | URL for next page of results |
|
||||
|
||||
### `spotify_get_playlist_cover`
|
||||
|
||||
@@ -846,17 +805,6 @@ Get the current user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `playlists` | array | User |
|
||||
| ↳ `id` | string | Spotify playlist ID |
|
||||
| ↳ `name` | string | Playlist name |
|
||||
| ↳ `description` | string | Playlist description |
|
||||
| ↳ `public` | boolean | Whether public |
|
||||
| ↳ `collaborative` | boolean | Whether collaborative |
|
||||
| ↳ `owner` | string | Owner display name |
|
||||
| ↳ `total_tracks` | number | Number of tracks |
|
||||
| ↳ `image_url` | string | Cover image URL |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
| `total` | number | Total number of playlists |
|
||||
| `next` | string | URL for next page |
|
||||
|
||||
### `spotify_create_playlist`
|
||||
|
||||
@@ -1100,15 +1048,6 @@ Get the current user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tracks` | array | User |
|
||||
| ↳ `id` | string | Spotify track ID |
|
||||
| ↳ `name` | string | Track name |
|
||||
| ↳ `artists` | array | List of artists |
|
||||
| ↳ `album` | object | Album information |
|
||||
| ↳ `duration_ms` | number | Duration in milliseconds |
|
||||
| ↳ `popularity` | number | Popularity score |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
| `total` | number | Total number of top tracks |
|
||||
| `next` | string | URL for next page |
|
||||
|
||||
### `spotify_get_top_artists`
|
||||
|
||||
@@ -1127,15 +1066,6 @@ Get the current user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `artists` | array | User |
|
||||
| ↳ `id` | string | Spotify artist ID |
|
||||
| ↳ `name` | string | Artist name |
|
||||
| ↳ `genres` | array | List of genres |
|
||||
| ↳ `popularity` | number | Popularity score |
|
||||
| ↳ `followers` | number | Number of followers |
|
||||
| ↳ `image_url` | string | Artist image URL |
|
||||
| ↳ `external_url` | string | Spotify URL |
|
||||
| `total` | number | Total number of top artists |
|
||||
| `next` | string | URL for next page |
|
||||
|
||||
### `spotify_get_saved_tracks`
|
||||
|
||||
@@ -1154,10 +1084,6 @@ Get the current user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tracks` | array | User |
|
||||
| ↳ `added_at` | string | When the track was saved |
|
||||
| ↳ `track` | object | Track information |
|
||||
| `total` | number | Total number of saved tracks |
|
||||
| `next` | string | URL for next page |
|
||||
|
||||
### `spotify_save_tracks`
|
||||
|
||||
@@ -1226,9 +1152,6 @@ Get the user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Recently played tracks |
|
||||
| ↳ `played_at` | string | When the track was played |
|
||||
| ↳ `track` | object | Track information |
|
||||
| `next` | string | URL for next page |
|
||||
|
||||
### `spotify_get_new_releases`
|
||||
|
||||
@@ -1338,13 +1261,6 @@ Get the user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `devices` | array | Available playback devices |
|
||||
| ↳ `id` | string | Device ID |
|
||||
| ↳ `is_active` | boolean | Whether device is active |
|
||||
| ↳ `is_private_session` | boolean | Whether in private session |
|
||||
| ↳ `is_restricted` | boolean | Whether device is restricted |
|
||||
| ↳ `name` | string | Device name |
|
||||
| ↳ `type` | string | Device type \(Computer, Smartphone, etc.\) |
|
||||
| ↳ `volume_percent` | number | Current volume \(0-100\) |
|
||||
|
||||
### `spotify_get_queue`
|
||||
|
||||
|
||||
@@ -199,14 +199,6 @@ List files and directories in a remote directory
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `entries` | array | Array of file and directory entries |
|
||||
| ↳ `name` | string | File or directory name |
|
||||
| ↳ `type` | string | Entry type \(file, directory, symlink\) |
|
||||
| ↳ `size` | number | File size in bytes |
|
||||
| ↳ `permissions` | string | File permissions |
|
||||
| ↳ `modified` | string | Last modified timestamp |
|
||||
| `totalFiles` | number | Total number of files |
|
||||
| `totalDirectories` | number | Total number of directories |
|
||||
| `message` | string | Operation status message |
|
||||
|
||||
### `ssh_check_file_exists`
|
||||
|
||||
|
||||
@@ -79,16 +79,5 @@ Run an autonomous web agent to complete tasks and extract structured data
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `agentResult` | object | Result from the Stagehand agent execution |
|
||||
| ↳ `success` | boolean | Whether the agent task completed successfully |
|
||||
| ↳ `completed` | boolean | Whether the task was fully completed |
|
||||
| ↳ `message` | string | Status message or final result |
|
||||
| ↳ `actions` | array | Type of action performed |
|
||||
| ↳ `type` | string | Type of action performed |
|
||||
| ↳ `params` | object | Parameters used for the action |
|
||||
| ↳ `result` | object | Result of the action |
|
||||
| ↳ `type` | string | Type of action performed |
|
||||
| ↳ `params` | object | Parameters used for the action |
|
||||
| ↳ `result` | object | Result of the action |
|
||||
| `structuredOutput` | object | Extracted data matching the provided output schema |
|
||||
|
||||
|
||||
|
||||
@@ -61,10 +61,6 @@ Create a new Payment Intent to process a payment
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intent` | json | The created Payment Intent object |
|
||||
| `metadata` | json | Payment Intent metadata including ID, status, amount, and currency |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_retrieve_payment_intent`
|
||||
|
||||
@@ -83,10 +79,6 @@ Retrieve an existing Payment Intent by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intent` | json | The retrieved Payment Intent object |
|
||||
| `metadata` | json | Payment Intent metadata including ID, status, amount, and currency |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_update_payment_intent`
|
||||
|
||||
@@ -110,10 +102,6 @@ Update an existing Payment Intent
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intent` | json | The updated Payment Intent object |
|
||||
| `metadata` | json | Payment Intent metadata including ID, status, amount, and currency |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_confirm_payment_intent`
|
||||
|
||||
@@ -133,10 +121,6 @@ Confirm a Payment Intent to complete the payment
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intent` | json | The confirmed Payment Intent object |
|
||||
| `metadata` | json | Payment Intent metadata including ID, status, amount, and currency |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_capture_payment_intent`
|
||||
|
||||
@@ -156,10 +140,6 @@ Capture an authorized Payment Intent
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intent` | json | The captured Payment Intent object |
|
||||
| `metadata` | json | Payment Intent metadata including ID, status, amount, and currency |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_cancel_payment_intent`
|
||||
|
||||
@@ -179,10 +159,6 @@ Cancel a Payment Intent
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intent` | json | The canceled Payment Intent object |
|
||||
| `metadata` | json | Payment Intent metadata including ID, status, amount, and currency |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_list_payment_intents`
|
||||
|
||||
@@ -203,8 +179,6 @@ List all Payment Intents
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intents` | json | Array of Payment Intent objects |
|
||||
| `metadata` | json | List metadata including count and has_more |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_payment_intents`
|
||||
|
||||
@@ -224,8 +198,6 @@ Search for Payment Intents using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `payment_intents` | json | Array of matching Payment Intent objects |
|
||||
| `metadata` | json | Search metadata including count and has_more |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_create_customer`
|
||||
|
||||
@@ -250,9 +222,6 @@ Create a new customer object
|
||||
| --------- | ---- | ----------- |
|
||||
| `customer` | json | The created customer object |
|
||||
| `metadata` | json | Customer metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `email` | string | Customer email address |
|
||||
| ↳ `name` | string | Display name |
|
||||
|
||||
### `stripe_retrieve_customer`
|
||||
|
||||
@@ -271,9 +240,6 @@ Retrieve an existing customer by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `customer` | json | The retrieved customer object |
|
||||
| `metadata` | json | Customer metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `email` | string | Customer email address |
|
||||
| ↳ `name` | string | Display name |
|
||||
|
||||
### `stripe_update_customer`
|
||||
|
||||
@@ -298,9 +264,6 @@ Update an existing customer
|
||||
| --------- | ---- | ----------- |
|
||||
| `customer` | json | The updated customer object |
|
||||
| `metadata` | json | Customer metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `email` | string | Customer email address |
|
||||
| ↳ `name` | string | Display name |
|
||||
|
||||
### `stripe_delete_customer`
|
||||
|
||||
@@ -339,8 +302,6 @@ List all customers
|
||||
| --------- | ---- | ----------- |
|
||||
| `customers` | json | Array of customer objects |
|
||||
| `metadata` | json | List metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_customers`
|
||||
|
||||
@@ -360,8 +321,6 @@ Search for customers using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `customers` | json | Array of matching customer objects |
|
||||
| `metadata` | json | Search metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_create_subscription`
|
||||
|
||||
@@ -385,9 +344,6 @@ Create a new subscription for a customer
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscription` | json | The created subscription object |
|
||||
| `metadata` | json | Subscription metadata including ID, status, and customer |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `customer` | string | Associated customer ID |
|
||||
|
||||
### `stripe_retrieve_subscription`
|
||||
|
||||
@@ -406,9 +362,6 @@ Retrieve an existing subscription by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscription` | json | The retrieved subscription object |
|
||||
| `metadata` | json | Subscription metadata including ID, status, and customer |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `customer` | string | Associated customer ID |
|
||||
|
||||
### `stripe_update_subscription`
|
||||
|
||||
@@ -430,9 +383,6 @@ Update an existing subscription
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscription` | json | The updated subscription object |
|
||||
| `metadata` | json | Subscription metadata including ID, status, and customer |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `customer` | string | Associated customer ID |
|
||||
|
||||
### `stripe_cancel_subscription`
|
||||
|
||||
@@ -453,9 +403,6 @@ Cancel a subscription
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscription` | json | The canceled subscription object |
|
||||
| `metadata` | json | Subscription metadata including ID, status, and customer |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `customer` | string | Associated customer ID |
|
||||
|
||||
### `stripe_resume_subscription`
|
||||
|
||||
@@ -474,9 +421,6 @@ Resume a subscription that was scheduled for cancellation
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscription` | json | The resumed subscription object |
|
||||
| `metadata` | json | Subscription metadata including ID, status, and customer |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `customer` | string | Associated customer ID |
|
||||
|
||||
### `stripe_list_subscriptions`
|
||||
|
||||
@@ -498,8 +442,6 @@ List all subscriptions
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscriptions` | json | Array of subscription objects |
|
||||
| `metadata` | json | List metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_subscriptions`
|
||||
|
||||
@@ -519,8 +461,6 @@ Search for subscriptions using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `subscriptions` | json | Array of matching subscription objects |
|
||||
| `metadata` | json | Search metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_create_invoice`
|
||||
|
||||
@@ -543,10 +483,6 @@ Create a new invoice
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The created invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_retrieve_invoice`
|
||||
|
||||
@@ -565,10 +501,6 @@ Retrieve an existing invoice by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The retrieved invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_update_invoice`
|
||||
|
||||
@@ -590,10 +522,6 @@ Update an existing invoice
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The updated invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_delete_invoice`
|
||||
|
||||
@@ -631,10 +559,6 @@ Finalize a draft invoice
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The finalized invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_pay_invoice`
|
||||
|
||||
@@ -654,10 +578,6 @@ Pay an invoice
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The paid invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_void_invoice`
|
||||
|
||||
@@ -676,10 +596,6 @@ Void an invoice
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The voided invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_send_invoice`
|
||||
|
||||
@@ -698,10 +614,6 @@ Send an invoice to the customer
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoice` | json | The sent invoice object |
|
||||
| `metadata` | json | Invoice metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount_due` | number | Amount remaining to be paid in smallest currency unit |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_list_invoices`
|
||||
|
||||
@@ -722,8 +634,6 @@ List all invoices
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoices` | json | Array of invoice objects |
|
||||
| `metadata` | json | List metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_invoices`
|
||||
|
||||
@@ -743,8 +653,6 @@ Search for invoices using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `invoices` | json | Array of matching invoice objects |
|
||||
| `metadata` | json | Search metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_create_charge`
|
||||
|
||||
@@ -769,11 +677,6 @@ Create a new charge to process a payment
|
||||
| --------- | ---- | ----------- |
|
||||
| `charge` | json | The created Charge object |
|
||||
| `metadata` | json | Charge metadata including ID, status, amount, currency, and paid status |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
| ↳ `paid` | boolean | Whether payment has been received |
|
||||
|
||||
### `stripe_retrieve_charge`
|
||||
|
||||
@@ -792,11 +695,6 @@ Retrieve an existing charge by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `charge` | json | The retrieved Charge object |
|
||||
| `metadata` | json | Charge metadata including ID, status, amount, currency, and paid status |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
| ↳ `paid` | boolean | Whether payment has been received |
|
||||
|
||||
### `stripe_update_charge`
|
||||
|
||||
@@ -817,11 +715,6 @@ Update an existing charge
|
||||
| --------- | ---- | ----------- |
|
||||
| `charge` | json | The updated Charge object |
|
||||
| `metadata` | json | Charge metadata including ID, status, amount, currency, and paid status |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
| ↳ `paid` | boolean | Whether payment has been received |
|
||||
|
||||
### `stripe_capture_charge`
|
||||
|
||||
@@ -841,11 +734,6 @@ Capture an uncaptured charge
|
||||
| --------- | ---- | ----------- |
|
||||
| `charge` | json | The captured Charge object |
|
||||
| `metadata` | json | Charge metadata including ID, status, amount, currency, and paid status |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `status` | string | Current state of the resource |
|
||||
| ↳ `amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
| ↳ `paid` | boolean | Whether payment has been received |
|
||||
|
||||
### `stripe_list_charges`
|
||||
|
||||
@@ -866,8 +754,6 @@ List all charges
|
||||
| --------- | ---- | ----------- |
|
||||
| `charges` | json | Array of Charge objects |
|
||||
| `metadata` | json | List metadata including count and has_more |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_charges`
|
||||
|
||||
@@ -887,8 +773,6 @@ Search for charges using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `charges` | json | Array of matching Charge objects |
|
||||
| `metadata` | json | Search metadata including count and has_more |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_create_product`
|
||||
|
||||
@@ -911,9 +795,6 @@ Create a new product object
|
||||
| --------- | ---- | ----------- |
|
||||
| `product` | json | The created product object |
|
||||
| `metadata` | json | Product metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `active` | boolean | Whether the resource is currently active |
|
||||
|
||||
### `stripe_retrieve_product`
|
||||
|
||||
@@ -932,9 +813,6 @@ Retrieve an existing product by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `product` | json | The retrieved product object |
|
||||
| `metadata` | json | Product metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `active` | boolean | Whether the resource is currently active |
|
||||
|
||||
### `stripe_update_product`
|
||||
|
||||
@@ -958,9 +836,6 @@ Update an existing product
|
||||
| --------- | ---- | ----------- |
|
||||
| `product` | json | The updated product object |
|
||||
| `metadata` | json | Product metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `active` | boolean | Whether the resource is currently active |
|
||||
|
||||
### `stripe_delete_product`
|
||||
|
||||
@@ -998,8 +873,6 @@ List all products
|
||||
| --------- | ---- | ----------- |
|
||||
| `products` | json | Array of product objects |
|
||||
| `metadata` | json | List metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_products`
|
||||
|
||||
@@ -1019,8 +892,6 @@ Search for products using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `products` | json | Array of matching product objects |
|
||||
| `metadata` | json | Search metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_create_price`
|
||||
|
||||
@@ -1044,10 +915,6 @@ Create a new price for a product
|
||||
| --------- | ---- | ----------- |
|
||||
| `price` | json | The created price object |
|
||||
| `metadata` | json | Price metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `product` | string | Associated product ID |
|
||||
| ↳ `unit_amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_retrieve_price`
|
||||
|
||||
@@ -1066,10 +933,6 @@ Retrieve an existing price by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `price` | json | The retrieved price object |
|
||||
| `metadata` | json | Price metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `product` | string | Associated product ID |
|
||||
| ↳ `unit_amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_update_price`
|
||||
|
||||
@@ -1090,10 +953,6 @@ Update an existing price
|
||||
| --------- | ---- | ----------- |
|
||||
| `price` | json | The updated price object |
|
||||
| `metadata` | json | Price metadata |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `product` | string | Associated product ID |
|
||||
| ↳ `unit_amount` | number | Amount in smallest currency unit \(e.g., cents\) |
|
||||
| ↳ `currency` | string | Three-letter ISO currency code \(lowercase\) |
|
||||
|
||||
### `stripe_list_prices`
|
||||
|
||||
@@ -1114,8 +973,6 @@ List all prices
|
||||
| --------- | ---- | ----------- |
|
||||
| `prices` | json | Array of price objects |
|
||||
| `metadata` | json | List metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_search_prices`
|
||||
|
||||
@@ -1135,8 +992,6 @@ Search for prices using query syntax
|
||||
| --------- | ---- | ----------- |
|
||||
| `prices` | json | Array of matching price objects |
|
||||
| `metadata` | json | Search metadata |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
### `stripe_retrieve_event`
|
||||
|
||||
@@ -1155,9 +1010,6 @@ Retrieve an existing Event by ID
|
||||
| --------- | ---- | ----------- |
|
||||
| `event` | json | The retrieved Event object |
|
||||
| `metadata` | json | Event metadata including ID, type, and created timestamp |
|
||||
| ↳ `id` | string | Stripe unique identifier |
|
||||
| ↳ `type` | string | Event type identifier |
|
||||
| ↳ `created` | number | Unix timestamp of creation |
|
||||
|
||||
### `stripe_list_events`
|
||||
|
||||
@@ -1178,7 +1030,5 @@ List all Events
|
||||
| --------- | ---- | ----------- |
|
||||
| `events` | json | Array of Event objects |
|
||||
| `metadata` | json | List metadata including count and has_more |
|
||||
| ↳ `count` | number | Number of items returned |
|
||||
| ↳ `has_more` | boolean | Whether more items exist beyond this page |
|
||||
|
||||
|
||||
|
||||
@@ -279,13 +279,6 @@ Introspect Supabase database schema to get table structures, columns, and relati
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Operation status message |
|
||||
| `tables` | array | Array of table schemas with columns, keys, and indexes |
|
||||
| ↳ `name` | string | Table name |
|
||||
| ↳ `schema` | string | Database schema name |
|
||||
| ↳ `columns` | array | Array of column definitions |
|
||||
| ↳ `primaryKey` | array | Array of primary key column names |
|
||||
| ↳ `foreignKeys` | array | Array of foreign key relationships |
|
||||
| ↳ `indexes` | array | Array of index definitions |
|
||||
| `schemas` | array | List of schemas found in the database |
|
||||
|
||||
### `supabase_storage_upload`
|
||||
|
||||
|
||||
@@ -65,11 +65,7 @@ Perform AI-powered web searches using Tavily
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `query` | string | The search query that was executed |
|
||||
| `results` | array | Search results with titles, URLs, content snippets, and optional metadata |
|
||||
| `answer` | string | LLM-generated answer to the query \(if requested\) |
|
||||
| `images` | array | Query-related images \(if requested\) |
|
||||
| `auto_parameters` | object | Automatically selected parameters based on query intent \(if enabled\) |
|
||||
| `response_time` | number | Time taken for the search request in seconds |
|
||||
| `results` | array | results output from the tool |
|
||||
|
||||
### `tavily_extract`
|
||||
|
||||
@@ -91,13 +87,6 @@ Extract raw content from multiple web pages simultaneously using Tavily
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | The URL that was extracted |
|
||||
| ↳ `url` | string | The URL that was extracted |
|
||||
| ↳ `raw_content` | string | The raw text content from the webpage |
|
||||
| ↳ `favicon` | string | Favicon URL \(if requested\) |
|
||||
| `failed_results` | array | The URL that failed extraction |
|
||||
| ↳ `url` | string | The URL that failed extraction |
|
||||
| ↳ `error` | string | Error message for the failed extraction |
|
||||
| `response_time` | number | Time taken for the extraction request in seconds |
|
||||
|
||||
### `tavily_crawl`
|
||||
|
||||
@@ -129,11 +118,6 @@ Systematically crawl and extract content from websites using Tavily
|
||||
| --------- | ---- | ----------- |
|
||||
| `base_url` | string | The base URL that was crawled |
|
||||
| `results` | array | The crawled page URL |
|
||||
| ↳ `url` | string | The crawled page URL |
|
||||
| ↳ `raw_content` | string | Extracted content from the page |
|
||||
| ↳ `favicon` | string | Favicon URL \(if requested\) |
|
||||
| `response_time` | number | Time taken for the crawl request in seconds |
|
||||
| `request_id` | string | Unique identifier for support reference |
|
||||
|
||||
### `tavily_map`
|
||||
|
||||
@@ -161,8 +145,5 @@ Discover and visualize website structure using Tavily
|
||||
| --------- | ---- | ----------- |
|
||||
| `base_url` | string | The base URL that was mapped |
|
||||
| `results` | array | Discovered URL |
|
||||
| ↳ `url` | string | Discovered URL |
|
||||
| `response_time` | number | Time taken for the map request in seconds |
|
||||
| `request_id` | string | Unique identifier for support reference |
|
||||
|
||||
|
||||
|
||||
@@ -76,24 +76,6 @@ Send messages to Telegram channels or users through the Telegram Bot API. Enable
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Telegram message data |
|
||||
| ↳ `message_id` | number | Unique Telegram message identifier |
|
||||
| ↳ `from` | object | Chat information |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Chat username \(if available\) |
|
||||
| ↳ `username` | string | Chat title \(for groups and channels\) |
|
||||
| ↳ `id` | number | Bot user ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Bot first name |
|
||||
| ↳ `username` | string | Bot username |
|
||||
| ↳ `chat` | object | Information about the bot that sent the message |
|
||||
| ↳ `id` | number | Bot user ID |
|
||||
| ↳ `first_name` | string | Bot first name |
|
||||
| ↳ `username` | string | Bot username |
|
||||
| ↳ `type` | string | chat type private or channel |
|
||||
| ↳ `type` | string | chat type private or channel |
|
||||
| ↳ `date` | number | Unix timestamp when message was sent |
|
||||
| ↳ `text` | string | Text content of the sent message |
|
||||
|
||||
### `telegram_delete_message`
|
||||
|
||||
@@ -113,8 +95,6 @@ Delete messages in Telegram channels or chats through the Telegram Bot API. Requ
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Delete operation result |
|
||||
| ↳ `ok` | boolean | API response success status |
|
||||
| ↳ `deleted` | boolean | Whether the message was successfully deleted |
|
||||
|
||||
### `telegram_send_photo`
|
||||
|
||||
@@ -135,35 +115,6 @@ Send photos to Telegram channels or users through the Telegram Bot API.
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Telegram message data including optional photo\(s\) |
|
||||
| ↳ `message_id` | number | Unique Telegram message identifier |
|
||||
| ↳ `from` | object | Chat information |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Chat username \(if available\) |
|
||||
| ↳ `username` | string | Chat title \(for groups and channels\) |
|
||||
| ↳ `id` | number | Bot user ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Bot first name |
|
||||
| ↳ `username` | string | Bot username |
|
||||
| ↳ `chat` | object | Information about the bot that sent the message |
|
||||
| ↳ `id` | number | Bot user ID |
|
||||
| ↳ `first_name` | string | Bot first name |
|
||||
| ↳ `username` | string | Bot username |
|
||||
| ↳ `type` | string | Chat type \(private, group, supergroup, channel\) |
|
||||
| ↳ `type` | string | Chat type \(private, group, supergroup, channel\) |
|
||||
| ↳ `date` | number | Unix timestamp when message was sent |
|
||||
| ↳ `text` | string | Text content of the sent message \(if applicable\) |
|
||||
| ↳ `photo` | array | List of photos included in the message |
|
||||
| ↳ `file_id` | string | Unique file ID of the photo |
|
||||
| ↳ `file_unique_id` | string | Unique identifier for this file across different bots |
|
||||
| ↳ `file_size` | number | Size of the photo file in bytes |
|
||||
| ↳ `width` | number | Photo width in pixels |
|
||||
| ↳ `height` | number | Photo height in pixels |
|
||||
| ↳ `file_id` | string | Unique file ID of the photo |
|
||||
| ↳ `file_unique_id` | string | Unique identifier for this file across different bots |
|
||||
| ↳ `file_size` | number | Size of the photo file in bytes |
|
||||
| ↳ `width` | number | Photo width in pixels |
|
||||
| ↳ `height` | number | Photo height in pixels |
|
||||
|
||||
### `telegram_send_video`
|
||||
|
||||
@@ -184,85 +135,6 @@ Send videos to Telegram channels or users through the Telegram Bot API.
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Telegram message data including optional media |
|
||||
| ↳ `message_id` | number | Unique Telegram message identifier |
|
||||
| ↳ `from` | object | Information about the sender |
|
||||
| ↳ `id` | number | Sender ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Sender |
|
||||
| ↳ `username` | string | Sender |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `chat` | object | Information about the chat where message was sent |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `date` | number | Unix timestamp when the message was sent |
|
||||
| ↳ `text` | string | Text content of the sent message \(if applicable\) |
|
||||
| ↳ `format` | object | Media format information \(for videos, GIFs, etc.\) |
|
||||
| ↳ `file_name` | string | Media file name |
|
||||
| ↳ `mime_type` | string | Media MIME type |
|
||||
| ↳ `duration` | number | Duration of media in seconds |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `thumbnail` | object | Thumbnail image details |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_id` | string | Media file ID |
|
||||
| ↳ `file_unique_id` | string | Unique media file identifier |
|
||||
| ↳ `file_size` | number | Size of media file in bytes |
|
||||
| ↳ `thumb` | object | Secondary thumbnail details \(duplicate of thumbnail\) |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_name` | string | Document file name |
|
||||
| ↳ `mime_type` | string | Document MIME type |
|
||||
| ↳ `duration` | number | Duration of media in seconds |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `thumbnail` | object | Document thumbnail information |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_id` | string | Document file ID |
|
||||
| ↳ `file_unique_id` | string | Unique document file identifier |
|
||||
| ↳ `file_size` | number | Size of document file in bytes |
|
||||
| ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `document` | object | Document file details if the message contains a document |
|
||||
| ↳ `file_name` | string | Document file name |
|
||||
| ↳ `mime_type` | string | Document MIME type |
|
||||
| ↳ `thumbnail` | object | Document thumbnail information |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_id` | string | Document file ID |
|
||||
| ↳ `file_unique_id` | string | Unique document file identifier |
|
||||
| ↳ `file_size` | number | Size of document file in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
|
||||
### `telegram_send_audio`
|
||||
|
||||
@@ -283,41 +155,6 @@ Send audio files to Telegram channels or users through the Telegram Bot API.
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Telegram message data including voice/audio information |
|
||||
| ↳ `message_id` | number | Unique Telegram message identifier |
|
||||
| ↳ `from` | object | Information about the sender |
|
||||
| ↳ `id` | number | Sender ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Sender |
|
||||
| ↳ `username` | string | Sender |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `chat` | object | Information about the chat where the message was sent |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `date` | number | Unix timestamp when the message was sent |
|
||||
| ↳ `text` | string | Text content of the sent message \(if applicable\) |
|
||||
| ↳ `audio` | object | Audio file details |
|
||||
| ↳ `duration` | number | Duration of the audio in seconds |
|
||||
| ↳ `performer` | string | Performer of the audio |
|
||||
| ↳ `title` | string | Title of the audio |
|
||||
| ↳ `file_name` | string | Original filename of the audio |
|
||||
| ↳ `mime_type` | string | MIME type of the audio file |
|
||||
| ↳ `file_id` | string | Unique file identifier for this audio |
|
||||
| ↳ `file_unique_id` | string | Unique identifier across different bots for this file |
|
||||
| ↳ `file_size` | number | Size of the audio file in bytes |
|
||||
| ↳ `duration` | number | Duration of the audio in seconds |
|
||||
| ↳ `performer` | string | Performer of the audio |
|
||||
| ↳ `title` | string | Title of the audio |
|
||||
| ↳ `file_name` | string | Original filename of the audio |
|
||||
| ↳ `mime_type` | string | MIME type of the audio file |
|
||||
| ↳ `file_id` | string | Unique file identifier for this audio |
|
||||
| ↳ `file_unique_id` | string | Unique identifier across different bots for this file |
|
||||
| ↳ `file_size` | number | Size of the audio file in bytes |
|
||||
|
||||
### `telegram_send_animation`
|
||||
|
||||
@@ -338,85 +175,6 @@ Send animations (GIFs) to Telegram channels or users through the Telegram Bot AP
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Telegram message data including optional media |
|
||||
| ↳ `message_id` | number | Unique Telegram message identifier |
|
||||
| ↳ `from` | object | Information about the sender |
|
||||
| ↳ `id` | number | Sender ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Sender |
|
||||
| ↳ `username` | string | Sender |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `chat` | object | Information about the chat where message was sent |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `date` | number | Unix timestamp when the message was sent |
|
||||
| ↳ `text` | string | Text content of the sent message \(if applicable\) |
|
||||
| ↳ `format` | object | Media format information \(for videos, GIFs, etc.\) |
|
||||
| ↳ `file_name` | string | Media file name |
|
||||
| ↳ `mime_type` | string | Media MIME type |
|
||||
| ↳ `duration` | number | Duration of media in seconds |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `thumbnail` | object | Thumbnail image details |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_id` | string | Media file ID |
|
||||
| ↳ `file_unique_id` | string | Unique media file identifier |
|
||||
| ↳ `file_size` | number | Size of media file in bytes |
|
||||
| ↳ `thumb` | object | Secondary thumbnail details \(duplicate of thumbnail\) |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_name` | string | Document file name |
|
||||
| ↳ `mime_type` | string | Document MIME type |
|
||||
| ↳ `duration` | number | Duration of media in seconds |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `thumbnail` | object | Document thumbnail information |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_id` | string | Document file ID |
|
||||
| ↳ `file_unique_id` | string | Unique document file identifier |
|
||||
| ↳ `file_size` | number | Size of document file in bytes |
|
||||
| ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `document` | object | Document file details if the message contains a document |
|
||||
| ↳ `file_name` | string | Document file name |
|
||||
| ↳ `mime_type` | string | Document MIME type |
|
||||
| ↳ `thumbnail` | object | Document thumbnail information |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `file_id` | string | Document file ID |
|
||||
| ↳ `file_unique_id` | string | Unique document file identifier |
|
||||
| ↳ `file_size` | number | Size of document file in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
| ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) |
|
||||
| ↳ `file_id` | string | Thumbnail file ID |
|
||||
| ↳ `file_unique_id` | string | Unique thumbnail file identifier |
|
||||
| ↳ `file_size` | number | Thumbnail file size in bytes |
|
||||
| ↳ `width` | number | Thumbnail width in pixels |
|
||||
| ↳ `height` | number | Thumbnail height in pixels |
|
||||
|
||||
### `telegram_send_document`
|
||||
|
||||
@@ -437,33 +195,5 @@ Send documents (PDF, ZIP, DOC, etc.) to Telegram channels or users through the T
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Success or error message |
|
||||
| `data` | object | Telegram message data including document |
|
||||
| ↳ `message_id` | number | Unique Telegram message identifier |
|
||||
| ↳ `from` | object | Information about the sender |
|
||||
| ↳ `id` | number | Sender ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Sender |
|
||||
| ↳ `username` | string | Sender |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `is_bot` | boolean | Whether the chat is a bot or not |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `chat` | object | Information about the chat where message was sent |
|
||||
| ↳ `id` | number | Chat ID |
|
||||
| ↳ `first_name` | string | Chat first name \(if private chat\) |
|
||||
| ↳ `username` | string | Chat username \(for private or channels\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `type` | string | Type of chat \(private, group, supergroup, or channel\) |
|
||||
| ↳ `date` | number | Unix timestamp when the message was sent |
|
||||
| ↳ `document` | object | Document file details |
|
||||
| ↳ `file_name` | string | Document file name |
|
||||
| ↳ `mime_type` | string | Document MIME type |
|
||||
| ↳ `file_id` | string | Document file ID |
|
||||
| ↳ `file_unique_id` | string | Unique document file identifier |
|
||||
| ↳ `file_size` | number | Size of document file in bytes |
|
||||
| ↳ `file_name` | string | Document file name |
|
||||
| ↳ `mime_type` | string | Document MIME type |
|
||||
| ↳ `file_id` | string | Document file ID |
|
||||
| ↳ `file_unique_id` | string | Unique document file identifier |
|
||||
| ↳ `file_size` | number | Size of document file in bytes |
|
||||
|
||||
|
||||
|
||||
@@ -63,3 +63,8 @@ Execute SQL queries against Tinybird Pipes and Data Sources using the Query API.
|
||||
| `statistics` | json | Query execution statistics - elapsed time, rows read, bytes read \(only available with FORMAT JSON\) |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `tinybird`
|
||||
|
||||
@@ -94,33 +94,6 @@ Retrieve insights and analytics for Typeform forms
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `fields` | array | Number of users who dropped off at this field |
|
||||
| ↳ `dropoffs` | number | Number of users who dropped off at this field |
|
||||
| ↳ `id` | string | Unique field ID |
|
||||
| ↳ `label` | string | Field label |
|
||||
| ↳ `ref` | string | Field reference name |
|
||||
| ↳ `title` | string | Field title/question |
|
||||
| ↳ `type` | string | Field type \(e.g., short_text, multiple_choice\) |
|
||||
| ↳ `views` | number | Number of times this field was viewed |
|
||||
| `form` | object | Average completion time for this platform |
|
||||
| ↳ `platforms` | array | Average completion time for this platform |
|
||||
| ↳ `average_time` | number | Average completion time for this platform |
|
||||
| ↳ `completion_rate` | number | Completion rate for this platform |
|
||||
| ↳ `platform` | string | Platform name \(e.g., desktop, mobile\) |
|
||||
| ↳ `responses_count` | number | Number of responses from this platform |
|
||||
| ↳ `total_visits` | number | Total visits from this platform |
|
||||
| ↳ `unique_visits` | number | Unique visits from this platform |
|
||||
| ↳ `average_time` | number | Overall average completion time |
|
||||
| ↳ `completion_rate` | number | Overall completion rate |
|
||||
| ↳ `platform` | string | Platform name \(e.g., desktop, mobile\) |
|
||||
| ↳ `responses_count` | number | Total number of responses |
|
||||
| ↳ `total_visits` | number | Total number of visits |
|
||||
| ↳ `unique_visits` | number | Total number of unique visits |
|
||||
| ↳ `summary` | object | Overall average completion time |
|
||||
| ↳ `average_time` | number | Overall average completion time |
|
||||
| ↳ `completion_rate` | number | Overall completion rate |
|
||||
| ↳ `responses_count` | number | Total number of responses |
|
||||
| ↳ `total_visits` | number | Total number of visits |
|
||||
| ↳ `unique_visits` | number | Total number of unique visits |
|
||||
|
||||
### `typeform_list_forms`
|
||||
|
||||
|
||||
@@ -55,8 +55,5 @@ Process and analyze images using advanced vision models. Capable of understandin
|
||||
| `model` | string | The vision model that was used for analysis |
|
||||
| `tokens` | number | Total tokens used for the analysis |
|
||||
| `usage` | object | Detailed token usage breakdown |
|
||||
| ↳ `input_tokens` | number | Tokens used for input processing |
|
||||
| ↳ `output_tokens` | number | Tokens used for response generation |
|
||||
| ↳ `total_tokens` | number | Total tokens consumed |
|
||||
|
||||
|
||||
|
||||
@@ -50,15 +50,6 @@ Read content from a Wealthbox note
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Note data and metadata |
|
||||
| ↳ `content` | string | Formatted note information |
|
||||
| ↳ `note` | object | Raw note data from Wealthbox |
|
||||
| ↳ `metadata` | object | Operation metadata |
|
||||
| ↳ `itemId` | string | ID of the note |
|
||||
| ↳ `noteId` | string | ID of the note |
|
||||
| ↳ `itemType` | string | Type of item \(note\) |
|
||||
| ↳ `itemId` | string | ID of the note |
|
||||
| ↳ `noteId` | string | ID of the note |
|
||||
| ↳ `itemType` | string | Type of item \(note\) |
|
||||
|
||||
### `wealthbox_write_note`
|
||||
|
||||
@@ -77,15 +68,6 @@ Create or update a Wealthbox note
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created or updated note data and metadata |
|
||||
| ↳ `note` | object | Raw note data from Wealthbox |
|
||||
| ↳ `success` | boolean | Operation success indicator |
|
||||
| ↳ `metadata` | object | Operation metadata |
|
||||
| ↳ `itemId` | string | ID of the created/updated note |
|
||||
| ↳ `noteId` | string | ID of the created/updated note |
|
||||
| ↳ `itemType` | string | Type of item \(note\) |
|
||||
| ↳ `itemId` | string | ID of the created/updated note |
|
||||
| ↳ `noteId` | string | ID of the created/updated note |
|
||||
| ↳ `itemType` | string | Type of item \(note\) |
|
||||
|
||||
### `wealthbox_read_contact`
|
||||
|
||||
@@ -103,15 +85,6 @@ Read content from a Wealthbox contact
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Contact data and metadata |
|
||||
| ↳ `content` | string | Formatted contact information |
|
||||
| ↳ `contact` | object | Raw contact data from Wealthbox |
|
||||
| ↳ `metadata` | object | Operation metadata |
|
||||
| ↳ `itemId` | string | ID of the contact |
|
||||
| ↳ `contactId` | string | ID of the contact |
|
||||
| ↳ `itemType` | string | Type of item \(contact\) |
|
||||
| ↳ `itemId` | string | ID of the contact |
|
||||
| ↳ `contactId` | string | ID of the contact |
|
||||
| ↳ `itemType` | string | Type of item \(contact\) |
|
||||
|
||||
### `wealthbox_write_contact`
|
||||
|
||||
@@ -132,15 +105,6 @@ Create a new Wealthbox contact
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created or updated contact data and metadata |
|
||||
| ↳ `contact` | object | Raw contact data from Wealthbox |
|
||||
| ↳ `success` | boolean | Operation success indicator |
|
||||
| ↳ `metadata` | object | Operation metadata |
|
||||
| ↳ `itemId` | string | ID of the created/updated contact |
|
||||
| ↳ `contactId` | string | ID of the created/updated contact |
|
||||
| ↳ `itemType` | string | Type of item \(contact\) |
|
||||
| ↳ `itemId` | string | ID of the created/updated contact |
|
||||
| ↳ `contactId` | string | ID of the created/updated contact |
|
||||
| ↳ `itemType` | string | Type of item \(contact\) |
|
||||
|
||||
### `wealthbox_read_task`
|
||||
|
||||
@@ -158,15 +122,6 @@ Read content from a Wealthbox task
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Task data and metadata |
|
||||
| ↳ `content` | string | Formatted task information |
|
||||
| ↳ `task` | object | Raw task data from Wealthbox |
|
||||
| ↳ `metadata` | object | Operation metadata |
|
||||
| ↳ `itemId` | string | ID of the task |
|
||||
| ↳ `taskId` | string | ID of the task |
|
||||
| ↳ `itemType` | string | Type of item \(task\) |
|
||||
| ↳ `itemId` | string | ID of the task |
|
||||
| ↳ `taskId` | string | ID of the task |
|
||||
| ↳ `itemType` | string | Type of item \(task\) |
|
||||
|
||||
### `wealthbox_write_task`
|
||||
|
||||
@@ -187,14 +142,5 @@ Create or update a Wealthbox task
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created or updated task data and metadata |
|
||||
| ↳ `task` | object | Raw task data from Wealthbox |
|
||||
| ↳ `success` | boolean | Operation success indicator |
|
||||
| ↳ `metadata` | object | Operation metadata |
|
||||
| ↳ `itemId` | string | ID of the created/updated task |
|
||||
| ↳ `taskId` | string | ID of the created/updated task |
|
||||
| ↳ `itemType` | string | Type of item \(task\) |
|
||||
| ↳ `itemId` | string | ID of the created/updated task |
|
||||
| ↳ `taskId` | string | ID of the created/updated task |
|
||||
| ↳ `itemType` | string | Type of item \(task\) |
|
||||
|
||||
|
||||
|
||||
@@ -47,12 +47,6 @@ Get a summary and metadata for a specific Wikipedia page.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `summary` | object | Wikipedia page summary and metadata |
|
||||
| ↳ `title` | string | Page title |
|
||||
| ↳ `extract` | string | Page extract/summary text |
|
||||
| ↳ `description` | string | Short page description |
|
||||
| ↳ `thumbnail` | object | Thumbnail image data |
|
||||
| ↳ `content_urls` | object | URLs to access the page |
|
||||
| ↳ `pageid` | number | Wikipedia page ID |
|
||||
|
||||
### `wikipedia_search`
|
||||
|
||||
@@ -70,8 +64,6 @@ Search for Wikipedia pages by title or content.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `searchResults` | array | Array of matching Wikipedia pages |
|
||||
| `totalHits` | number | Total number of search results found |
|
||||
| `query` | string | The search query that was executed |
|
||||
|
||||
### `wikipedia_content`
|
||||
|
||||
@@ -88,11 +80,6 @@ Get the full HTML content of a Wikipedia page.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | object | Full HTML content and metadata of the Wikipedia page |
|
||||
| ↳ `title` | string | Page title |
|
||||
| ↳ `pageid` | number | Wikipedia page ID |
|
||||
| ↳ `html` | string | Full HTML content of the page |
|
||||
| ↳ `revision` | number | Page revision number |
|
||||
| ↳ `timestamp` | string | Last modified timestamp |
|
||||
|
||||
### `wikipedia_random`
|
||||
|
||||
@@ -108,10 +95,5 @@ Get a random Wikipedia page.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `randomPage` | object | Random Wikipedia page data |
|
||||
| ↳ `title` | string | Page title |
|
||||
| ↳ `extract` | string | Page extract/summary |
|
||||
| ↳ `description` | string | Page description |
|
||||
| ↳ `thumbnail` | object | Thumbnail image data |
|
||||
| ↳ `content_urls` | object | URLs to access the page |
|
||||
|
||||
|
||||
|
||||
@@ -50,20 +50,6 @@ Create a new blog post in WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `post` | object | The created post |
|
||||
| ↳ `id` | number | Post ID |
|
||||
| ↳ `date` | string | Post creation date |
|
||||
| ↳ `modified` | string | Post modification date |
|
||||
| ↳ `slug` | string | Post slug |
|
||||
| ↳ `status` | string | Post status |
|
||||
| ↳ `type` | string | Post type |
|
||||
| ↳ `link` | string | Post URL |
|
||||
| ↳ `title` | object | Post title object |
|
||||
| ↳ `content` | object | Post content object |
|
||||
| ↳ `excerpt` | object | Post excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `categories` | array | Category IDs |
|
||||
| ↳ `tags` | array | Tag IDs |
|
||||
|
||||
### `wordpress_update_post`
|
||||
|
||||
@@ -89,20 +75,6 @@ Update an existing blog post in WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `post` | object | The updated post |
|
||||
| ↳ `id` | number | Post ID |
|
||||
| ↳ `date` | string | Post creation date |
|
||||
| ↳ `modified` | string | Post modification date |
|
||||
| ↳ `slug` | string | Post slug |
|
||||
| ↳ `status` | string | Post status |
|
||||
| ↳ `type` | string | Post type |
|
||||
| ↳ `link` | string | Post URL |
|
||||
| ↳ `title` | object | Post title object |
|
||||
| ↳ `content` | object | Post content object |
|
||||
| ↳ `excerpt` | object | Post excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `categories` | array | Category IDs |
|
||||
| ↳ `tags` | array | Tag IDs |
|
||||
|
||||
### `wordpress_delete_post`
|
||||
|
||||
@@ -122,20 +94,6 @@ Delete a blog post from WordPress.com
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the post was deleted |
|
||||
| `post` | object | The deleted post |
|
||||
| ↳ `id` | number | Post ID |
|
||||
| ↳ `date` | string | Post creation date |
|
||||
| ↳ `modified` | string | Post modification date |
|
||||
| ↳ `slug` | string | Post slug |
|
||||
| ↳ `status` | string | Post status |
|
||||
| ↳ `type` | string | Post type |
|
||||
| ↳ `link` | string | Post URL |
|
||||
| ↳ `title` | object | Post title object |
|
||||
| ↳ `content` | object | Post content object |
|
||||
| ↳ `excerpt` | object | Post excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `categories` | array | Category IDs |
|
||||
| ↳ `tags` | array | Tag IDs |
|
||||
|
||||
### `wordpress_get_post`
|
||||
|
||||
@@ -153,20 +111,6 @@ Get a single blog post from WordPress.com by ID
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `post` | object | The retrieved post |
|
||||
| ↳ `id` | number | Post ID |
|
||||
| ↳ `date` | string | Post creation date |
|
||||
| ↳ `modified` | string | Post modification date |
|
||||
| ↳ `slug` | string | Post slug |
|
||||
| ↳ `status` | string | Post status |
|
||||
| ↳ `type` | string | Post type |
|
||||
| ↳ `link` | string | Post URL |
|
||||
| ↳ `title` | object | Post title object |
|
||||
| ↳ `content` | object | Post content object |
|
||||
| ↳ `excerpt` | object | Post excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `categories` | array | Category IDs |
|
||||
| ↳ `tags` | array | Tag IDs |
|
||||
|
||||
### `wordpress_list_posts`
|
||||
|
||||
@@ -192,22 +136,6 @@ List blog posts from WordPress.com with optional filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `posts` | array | List of posts |
|
||||
| ↳ `id` | number | Post ID |
|
||||
| ↳ `date` | string | Post creation date |
|
||||
| ↳ `modified` | string | Post modification date |
|
||||
| ↳ `slug` | string | Post slug |
|
||||
| ↳ `status` | string | Post status |
|
||||
| ↳ `type` | string | Post type |
|
||||
| ↳ `link` | string | Post URL |
|
||||
| ↳ `title` | object | Post title object |
|
||||
| ↳ `content` | object | Post content object |
|
||||
| ↳ `excerpt` | object | Post excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `categories` | array | Category IDs |
|
||||
| ↳ `tags` | array | Tag IDs |
|
||||
| `total` | number | Total number of posts |
|
||||
| `totalPages` | number | Total number of pages |
|
||||
|
||||
### `wordpress_create_page`
|
||||
|
||||
@@ -232,20 +160,6 @@ Create a new page in WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | object | The created page |
|
||||
| ↳ `id` | number | Page ID |
|
||||
| ↳ `date` | string | Page creation date |
|
||||
| ↳ `modified` | string | Page modification date |
|
||||
| ↳ `slug` | string | Page slug |
|
||||
| ↳ `status` | string | Page status |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Page URL |
|
||||
| ↳ `title` | object | Page title object |
|
||||
| ↳ `content` | object | Page content object |
|
||||
| ↳ `excerpt` | object | Page excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `parent` | number | Parent page ID |
|
||||
| ↳ `menu_order` | number | Menu order |
|
||||
|
||||
### `wordpress_update_page`
|
||||
|
||||
@@ -271,20 +185,6 @@ Update an existing page in WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | object | The updated page |
|
||||
| ↳ `id` | number | Page ID |
|
||||
| ↳ `date` | string | Page creation date |
|
||||
| ↳ `modified` | string | Page modification date |
|
||||
| ↳ `slug` | string | Page slug |
|
||||
| ↳ `status` | string | Page status |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Page URL |
|
||||
| ↳ `title` | object | Page title object |
|
||||
| ↳ `content` | object | Page content object |
|
||||
| ↳ `excerpt` | object | Page excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `parent` | number | Parent page ID |
|
||||
| ↳ `menu_order` | number | Menu order |
|
||||
|
||||
### `wordpress_delete_page`
|
||||
|
||||
@@ -304,20 +204,6 @@ Delete a page from WordPress.com
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the page was deleted |
|
||||
| `page` | object | The deleted page |
|
||||
| ↳ `id` | number | Page ID |
|
||||
| ↳ `date` | string | Page creation date |
|
||||
| ↳ `modified` | string | Page modification date |
|
||||
| ↳ `slug` | string | Page slug |
|
||||
| ↳ `status` | string | Page status |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Page URL |
|
||||
| ↳ `title` | object | Page title object |
|
||||
| ↳ `content` | object | Page content object |
|
||||
| ↳ `excerpt` | object | Page excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `parent` | number | Parent page ID |
|
||||
| ↳ `menu_order` | number | Menu order |
|
||||
|
||||
### `wordpress_get_page`
|
||||
|
||||
@@ -335,20 +221,6 @@ Get a single page from WordPress.com by ID
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | object | The retrieved page |
|
||||
| ↳ `id` | number | Page ID |
|
||||
| ↳ `date` | string | Page creation date |
|
||||
| ↳ `modified` | string | Page modification date |
|
||||
| ↳ `slug` | string | Page slug |
|
||||
| ↳ `status` | string | Page status |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Page URL |
|
||||
| ↳ `title` | object | Page title object |
|
||||
| ↳ `content` | object | Page content object |
|
||||
| ↳ `excerpt` | object | Page excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `parent` | number | Parent page ID |
|
||||
| ↳ `menu_order` | number | Menu order |
|
||||
|
||||
### `wordpress_list_pages`
|
||||
|
||||
@@ -372,22 +244,6 @@ List pages from WordPress.com with optional filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pages` | array | List of pages |
|
||||
| ↳ `id` | number | Page ID |
|
||||
| ↳ `date` | string | Page creation date |
|
||||
| ↳ `modified` | string | Page modification date |
|
||||
| ↳ `slug` | string | Page slug |
|
||||
| ↳ `status` | string | Page status |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Page URL |
|
||||
| ↳ `title` | object | Page title object |
|
||||
| ↳ `content` | object | Page content object |
|
||||
| ↳ `excerpt` | object | Page excerpt object |
|
||||
| ↳ `author` | number | Author ID |
|
||||
| ↳ `featured_media` | number | Featured media ID |
|
||||
| ↳ `parent` | number | Parent page ID |
|
||||
| ↳ `menu_order` | number | Menu order |
|
||||
| `total` | number | Total number of pages |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
### `wordpress_upload_media`
|
||||
|
||||
@@ -410,18 +266,6 @@ Upload a media file (image, video, document) to WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `media` | object | The uploaded media item |
|
||||
| ↳ `id` | number | Media ID |
|
||||
| ↳ `date` | string | Upload date |
|
||||
| ↳ `slug` | string | Media slug |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Media page URL |
|
||||
| ↳ `title` | object | Media title object |
|
||||
| ↳ `caption` | object | Media caption object |
|
||||
| ↳ `alt_text` | string | Alt text |
|
||||
| ↳ `media_type` | string | Media type \(image, video, etc.\) |
|
||||
| ↳ `mime_type` | string | MIME type |
|
||||
| ↳ `source_url` | string | Direct URL to the media file |
|
||||
| ↳ `media_details` | object | Media details \(dimensions, etc.\) |
|
||||
|
||||
### `wordpress_get_media`
|
||||
|
||||
@@ -439,18 +283,6 @@ Get a single media item from WordPress.com by ID
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `media` | object | The retrieved media item |
|
||||
| ↳ `id` | number | Media ID |
|
||||
| ↳ `date` | string | Upload date |
|
||||
| ↳ `slug` | string | Media slug |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Media page URL |
|
||||
| ↳ `title` | object | Media title object |
|
||||
| ↳ `caption` | object | Media caption object |
|
||||
| ↳ `alt_text` | string | Alt text |
|
||||
| ↳ `media_type` | string | Media type \(image, video, etc.\) |
|
||||
| ↳ `mime_type` | string | MIME type |
|
||||
| ↳ `source_url` | string | Direct URL to the media file |
|
||||
| ↳ `media_details` | object | Media details \(dimensions, etc.\) |
|
||||
|
||||
### `wordpress_list_media`
|
||||
|
||||
@@ -474,20 +306,6 @@ List media items from the WordPress.com media library
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `media` | array | List of media items |
|
||||
| ↳ `id` | number | Media ID |
|
||||
| ↳ `date` | string | Upload date |
|
||||
| ↳ `slug` | string | Media slug |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Media page URL |
|
||||
| ↳ `title` | object | Media title object |
|
||||
| ↳ `caption` | object | Media caption object |
|
||||
| ↳ `alt_text` | string | Alt text |
|
||||
| ↳ `media_type` | string | Media type \(image, video, etc.\) |
|
||||
| ↳ `mime_type` | string | MIME type |
|
||||
| ↳ `source_url` | string | Direct URL to the media file |
|
||||
| ↳ `media_details` | object | Media details \(dimensions, etc.\) |
|
||||
| `total` | number | Total number of media items |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
### `wordpress_delete_media`
|
||||
|
||||
@@ -507,18 +325,6 @@ Delete a media item from WordPress.com
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the media was deleted |
|
||||
| `media` | object | The deleted media item |
|
||||
| ↳ `id` | number | Media ID |
|
||||
| ↳ `date` | string | Upload date |
|
||||
| ↳ `slug` | string | Media slug |
|
||||
| ↳ `type` | string | Content type |
|
||||
| ↳ `link` | string | Media page URL |
|
||||
| ↳ `title` | object | Media title object |
|
||||
| ↳ `caption` | object | Media caption object |
|
||||
| ↳ `alt_text` | string | Alt text |
|
||||
| ↳ `media_type` | string | Media type \(image, video, etc.\) |
|
||||
| ↳ `mime_type` | string | MIME type |
|
||||
| ↳ `source_url` | string | Direct URL to the media file |
|
||||
| ↳ `media_details` | object | Media details \(dimensions, etc.\) |
|
||||
|
||||
### `wordpress_create_comment`
|
||||
|
||||
@@ -541,17 +347,6 @@ Create a new comment on a WordPress.com post
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `comment` | object | The created comment |
|
||||
| ↳ `id` | number | Comment ID |
|
||||
| ↳ `post` | number | Post ID |
|
||||
| ↳ `parent` | number | Parent comment ID |
|
||||
| ↳ `author` | number | Author user ID |
|
||||
| ↳ `author_name` | string | Author display name |
|
||||
| ↳ `author_email` | string | Author email |
|
||||
| ↳ `author_url` | string | Author URL |
|
||||
| ↳ `date` | string | Comment date |
|
||||
| ↳ `content` | object | Comment content object |
|
||||
| ↳ `link` | string | Comment permalink |
|
||||
| ↳ `status` | string | Comment status |
|
||||
|
||||
### `wordpress_list_comments`
|
||||
|
||||
@@ -575,19 +370,6 @@ List comments from WordPress.com with optional filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `comments` | array | List of comments |
|
||||
| ↳ `id` | number | Comment ID |
|
||||
| ↳ `post` | number | Post ID |
|
||||
| ↳ `parent` | number | Parent comment ID |
|
||||
| ↳ `author` | number | Author user ID |
|
||||
| ↳ `author_name` | string | Author display name |
|
||||
| ↳ `author_email` | string | Author email |
|
||||
| ↳ `author_url` | string | Author URL |
|
||||
| ↳ `date` | string | Comment date |
|
||||
| ↳ `content` | object | Comment content object |
|
||||
| ↳ `link` | string | Comment permalink |
|
||||
| ↳ `status` | string | Comment status |
|
||||
| `total` | number | Total number of comments |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
### `wordpress_update_comment`
|
||||
|
||||
@@ -607,17 +389,6 @@ Update a comment in WordPress.com (content or status)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `comment` | object | The updated comment |
|
||||
| ↳ `id` | number | Comment ID |
|
||||
| ↳ `post` | number | Post ID |
|
||||
| ↳ `parent` | number | Parent comment ID |
|
||||
| ↳ `author` | number | Author user ID |
|
||||
| ↳ `author_name` | string | Author display name |
|
||||
| ↳ `author_email` | string | Author email |
|
||||
| ↳ `author_url` | string | Author URL |
|
||||
| ↳ `date` | string | Comment date |
|
||||
| ↳ `content` | object | Comment content object |
|
||||
| ↳ `link` | string | Comment permalink |
|
||||
| ↳ `status` | string | Comment status |
|
||||
|
||||
### `wordpress_delete_comment`
|
||||
|
||||
@@ -637,17 +408,6 @@ Delete a comment from WordPress.com
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the comment was deleted |
|
||||
| `comment` | object | The deleted comment |
|
||||
| ↳ `id` | number | Comment ID |
|
||||
| ↳ `post` | number | Post ID |
|
||||
| ↳ `parent` | number | Parent comment ID |
|
||||
| ↳ `author` | number | Author user ID |
|
||||
| ↳ `author_name` | string | Author display name |
|
||||
| ↳ `author_email` | string | Author email |
|
||||
| ↳ `author_url` | string | Author URL |
|
||||
| ↳ `date` | string | Comment date |
|
||||
| ↳ `content` | object | Comment content object |
|
||||
| ↳ `link` | string | Comment permalink |
|
||||
| ↳ `status` | string | Comment status |
|
||||
|
||||
### `wordpress_create_category`
|
||||
|
||||
@@ -668,14 +428,6 @@ Create a new category in WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `category` | object | The created category |
|
||||
| ↳ `id` | number | Category ID |
|
||||
| ↳ `count` | number | Number of posts in this category |
|
||||
| ↳ `description` | string | Category description |
|
||||
| ↳ `link` | string | Category archive URL |
|
||||
| ↳ `name` | string | Category name |
|
||||
| ↳ `slug` | string | Category slug |
|
||||
| ↳ `taxonomy` | string | Taxonomy name |
|
||||
| ↳ `parent` | number | Parent category ID |
|
||||
|
||||
### `wordpress_list_categories`
|
||||
|
||||
@@ -696,16 +448,6 @@ List categories from WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `categories` | array | List of categories |
|
||||
| ↳ `id` | number | Category ID |
|
||||
| ↳ `count` | number | Number of posts in this category |
|
||||
| ↳ `description` | string | Category description |
|
||||
| ↳ `link` | string | Category archive URL |
|
||||
| ↳ `name` | string | Category name |
|
||||
| ↳ `slug` | string | Category slug |
|
||||
| ↳ `taxonomy` | string | Taxonomy name |
|
||||
| ↳ `parent` | number | Parent category ID |
|
||||
| `total` | number | Total number of categories |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
### `wordpress_create_tag`
|
||||
|
||||
@@ -725,13 +467,6 @@ Create a new tag in WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tag` | object | The created tag |
|
||||
| ↳ `id` | number | Tag ID |
|
||||
| ↳ `count` | number | Number of posts with this tag |
|
||||
| ↳ `description` | string | Tag description |
|
||||
| ↳ `link` | string | Tag archive URL |
|
||||
| ↳ `name` | string | Tag name |
|
||||
| ↳ `slug` | string | Tag slug |
|
||||
| ↳ `taxonomy` | string | Taxonomy name |
|
||||
|
||||
### `wordpress_list_tags`
|
||||
|
||||
@@ -752,15 +487,6 @@ List tags from WordPress.com
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tags` | array | List of tags |
|
||||
| ↳ `id` | number | Tag ID |
|
||||
| ↳ `count` | number | Number of posts with this tag |
|
||||
| ↳ `description` | string | Tag description |
|
||||
| ↳ `link` | string | Tag archive URL |
|
||||
| ↳ `name` | string | Tag name |
|
||||
| ↳ `slug` | string | Tag slug |
|
||||
| ↳ `taxonomy` | string | Taxonomy name |
|
||||
| `total` | number | Total number of tags |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
### `wordpress_get_current_user`
|
||||
|
||||
@@ -777,18 +503,6 @@ Get information about the currently authenticated WordPress.com user
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | The current user |
|
||||
| ↳ `id` | number | User ID |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `first_name` | string | First name |
|
||||
| ↳ `last_name` | string | Last name |
|
||||
| ↳ `email` | string | Email address |
|
||||
| ↳ `url` | string | User website URL |
|
||||
| ↳ `description` | string | User bio |
|
||||
| ↳ `link` | string | Author archive URL |
|
||||
| ↳ `slug` | string | User slug |
|
||||
| ↳ `roles` | array | User roles |
|
||||
| ↳ `avatar_urls` | object | Avatar URLs at different sizes |
|
||||
|
||||
### `wordpress_list_users`
|
||||
|
||||
@@ -810,20 +524,6 @@ List users from WordPress.com (requires admin privileges)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | List of users |
|
||||
| ↳ `id` | number | User ID |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `first_name` | string | First name |
|
||||
| ↳ `last_name` | string | Last name |
|
||||
| ↳ `email` | string | Email address |
|
||||
| ↳ `url` | string | User website URL |
|
||||
| ↳ `description` | string | User bio |
|
||||
| ↳ `link` | string | Author archive URL |
|
||||
| ↳ `slug` | string | User slug |
|
||||
| ↳ `roles` | array | User roles |
|
||||
| ↳ `avatar_urls` | object | Avatar URLs at different sizes |
|
||||
| `total` | number | Total number of users |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
### `wordpress_get_user`
|
||||
|
||||
@@ -841,18 +541,6 @@ Get a specific user from WordPress.com by ID
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | The retrieved user |
|
||||
| ↳ `id` | number | User ID |
|
||||
| ↳ `username` | string | Username |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `first_name` | string | First name |
|
||||
| ↳ `last_name` | string | Last name |
|
||||
| ↳ `email` | string | Email address |
|
||||
| ↳ `url` | string | User website URL |
|
||||
| ↳ `description` | string | User bio |
|
||||
| ↳ `link` | string | Author archive URL |
|
||||
| ↳ `slug` | string | User slug |
|
||||
| ↳ `roles` | array | User roles |
|
||||
| ↳ `avatar_urls` | object | Avatar URLs at different sizes |
|
||||
|
||||
### `wordpress_search_content`
|
||||
|
||||
@@ -874,12 +562,5 @@ Search across all content types in WordPress.com (posts, pages, media)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Search results |
|
||||
| ↳ `id` | number | Content ID |
|
||||
| ↳ `title` | string | Content title |
|
||||
| ↳ `url` | string | Content URL |
|
||||
| ↳ `type` | string | Content type \(post, page, attachment\) |
|
||||
| ↳ `subtype` | string | Post type slug |
|
||||
| `total` | number | Total number of results |
|
||||
| `totalPages` | number | Total number of result pages |
|
||||
|
||||
|
||||
|
||||
@@ -53,16 +53,6 @@ Post new tweets, reply to tweets, or create polls on X (Twitter)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tweet` | object | The newly created tweet data |
|
||||
| ↳ `id` | string | Tweet ID |
|
||||
| ↳ `text` | string | Tweet content text |
|
||||
| ↳ `createdAt` | string | Tweet creation timestamp |
|
||||
| ↳ `authorId` | string | ID of the tweet author |
|
||||
| ↳ `conversationId` | string | Conversation thread ID |
|
||||
| ↳ `attachments` | object | Media or poll attachments |
|
||||
| ↳ `mediaKeys` | array | Media attachment keys |
|
||||
| ↳ `pollId` | string | Poll ID if poll attached |
|
||||
| ↳ `mediaKeys` | array | Media attachment keys |
|
||||
| ↳ `pollId` | string | Poll ID if poll attached |
|
||||
|
||||
### `x_read`
|
||||
|
||||
@@ -80,11 +70,6 @@ Read tweet details, including replies and conversation context
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tweet` | object | The main tweet data |
|
||||
| ↳ `id` | string | Tweet ID |
|
||||
| ↳ `text` | string | Tweet content text |
|
||||
| ↳ `createdAt` | string | Tweet creation timestamp |
|
||||
| ↳ `authorId` | string | ID of the tweet author |
|
||||
| `context` | object | Conversation context including parent and root tweets |
|
||||
|
||||
### `x_search`
|
||||
|
||||
@@ -105,15 +90,6 @@ Search for tweets using keywords, hashtags, or advanced queries
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tweets` | array | Array of tweets matching the search query |
|
||||
| ↳ `id` | string | Tweet ID |
|
||||
| ↳ `text` | string | Tweet content |
|
||||
| ↳ `createdAt` | string | Creation timestamp |
|
||||
| ↳ `authorId` | string | Author user ID |
|
||||
| `includes` | object | Additional data including user profiles and media |
|
||||
| `meta` | object | Search metadata including result count and pagination tokens |
|
||||
| ↳ `resultCount` | number | Number of results returned |
|
||||
| ↳ `newestId` | string | ID of the newest tweet |
|
||||
| ↳ `oldestId` | string | ID of the oldest tweet |
|
||||
|
||||
### `x_user`
|
||||
|
||||
@@ -130,17 +106,5 @@ Get user profile information
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | X user profile information |
|
||||
| ↳ `id` | string | User ID |
|
||||
| ↳ `username` | string | Username without @ symbol |
|
||||
| ↳ `name` | string | Display name |
|
||||
| ↳ `description` | string | User bio/description |
|
||||
| ↳ `verified` | boolean | Whether the user is verified |
|
||||
| ↳ `metrics` | object | User statistics |
|
||||
| ↳ `followersCount` | number | Number of followers |
|
||||
| ↳ `followingCount` | number | Number of users following |
|
||||
| ↳ `tweetCount` | number | Total number of tweets |
|
||||
| ↳ `followersCount` | number | Number of followers |
|
||||
| ↳ `followingCount` | number | Number of users following |
|
||||
| ↳ `tweetCount` | number | Total number of tweets |
|
||||
|
||||
|
||||
|
||||
@@ -60,12 +60,6 @@ Search for videos on YouTube using the YouTube Data API. Supports advanced filte
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Array of YouTube videos matching the search query |
|
||||
| ↳ `videoId` | string | YouTube video ID |
|
||||
| ↳ `title` | string | Video title |
|
||||
| ↳ `description` | string | Video description |
|
||||
| ↳ `thumbnail` | string | Video thumbnail URL |
|
||||
| `totalResults` | number | Total number of search results available |
|
||||
| `nextPageToken` | string | Token for accessing the next page of results |
|
||||
|
||||
### `youtube_video_details`
|
||||
|
||||
@@ -140,13 +134,6 @@ Get all videos from a specific YouTube channel, with sorting options.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Array of videos from the channel |
|
||||
| ↳ `videoId` | string | YouTube video ID |
|
||||
| ↳ `title` | string | Video title |
|
||||
| ↳ `description` | string | Video description |
|
||||
| ↳ `thumbnail` | string | Video thumbnail URL |
|
||||
| ↳ `publishedAt` | string | Video publish date |
|
||||
| `totalResults` | number | Total number of videos in the channel |
|
||||
| `nextPageToken` | string | Token for accessing the next page of results |
|
||||
|
||||
### `youtube_channel_playlists`
|
||||
|
||||
@@ -166,14 +153,6 @@ Get all playlists from a specific YouTube channel.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Array of playlists from the channel |
|
||||
| ↳ `playlistId` | string | YouTube playlist ID |
|
||||
| ↳ `title` | string | Playlist title |
|
||||
| ↳ `description` | string | Playlist description |
|
||||
| ↳ `thumbnail` | string | Playlist thumbnail URL |
|
||||
| ↳ `itemCount` | number | Number of videos in playlist |
|
||||
| ↳ `publishedAt` | string | Playlist creation date |
|
||||
| `totalResults` | number | Total number of playlists in the channel |
|
||||
| `nextPageToken` | string | Token for accessing the next page of results |
|
||||
|
||||
### `youtube_playlist_items`
|
||||
|
||||
@@ -193,15 +172,6 @@ Get videos from a YouTube playlist.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Array of videos in the playlist |
|
||||
| ↳ `videoId` | string | YouTube video ID |
|
||||
| ↳ `title` | string | Video title |
|
||||
| ↳ `description` | string | Video description |
|
||||
| ↳ `thumbnail` | string | Video thumbnail URL |
|
||||
| ↳ `publishedAt` | string | Date added to playlist |
|
||||
| ↳ `channelTitle` | string | Channel name |
|
||||
| ↳ `position` | number | Position in playlist |
|
||||
| `totalResults` | number | Total number of items in playlist |
|
||||
| `nextPageToken` | string | Token for accessing the next page of results |
|
||||
|
||||
### `youtube_comments`
|
||||
|
||||
@@ -222,16 +192,5 @@ Get comments from a YouTube video.
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `items` | array | Array of comments from the video |
|
||||
| ↳ `commentId` | string | Comment ID |
|
||||
| ↳ `authorDisplayName` | string | Comment author name |
|
||||
| ↳ `authorChannelUrl` | string | Comment author channel URL |
|
||||
| ↳ `textDisplay` | string | Comment text \(HTML formatted\) |
|
||||
| ↳ `textOriginal` | string | Comment text \(plain text\) |
|
||||
| ↳ `likeCount` | number | Number of likes |
|
||||
| ↳ `publishedAt` | string | Comment publish date |
|
||||
| ↳ `updatedAt` | string | Comment last updated date |
|
||||
| ↳ `replyCount` | number | Number of replies |
|
||||
| `totalResults` | number | Total number of comments |
|
||||
| `nextPageToken` | string | Token for accessing the next page of results |
|
||||
|
||||
|
||||
|
||||
@@ -78,12 +78,6 @@ Retrieve a list of tickets from Zendesk with optional filtering
|
||||
| --------- | ---- | ----------- |
|
||||
| `tickets` | array | Array of ticket objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| ↳ `next_page` | string | URL for next page of results |
|
||||
| ↳ `previous_page` | string | URL for previous page of results |
|
||||
| ↳ `count` | number | Total count of tickets |
|
||||
| `metadata` | object | Response metadata |
|
||||
| ↳ `total_returned` | number | Number of tickets returned in this response |
|
||||
| ↳ `has_more` | boolean | Whether more tickets are available |
|
||||
|
||||
### `zendesk_get_ticket`
|
||||
|
||||
@@ -273,12 +267,6 @@ Retrieve a list of users from Zendesk with optional filtering
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of user objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| ↳ `next_page` | string | URL for next page of results |
|
||||
| ↳ `previous_page` | string | URL for previous page of results |
|
||||
| ↳ `count` | number | Total count of users |
|
||||
| `metadata` | object | Response metadata |
|
||||
| ↳ `total_returned` | number | Number of users returned in this response |
|
||||
| ↳ `has_more` | boolean | Whether more users are available |
|
||||
|
||||
### `zendesk_get_user`
|
||||
|
||||
@@ -341,12 +329,6 @@ Search for users in Zendesk using a query string
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of user objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| ↳ `next_page` | string | URL for next page of results |
|
||||
| ↳ `previous_page` | string | URL for previous page of results |
|
||||
| ↳ `count` | number | Total count of users |
|
||||
| `metadata` | object | Response metadata |
|
||||
| ↳ `total_returned` | number | Number of users returned in this response |
|
||||
| ↳ `has_more` | boolean | Whether more users are available |
|
||||
|
||||
### `zendesk_create_user`
|
||||
|
||||
@@ -483,12 +465,6 @@ Retrieve a list of organizations from Zendesk
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | array | Array of organization objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| ↳ `next_page` | string | URL for next page of results |
|
||||
| ↳ `previous_page` | string | URL for previous page of results |
|
||||
| ↳ `count` | number | Total count of organizations |
|
||||
| `metadata` | object | Response metadata |
|
||||
| ↳ `total_returned` | number | Number of organizations returned in this response |
|
||||
| ↳ `has_more` | boolean | Whether more organizations are available |
|
||||
|
||||
### `zendesk_get_organization`
|
||||
|
||||
@@ -531,12 +507,6 @@ Autocomplete organizations in Zendesk by name prefix (for name matching/autocomp
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | array | Array of organization objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| ↳ `next_page` | string | URL for next page of results |
|
||||
| ↳ `previous_page` | string | URL for previous page of results |
|
||||
| ↳ `count` | number | Total count of organizations |
|
||||
| `metadata` | object | Response metadata |
|
||||
| ↳ `total_returned` | number | Number of organizations returned in this response |
|
||||
| ↳ `has_more` | boolean | Whether more organizations are available |
|
||||
|
||||
### `zendesk_create_organization`
|
||||
|
||||
@@ -652,12 +622,6 @@ Unified search across tickets, users, and organizations in Zendesk
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Array of result objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| ↳ `next_page` | string | URL for next page of results |
|
||||
| ↳ `previous_page` | string | URL for previous page of results |
|
||||
| ↳ `count` | number | Total count of results |
|
||||
| `metadata` | object | Response metadata |
|
||||
| ↳ `total_returned` | number | Number of results returned in this response |
|
||||
| ↳ `has_more` | boolean | Whether more results are available |
|
||||
|
||||
### `zendesk_search_count`
|
||||
|
||||
|
||||
@@ -69,22 +69,6 @@ Create a new Zoom meeting
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `meeting` | object | The created meeting with all its properties |
|
||||
| ↳ `id` | number | Meeting ID |
|
||||
| ↳ `uuid` | string | Meeting UUID |
|
||||
| ↳ `host_id` | string | Host user ID |
|
||||
| ↳ `host_email` | string | Host email |
|
||||
| ↳ `topic` | string | Meeting topic |
|
||||
| ↳ `type` | number | Meeting type |
|
||||
| ↳ `status` | string | Meeting status |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `duration` | number | Duration in minutes |
|
||||
| ↳ `timezone` | string | Timezone |
|
||||
| ↳ `agenda` | string | Meeting agenda |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `start_url` | string | Host start URL |
|
||||
| ↳ `join_url` | string | Participant join URL |
|
||||
| ↳ `password` | string | Meeting password |
|
||||
| ↳ `settings` | object | Meeting settings |
|
||||
|
||||
### `zoom_list_meetings`
|
||||
|
||||
@@ -105,11 +89,6 @@ List all meetings for a Zoom user
|
||||
| --------- | ---- | ----------- |
|
||||
| `meetings` | array | List of meetings |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
| ↳ `pageCount` | number | Total number of pages |
|
||||
| ↳ `pageNumber` | number | Current page number |
|
||||
| ↳ `pageSize` | number | Number of records per page |
|
||||
| ↳ `totalRecords` | number | Total number of records |
|
||||
| ↳ `nextPageToken` | string | Token for next page |
|
||||
|
||||
### `zoom_get_meeting`
|
||||
|
||||
@@ -128,24 +107,6 @@ Get details of a specific Zoom meeting
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `meeting` | object | The meeting details |
|
||||
| ↳ `id` | number | Meeting ID |
|
||||
| ↳ `uuid` | string | Meeting UUID |
|
||||
| ↳ `host_id` | string | Host user ID |
|
||||
| ↳ `host_email` | string | Host email |
|
||||
| ↳ `topic` | string | Meeting topic |
|
||||
| ↳ `type` | number | Meeting type |
|
||||
| ↳ `status` | string | Meeting status |
|
||||
| ↳ `start_time` | string | Start time |
|
||||
| ↳ `duration` | number | Duration in minutes |
|
||||
| ↳ `timezone` | string | Timezone |
|
||||
| ↳ `agenda` | string | Meeting agenda |
|
||||
| ↳ `created_at` | string | Creation timestamp |
|
||||
| ↳ `start_url` | string | Host start URL |
|
||||
| ↳ `join_url` | string | Participant join URL |
|
||||
| ↳ `password` | string | Meeting password |
|
||||
| ↳ `settings` | object | Meeting settings |
|
||||
| ↳ `recurrence` | object | Recurrence settings |
|
||||
| ↳ `occurrences` | array | Meeting occurrences |
|
||||
|
||||
### `zoom_update_meeting`
|
||||
|
||||
@@ -232,11 +193,6 @@ List all cloud recordings for a Zoom user
|
||||
| --------- | ---- | ----------- |
|
||||
| `recordings` | array | List of recordings |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
| ↳ `from` | string | Start date of query range |
|
||||
| ↳ `to` | string | End date of query range |
|
||||
| ↳ `pageSize` | number | Number of records per page |
|
||||
| ↳ `totalRecords` | number | Total number of records |
|
||||
| ↳ `nextPageToken` | string | Token for next page |
|
||||
|
||||
### `zoom_get_meeting_recordings`
|
||||
|
||||
@@ -255,14 +211,6 @@ Get all recordings for a specific Zoom meeting
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `recording` | object | The meeting recording with all files |
|
||||
| ↳ `uuid` | string | Meeting UUID |
|
||||
| ↳ `id` | number | Meeting ID |
|
||||
| ↳ `topic` | string | Meeting topic |
|
||||
| ↳ `start_time` | string | Meeting start time |
|
||||
| ↳ `duration` | number | Meeting duration in minutes |
|
||||
| ↳ `total_size` | number | Total size of recordings in bytes |
|
||||
| ↳ `share_url` | string | URL to share recordings |
|
||||
| ↳ `recording_files` | array | List of recording files |
|
||||
|
||||
### `zoom_delete_recording`
|
||||
|
||||
@@ -300,8 +248,5 @@ List participants from a past Zoom meeting
|
||||
| --------- | ---- | ----------- |
|
||||
| `participants` | array | List of meeting participants |
|
||||
| `pageInfo` | object | Pagination information |
|
||||
| ↳ `pageSize` | number | Number of records per page |
|
||||
| ↳ `totalRecords` | number | Total number of records |
|
||||
| ↳ `nextPageToken` | string | Token for next page |
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ import {
|
||||
renderPlanWelcomeEmail,
|
||||
renderUsageThresholdEmail,
|
||||
renderWelcomeEmail,
|
||||
renderWorkflowNotificationEmail,
|
||||
renderWorkspaceInvitationEmail,
|
||||
} from '@/components/emails'
|
||||
|
||||
@@ -109,51 +108,6 @@ const emailTemplates = {
|
||||
message:
|
||||
'I have 10 years of experience building scalable distributed systems. Most recently, I led a team at a Series B startup where we scaled from 100K to 10M users.',
|
||||
}),
|
||||
|
||||
// Notification emails
|
||||
'workflow-notification-success': () =>
|
||||
renderWorkflowNotificationEmail({
|
||||
workflowName: 'Customer Onboarding Flow',
|
||||
status: 'success',
|
||||
trigger: 'api',
|
||||
duration: '2.3s',
|
||||
cost: '$0.0042',
|
||||
logUrl: 'https://sim.ai/workspace/ws_123/logs?search=exec_abc123',
|
||||
}),
|
||||
'workflow-notification-error': () =>
|
||||
renderWorkflowNotificationEmail({
|
||||
workflowName: 'Customer Onboarding Flow',
|
||||
status: 'error',
|
||||
trigger: 'webhook',
|
||||
duration: '1.1s',
|
||||
cost: '$0.0021',
|
||||
logUrl: 'https://sim.ai/workspace/ws_123/logs?search=exec_abc123',
|
||||
}),
|
||||
'workflow-notification-alert': () =>
|
||||
renderWorkflowNotificationEmail({
|
||||
workflowName: 'Customer Onboarding Flow',
|
||||
status: 'error',
|
||||
trigger: 'schedule',
|
||||
duration: '45.2s',
|
||||
cost: '$0.0156',
|
||||
logUrl: 'https://sim.ai/workspace/ws_123/logs?search=exec_abc123',
|
||||
alertReason: '3 consecutive failures detected',
|
||||
}),
|
||||
'workflow-notification-full': () =>
|
||||
renderWorkflowNotificationEmail({
|
||||
workflowName: 'Data Processing Pipeline',
|
||||
status: 'success',
|
||||
trigger: 'api',
|
||||
duration: '12.5s',
|
||||
cost: '$0.0234',
|
||||
logUrl: 'https://sim.ai/workspace/ws_123/logs?search=exec_abc123',
|
||||
finalOutput: { processed: 150, skipped: 3, status: 'completed' },
|
||||
rateLimits: {
|
||||
sync: { requestsPerMinute: 60, remaining: 45 },
|
||||
async: { requestsPerMinute: 120, remaining: 98 },
|
||||
},
|
||||
usageData: { currentPeriodCost: 12.45, limit: 50, percentUsed: 24.9 },
|
||||
}),
|
||||
} as const
|
||||
|
||||
type EmailTemplate = keyof typeof emailTemplates
|
||||
@@ -177,12 +131,6 @@ export async function GET(request: NextRequest) {
|
||||
'payment-failed',
|
||||
],
|
||||
Careers: ['careers-confirmation', 'careers-submission'],
|
||||
Notifications: [
|
||||
'workflow-notification-success',
|
||||
'workflow-notification-error',
|
||||
'workflow-notification-alert',
|
||||
'workflow-notification-full',
|
||||
],
|
||||
}
|
||||
|
||||
const categoryHtml = Object.entries(categories)
|
||||
|
||||
@@ -1,297 +0,0 @@
|
||||
import { db } from '@sim/db'
|
||||
import { permissions, workflow, workflowExecutionLogs } from '@sim/db/schema'
|
||||
import { createLogger } from '@sim/logger'
|
||||
import { and, eq, sql } from 'drizzle-orm'
|
||||
import { type NextRequest, NextResponse } from 'next/server'
|
||||
import { z } from 'zod'
|
||||
import { getSession } from '@/lib/auth'
|
||||
import { generateRequestId } from '@/lib/core/utils/request'
|
||||
import { buildFilterConditions, LogFilterParamsSchema } from '@/lib/logs/filters'
|
||||
|
||||
const logger = createLogger('LogsStatsAPI')
|
||||
|
||||
export const revalidate = 0
|
||||
|
||||
const StatsQueryParamsSchema = LogFilterParamsSchema.extend({
|
||||
segmentCount: z.coerce.number().optional().default(72),
|
||||
})
|
||||
|
||||
export interface SegmentStats {
|
||||
timestamp: string
|
||||
totalExecutions: number
|
||||
successfulExecutions: number
|
||||
avgDurationMs: number
|
||||
}
|
||||
|
||||
export interface WorkflowStats {
|
||||
workflowId: string
|
||||
workflowName: string
|
||||
segments: SegmentStats[]
|
||||
overallSuccessRate: number
|
||||
totalExecutions: number
|
||||
totalSuccessful: number
|
||||
}
|
||||
|
||||
export interface DashboardStatsResponse {
|
||||
workflows: WorkflowStats[]
|
||||
aggregateSegments: SegmentStats[]
|
||||
totalRuns: number
|
||||
totalErrors: number
|
||||
avgLatency: number
|
||||
timeBounds: {
|
||||
start: string
|
||||
end: string
|
||||
}
|
||||
segmentMs: number
|
||||
}
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const requestId = generateRequestId()
|
||||
|
||||
try {
|
||||
const session = await getSession()
|
||||
if (!session?.user?.id) {
|
||||
logger.warn(`[${requestId}] Unauthorized logs stats access attempt`)
|
||||
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
|
||||
}
|
||||
|
||||
const userId = session.user.id
|
||||
|
||||
try {
|
||||
const { searchParams } = new URL(request.url)
|
||||
const params = StatsQueryParamsSchema.parse(Object.fromEntries(searchParams.entries()))
|
||||
|
||||
const workspaceFilter = eq(workflowExecutionLogs.workspaceId, params.workspaceId)
|
||||
|
||||
const commonFilters = buildFilterConditions(params, { useSimpleLevelFilter: true })
|
||||
const whereCondition = commonFilters ? and(workspaceFilter, commonFilters) : workspaceFilter
|
||||
|
||||
const boundsQuery = await db
|
||||
.select({
|
||||
minTime: sql<string>`MIN(${workflowExecutionLogs.startedAt})`,
|
||||
maxTime: sql<string>`MAX(${workflowExecutionLogs.startedAt})`,
|
||||
})
|
||||
.from(workflowExecutionLogs)
|
||||
.innerJoin(workflow, eq(workflowExecutionLogs.workflowId, workflow.id))
|
||||
.innerJoin(
|
||||
permissions,
|
||||
and(
|
||||
eq(permissions.entityType, 'workspace'),
|
||||
eq(permissions.entityId, workflowExecutionLogs.workspaceId),
|
||||
eq(permissions.userId, userId)
|
||||
)
|
||||
)
|
||||
.where(whereCondition)
|
||||
|
||||
const bounds = boundsQuery[0]
|
||||
const now = new Date()
|
||||
|
||||
let startTime: Date
|
||||
let endTime: Date
|
||||
|
||||
if (!bounds?.minTime || !bounds?.maxTime) {
|
||||
endTime = now
|
||||
startTime = new Date(now.getTime() - 24 * 60 * 60 * 1000)
|
||||
} else {
|
||||
startTime = new Date(bounds.minTime)
|
||||
endTime = new Date(Math.max(new Date(bounds.maxTime).getTime(), now.getTime()))
|
||||
}
|
||||
|
||||
const totalMs = Math.max(1, endTime.getTime() - startTime.getTime())
|
||||
const segmentMs = Math.max(60000, Math.floor(totalMs / params.segmentCount))
|
||||
|
||||
const statsQuery = await db
|
||||
.select({
|
||||
workflowId: workflowExecutionLogs.workflowId,
|
||||
workflowName: workflow.name,
|
||||
segmentIndex:
|
||||
sql<number>`FLOOR(EXTRACT(EPOCH FROM (${workflowExecutionLogs.startedAt} - ${startTime}::timestamp)) * 1000 / ${segmentMs})`.as(
|
||||
'segment_index'
|
||||
),
|
||||
totalExecutions: sql<number>`COUNT(*)`.as('total_executions'),
|
||||
successfulExecutions:
|
||||
sql<number>`COUNT(*) FILTER (WHERE ${workflowExecutionLogs.level} != 'error')`.as(
|
||||
'successful_executions'
|
||||
),
|
||||
avgDurationMs:
|
||||
sql<number>`COALESCE(AVG(${workflowExecutionLogs.totalDurationMs}) FILTER (WHERE ${workflowExecutionLogs.totalDurationMs} > 0), 0)`.as(
|
||||
'avg_duration_ms'
|
||||
),
|
||||
})
|
||||
.from(workflowExecutionLogs)
|
||||
.innerJoin(workflow, eq(workflowExecutionLogs.workflowId, workflow.id))
|
||||
.innerJoin(
|
||||
permissions,
|
||||
and(
|
||||
eq(permissions.entityType, 'workspace'),
|
||||
eq(permissions.entityId, workflowExecutionLogs.workspaceId),
|
||||
eq(permissions.userId, userId)
|
||||
)
|
||||
)
|
||||
.where(whereCondition)
|
||||
.groupBy(
|
||||
workflowExecutionLogs.workflowId,
|
||||
workflow.name,
|
||||
sql`FLOOR(EXTRACT(EPOCH FROM (${workflowExecutionLogs.startedAt} - ${startTime}::timestamp)) * 1000 / ${segmentMs})`
|
||||
)
|
||||
.orderBy(workflowExecutionLogs.workflowId, sql`segment_index`)
|
||||
|
||||
const workflowMap = new Map<
|
||||
string,
|
||||
{
|
||||
workflowId: string
|
||||
workflowName: string
|
||||
segments: Map<number, SegmentStats>
|
||||
totalExecutions: number
|
||||
totalSuccessful: number
|
||||
}
|
||||
>()
|
||||
|
||||
for (const row of statsQuery) {
|
||||
const segmentIndex = Math.min(
|
||||
params.segmentCount - 1,
|
||||
Math.max(0, Math.floor(Number(row.segmentIndex)))
|
||||
)
|
||||
|
||||
if (!workflowMap.has(row.workflowId)) {
|
||||
workflowMap.set(row.workflowId, {
|
||||
workflowId: row.workflowId,
|
||||
workflowName: row.workflowName,
|
||||
segments: new Map(),
|
||||
totalExecutions: 0,
|
||||
totalSuccessful: 0,
|
||||
})
|
||||
}
|
||||
|
||||
const wf = workflowMap.get(row.workflowId)!
|
||||
wf.totalExecutions += Number(row.totalExecutions)
|
||||
wf.totalSuccessful += Number(row.successfulExecutions)
|
||||
|
||||
const existing = wf.segments.get(segmentIndex)
|
||||
if (existing) {
|
||||
const oldTotal = existing.totalExecutions
|
||||
const newTotal = oldTotal + Number(row.totalExecutions)
|
||||
existing.totalExecutions = newTotal
|
||||
existing.successfulExecutions += Number(row.successfulExecutions)
|
||||
existing.avgDurationMs =
|
||||
newTotal > 0
|
||||
? (existing.avgDurationMs * oldTotal +
|
||||
Number(row.avgDurationMs || 0) * Number(row.totalExecutions)) /
|
||||
newTotal
|
||||
: 0
|
||||
} else {
|
||||
wf.segments.set(segmentIndex, {
|
||||
timestamp: new Date(startTime.getTime() + segmentIndex * segmentMs).toISOString(),
|
||||
totalExecutions: Number(row.totalExecutions),
|
||||
successfulExecutions: Number(row.successfulExecutions),
|
||||
avgDurationMs: Number(row.avgDurationMs || 0),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const workflows: WorkflowStats[] = []
|
||||
for (const wf of workflowMap.values()) {
|
||||
const segments: SegmentStats[] = []
|
||||
for (let i = 0; i < params.segmentCount; i++) {
|
||||
const existing = wf.segments.get(i)
|
||||
if (existing) {
|
||||
segments.push(existing)
|
||||
} else {
|
||||
segments.push({
|
||||
timestamp: new Date(startTime.getTime() + i * segmentMs).toISOString(),
|
||||
totalExecutions: 0,
|
||||
successfulExecutions: 0,
|
||||
avgDurationMs: 0,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
workflows.push({
|
||||
workflowId: wf.workflowId,
|
||||
workflowName: wf.workflowName,
|
||||
segments,
|
||||
totalExecutions: wf.totalExecutions,
|
||||
totalSuccessful: wf.totalSuccessful,
|
||||
overallSuccessRate:
|
||||
wf.totalExecutions > 0 ? (wf.totalSuccessful / wf.totalExecutions) * 100 : 100,
|
||||
})
|
||||
}
|
||||
|
||||
workflows.sort((a, b) => {
|
||||
const errA = a.overallSuccessRate < 100 ? 1 - a.overallSuccessRate / 100 : 0
|
||||
const errB = b.overallSuccessRate < 100 ? 1 - b.overallSuccessRate / 100 : 0
|
||||
if (errA !== errB) return errB - errA
|
||||
return a.workflowName.localeCompare(b.workflowName)
|
||||
})
|
||||
|
||||
const aggregateSegments: SegmentStats[] = []
|
||||
let totalRuns = 0
|
||||
let totalErrors = 0
|
||||
let weightedLatencySum = 0
|
||||
let latencyCount = 0
|
||||
|
||||
for (let i = 0; i < params.segmentCount; i++) {
|
||||
let segTotal = 0
|
||||
let segSuccess = 0
|
||||
let segWeightedLatency = 0
|
||||
let segLatencyCount = 0
|
||||
|
||||
for (const wf of workflows) {
|
||||
const seg = wf.segments[i]
|
||||
segTotal += seg.totalExecutions
|
||||
segSuccess += seg.successfulExecutions
|
||||
if (seg.avgDurationMs > 0 && seg.totalExecutions > 0) {
|
||||
segWeightedLatency += seg.avgDurationMs * seg.totalExecutions
|
||||
segLatencyCount += seg.totalExecutions
|
||||
}
|
||||
}
|
||||
|
||||
totalRuns += segTotal
|
||||
totalErrors += segTotal - segSuccess
|
||||
weightedLatencySum += segWeightedLatency
|
||||
latencyCount += segLatencyCount
|
||||
|
||||
aggregateSegments.push({
|
||||
timestamp: new Date(startTime.getTime() + i * segmentMs).toISOString(),
|
||||
totalExecutions: segTotal,
|
||||
successfulExecutions: segSuccess,
|
||||
avgDurationMs: segLatencyCount > 0 ? segWeightedLatency / segLatencyCount : 0,
|
||||
})
|
||||
}
|
||||
|
||||
const avgLatency = latencyCount > 0 ? weightedLatencySum / latencyCount : 0
|
||||
|
||||
const response: DashboardStatsResponse = {
|
||||
workflows,
|
||||
aggregateSegments,
|
||||
totalRuns,
|
||||
totalErrors,
|
||||
avgLatency,
|
||||
timeBounds: {
|
||||
start: startTime.toISOString(),
|
||||
end: endTime.toISOString(),
|
||||
},
|
||||
segmentMs,
|
||||
}
|
||||
|
||||
return NextResponse.json(response, { status: 200 })
|
||||
} catch (validationError) {
|
||||
if (validationError instanceof z.ZodError) {
|
||||
logger.warn(`[${requestId}] Invalid logs stats request parameters`, {
|
||||
errors: validationError.errors,
|
||||
})
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: 'Invalid request parameters',
|
||||
details: validationError.errors,
|
||||
},
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
throw validationError
|
||||
}
|
||||
} catch (error: any) {
|
||||
logger.error(`[${requestId}] logs stats fetch error`, error)
|
||||
return NextResponse.json({ error: error.message }, { status: 500 })
|
||||
}
|
||||
}
|
||||
@@ -80,6 +80,7 @@ const updateNotificationSchema = z
|
||||
levelFilter: levelFilterSchema.optional(),
|
||||
triggerFilter: triggerFilterSchema.optional(),
|
||||
includeFinalOutput: z.boolean().optional(),
|
||||
includeTraceSpans: z.boolean().optional(),
|
||||
includeRateLimits: z.boolean().optional(),
|
||||
includeUsageData: z.boolean().optional(),
|
||||
alertConfig: alertConfigSchema.optional(),
|
||||
@@ -146,6 +147,7 @@ export async function GET(request: NextRequest, { params }: RouteParams) {
|
||||
levelFilter: subscription.levelFilter,
|
||||
triggerFilter: subscription.triggerFilter,
|
||||
includeFinalOutput: subscription.includeFinalOutput,
|
||||
includeTraceSpans: subscription.includeTraceSpans,
|
||||
includeRateLimits: subscription.includeRateLimits,
|
||||
includeUsageData: subscription.includeUsageData,
|
||||
webhookConfig: subscription.webhookConfig,
|
||||
@@ -220,6 +222,7 @@ export async function PUT(request: NextRequest, { params }: RouteParams) {
|
||||
if (data.triggerFilter !== undefined) updateData.triggerFilter = data.triggerFilter
|
||||
if (data.includeFinalOutput !== undefined)
|
||||
updateData.includeFinalOutput = data.includeFinalOutput
|
||||
if (data.includeTraceSpans !== undefined) updateData.includeTraceSpans = data.includeTraceSpans
|
||||
if (data.includeRateLimits !== undefined) updateData.includeRateLimits = data.includeRateLimits
|
||||
if (data.includeUsageData !== undefined) updateData.includeUsageData = data.includeUsageData
|
||||
if (data.alertConfig !== undefined) updateData.alertConfig = data.alertConfig
|
||||
@@ -257,6 +260,7 @@ export async function PUT(request: NextRequest, { params }: RouteParams) {
|
||||
levelFilter: subscription.levelFilter,
|
||||
triggerFilter: subscription.triggerFilter,
|
||||
includeFinalOutput: subscription.includeFinalOutput,
|
||||
includeTraceSpans: subscription.includeTraceSpans,
|
||||
includeRateLimits: subscription.includeRateLimits,
|
||||
includeUsageData: subscription.includeUsageData,
|
||||
webhookConfig: subscription.webhookConfig,
|
||||
|
||||
@@ -5,14 +5,8 @@ import { createLogger } from '@sim/logger'
|
||||
import { and, eq } from 'drizzle-orm'
|
||||
import { type NextRequest, NextResponse } from 'next/server'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import {
|
||||
type EmailRateLimitsData,
|
||||
type EmailUsageData,
|
||||
renderWorkflowNotificationEmail,
|
||||
} from '@/components/emails'
|
||||
import { getSession } from '@/lib/auth'
|
||||
import { decryptSecret } from '@/lib/core/security/encryption'
|
||||
import { getBaseUrl } from '@/lib/core/utils/urls'
|
||||
import { sendEmail } from '@/lib/messaging/email/mailer'
|
||||
import { getUserEntityPermissions } from '@/lib/workspaces/permissions/utils'
|
||||
|
||||
@@ -73,23 +67,29 @@ function buildTestPayload(subscription: typeof workspaceNotificationSubscription
|
||||
data.finalOutput = { message: 'This is a test notification', test: true }
|
||||
}
|
||||
|
||||
if (subscription.includeTraceSpans) {
|
||||
data.traceSpans = [
|
||||
{
|
||||
id: 'span_test_1',
|
||||
name: 'Test Block',
|
||||
type: 'block',
|
||||
status: 'success',
|
||||
startTime: new Date(timestamp - 5000).toISOString(),
|
||||
endTime: new Date(timestamp).toISOString(),
|
||||
duration: 5000,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
if (subscription.includeRateLimits) {
|
||||
data.rateLimits = {
|
||||
sync: {
|
||||
requestsPerMinute: 150,
|
||||
remaining: 45,
|
||||
resetAt: new Date(timestamp + 60000).toISOString(),
|
||||
},
|
||||
async: {
|
||||
requestsPerMinute: 1000,
|
||||
remaining: 50,
|
||||
resetAt: new Date(timestamp + 60000).toISOString(),
|
||||
},
|
||||
sync: { limit: 150, remaining: 45, resetAt: new Date(timestamp + 60000).toISOString() },
|
||||
async: { limit: 1000, remaining: 50, resetAt: new Date(timestamp + 60000).toISOString() },
|
||||
}
|
||||
}
|
||||
|
||||
if (subscription.includeUsageData) {
|
||||
data.usage = { currentPeriodCost: 2.45, limit: 20, percentUsed: 12.25, isExceeded: false }
|
||||
data.usage = { currentPeriodCost: 2.45, limit: 20, plan: 'pro', isExceeded: false }
|
||||
}
|
||||
|
||||
return { payload, timestamp }
|
||||
@@ -157,26 +157,23 @@ async function testEmail(subscription: typeof workspaceNotificationSubscription.
|
||||
|
||||
const { payload } = buildTestPayload(subscription)
|
||||
const data = (payload as Record<string, unknown>).data as Record<string, unknown>
|
||||
const baseUrl = getBaseUrl()
|
||||
const logUrl = `${baseUrl}/workspace/${subscription.workspaceId}/logs`
|
||||
|
||||
const html = await renderWorkflowNotificationEmail({
|
||||
workflowName: data.workflowName as string,
|
||||
status: data.status as 'success' | 'error',
|
||||
trigger: data.trigger as string,
|
||||
duration: `${data.totalDurationMs}ms`,
|
||||
cost: `$${(((data.cost as Record<string, unknown>)?.total as number) || 0).toFixed(4)}`,
|
||||
logUrl,
|
||||
finalOutput: data.finalOutput,
|
||||
rateLimits: data.rateLimits as EmailRateLimitsData | undefined,
|
||||
usageData: data.usage as EmailUsageData | undefined,
|
||||
})
|
||||
|
||||
const result = await sendEmail({
|
||||
to: subscription.emailRecipients,
|
||||
subject: `[Test] Workflow Execution: ${data.workflowName}`,
|
||||
html,
|
||||
text: `This is a test notification from Sim.\n\nWorkflow: ${data.workflowName}\nStatus: ${data.status}\nDuration: ${data.totalDurationMs}ms\n\nView Log: ${logUrl}\n\nThis notification is configured for workspace notifications.`,
|
||||
text: `This is a test notification from Sim Studio.\n\nWorkflow: ${data.workflowName}\nStatus: ${data.status}\nDuration: ${data.totalDurationMs}ms\n\nThis notification is configured for workspace notifications.`,
|
||||
html: `
|
||||
<div style="font-family: sans-serif; max-width: 600px; margin: 0 auto;">
|
||||
<h2 style="color: #7F2FFF;">Test Notification</h2>
|
||||
<p>This is a test notification from Sim Studio.</p>
|
||||
<table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
|
||||
<tr><td style="padding: 8px; border: 1px solid #eee;"><strong>Workflow</strong></td><td style="padding: 8px; border: 1px solid #eee;">${data.workflowName}</td></tr>
|
||||
<tr><td style="padding: 8px; border: 1px solid #eee;"><strong>Status</strong></td><td style="padding: 8px; border: 1px solid #eee;">${data.status}</td></tr>
|
||||
<tr><td style="padding: 8px; border: 1px solid #eee;"><strong>Duration</strong></td><td style="padding: 8px; border: 1px solid #eee;">${data.totalDurationMs}ms</td></tr>
|
||||
</table>
|
||||
<p style="color: #666; font-size: 12px;">This notification is configured for workspace notifications.</p>
|
||||
</div>
|
||||
`,
|
||||
emailType: 'notifications',
|
||||
})
|
||||
|
||||
@@ -230,7 +227,7 @@ async function testSlack(
|
||||
elements: [
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: 'This is a test notification from Sim workspace notifications.',
|
||||
text: 'This is a test notification from Sim Studio workspace notifications.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -83,6 +83,7 @@ const createNotificationSchema = z
|
||||
levelFilter: levelFilterSchema.default(['info', 'error']),
|
||||
triggerFilter: triggerFilterSchema.default([...CORE_TRIGGER_TYPES]),
|
||||
includeFinalOutput: z.boolean().default(false),
|
||||
includeTraceSpans: z.boolean().default(false),
|
||||
includeRateLimits: z.boolean().default(false),
|
||||
includeUsageData: z.boolean().default(false),
|
||||
alertConfig: alertConfigSchema.optional(),
|
||||
@@ -137,6 +138,7 @@ export async function GET(request: NextRequest, { params }: { params: Promise<{
|
||||
levelFilter: workspaceNotificationSubscription.levelFilter,
|
||||
triggerFilter: workspaceNotificationSubscription.triggerFilter,
|
||||
includeFinalOutput: workspaceNotificationSubscription.includeFinalOutput,
|
||||
includeTraceSpans: workspaceNotificationSubscription.includeTraceSpans,
|
||||
includeRateLimits: workspaceNotificationSubscription.includeRateLimits,
|
||||
includeUsageData: workspaceNotificationSubscription.includeUsageData,
|
||||
webhookConfig: workspaceNotificationSubscription.webhookConfig,
|
||||
@@ -238,6 +240,7 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
||||
levelFilter: data.levelFilter,
|
||||
triggerFilter: data.triggerFilter,
|
||||
includeFinalOutput: data.includeFinalOutput,
|
||||
includeTraceSpans: data.includeTraceSpans,
|
||||
includeRateLimits: data.includeRateLimits,
|
||||
includeUsageData: data.includeUsageData,
|
||||
alertConfig: data.alertConfig || null,
|
||||
@@ -263,6 +266,7 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
|
||||
levelFilter: subscription.levelFilter,
|
||||
triggerFilter: subscription.triggerFilter,
|
||||
includeFinalOutput: subscription.includeFinalOutput,
|
||||
includeTraceSpans: subscription.includeTraceSpans,
|
||||
includeRateLimits: subscription.includeRateLimits,
|
||||
includeUsageData: subscription.includeUsageData,
|
||||
webhookConfig: subscription.webhookConfig,
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import type { Metadata, Viewport } from 'next'
|
||||
import Script from 'next/script'
|
||||
import { PublicEnvScript } from 'next-runtime-env'
|
||||
import { BrandedLayout } from '@/components/branded-layout'
|
||||
import { generateThemeCSS } from '@/lib/branding/inject-theme'
|
||||
import { generateBrandedMetadata, generateStructuredData } from '@/lib/branding/metadata'
|
||||
import { PostHogProvider } from '@/app/_shell/providers/posthog-provider'
|
||||
import '@/app/_styles/globals.css'
|
||||
|
||||
import { OneDollarStats } from '@/components/analytics/onedollarstats'
|
||||
import { isReactGrabEnabled } from '@/lib/core/config/feature-flags'
|
||||
import { HydrationErrorHandler } from '@/app/_shell/hydration-error-handler'
|
||||
import { QueryProvider } from '@/app/_shell/providers/query-provider'
|
||||
import { SessionProvider } from '@/app/_shell/providers/session-provider'
|
||||
@@ -34,19 +33,6 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
||||
return (
|
||||
<html lang='en' suppressHydrationWarning>
|
||||
<head>
|
||||
{isReactGrabEnabled && (
|
||||
<Script
|
||||
src='https://unpkg.com/react-grab/dist/index.global.js'
|
||||
crossOrigin='anonymous'
|
||||
strategy='beforeInteractive'
|
||||
/>
|
||||
)}
|
||||
{isReactGrabEnabled && (
|
||||
<Script
|
||||
src='https://unpkg.com/@react-grab/cursor/dist/client.global.js'
|
||||
strategy='lazyOnload'
|
||||
/>
|
||||
)}
|
||||
{/* Structured Data for SEO */}
|
||||
<script
|
||||
type='application/ld+json'
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { Loader2 } from 'lucide-react'
|
||||
import { Skeleton } from '@/components/ui/skeleton'
|
||||
import { formatLatency } from '@/app/workspace/[workspaceId]/logs/utils'
|
||||
import type { DashboardStatsResponse, WorkflowStats } from '@/hooks/queries/logs'
|
||||
import { formatLatency, parseDuration } from '@/app/workspace/[workspaceId]/logs/utils'
|
||||
import { useFilterStore } from '@/stores/logs/filters/store'
|
||||
import type { WorkflowLog } from '@/stores/logs/filters/types'
|
||||
import { useWorkflowRegistry } from '@/stores/workflows/registry/store'
|
||||
import { LineChart, WorkflowsList } from './components'
|
||||
|
||||
@@ -26,6 +26,10 @@ interface WorkflowExecution {
|
||||
overallSuccessRate: number
|
||||
}
|
||||
|
||||
const DEFAULT_SEGMENTS = 72
|
||||
const MIN_SEGMENT_PX = 10
|
||||
const MIN_SEGMENT_MS = 60000
|
||||
|
||||
const SKELETON_BAR_HEIGHTS = [
|
||||
45, 72, 38, 85, 52, 68, 30, 90, 55, 42, 78, 35, 88, 48, 65, 28, 82, 58, 40, 75, 32, 95, 50, 70,
|
||||
]
|
||||
@@ -116,32 +120,13 @@ function DashboardSkeleton() {
|
||||
}
|
||||
|
||||
interface DashboardProps {
|
||||
stats?: DashboardStatsResponse
|
||||
logs: WorkflowLog[]
|
||||
isLoading: boolean
|
||||
error?: Error | null
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts server WorkflowStats to the internal WorkflowExecution format.
|
||||
*/
|
||||
function toWorkflowExecution(wf: WorkflowStats): WorkflowExecution {
|
||||
return {
|
||||
workflowId: wf.workflowId,
|
||||
workflowName: wf.workflowName,
|
||||
overallSuccessRate: wf.overallSuccessRate,
|
||||
segments: wf.segments.map((seg) => ({
|
||||
timestamp: seg.timestamp,
|
||||
totalExecutions: seg.totalExecutions,
|
||||
successfulExecutions: seg.successfulExecutions,
|
||||
hasExecutions: seg.totalExecutions > 0,
|
||||
successRate:
|
||||
seg.totalExecutions > 0 ? (seg.successfulExecutions / seg.totalExecutions) * 100 : 100,
|
||||
avgDurationMs: seg.avgDurationMs,
|
||||
})),
|
||||
}
|
||||
}
|
||||
|
||||
export default function Dashboard({ stats, isLoading, error }: DashboardProps) {
|
||||
export default function Dashboard({ logs, isLoading, error }: DashboardProps) {
|
||||
const [segmentCount, setSegmentCount] = useState<number>(DEFAULT_SEGMENTS)
|
||||
const [selectedSegments, setSelectedSegments] = useState<Record<string, number[]>>({})
|
||||
const [lastAnchorIndices, setLastAnchorIndices] = useState<Record<string, number>>({})
|
||||
const barsAreaRef = useRef<HTMLDivElement | null>(null)
|
||||
@@ -152,32 +137,182 @@ export default function Dashboard({ stats, isLoading, error }: DashboardProps) {
|
||||
|
||||
const expandedWorkflowId = workflowIds.length === 1 ? workflowIds[0] : null
|
||||
|
||||
const { executions, aggregateSegments, segmentMs } = useMemo(() => {
|
||||
if (!stats) {
|
||||
return { executions: [], aggregateSegments: [], segmentMs: 0 }
|
||||
}
|
||||
|
||||
const workflowExecutions = stats.workflows.map(toWorkflowExecution)
|
||||
|
||||
return {
|
||||
executions: workflowExecutions,
|
||||
aggregateSegments: stats.aggregateSegments,
|
||||
segmentMs: stats.segmentMs,
|
||||
}
|
||||
}, [stats])
|
||||
|
||||
const lastExecutionByWorkflow = useMemo(() => {
|
||||
const map = new Map<string, number>()
|
||||
for (const wf of executions) {
|
||||
for (let i = wf.segments.length - 1; i >= 0; i--) {
|
||||
if (wf.segments[i].totalExecutions > 0) {
|
||||
map.set(wf.workflowId, new Date(wf.segments[i].timestamp).getTime())
|
||||
break
|
||||
}
|
||||
for (const log of logs) {
|
||||
const wfId = log.workflowId
|
||||
if (!wfId) continue
|
||||
const ts = new Date(log.createdAt).getTime()
|
||||
const existing = map.get(wfId)
|
||||
if (!existing || ts > existing) {
|
||||
map.set(wfId, ts)
|
||||
}
|
||||
}
|
||||
return map
|
||||
}, [executions])
|
||||
}, [logs])
|
||||
|
||||
const timeBounds = useMemo(() => {
|
||||
if (logs.length === 0) {
|
||||
const now = new Date()
|
||||
return { start: now, end: now }
|
||||
}
|
||||
|
||||
let minTime = Number.POSITIVE_INFINITY
|
||||
let maxTime = Number.NEGATIVE_INFINITY
|
||||
|
||||
for (const log of logs) {
|
||||
const ts = new Date(log.createdAt).getTime()
|
||||
if (ts < minTime) minTime = ts
|
||||
if (ts > maxTime) maxTime = ts
|
||||
}
|
||||
|
||||
const end = new Date(Math.max(maxTime, Date.now()))
|
||||
const start = new Date(minTime)
|
||||
|
||||
return { start, end }
|
||||
}, [logs])
|
||||
|
||||
const { executions, aggregateSegments, segmentMs } = useMemo(() => {
|
||||
const allWorkflowsList = Object.values(allWorkflows)
|
||||
|
||||
if (allWorkflowsList.length === 0) {
|
||||
return { executions: [], aggregateSegments: [], segmentMs: 0 }
|
||||
}
|
||||
|
||||
const { start, end } =
|
||||
logs.length > 0
|
||||
? timeBounds
|
||||
: { start: new Date(Date.now() - 24 * 60 * 60 * 1000), end: new Date() }
|
||||
|
||||
const totalMs = Math.max(1, end.getTime() - start.getTime())
|
||||
const calculatedSegmentMs = Math.max(
|
||||
MIN_SEGMENT_MS,
|
||||
Math.floor(totalMs / Math.max(1, segmentCount))
|
||||
)
|
||||
|
||||
const logsByWorkflow = new Map<string, WorkflowLog[]>()
|
||||
for (const log of logs) {
|
||||
const wfId = log.workflowId
|
||||
if (!logsByWorkflow.has(wfId)) {
|
||||
logsByWorkflow.set(wfId, [])
|
||||
}
|
||||
logsByWorkflow.get(wfId)!.push(log)
|
||||
}
|
||||
|
||||
const workflowExecutions: WorkflowExecution[] = []
|
||||
|
||||
for (const workflow of allWorkflowsList) {
|
||||
const workflowLogs = logsByWorkflow.get(workflow.id) || []
|
||||
|
||||
const segments: WorkflowExecution['segments'] = Array.from(
|
||||
{ length: segmentCount },
|
||||
(_, i) => ({
|
||||
timestamp: new Date(start.getTime() + i * calculatedSegmentMs).toISOString(),
|
||||
hasExecutions: false,
|
||||
totalExecutions: 0,
|
||||
successfulExecutions: 0,
|
||||
successRate: 100,
|
||||
avgDurationMs: 0,
|
||||
})
|
||||
)
|
||||
|
||||
const durations: number[][] = Array.from({ length: segmentCount }, () => [])
|
||||
|
||||
for (const log of workflowLogs) {
|
||||
const logTime = new Date(log.createdAt).getTime()
|
||||
const idx = Math.min(
|
||||
segmentCount - 1,
|
||||
Math.max(0, Math.floor((logTime - start.getTime()) / calculatedSegmentMs))
|
||||
)
|
||||
|
||||
segments[idx].totalExecutions += 1
|
||||
segments[idx].hasExecutions = true
|
||||
|
||||
if (log.level !== 'error') {
|
||||
segments[idx].successfulExecutions += 1
|
||||
}
|
||||
|
||||
const duration = parseDuration({ duration: log.duration ?? undefined })
|
||||
if (duration !== null && duration > 0) {
|
||||
durations[idx].push(duration)
|
||||
}
|
||||
}
|
||||
|
||||
let totalExecs = 0
|
||||
let totalSuccess = 0
|
||||
|
||||
for (let i = 0; i < segmentCount; i++) {
|
||||
const seg = segments[i]
|
||||
totalExecs += seg.totalExecutions
|
||||
totalSuccess += seg.successfulExecutions
|
||||
|
||||
if (seg.totalExecutions > 0) {
|
||||
seg.successRate = (seg.successfulExecutions / seg.totalExecutions) * 100
|
||||
}
|
||||
|
||||
if (durations[i].length > 0) {
|
||||
seg.avgDurationMs = Math.round(
|
||||
durations[i].reduce((sum, d) => sum + d, 0) / durations[i].length
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const overallSuccessRate = totalExecs > 0 ? (totalSuccess / totalExecs) * 100 : 100
|
||||
|
||||
workflowExecutions.push({
|
||||
workflowId: workflow.id,
|
||||
workflowName: workflow.name,
|
||||
segments,
|
||||
overallSuccessRate,
|
||||
})
|
||||
}
|
||||
|
||||
workflowExecutions.sort((a, b) => {
|
||||
const errA = a.overallSuccessRate < 100 ? 1 - a.overallSuccessRate / 100 : 0
|
||||
const errB = b.overallSuccessRate < 100 ? 1 - b.overallSuccessRate / 100 : 0
|
||||
if (errA !== errB) return errB - errA
|
||||
return a.workflowName.localeCompare(b.workflowName)
|
||||
})
|
||||
|
||||
const aggSegments: {
|
||||
timestamp: string
|
||||
totalExecutions: number
|
||||
successfulExecutions: number
|
||||
avgDurationMs: number
|
||||
}[] = Array.from({ length: segmentCount }, (_, i) => ({
|
||||
timestamp: new Date(start.getTime() + i * calculatedSegmentMs).toISOString(),
|
||||
totalExecutions: 0,
|
||||
successfulExecutions: 0,
|
||||
avgDurationMs: 0,
|
||||
}))
|
||||
|
||||
const weightedDurationSums: number[] = Array(segmentCount).fill(0)
|
||||
const executionCounts: number[] = Array(segmentCount).fill(0)
|
||||
|
||||
for (const wf of workflowExecutions) {
|
||||
wf.segments.forEach((s, i) => {
|
||||
aggSegments[i].totalExecutions += s.totalExecutions
|
||||
aggSegments[i].successfulExecutions += s.successfulExecutions
|
||||
|
||||
if (s.avgDurationMs && s.avgDurationMs > 0 && s.totalExecutions > 0) {
|
||||
weightedDurationSums[i] += s.avgDurationMs * s.totalExecutions
|
||||
executionCounts[i] += s.totalExecutions
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
aggSegments.forEach((seg, i) => {
|
||||
if (executionCounts[i] > 0) {
|
||||
seg.avgDurationMs = weightedDurationSums[i] / executionCounts[i]
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
executions: workflowExecutions,
|
||||
aggregateSegments: aggSegments,
|
||||
segmentMs: calculatedSegmentMs,
|
||||
}
|
||||
}, [logs, timeBounds, segmentCount, allWorkflows])
|
||||
|
||||
const filteredExecutions = useMemo(() => {
|
||||
let filtered = executions
|
||||
@@ -376,12 +511,37 @@ export default function Dashboard({ stats, isLoading, error }: DashboardProps) {
|
||||
useEffect(() => {
|
||||
setSelectedSegments({})
|
||||
setLastAnchorIndices({})
|
||||
}, [stats, timeRange, workflowIds, searchQuery])
|
||||
}, [logs, timeRange, workflowIds, searchQuery])
|
||||
|
||||
useEffect(() => {
|
||||
if (!barsAreaRef.current) return
|
||||
const el = barsAreaRef.current
|
||||
let debounceId: ReturnType<typeof setTimeout> | null = null
|
||||
const ro = new ResizeObserver(([entry]) => {
|
||||
const w = entry?.contentRect?.width || 720
|
||||
const n = Math.max(36, Math.min(96, Math.floor(w / MIN_SEGMENT_PX)))
|
||||
if (debounceId) clearTimeout(debounceId)
|
||||
debounceId = setTimeout(() => {
|
||||
setSegmentCount(n)
|
||||
}, 150)
|
||||
})
|
||||
ro.observe(el)
|
||||
const rect = el.getBoundingClientRect()
|
||||
if (rect?.width) {
|
||||
const n = Math.max(36, Math.min(96, Math.floor(rect.width / MIN_SEGMENT_PX)))
|
||||
setSegmentCount(n)
|
||||
}
|
||||
return () => {
|
||||
if (debounceId) clearTimeout(debounceId)
|
||||
ro.disconnect()
|
||||
}
|
||||
}, [])
|
||||
|
||||
if (isLoading) {
|
||||
return <DashboardSkeleton />
|
||||
}
|
||||
|
||||
// Show error state
|
||||
if (error) {
|
||||
return (
|
||||
<div className='mt-[24px] flex flex-1 items-center justify-center'>
|
||||
|
||||
@@ -136,6 +136,7 @@ export function NotificationSettings({
|
||||
levelFilter: ['info', 'error'] as LogLevel[],
|
||||
triggerFilter: [...CORE_TRIGGER_TYPES] as CoreTriggerType[],
|
||||
includeFinalOutput: false,
|
||||
includeTraceSpans: false,
|
||||
includeRateLimits: false,
|
||||
includeUsageData: false,
|
||||
webhookUrl: '',
|
||||
@@ -202,6 +203,7 @@ export function NotificationSettings({
|
||||
levelFilter: ['info', 'error'],
|
||||
triggerFilter: [...CORE_TRIGGER_TYPES],
|
||||
includeFinalOutput: false,
|
||||
includeTraceSpans: false,
|
||||
includeRateLimits: false,
|
||||
includeUsageData: false,
|
||||
webhookUrl: '',
|
||||
@@ -420,6 +422,7 @@ export function NotificationSettings({
|
||||
levelFilter: formData.levelFilter,
|
||||
triggerFilter: formData.triggerFilter,
|
||||
includeFinalOutput: formData.includeFinalOutput,
|
||||
includeTraceSpans: formData.includeTraceSpans,
|
||||
includeRateLimits: formData.includeRateLimits,
|
||||
includeUsageData: formData.includeUsageData,
|
||||
alertConfig,
|
||||
@@ -471,6 +474,7 @@ export function NotificationSettings({
|
||||
levelFilter: subscription.levelFilter as LogLevel[],
|
||||
triggerFilter: subscription.triggerFilter as CoreTriggerType[],
|
||||
includeFinalOutput: subscription.includeFinalOutput,
|
||||
includeTraceSpans: subscription.includeTraceSpans,
|
||||
includeRateLimits: subscription.includeRateLimits,
|
||||
includeUsageData: subscription.includeUsageData,
|
||||
webhookUrl: subscription.webhookConfig?.url || '',
|
||||
@@ -826,6 +830,7 @@ export function NotificationSettings({
|
||||
<Combobox
|
||||
options={[
|
||||
{ label: 'Final Output', value: 'includeFinalOutput' },
|
||||
{ label: 'Trace Spans', value: 'includeTraceSpans' },
|
||||
{ label: 'Rate Limits', value: 'includeRateLimits' },
|
||||
{ label: 'Usage Data', value: 'includeUsageData' },
|
||||
]}
|
||||
@@ -833,6 +838,7 @@ export function NotificationSettings({
|
||||
multiSelectValues={
|
||||
[
|
||||
formData.includeFinalOutput && 'includeFinalOutput',
|
||||
formData.includeTraceSpans && 'includeTraceSpans',
|
||||
formData.includeRateLimits && 'includeRateLimits',
|
||||
formData.includeUsageData && 'includeUsageData',
|
||||
].filter(Boolean) as string[]
|
||||
@@ -841,6 +847,7 @@ export function NotificationSettings({
|
||||
setFormData({
|
||||
...formData,
|
||||
includeFinalOutput: values.includes('includeFinalOutput'),
|
||||
includeTraceSpans: values.includes('includeTraceSpans'),
|
||||
includeRateLimits: values.includes('includeRateLimits'),
|
||||
includeUsageData: values.includes('includeUsageData'),
|
||||
})
|
||||
@@ -849,11 +856,13 @@ export function NotificationSettings({
|
||||
overlayContent={(() => {
|
||||
const labels: Record<string, string> = {
|
||||
includeFinalOutput: 'Final Output',
|
||||
includeTraceSpans: 'Trace Spans',
|
||||
includeRateLimits: 'Rate Limits',
|
||||
includeUsageData: 'Usage Data',
|
||||
}
|
||||
const selected = [
|
||||
formData.includeFinalOutput && 'includeFinalOutput',
|
||||
formData.includeTraceSpans && 'includeTraceSpans',
|
||||
formData.includeRateLimits && 'includeRateLimits',
|
||||
formData.includeUsageData && 'includeUsageData',
|
||||
].filter(Boolean) as string[]
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
} from '@/lib/logs/filters'
|
||||
import { parseQuery, queryToApiParams } from '@/lib/logs/query-parser'
|
||||
import { useFolders } from '@/hooks/queries/folders'
|
||||
import { useDashboardStats, useLogDetail, useLogsList } from '@/hooks/queries/logs'
|
||||
import { useDashboardLogs, useLogDetail, useLogsList } from '@/hooks/queries/logs'
|
||||
import { useDebounce } from '@/hooks/use-debounce'
|
||||
import { useFilterStore } from '@/stores/logs/filters/store'
|
||||
import type { WorkflowLog } from '@/stores/logs/filters/types'
|
||||
@@ -130,7 +130,7 @@ export default function Logs() {
|
||||
[timeRange, startDate, endDate, level, workflowIds, folderIds, triggers, debouncedSearchQuery]
|
||||
)
|
||||
|
||||
const dashboardStatsQuery = useDashboardStats(workspaceId, dashboardFilters, {
|
||||
const dashboardLogsQuery = useDashboardLogs(workspaceId, dashboardFilters, {
|
||||
enabled: Boolean(workspaceId) && isInitialized.current,
|
||||
refetchInterval: isLive ? 5000 : false,
|
||||
})
|
||||
@@ -417,9 +417,9 @@ export default function Logs() {
|
||||
className={cn('flex min-h-0 flex-1 flex-col pr-[24px]', !isDashboardView && 'hidden')}
|
||||
>
|
||||
<Dashboard
|
||||
stats={dashboardStatsQuery.data}
|
||||
isLoading={dashboardStatsQuery.isLoading}
|
||||
error={dashboardStatsQuery.error}
|
||||
logs={dashboardLogsQuery.data ?? []}
|
||||
isLoading={!dashboardLogsQuery.data}
|
||||
error={dashboardLogsQuery.error}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
extractFieldsFromSchema,
|
||||
parseResponseFormatSafely,
|
||||
} from '@/lib/core/utils/response-format'
|
||||
import { getToolOutputs } from '@/lib/workflows/blocks/block-outputs'
|
||||
import { getBlock } from '@/blocks'
|
||||
import { useWorkflowDiffStore } from '@/stores/workflow-diff/store'
|
||||
import { useSubBlockStore } from '@/stores/workflows/subblock/store'
|
||||
@@ -129,10 +128,6 @@ export function OutputSelect({
|
||||
? baselineWorkflow.blocks?.[block.id]?.subBlocks?.responseFormat?.value
|
||||
: subBlockValues?.[block.id]?.responseFormat
|
||||
const responseFormat = parseResponseFormatSafely(responseFormatValue, block.id)
|
||||
const operationValue =
|
||||
shouldUseBaseline && baselineWorkflow
|
||||
? baselineWorkflow.blocks?.[block.id]?.subBlocks?.operation?.value
|
||||
: subBlockValues?.[block.id]?.operation
|
||||
|
||||
let outputsToProcess: Record<string, unknown> = {}
|
||||
|
||||
@@ -146,12 +141,7 @@ export function OutputSelect({
|
||||
outputsToProcess = blockConfig?.outputs || {}
|
||||
}
|
||||
} else {
|
||||
const toolOutputs =
|
||||
blockConfig && typeof operationValue === 'string'
|
||||
? getToolOutputs(blockConfig, operationValue)
|
||||
: {}
|
||||
outputsToProcess =
|
||||
Object.keys(toolOutputs).length > 0 ? toolOutputs : blockConfig?.outputs || {}
|
||||
outputsToProcess = blockConfig?.outputs || {}
|
||||
}
|
||||
|
||||
if (Object.keys(outputsToProcess).length === 0) return
|
||||
|
||||
@@ -20,13 +20,7 @@ import {
|
||||
extractFieldsFromSchema,
|
||||
parseResponseFormatSafely,
|
||||
} from '@/lib/core/utils/response-format'
|
||||
import {
|
||||
getBlockOutputPaths,
|
||||
getBlockOutputType,
|
||||
getOutputPathsFromSchema,
|
||||
getToolOutputPaths,
|
||||
getToolOutputType,
|
||||
} from '@/lib/workflows/blocks/block-outputs'
|
||||
import { getBlockOutputPaths, getBlockOutputType } from '@/lib/workflows/blocks/block-outputs'
|
||||
import { TRIGGER_TYPES } from '@/lib/workflows/triggers/triggers'
|
||||
import { KeyboardNavigationHandler } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/tag-dropdown/components/keyboard-navigation-handler'
|
||||
import type {
|
||||
@@ -44,6 +38,7 @@ import { useSubBlockStore } from '@/stores/workflows/subblock/store'
|
||||
import { normalizeName } from '@/stores/workflows/utils'
|
||||
import { useWorkflowStore } from '@/stores/workflows/workflow/store'
|
||||
import type { BlockState } from '@/stores/workflows/workflow/types'
|
||||
import { getTool } from '@/tools/utils'
|
||||
|
||||
const logger = createLogger('TagDropdown')
|
||||
|
||||
@@ -73,12 +68,6 @@ interface TagDropdownProps {
|
||||
inputRef?: React.RefObject<HTMLTextAreaElement | HTMLInputElement>
|
||||
}
|
||||
|
||||
interface TagComputationResult {
|
||||
tags: string[]
|
||||
variableInfoMap: Record<string, { type: string; id: string }>
|
||||
blockTagGroups: BlockTagGroup[]
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the tag trigger (`<`) should show the tag dropdown.
|
||||
*
|
||||
@@ -229,6 +218,161 @@ const getOutputTypeForPath = (
|
||||
return 'any'
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively generates all output paths from an outputs schema.
|
||||
*
|
||||
* @remarks
|
||||
* Traverses nested objects and arrays to build dot-separated paths
|
||||
* for all leaf values in the schema.
|
||||
*
|
||||
* @param outputs - The outputs schema object
|
||||
* @param prefix - Current path prefix for recursion
|
||||
* @returns Array of dot-separated paths to all output fields
|
||||
*/
|
||||
const generateOutputPaths = (outputs: Record<string, any>, prefix = ''): string[] => {
|
||||
const paths: string[] = []
|
||||
|
||||
for (const [key, value] of Object.entries(outputs)) {
|
||||
const currentPath = prefix ? `${prefix}.${key}` : key
|
||||
|
||||
if (typeof value === 'string') {
|
||||
paths.push(currentPath)
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
if ('type' in value && typeof value.type === 'string') {
|
||||
const hasNestedProperties =
|
||||
((value.type === 'object' || value.type === 'json') && value.properties) ||
|
||||
(value.type === 'array' && value.items?.properties) ||
|
||||
(value.type === 'array' &&
|
||||
value.items &&
|
||||
typeof value.items === 'object' &&
|
||||
!('type' in value.items))
|
||||
|
||||
if (!hasNestedProperties) {
|
||||
paths.push(currentPath)
|
||||
}
|
||||
|
||||
if ((value.type === 'object' || value.type === 'json') && value.properties) {
|
||||
paths.push(...generateOutputPaths(value.properties, currentPath))
|
||||
} else if (value.type === 'array' && value.items?.properties) {
|
||||
paths.push(...generateOutputPaths(value.items.properties, currentPath))
|
||||
} else if (
|
||||
value.type === 'array' &&
|
||||
value.items &&
|
||||
typeof value.items === 'object' &&
|
||||
!('type' in value.items)
|
||||
) {
|
||||
paths.push(...generateOutputPaths(value.items, currentPath))
|
||||
}
|
||||
} else {
|
||||
const subPaths = generateOutputPaths(value, currentPath)
|
||||
paths.push(...subPaths)
|
||||
}
|
||||
} else {
|
||||
paths.push(currentPath)
|
||||
}
|
||||
}
|
||||
|
||||
return paths
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively generates all output paths with their types from an outputs schema.
|
||||
*
|
||||
* @remarks
|
||||
* Similar to generateOutputPaths but also captures the type information
|
||||
* for each path, useful for displaying type hints in the UI.
|
||||
*
|
||||
* @param outputs - The outputs schema object
|
||||
* @param prefix - Current path prefix for recursion
|
||||
* @returns Array of objects containing path and type for each output field
|
||||
*/
|
||||
const generateOutputPathsWithTypes = (
|
||||
outputs: Record<string, any>,
|
||||
prefix = ''
|
||||
): Array<{ path: string; type: string }> => {
|
||||
const paths: Array<{ path: string; type: string }> = []
|
||||
|
||||
for (const [key, value] of Object.entries(outputs)) {
|
||||
const currentPath = prefix ? `${prefix}.${key}` : key
|
||||
|
||||
if (typeof value === 'string') {
|
||||
paths.push({ path: currentPath, type: value })
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
if ('type' in value && typeof value.type === 'string') {
|
||||
if (value.type === 'array' && value.items?.properties) {
|
||||
paths.push({ path: currentPath, type: 'array' })
|
||||
const subPaths = generateOutputPathsWithTypes(value.items.properties, currentPath)
|
||||
paths.push(...subPaths)
|
||||
} else if ((value.type === 'object' || value.type === 'json') && value.properties) {
|
||||
paths.push({ path: currentPath, type: value.type })
|
||||
const subPaths = generateOutputPathsWithTypes(value.properties, currentPath)
|
||||
paths.push(...subPaths)
|
||||
} else {
|
||||
paths.push({ path: currentPath, type: value.type })
|
||||
}
|
||||
} else {
|
||||
const subPaths = generateOutputPathsWithTypes(value, currentPath)
|
||||
paths.push(...subPaths)
|
||||
}
|
||||
} else {
|
||||
paths.push({ path: currentPath, type: 'any' })
|
||||
}
|
||||
}
|
||||
|
||||
return paths
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates output paths for a tool-based block.
|
||||
*
|
||||
* @param blockConfig - The block configuration containing tools config
|
||||
* @param operation - The selected operation for the tool
|
||||
* @returns Array of output paths for the tool, or empty array on error
|
||||
*/
|
||||
const generateToolOutputPaths = (blockConfig: BlockConfig, operation: string): string[] => {
|
||||
if (!blockConfig?.tools?.config?.tool) return []
|
||||
|
||||
try {
|
||||
const toolId = blockConfig.tools.config.tool({ operation })
|
||||
if (!toolId) return []
|
||||
|
||||
const toolConfig = getTool(toolId)
|
||||
if (!toolConfig?.outputs) return []
|
||||
|
||||
return generateOutputPaths(toolConfig.outputs)
|
||||
} catch (error) {
|
||||
logger.warn('Failed to get tool outputs for operation', { operation, error })
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the output type for a specific path in a tool's outputs.
|
||||
*
|
||||
* @param blockConfig - The block configuration containing tools config
|
||||
* @param operation - The selected operation for the tool
|
||||
* @param path - The dot-separated path to the output field
|
||||
* @returns The type of the output field, or 'any' if not found
|
||||
*/
|
||||
const getToolOutputType = (blockConfig: BlockConfig, operation: string, path: string): string => {
|
||||
if (!blockConfig?.tools?.config?.tool) return 'any'
|
||||
|
||||
try {
|
||||
const toolId = blockConfig.tools.config.tool({ operation })
|
||||
if (!toolId) return 'any'
|
||||
|
||||
const toolConfig = getTool(toolId)
|
||||
if (!toolConfig?.outputs) return 'any'
|
||||
|
||||
const pathsWithTypes = generateOutputPathsWithTypes(toolConfig.outputs)
|
||||
const matchingPath = pathsWithTypes.find((p) => p.path === path)
|
||||
return matchingPath?.type || 'any'
|
||||
} catch (error) {
|
||||
logger.warn('Failed to get tool output type for path', { path, error })
|
||||
return 'any'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the viewport position of the caret in a textarea/input.
|
||||
*
|
||||
@@ -457,16 +601,14 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
[inputValue, cursorPosition]
|
||||
)
|
||||
|
||||
const emptyVariableInfoMap: Record<string, { type: string; id: string }> = {}
|
||||
|
||||
/**
|
||||
* Computes tags, variable info, and block tag groups
|
||||
*/
|
||||
const { tags, variableInfoMap, blockTagGroups } = useMemo<TagComputationResult>(() => {
|
||||
const { tags, variableInfoMap, blockTagGroups } = useMemo(() => {
|
||||
if (activeSourceBlockId) {
|
||||
const sourceBlock = blocks[activeSourceBlockId]
|
||||
if (!sourceBlock) {
|
||||
return { tags: [], variableInfoMap: emptyVariableInfoMap, blockTagGroups: [] }
|
||||
return { tags: [], variableInfoMap: {}, blockTagGroups: [] }
|
||||
}
|
||||
|
||||
const blockConfig = getBlock(sourceBlock.type)
|
||||
@@ -477,7 +619,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
const blockName = sourceBlock.name || sourceBlock.type
|
||||
const normalizedBlockName = normalizeName(blockName)
|
||||
|
||||
const outputPaths = getOutputPathsFromSchema(mockConfig.outputs)
|
||||
const outputPaths = generateOutputPaths(mockConfig.outputs)
|
||||
const blockTags = outputPaths.map((path) => `${normalizedBlockName}.${path}`)
|
||||
|
||||
const blockTagGroups: BlockTagGroup[] = [
|
||||
@@ -490,9 +632,9 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
},
|
||||
]
|
||||
|
||||
return { tags: blockTags, variableInfoMap: emptyVariableInfoMap, blockTagGroups }
|
||||
return { tags: blockTags, variableInfoMap: {}, blockTagGroups }
|
||||
}
|
||||
return { tags: [], variableInfoMap: emptyVariableInfoMap, blockTagGroups: [] }
|
||||
return { tags: [], variableInfoMap: {}, blockTagGroups: [] }
|
||||
}
|
||||
|
||||
const blockName = sourceBlock.name || sourceBlock.type
|
||||
@@ -635,7 +777,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
const operationValue =
|
||||
mergedSubBlocks?.operation?.value ?? getSubBlockValue(activeSourceBlockId, 'operation')
|
||||
const toolOutputPaths = operationValue
|
||||
? getToolOutputPaths(blockConfig, operationValue)
|
||||
? generateToolOutputPaths(blockConfig, operationValue)
|
||||
: []
|
||||
|
||||
if (toolOutputPaths.length > 0) {
|
||||
@@ -668,12 +810,12 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
},
|
||||
]
|
||||
|
||||
return { tags: blockTags, variableInfoMap: emptyVariableInfoMap, blockTagGroups }
|
||||
return { tags: blockTags, variableInfoMap: {}, blockTagGroups }
|
||||
}
|
||||
|
||||
const hasInvalidBlocks = Object.values(blocks).some((block) => !block || !block.type)
|
||||
if (hasInvalidBlocks) {
|
||||
return { tags: [], variableInfoMap: emptyVariableInfoMap, blockTagGroups: [] }
|
||||
return { tags: [], variableInfoMap: {}, blockTagGroups: [] }
|
||||
}
|
||||
|
||||
const starterBlock = Object.values(blocks).find((block) => block.type === 'starter')
|
||||
@@ -839,7 +981,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
const blockName = accessibleBlock.name || accessibleBlock.type
|
||||
const normalizedBlockName = normalizeName(blockName)
|
||||
|
||||
const outputPaths = getOutputPathsFromSchema(mockConfig.outputs)
|
||||
const outputPaths = generateOutputPaths(mockConfig.outputs)
|
||||
let blockTags = outputPaths.map((path) => `${normalizedBlockName}.${path}`)
|
||||
blockTags = ensureRootTag(blockTags, normalizedBlockName)
|
||||
|
||||
@@ -967,7 +1109,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
const operationValue =
|
||||
mergedSubBlocks?.operation?.value ?? getSubBlockValue(accessibleBlockId, 'operation')
|
||||
const toolOutputPaths = operationValue
|
||||
? getToolOutputPaths(blockConfig, operationValue)
|
||||
? generateToolOutputPaths(blockConfig, operationValue)
|
||||
: []
|
||||
|
||||
if (toolOutputPaths.length > 0) {
|
||||
@@ -1041,7 +1183,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
|
||||
|
||||
const filteredTags = useMemo(() => {
|
||||
if (!searchTerm) return tags
|
||||
return tags.filter((tag: string) => tag.toLowerCase().includes(searchTerm))
|
||||
return tags.filter((tag) => tag.toLowerCase().includes(searchTerm))
|
||||
}, [tags, searchTerm])
|
||||
|
||||
const { variableTags, filteredBlockTagGroups } = useMemo(() => {
|
||||
|
||||
@@ -1036,7 +1036,6 @@ export function ToolInput({
|
||||
block.type === 'api' ||
|
||||
block.type === 'webhook_request' ||
|
||||
block.type === 'workflow' ||
|
||||
block.type === 'workflow_input' ||
|
||||
block.type === 'knowledge' ||
|
||||
block.type === 'function') &&
|
||||
block.type !== 'evaluator' &&
|
||||
@@ -1762,7 +1761,7 @@ export function ToolInput({
|
||||
iconElement: createToolIcon('#6366F1', WorkflowIcon),
|
||||
onSelect: () => {
|
||||
const newTool: StoredTool = {
|
||||
type: 'workflow_input',
|
||||
type: 'workflow',
|
||||
title: 'Workflow',
|
||||
toolId: 'workflow_executor',
|
||||
params: {
|
||||
@@ -2196,10 +2195,9 @@ export function ToolInput({
|
||||
{/* Selected Tools List */}
|
||||
{selectedTools.length > 0 &&
|
||||
selectedTools.map((tool, toolIndex) => {
|
||||
// Handle custom tools, MCP tools, and workflow tools differently
|
||||
// Handle custom tools and MCP tools differently
|
||||
const isCustomTool = tool.type === 'custom-tool'
|
||||
const isMcpTool = tool.type === 'mcp'
|
||||
const isWorkflowTool = tool.type === 'workflow'
|
||||
const toolBlock =
|
||||
!isCustomTool && !isMcpTool
|
||||
? toolBlocks.find((block) => block.type === tool.type)
|
||||
@@ -2325,17 +2323,13 @@ export function ToolInput({
|
||||
? '#3B82F6'
|
||||
: isMcpTool
|
||||
? mcpTool?.bgColor || '#6366F1'
|
||||
: isWorkflowTool
|
||||
? '#6366F1'
|
||||
: toolBlock?.bgColor,
|
||||
: toolBlock?.bgColor,
|
||||
}}
|
||||
>
|
||||
{isCustomTool ? (
|
||||
<WrenchIcon className='h-[10px] w-[10px] text-white' />
|
||||
) : isMcpTool ? (
|
||||
<IconComponent icon={McpIcon} className='h-[10px] w-[10px] text-white' />
|
||||
) : isWorkflowTool ? (
|
||||
<IconComponent icon={WorkflowIcon} className='h-[10px] w-[10px] text-white' />
|
||||
) : (
|
||||
<IconComponent
|
||||
icon={toolBlock?.icon}
|
||||
@@ -2375,10 +2369,9 @@ export function ToolInput({
|
||||
</Tooltip.Root>
|
||||
)
|
||||
})()}
|
||||
{(tool.type === 'workflow' || tool.type === 'workflow_input') &&
|
||||
tool.params?.workflowId && (
|
||||
<WorkflowToolDeployBadge workflowId={tool.params.workflowId} />
|
||||
)}
|
||||
{tool.type === 'workflow' && tool.params?.workflowId && (
|
||||
<WorkflowToolDeployBadge workflowId={tool.params.workflowId} />
|
||||
)}
|
||||
</div>
|
||||
<div className='flex flex-shrink-0 items-center gap-[8px]'>
|
||||
{supportsToolControl && !(isMcpTool && isMcpToolUnavailable(tool)) && (
|
||||
|
||||
@@ -172,7 +172,7 @@ async function executeWebhookJobInternal(
|
||||
const workflowVariables = (wfRows[0]?.variables as Record<string, any>) || {}
|
||||
|
||||
// Merge subblock states (matching workflow-execution pattern)
|
||||
const mergedStates = mergeSubblockState(blocks)
|
||||
const mergedStates = mergeSubblockState(blocks, {})
|
||||
|
||||
// Create serialized workflow
|
||||
const serializer = new Serializer()
|
||||
|
||||
@@ -10,17 +10,12 @@ import { createLogger } from '@sim/logger'
|
||||
import { task } from '@trigger.dev/sdk'
|
||||
import { and, eq, isNull, lte, or, sql } from 'drizzle-orm'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import {
|
||||
type EmailRateLimitsData,
|
||||
type EmailUsageData,
|
||||
renderWorkflowNotificationEmail,
|
||||
} from '@/components/emails'
|
||||
import { checkUsageStatus } from '@/lib/billing/calculations/usage-monitor'
|
||||
import { getHighestPrioritySubscription } from '@/lib/billing/core/subscription'
|
||||
import { RateLimiter } from '@/lib/core/rate-limiter'
|
||||
import { decryptSecret } from '@/lib/core/security/encryption'
|
||||
import { getBaseUrl } from '@/lib/core/utils/urls'
|
||||
import type { WorkflowExecutionLog } from '@/lib/logs/types'
|
||||
import type { TraceSpan, WorkflowExecutionLog } from '@/lib/logs/types'
|
||||
import { sendEmail } from '@/lib/messaging/email/mailer'
|
||||
import type { AlertConfig } from '@/lib/notifications/alert-rules'
|
||||
|
||||
@@ -50,8 +45,9 @@ interface NotificationPayload {
|
||||
totalDurationMs: number
|
||||
cost?: Record<string, unknown>
|
||||
finalOutput?: unknown
|
||||
rateLimits?: EmailRateLimitsData
|
||||
usage?: EmailUsageData
|
||||
traceSpans?: unknown[]
|
||||
rateLimits?: Record<string, unknown>
|
||||
usage?: Record<string, unknown>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,6 +94,10 @@ async function buildPayload(
|
||||
payload.data.finalOutput = executionData.finalOutput
|
||||
}
|
||||
|
||||
if (subscription.includeTraceSpans && executionData.traceSpans) {
|
||||
payload.data.traceSpans = executionData.traceSpans as unknown[]
|
||||
}
|
||||
|
||||
if (subscription.includeRateLimits && userId) {
|
||||
try {
|
||||
const userSubscription = await getHighestPrioritySubscription(userId)
|
||||
@@ -251,6 +251,18 @@ function formatAlertReason(alertConfig: AlertConfig): string {
|
||||
}
|
||||
}
|
||||
|
||||
function formatJsonForEmail(data: unknown, label: string): string {
|
||||
if (!data) return ''
|
||||
const json = JSON.stringify(data, null, 2)
|
||||
const escapedJson = json.replace(/</g, '<').replace(/>/g, '>')
|
||||
return `
|
||||
<div style="margin-top: 20px;">
|
||||
<h3 style="color: #1a1a1a; font-size: 14px; margin-bottom: 8px;">${label}</h3>
|
||||
<pre style="background: #f5f5f5; padding: 12px; border-radius: 6px; overflow-x: auto; font-size: 12px; color: #333; white-space: pre-wrap; word-wrap: break-word;">${escapedJson}</pre>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
|
||||
async function deliverEmail(
|
||||
subscription: typeof workspaceNotificationSubscription.$inferSelect,
|
||||
payload: NotificationPayload,
|
||||
@@ -263,7 +275,8 @@ async function deliverEmail(
|
||||
const isError = payload.data.status !== 'success'
|
||||
const statusText = isError ? 'Error' : 'Success'
|
||||
const logUrl = buildLogUrl(subscription.workspaceId, payload.data.executionId)
|
||||
const alertReason = alertConfig ? formatAlertReason(alertConfig) : undefined
|
||||
const baseUrl = getBaseUrl()
|
||||
const alertReason = alertConfig ? formatAlertReason(alertConfig) : null
|
||||
|
||||
// Build subject line
|
||||
const subject = alertReason
|
||||
@@ -272,36 +285,113 @@ async function deliverEmail(
|
||||
? `Error Alert: ${payload.data.workflowName}`
|
||||
: `Workflow Completed: ${payload.data.workflowName}`
|
||||
|
||||
// Build plain text for fallback
|
||||
let includedDataHtml = ''
|
||||
let includedDataText = ''
|
||||
|
||||
if (payload.data.finalOutput) {
|
||||
includedDataHtml += formatJsonForEmail(payload.data.finalOutput, 'Final Output')
|
||||
includedDataText += `\n\nFinal Output:\n${JSON.stringify(payload.data.finalOutput, null, 2)}`
|
||||
}
|
||||
if (payload.data.rateLimits) {
|
||||
includedDataText += `\n\nRate Limits:\n${JSON.stringify(payload.data.rateLimits, null, 2)}`
|
||||
}
|
||||
if (payload.data.usage) {
|
||||
includedDataText += `\n\nUsage Data:\n${JSON.stringify(payload.data.usage, null, 2)}`
|
||||
|
||||
if (
|
||||
payload.data.traceSpans &&
|
||||
Array.isArray(payload.data.traceSpans) &&
|
||||
payload.data.traceSpans.length > 0
|
||||
) {
|
||||
includedDataHtml += formatJsonForEmail(payload.data.traceSpans, 'Trace Spans')
|
||||
includedDataText += `\n\nTrace Spans:\n${JSON.stringify(payload.data.traceSpans, null, 2)}`
|
||||
}
|
||||
|
||||
// Render the email using the shared template
|
||||
const html = await renderWorkflowNotificationEmail({
|
||||
workflowName: payload.data.workflowName || 'Unknown Workflow',
|
||||
status: payload.data.status,
|
||||
trigger: payload.data.trigger,
|
||||
duration: formatDuration(payload.data.totalDurationMs),
|
||||
cost: formatCost(payload.data.cost),
|
||||
logUrl,
|
||||
alertReason,
|
||||
finalOutput: payload.data.finalOutput,
|
||||
rateLimits: payload.data.rateLimits,
|
||||
usageData: payload.data.usage,
|
||||
})
|
||||
if (payload.data.rateLimits) {
|
||||
includedDataHtml += formatJsonForEmail(payload.data.rateLimits, 'Rate Limits')
|
||||
includedDataText += `\n\nRate Limits:\n${JSON.stringify(payload.data.rateLimits, null, 2)}`
|
||||
}
|
||||
|
||||
if (payload.data.usage) {
|
||||
includedDataHtml += formatJsonForEmail(payload.data.usage, 'Usage Data')
|
||||
includedDataText += `\n\nUsage Data:\n${JSON.stringify(payload.data.usage, null, 2)}`
|
||||
}
|
||||
|
||||
const result = await sendEmail({
|
||||
to: subscription.emailRecipients,
|
||||
subject,
|
||||
html,
|
||||
html: `
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body style="background-color: #f5f5f7; font-family: HelveticaNeue, Helvetica, Arial, sans-serif; margin: 0; padding: 0;">
|
||||
<div style="max-width: 580px; margin: 30px auto; background-color: #ffffff; border-radius: 5px; overflow: hidden;">
|
||||
<!-- Header with Logo -->
|
||||
<div style="padding: 30px 0; text-align: center;">
|
||||
<img src="${baseUrl}/logo/reverse/text/medium.png" width="114" alt="Sim Studio" style="margin: 0 auto;" />
|
||||
</div>
|
||||
|
||||
<!-- Section Border -->
|
||||
<div style="display: flex; width: 100%;">
|
||||
<div style="border-bottom: 1px solid #eeeeee; width: 249px;"></div>
|
||||
<div style="border-bottom: 1px solid #6F3DFA; width: 102px;"></div>
|
||||
<div style="border-bottom: 1px solid #eeeeee; width: 249px;"></div>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div style="padding: 5px 30px 20px 30px;">
|
||||
<h2 style="font-size: 20px; color: #333333; margin: 20px 0;">
|
||||
${alertReason ? 'Alert Triggered' : isError ? 'Workflow Execution Failed' : 'Workflow Execution Completed'}
|
||||
</h2>
|
||||
${alertReason ? `<p style="color: #d97706; background: #fef3c7; padding: 12px; border-radius: 6px; margin-bottom: 20px; font-size: 14px;"><strong>Reason:</strong> ${alertReason}</p>` : ''}
|
||||
|
||||
<table style="width: 100%; border-collapse: collapse; margin-bottom: 20px;">
|
||||
<tr style="border-bottom: 1px solid #eee;">
|
||||
<td style="padding: 12px 0; color: #666; width: 140px;">Workflow</td>
|
||||
<td style="padding: 12px 0; color: #333; font-weight: 500;">${payload.data.workflowName}</td>
|
||||
</tr>
|
||||
<tr style="border-bottom: 1px solid #eee;">
|
||||
<td style="padding: 12px 0; color: #666;">Status</td>
|
||||
<td style="padding: 12px 0; color: ${isError ? '#ef4444' : '#22c55e'}; font-weight: 500;">${statusText}</td>
|
||||
</tr>
|
||||
<tr style="border-bottom: 1px solid #eee;">
|
||||
<td style="padding: 12px 0; color: #666;">Trigger</td>
|
||||
<td style="padding: 12px 0; color: #333;">${payload.data.trigger}</td>
|
||||
</tr>
|
||||
<tr style="border-bottom: 1px solid #eee;">
|
||||
<td style="padding: 12px 0; color: #666;">Duration</td>
|
||||
<td style="padding: 12px 0; color: #333;">${formatDuration(payload.data.totalDurationMs)}</td>
|
||||
</tr>
|
||||
<tr style="border-bottom: 1px solid #eee;">
|
||||
<td style="padding: 12px 0; color: #666;">Cost</td>
|
||||
<td style="padding: 12px 0; color: #333;">${formatCost(payload.data.cost)}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a href="${logUrl}" style="display: inline-block; background-color: #6F3DFA; color: #ffffff; font-weight: bold; font-size: 16px; padding: 12px 30px; border-radius: 5px; text-decoration: none; text-align: center; margin: 20px 0;">
|
||||
View Execution Log →
|
||||
</a>
|
||||
|
||||
${includedDataHtml}
|
||||
|
||||
<p style="font-size: 16px; line-height: 1.5; color: #333333; margin-top: 30px;">
|
||||
Best regards,<br />
|
||||
The Sim Team
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
<div style="max-width: 580px; margin: 0 auto; padding: 20px 0; text-align: center;">
|
||||
<p style="font-size: 12px; color: #706a7b; margin: 8px 0 0 0;">
|
||||
© ${new Date().getFullYear()} Sim Studio, All Rights Reserved
|
||||
</p>
|
||||
<p style="font-size: 12px; color: #706a7b; margin: 8px 0 0 0;">
|
||||
<a href="${baseUrl}/privacy" style="color: #706a7b; text-decoration: underline;">Privacy Policy</a> •
|
||||
<a href="${baseUrl}/terms" style="color: #706a7b; text-decoration: underline;">Terms of Service</a>
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
`,
|
||||
text: `${subject}\n${alertReason ? `\nReason: ${alertReason}\n` : ''}\nWorkflow: ${payload.data.workflowName}\nStatus: ${statusText}\nTrigger: ${payload.data.trigger}\nDuration: ${formatDuration(payload.data.totalDurationMs)}\nCost: ${formatCost(payload.data.cost)}\n\nView Log: ${logUrl}${includedDataText}`,
|
||||
emailType: 'notifications',
|
||||
})
|
||||
@@ -389,6 +479,26 @@ async function deliverSlack(
|
||||
})
|
||||
}
|
||||
|
||||
if (
|
||||
payload.data.traceSpans &&
|
||||
Array.isArray(payload.data.traceSpans) &&
|
||||
payload.data.traceSpans.length > 0
|
||||
) {
|
||||
const spansSummary = (payload.data.traceSpans as TraceSpan[])
|
||||
.map((span) => {
|
||||
const status = span.status === 'success' ? '✓' : '✗'
|
||||
return `${status} ${span.name || 'Unknown'} (${formatDuration(span.duration || 0)})`
|
||||
})
|
||||
.join('\n')
|
||||
blocks.push({
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: `*Trace Spans:*\n\`\`\`${spansSummary}\`\`\``,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (payload.data.rateLimits) {
|
||||
const limitsStr = JSON.stringify(payload.data.rateLimits, null, 2)
|
||||
blocks.push({
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
import { LangsmithIcon } from '@/components/icons'
|
||||
import { AuthMode, type BlockConfig } from '@/blocks/types'
|
||||
import type { LangsmithResponse } from '@/tools/langsmith/types'
|
||||
|
||||
export const LangsmithBlock: BlockConfig<LangsmithResponse> = {
|
||||
type: 'langsmith',
|
||||
name: 'LangSmith',
|
||||
description: 'Forward workflow runs to LangSmith for observability',
|
||||
longDescription:
|
||||
'Send run data to LangSmith to trace executions, attach metadata, and monitor workflow performance.',
|
||||
docsLink: 'https://docs.sim.ai/tools/langsmith',
|
||||
category: 'tools',
|
||||
bgColor: '#181C1E',
|
||||
icon: LangsmithIcon,
|
||||
authMode: AuthMode.ApiKey,
|
||||
subBlocks: [
|
||||
{
|
||||
id: 'operation',
|
||||
title: 'Operation',
|
||||
type: 'dropdown',
|
||||
options: [
|
||||
{ label: 'Create Run', id: 'langsmith_create_run' },
|
||||
{ label: 'Create Runs Batch', id: 'langsmith_create_runs_batch' },
|
||||
],
|
||||
value: () => 'langsmith_create_run',
|
||||
},
|
||||
{
|
||||
id: 'apiKey',
|
||||
title: 'API Key',
|
||||
type: 'short-input',
|
||||
placeholder: 'Enter your LangSmith API key',
|
||||
password: true,
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
id: 'id',
|
||||
title: 'Run ID',
|
||||
type: 'short-input',
|
||||
placeholder: 'Auto-generated if blank',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
},
|
||||
{
|
||||
id: 'name',
|
||||
title: 'Name',
|
||||
type: 'short-input',
|
||||
placeholder: 'Run name',
|
||||
required: { field: 'operation', value: 'langsmith_create_run' },
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
},
|
||||
{
|
||||
id: 'run_type',
|
||||
title: 'Run Type',
|
||||
type: 'dropdown',
|
||||
options: [
|
||||
{ label: 'Chain', id: 'chain' },
|
||||
{ label: 'Tool', id: 'tool' },
|
||||
{ label: 'LLM', id: 'llm' },
|
||||
{ label: 'Retriever', id: 'retriever' },
|
||||
{ label: 'Embedding', id: 'embedding' },
|
||||
{ label: 'Prompt', id: 'prompt' },
|
||||
{ label: 'Parser', id: 'parser' },
|
||||
],
|
||||
value: () => 'chain',
|
||||
required: { field: 'operation', value: 'langsmith_create_run' },
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
},
|
||||
{
|
||||
id: 'start_time',
|
||||
title: 'Start Time',
|
||||
type: 'short-input',
|
||||
placeholder: 'e.g. 2025-01-01T12:00:00Z (defaults to now)',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
},
|
||||
{
|
||||
id: 'end_time',
|
||||
title: 'End Time',
|
||||
type: 'short-input',
|
||||
placeholder: '2025-01-01T12:00:30Z',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'inputs',
|
||||
title: 'Inputs',
|
||||
type: 'code',
|
||||
placeholder: '{"input":"value"}',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'outputs',
|
||||
title: 'Outputs',
|
||||
type: 'code',
|
||||
placeholder: '{"output":"value"}',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'extra',
|
||||
title: 'Metadata',
|
||||
type: 'code',
|
||||
placeholder: '{"ls_model":"gpt-4"}',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'tags',
|
||||
title: 'Tags',
|
||||
type: 'code',
|
||||
placeholder: '["production","workflow"]',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'parent_run_id',
|
||||
title: 'Parent Run ID',
|
||||
type: 'short-input',
|
||||
placeholder: 'Parent run identifier',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'trace_id',
|
||||
title: 'Trace ID',
|
||||
type: 'short-input',
|
||||
placeholder: 'Auto-generated if blank',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'session_id',
|
||||
title: 'Session ID',
|
||||
type: 'short-input',
|
||||
placeholder: 'Session identifier',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'session_name',
|
||||
title: 'Session Name',
|
||||
type: 'short-input',
|
||||
placeholder: 'Session name',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'status',
|
||||
title: 'Status',
|
||||
type: 'short-input',
|
||||
placeholder: 'success',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'error',
|
||||
title: 'Error',
|
||||
type: 'long-input',
|
||||
placeholder: 'Error message',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'dotted_order',
|
||||
title: 'Dotted Order',
|
||||
type: 'short-input',
|
||||
placeholder: 'Defaults to <YYYYMMDDTHHMMSSffffff>Z<id>',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'events',
|
||||
title: 'Events',
|
||||
type: 'code',
|
||||
placeholder: '[{"event":"token","value":1}]',
|
||||
condition: { field: 'operation', value: 'langsmith_create_run' },
|
||||
mode: 'advanced',
|
||||
},
|
||||
{
|
||||
id: 'post',
|
||||
title: 'Post Runs',
|
||||
type: 'code',
|
||||
placeholder: '[{"id":"...","name":"...","run_type":"chain","start_time":"..."}]',
|
||||
condition: { field: 'operation', value: 'langsmith_create_runs_batch' },
|
||||
wandConfig: {
|
||||
enabled: true,
|
||||
generationType: 'json-object',
|
||||
prompt: `Output ONLY a JSON array with a single LangSmith run object. No explanation.
|
||||
Required: name (string), run_type ("tool"|"chain"|"llm"|"retriever"|"embedding"|"prompt"|"parser")
|
||||
Optional: inputs, outputs, tags, extra, session_name, end_time
|
||||
Fields id, trace_id, dotted_order, start_time are auto-generated if omitted.`,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'patch',
|
||||
title: 'Patch Runs',
|
||||
type: 'code',
|
||||
placeholder: '[{"id":"...","name":"...","run_type":"chain","start_time":"..."}]',
|
||||
condition: { field: 'operation', value: 'langsmith_create_runs_batch' },
|
||||
mode: 'advanced',
|
||||
wandConfig: {
|
||||
enabled: true,
|
||||
generationType: 'json-object',
|
||||
prompt: `Output ONLY a JSON array with a single LangSmith run object to update. No explanation.
|
||||
Required: id (existing run UUID), name, run_type ("tool"|"chain"|"llm"|"retriever"|"embedding"|"prompt"|"parser")
|
||||
Common patch fields: outputs, end_time, status, error`,
|
||||
},
|
||||
},
|
||||
],
|
||||
tools: {
|
||||
access: ['langsmith_create_run', 'langsmith_create_runs_batch'],
|
||||
config: {
|
||||
tool: (params) => params.operation,
|
||||
params: (params) => {
|
||||
const parseJsonValue = (value: unknown, label: string) => {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
return undefined
|
||||
}
|
||||
if (typeof value === 'string') {
|
||||
try {
|
||||
return JSON.parse(value)
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
`Invalid JSON for ${label}: ${error instanceof Error ? error.message : String(error)}`
|
||||
)
|
||||
}
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
if (params.operation === 'langsmith_create_runs_batch') {
|
||||
const post = parseJsonValue(params.post, 'post runs')
|
||||
const patch = parseJsonValue(params.patch, 'patch runs')
|
||||
|
||||
if (!post && !patch) {
|
||||
throw new Error('Provide at least one of post or patch runs')
|
||||
}
|
||||
|
||||
return {
|
||||
apiKey: params.apiKey,
|
||||
post,
|
||||
patch,
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
apiKey: params.apiKey,
|
||||
id: params.id,
|
||||
name: params.name,
|
||||
run_type: params.run_type,
|
||||
start_time: params.start_time,
|
||||
end_time: params.end_time,
|
||||
inputs: parseJsonValue(params.inputs, 'inputs'),
|
||||
run_outputs: parseJsonValue(params.outputs, 'outputs'),
|
||||
extra: parseJsonValue(params.extra, 'metadata'),
|
||||
tags: parseJsonValue(params.tags, 'tags'),
|
||||
parent_run_id: params.parent_run_id,
|
||||
trace_id: params.trace_id,
|
||||
session_id: params.session_id,
|
||||
session_name: params.session_name,
|
||||
status: params.status,
|
||||
error: params.error,
|
||||
dotted_order: params.dotted_order,
|
||||
events: parseJsonValue(params.events, 'events'),
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
inputs: {
|
||||
operation: { type: 'string', description: 'Operation to perform' },
|
||||
apiKey: { type: 'string', description: 'LangSmith API key' },
|
||||
id: { type: 'string', description: 'Run identifier' },
|
||||
name: { type: 'string', description: 'Run name' },
|
||||
run_type: { type: 'string', description: 'Run type' },
|
||||
start_time: { type: 'string', description: 'Run start time (ISO)' },
|
||||
end_time: { type: 'string', description: 'Run end time (ISO)' },
|
||||
inputs: { type: 'json', description: 'Run inputs payload' },
|
||||
outputs: { type: 'json', description: 'Run outputs payload' },
|
||||
extra: { type: 'json', description: 'Additional metadata (extra)' },
|
||||
tags: { type: 'json', description: 'Tags array' },
|
||||
parent_run_id: { type: 'string', description: 'Parent run ID' },
|
||||
trace_id: { type: 'string', description: 'Trace ID' },
|
||||
session_id: { type: 'string', description: 'Session ID' },
|
||||
session_name: { type: 'string', description: 'Session name' },
|
||||
status: { type: 'string', description: 'Run status' },
|
||||
error: { type: 'string', description: 'Error message' },
|
||||
dotted_order: { type: 'string', description: 'Dotted order string' },
|
||||
events: { type: 'json', description: 'Events array' },
|
||||
post: { type: 'json', description: 'Runs to ingest in batch' },
|
||||
patch: { type: 'json', description: 'Runs to update in batch' },
|
||||
},
|
||||
outputs: {
|
||||
accepted: { type: 'boolean', description: 'Whether ingestion was accepted' },
|
||||
runId: { type: 'string', description: 'Run ID for single run' },
|
||||
runIds: { type: 'array', description: 'Run IDs for batch ingest' },
|
||||
message: { type: 'string', description: 'LangSmith response message' },
|
||||
messages: { type: 'array', description: 'Per-run response messages' },
|
||||
},
|
||||
}
|
||||
@@ -61,7 +61,6 @@ import { JiraBlock } from '@/blocks/blocks/jira'
|
||||
import { JiraServiceManagementBlock } from '@/blocks/blocks/jira_service_management'
|
||||
import { KalshiBlock } from '@/blocks/blocks/kalshi'
|
||||
import { KnowledgeBlock } from '@/blocks/blocks/knowledge'
|
||||
import { LangsmithBlock } from '@/blocks/blocks/langsmith'
|
||||
import { LemlistBlock } from '@/blocks/blocks/lemlist'
|
||||
import { LinearBlock } from '@/blocks/blocks/linear'
|
||||
import { LinkedInBlock } from '@/blocks/blocks/linkedin'
|
||||
@@ -218,7 +217,6 @@ export const registry: Record<string, BlockConfig> = {
|
||||
jira_service_management: JiraServiceManagementBlock,
|
||||
kalshi: KalshiBlock,
|
||||
knowledge: KnowledgeBlock,
|
||||
langsmith: LangsmithBlock,
|
||||
lemlist: LemlistBlock,
|
||||
linear: LinearBlock,
|
||||
linkedin: LinkedInBlock,
|
||||
|
||||
@@ -173,17 +173,6 @@ export const baseStyles = {
|
||||
margin: 0,
|
||||
},
|
||||
|
||||
/** Code block text (for JSON/code display) */
|
||||
codeBlock: {
|
||||
fontSize: typography.fontSize.caption,
|
||||
lineHeight: typography.lineHeight.caption,
|
||||
color: colors.textSecondary,
|
||||
fontFamily: 'monospace',
|
||||
whiteSpace: 'pre-wrap' as const,
|
||||
wordWrap: 'break-word' as const,
|
||||
margin: 0,
|
||||
},
|
||||
|
||||
/** Highlighted info box (e.g., "What you get with Pro") */
|
||||
infoBox: {
|
||||
backgroundColor: colors.bgOuter,
|
||||
|
||||
@@ -61,7 +61,7 @@ export function EmailFooter({ baseUrl = getBaseUrl(), unsubscribe, messageId }:
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align='left' style={{ padding: '0 8px 0 0' }}>
|
||||
<Link href={`${baseUrl}/x`} rel='noopener noreferrer'>
|
||||
<Link href='https://x.com/simdotai' rel='noopener noreferrer'>
|
||||
<Img
|
||||
src={`${baseUrl}/static/x-icon.png`}
|
||||
width='20'
|
||||
@@ -71,7 +71,7 @@ export function EmailFooter({ baseUrl = getBaseUrl(), unsubscribe, messageId }:
|
||||
</Link>
|
||||
</td>
|
||||
<td align='left' style={{ padding: '0 8px' }}>
|
||||
<Link href={`${baseUrl}/discord`} rel='noopener noreferrer'>
|
||||
<Link href='https://discord.gg/Hr4UWYEcTT' rel='noopener noreferrer'>
|
||||
<Img
|
||||
src={`${baseUrl}/static/discord-icon.png`}
|
||||
width='20'
|
||||
@@ -81,7 +81,7 @@ export function EmailFooter({ baseUrl = getBaseUrl(), unsubscribe, messageId }:
|
||||
</Link>
|
||||
</td>
|
||||
<td align='left' style={{ padding: '0 8px' }}>
|
||||
<Link href={`${baseUrl}/github`} rel='noopener noreferrer'>
|
||||
<Link href='https://github.com/simstudioai/sim' rel='noopener noreferrer'>
|
||||
<Img
|
||||
src={`${baseUrl}/static/github-icon.png`}
|
||||
width='20'
|
||||
|
||||
@@ -10,8 +10,6 @@ export * from './careers'
|
||||
export * from './components'
|
||||
// Invitation emails
|
||||
export * from './invitations'
|
||||
// Notification emails
|
||||
export * from './notifications'
|
||||
// Render functions and subjects
|
||||
export * from './render'
|
||||
export * from './subjects'
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
export type {
|
||||
EmailRateLimitStatus,
|
||||
EmailRateLimitsData,
|
||||
EmailUsageData,
|
||||
WorkflowNotificationEmailProps,
|
||||
} from './workflow-notification-email'
|
||||
export { WorkflowNotificationEmail } from './workflow-notification-email'
|
||||
@@ -1,161 +0,0 @@
|
||||
import { Link, Section, Text } from '@react-email/components'
|
||||
import { baseStyles } from '@/components/emails/_styles'
|
||||
import { EmailLayout } from '@/components/emails/components'
|
||||
import { getBrandConfig } from '@/lib/branding/branding'
|
||||
|
||||
/**
|
||||
* Serialized rate limit status for email payloads.
|
||||
* Note: This differs from the canonical RateLimitStatus in @/lib/core/rate-limiter
|
||||
* which uses Date for resetAt. This version uses string for JSON serialization.
|
||||
*/
|
||||
export interface EmailRateLimitStatus {
|
||||
requestsPerMinute: number
|
||||
remaining: number
|
||||
maxBurst?: number
|
||||
resetAt?: string
|
||||
}
|
||||
|
||||
export interface EmailRateLimitsData {
|
||||
sync?: EmailRateLimitStatus
|
||||
async?: EmailRateLimitStatus
|
||||
}
|
||||
|
||||
export interface EmailUsageData {
|
||||
currentPeriodCost: number
|
||||
limit: number
|
||||
percentUsed: number
|
||||
isExceeded?: boolean
|
||||
}
|
||||
|
||||
export interface WorkflowNotificationEmailProps {
|
||||
workflowName: string
|
||||
status: 'success' | 'error'
|
||||
trigger: string
|
||||
duration: string
|
||||
cost: string
|
||||
logUrl: string
|
||||
alertReason?: string
|
||||
finalOutput?: unknown
|
||||
rateLimits?: EmailRateLimitsData
|
||||
usageData?: EmailUsageData
|
||||
}
|
||||
|
||||
function formatJsonForEmail(data: unknown): string {
|
||||
return JSON.stringify(data, null, 2)
|
||||
}
|
||||
|
||||
export function WorkflowNotificationEmail({
|
||||
workflowName,
|
||||
status,
|
||||
trigger,
|
||||
duration,
|
||||
cost,
|
||||
logUrl,
|
||||
alertReason,
|
||||
finalOutput,
|
||||
rateLimits,
|
||||
usageData,
|
||||
}: WorkflowNotificationEmailProps) {
|
||||
const brand = getBrandConfig()
|
||||
const isError = status === 'error'
|
||||
const statusText = isError ? 'Error' : 'Success'
|
||||
|
||||
const previewText = alertReason
|
||||
? `${brand.name}: Alert - ${workflowName}`
|
||||
: isError
|
||||
? `${brand.name}: Workflow Failed - ${workflowName}`
|
||||
: `${brand.name}: Workflow Completed - ${workflowName}`
|
||||
|
||||
const message = alertReason
|
||||
? 'An alert was triggered for your workflow.'
|
||||
: isError
|
||||
? 'Your workflow execution failed.'
|
||||
: 'Your workflow completed successfully.'
|
||||
|
||||
return (
|
||||
<EmailLayout preview={previewText}>
|
||||
<Text style={{ ...baseStyles.paragraph, marginTop: 0 }}>Hello,</Text>
|
||||
<Text style={baseStyles.paragraph}>{message}</Text>
|
||||
|
||||
<Section style={baseStyles.infoBox}>
|
||||
{alertReason && (
|
||||
<Text style={baseStyles.infoBoxList}>
|
||||
<strong>Reason:</strong> {alertReason}
|
||||
</Text>
|
||||
)}
|
||||
<Text style={{ ...baseStyles.infoBoxList, marginTop: alertReason ? '4px' : 0 }}>
|
||||
<strong>Workflow:</strong> {workflowName}
|
||||
</Text>
|
||||
<Text style={{ ...baseStyles.infoBoxList, marginTop: '4px' }}>
|
||||
<strong>Status:</strong> {statusText}
|
||||
</Text>
|
||||
<Text style={{ ...baseStyles.infoBoxList, marginTop: '4px' }}>
|
||||
<strong>Trigger:</strong> {trigger}
|
||||
</Text>
|
||||
<Text style={{ ...baseStyles.infoBoxList, marginTop: '4px' }}>
|
||||
<strong>Duration:</strong> {duration}
|
||||
</Text>
|
||||
<Text style={{ ...baseStyles.infoBoxList, marginTop: '4px' }}>
|
||||
<strong>Cost:</strong> {cost}
|
||||
</Text>
|
||||
</Section>
|
||||
|
||||
<Link href={logUrl} style={{ textDecoration: 'none' }}>
|
||||
<Text style={baseStyles.button}>View Execution Log</Text>
|
||||
</Link>
|
||||
|
||||
{rateLimits && (rateLimits.sync || rateLimits.async) ? (
|
||||
<>
|
||||
<div style={baseStyles.divider} />
|
||||
<Section style={baseStyles.infoBox}>
|
||||
<Text style={baseStyles.infoBoxTitle}>Rate Limits</Text>
|
||||
{rateLimits.sync && (
|
||||
<Text style={baseStyles.infoBoxList}>
|
||||
Sync: {rateLimits.sync.remaining} of {rateLimits.sync.requestsPerMinute} remaining
|
||||
</Text>
|
||||
)}
|
||||
{rateLimits.async && (
|
||||
<Text style={{ ...baseStyles.infoBoxList, marginTop: rateLimits.sync ? '4px' : 0 }}>
|
||||
Async: {rateLimits.async.remaining} of {rateLimits.async.requestsPerMinute}{' '}
|
||||
remaining
|
||||
</Text>
|
||||
)}
|
||||
</Section>
|
||||
</>
|
||||
) : null}
|
||||
|
||||
{usageData ? (
|
||||
<>
|
||||
<div style={baseStyles.divider} />
|
||||
<Section style={baseStyles.infoBox}>
|
||||
<Text style={baseStyles.infoBoxTitle}>Usage</Text>
|
||||
<Text style={baseStyles.infoBoxList}>
|
||||
${usageData.currentPeriodCost.toFixed(2)} of ${usageData.limit.toFixed(2)} used (
|
||||
{usageData.percentUsed.toFixed(1)}%)
|
||||
</Text>
|
||||
</Section>
|
||||
</>
|
||||
) : null}
|
||||
|
||||
{finalOutput ? (
|
||||
<>
|
||||
<div style={baseStyles.divider} />
|
||||
<Section style={baseStyles.infoBox}>
|
||||
<Text style={baseStyles.infoBoxTitle}>Final Output</Text>
|
||||
<Text style={{ ...baseStyles.codeBlock, marginTop: '8px' }}>
|
||||
{formatJsonForEmail(finalOutput)}
|
||||
</Text>
|
||||
</Section>
|
||||
</>
|
||||
) : null}
|
||||
|
||||
<div style={baseStyles.divider} />
|
||||
|
||||
<Text style={{ ...baseStyles.footerText, textAlign: 'left' }}>
|
||||
You're receiving this because you subscribed to workflow notifications.
|
||||
</Text>
|
||||
</EmailLayout>
|
||||
)
|
||||
}
|
||||
|
||||
export default WorkflowNotificationEmail
|
||||
@@ -15,10 +15,6 @@ import {
|
||||
PollingGroupInvitationEmail,
|
||||
WorkspaceInvitationEmail,
|
||||
} from '@/components/emails/invitations'
|
||||
import {
|
||||
WorkflowNotificationEmail,
|
||||
type WorkflowNotificationEmailProps,
|
||||
} from '@/components/emails/notifications'
|
||||
import { HelpConfirmationEmail } from '@/components/emails/support'
|
||||
import { getBaseUrl } from '@/lib/core/utils/urls'
|
||||
|
||||
@@ -262,9 +258,3 @@ export async function renderCareersSubmissionEmail(params: {
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
export async function renderWorkflowNotificationEmail(
|
||||
params: WorkflowNotificationEmailProps
|
||||
): Promise<string> {
|
||||
return await render(WorkflowNotificationEmail(params))
|
||||
}
|
||||
|
||||
@@ -256,7 +256,6 @@ const Combobox = forwardRef<HTMLDivElement, ComboboxProps>(
|
||||
customOnSelect()
|
||||
setOpen(false)
|
||||
setHighlightedIndex(-1)
|
||||
setSearchQuery('')
|
||||
return
|
||||
}
|
||||
|
||||
@@ -270,7 +269,6 @@ const Combobox = forwardRef<HTMLDivElement, ComboboxProps>(
|
||||
onChange?.(selectedValue)
|
||||
setOpen(false)
|
||||
setHighlightedIndex(-1)
|
||||
setSearchQuery('')
|
||||
if (editable && inputRef.current) {
|
||||
inputRef.current.blur()
|
||||
}
|
||||
@@ -314,7 +312,6 @@ const Combobox = forwardRef<HTMLDivElement, ComboboxProps>(
|
||||
if (!activeElement || (!isInContainer && !isInDropdown && !isSearchInput)) {
|
||||
setOpen(false)
|
||||
setHighlightedIndex(-1)
|
||||
setSearchQuery('')
|
||||
}
|
||||
}, 150)
|
||||
}, [])
|
||||
@@ -329,7 +326,6 @@ const Combobox = forwardRef<HTMLDivElement, ComboboxProps>(
|
||||
if (e.key === 'Escape') {
|
||||
setOpen(false)
|
||||
setHighlightedIndex(-1)
|
||||
setSearchQuery('')
|
||||
if (editable && inputRef.current) {
|
||||
inputRef.current.blur()
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,15 +1,8 @@
|
||||
import { keepPreviousData, useInfiniteQuery, useQuery } from '@tanstack/react-query'
|
||||
import { getEndDateFromTimeRange, getStartDateFromTimeRange } from '@/lib/logs/filters'
|
||||
import { parseQuery, queryToApiParams } from '@/lib/logs/query-parser'
|
||||
import type {
|
||||
DashboardStatsResponse,
|
||||
SegmentStats,
|
||||
WorkflowStats,
|
||||
} from '@/app/api/logs/stats/route'
|
||||
import type { LogsResponse, TimeRange, WorkflowLog } from '@/stores/logs/filters/types'
|
||||
|
||||
export type { DashboardStatsResponse, SegmentStats, WorkflowStats }
|
||||
|
||||
export const logKeys = {
|
||||
all: ['logs'] as const,
|
||||
lists: () => [...logKeys.all, 'list'] as const,
|
||||
@@ -17,8 +10,8 @@ export const logKeys = {
|
||||
[...logKeys.lists(), workspaceId ?? '', filters] as const,
|
||||
details: () => [...logKeys.all, 'detail'] as const,
|
||||
detail: (logId: string | undefined) => [...logKeys.details(), logId ?? ''] as const,
|
||||
stats: (workspaceId: string | undefined, filters: object) =>
|
||||
[...logKeys.all, 'stats', workspaceId ?? '', filters] as const,
|
||||
dashboard: (workspaceId: string | undefined, filters: Record<string, unknown>) =>
|
||||
[...logKeys.all, 'dashboard', workspaceId ?? '', filters] as const,
|
||||
executionSnapshots: () => [...logKeys.all, 'executionSnapshot'] as const,
|
||||
executionSnapshot: (executionId: string | undefined) =>
|
||||
[...logKeys.executionSnapshots(), executionId ?? ''] as const,
|
||||
@@ -154,96 +147,52 @@ export function useLogDetail(logId: string | undefined) {
|
||||
})
|
||||
}
|
||||
|
||||
interface DashboardFilters {
|
||||
timeRange: TimeRange
|
||||
startDate?: string
|
||||
endDate?: string
|
||||
level: string
|
||||
workflowIds: string[]
|
||||
folderIds: string[]
|
||||
triggers: string[]
|
||||
searchQuery: string
|
||||
segmentCount?: number
|
||||
}
|
||||
const DASHBOARD_LOGS_LIMIT = 10000
|
||||
|
||||
/**
|
||||
* Fetches aggregated dashboard statistics from the server.
|
||||
* Uses SQL aggregation for efficient computation without row limits.
|
||||
* Fetches all logs for dashboard metrics (non-paginated).
|
||||
* Uses same filters as the logs list but with a high limit to get all data.
|
||||
*/
|
||||
async function fetchDashboardStats(
|
||||
async function fetchAllLogs(
|
||||
workspaceId: string,
|
||||
filters: DashboardFilters
|
||||
): Promise<DashboardStatsResponse> {
|
||||
filters: Omit<LogFilters, 'limit'>
|
||||
): Promise<WorkflowLog[]> {
|
||||
const params = new URLSearchParams()
|
||||
|
||||
params.set('workspaceId', workspaceId)
|
||||
params.set('limit', DASHBOARD_LOGS_LIMIT.toString())
|
||||
params.set('offset', '0')
|
||||
|
||||
if (filters.segmentCount) {
|
||||
params.set('segmentCount', filters.segmentCount.toString())
|
||||
}
|
||||
applyFilterParams(params, filters)
|
||||
|
||||
if (filters.level !== 'all') {
|
||||
params.set('level', filters.level)
|
||||
}
|
||||
|
||||
if (filters.triggers.length > 0) {
|
||||
params.set('triggers', filters.triggers.join(','))
|
||||
}
|
||||
|
||||
if (filters.workflowIds.length > 0) {
|
||||
params.set('workflowIds', filters.workflowIds.join(','))
|
||||
}
|
||||
|
||||
if (filters.folderIds.length > 0) {
|
||||
params.set('folderIds', filters.folderIds.join(','))
|
||||
}
|
||||
|
||||
const startDate = getStartDateFromTimeRange(filters.timeRange, filters.startDate)
|
||||
if (startDate) {
|
||||
params.set('startDate', startDate.toISOString())
|
||||
}
|
||||
|
||||
const endDate = getEndDateFromTimeRange(filters.timeRange, filters.endDate)
|
||||
if (endDate) {
|
||||
params.set('endDate', endDate.toISOString())
|
||||
}
|
||||
|
||||
if (filters.searchQuery.trim()) {
|
||||
const parsedQuery = parseQuery(filters.searchQuery.trim())
|
||||
const searchParams = queryToApiParams(parsedQuery)
|
||||
|
||||
for (const [key, value] of Object.entries(searchParams)) {
|
||||
params.set(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
const response = await fetch(`/api/logs/stats?${params.toString()}`)
|
||||
const response = await fetch(`/api/logs?${params.toString()}`)
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch dashboard stats')
|
||||
throw new Error('Failed to fetch logs for dashboard')
|
||||
}
|
||||
|
||||
return response.json()
|
||||
const apiData: LogsResponse = await response.json()
|
||||
return apiData.data || []
|
||||
}
|
||||
|
||||
interface UseDashboardStatsOptions {
|
||||
interface UseDashboardLogsOptions {
|
||||
enabled?: boolean
|
||||
refetchInterval?: number | false
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook for fetching aggregated dashboard statistics.
|
||||
* Uses server-side SQL aggregation for efficient computation
|
||||
* without any row limits - all matching logs are included in the stats.
|
||||
* Hook for fetching all logs for dashboard metrics.
|
||||
* Unlike useLogsList, this fetches all logs in a single request
|
||||
* to ensure dashboard metrics are computed from complete data.
|
||||
*/
|
||||
export function useDashboardStats(
|
||||
export function useDashboardLogs(
|
||||
workspaceId: string | undefined,
|
||||
filters: DashboardFilters,
|
||||
options?: UseDashboardStatsOptions
|
||||
filters: Omit<LogFilters, 'limit'>,
|
||||
options?: UseDashboardLogsOptions
|
||||
) {
|
||||
return useQuery({
|
||||
queryKey: logKeys.stats(workspaceId, filters),
|
||||
queryFn: () => fetchDashboardStats(workspaceId as string, filters),
|
||||
queryKey: logKeys.dashboard(workspaceId, filters),
|
||||
queryFn: () => fetchAllLogs(workspaceId as string, filters),
|
||||
enabled: Boolean(workspaceId) && (options?.enabled ?? true),
|
||||
refetchInterval: options?.refetchInterval ?? false,
|
||||
staleTime: 0,
|
||||
|
||||
@@ -61,6 +61,7 @@ export interface NotificationSubscription {
|
||||
levelFilter: LogLevel[]
|
||||
triggerFilter: TriggerType[]
|
||||
includeFinalOutput: boolean
|
||||
includeTraceSpans: boolean
|
||||
includeRateLimits: boolean
|
||||
includeUsageData: boolean
|
||||
webhookConfig?: WebhookConfig | null
|
||||
@@ -105,6 +106,7 @@ interface CreateNotificationParams {
|
||||
levelFilter: LogLevel[]
|
||||
triggerFilter: TriggerType[]
|
||||
includeFinalOutput: boolean
|
||||
includeTraceSpans: boolean
|
||||
includeRateLimits: boolean
|
||||
includeUsageData: boolean
|
||||
alertConfig?: AlertConfig | null
|
||||
|
||||
@@ -592,7 +592,6 @@ export const auth = betterAuth({
|
||||
sendVerificationOnSignUp: false,
|
||||
otpLength: 6, // Explicitly set the OTP length
|
||||
expiresIn: 15 * 60, // 15 minutes in seconds
|
||||
overrideDefaultEmailVerification: true,
|
||||
}),
|
||||
genericOAuth({
|
||||
config: [
|
||||
|
||||
@@ -260,9 +260,6 @@ export const env = createEnv({
|
||||
// Invitations - for self-hosted deployments
|
||||
DISABLE_INVITATIONS: z.boolean().optional(), // Disable workspace invitations globally (for self-hosted deployments)
|
||||
|
||||
// Development Tools
|
||||
REACT_GRAB_ENABLED: z.boolean().optional(), // Enable React Grab for UI element debugging in Cursor/AI agents (dev only)
|
||||
|
||||
// SSO Configuration (for script-based registration)
|
||||
SSO_ENABLED: z.boolean().optional(), // Enable SSO functionality
|
||||
SSO_PROVIDER_TYPE: z.enum(['oidc', 'saml']).optional(), // [REQUIRED] SSO provider type
|
||||
|
||||
@@ -111,12 +111,6 @@ export const isE2bEnabled = isTruthy(env.E2B_ENABLED)
|
||||
*/
|
||||
export const isInvitationsDisabled = isTruthy(env.DISABLE_INVITATIONS)
|
||||
|
||||
/**
|
||||
* Is React Grab enabled for UI element debugging
|
||||
* When true and in development mode, enables React Grab for copying UI element context to clipboard
|
||||
*/
|
||||
export const isReactGrabEnabled = isDev && isTruthy(env.REACT_GRAB_ENABLED)
|
||||
|
||||
/**
|
||||
* Get cost multiplier based on environment
|
||||
*/
|
||||
|
||||
@@ -25,6 +25,7 @@ function prepareLogData(
|
||||
log: WorkflowExecutionLog,
|
||||
subscription: {
|
||||
includeFinalOutput: boolean
|
||||
includeTraceSpans: boolean
|
||||
}
|
||||
) {
|
||||
const preparedLog = { ...log, executionData: {} as Record<string, unknown> }
|
||||
@@ -37,6 +38,10 @@ function prepareLogData(
|
||||
webhookData.finalOutput = data.finalOutput
|
||||
}
|
||||
|
||||
if (subscription.includeTraceSpans && data.traceSpans) {
|
||||
webhookData.traceSpans = data.traceSpans
|
||||
}
|
||||
|
||||
preparedLog.executionData = webhookData
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { createLogger } from '@sim/logger'
|
||||
import { normalizeInputFormatValue } from '@/lib/workflows/input-format-utils'
|
||||
import {
|
||||
classifyStartBlockType,
|
||||
@@ -13,11 +12,8 @@ import {
|
||||
} from '@/lib/workflows/types'
|
||||
import { getBlock } from '@/blocks'
|
||||
import type { BlockConfig, OutputCondition, OutputFieldDefinition } from '@/blocks/types'
|
||||
import { getTool } from '@/tools/utils'
|
||||
import { getTrigger, isTriggerValid } from '@/triggers'
|
||||
|
||||
const logger = createLogger('BlockOutputs')
|
||||
|
||||
type OutputDefinition = Record<string, OutputFieldDefinition>
|
||||
|
||||
interface SubBlockWithValue {
|
||||
@@ -439,167 +435,3 @@ export function getBlockOutputType(
|
||||
const value = traverseOutputPath(outputs, pathParts)
|
||||
return extractType(value)
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively generates all output paths from an outputs schema.
|
||||
*
|
||||
* @param outputs - The outputs schema object
|
||||
* @param prefix - Current path prefix for recursion
|
||||
* @returns Array of dot-separated paths to all output fields
|
||||
*/
|
||||
function generateOutputPaths(outputs: Record<string, any>, prefix = ''): string[] {
|
||||
const paths: string[] = []
|
||||
|
||||
for (const [key, value] of Object.entries(outputs)) {
|
||||
const currentPath = prefix ? `${prefix}.${key}` : key
|
||||
|
||||
if (typeof value === 'string') {
|
||||
paths.push(currentPath)
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
if ('type' in value && typeof value.type === 'string') {
|
||||
const hasNestedProperties =
|
||||
((value.type === 'object' || value.type === 'json') && value.properties) ||
|
||||
(value.type === 'array' && value.items?.properties) ||
|
||||
(value.type === 'array' &&
|
||||
value.items &&
|
||||
typeof value.items === 'object' &&
|
||||
!('type' in value.items))
|
||||
|
||||
if (!hasNestedProperties) {
|
||||
paths.push(currentPath)
|
||||
}
|
||||
|
||||
if ((value.type === 'object' || value.type === 'json') && value.properties) {
|
||||
paths.push(...generateOutputPaths(value.properties, currentPath))
|
||||
} else if (value.type === 'array' && value.items?.properties) {
|
||||
paths.push(...generateOutputPaths(value.items.properties, currentPath))
|
||||
} else if (
|
||||
value.type === 'array' &&
|
||||
value.items &&
|
||||
typeof value.items === 'object' &&
|
||||
!('type' in value.items)
|
||||
) {
|
||||
paths.push(...generateOutputPaths(value.items, currentPath))
|
||||
}
|
||||
} else {
|
||||
const subPaths = generateOutputPaths(value, currentPath)
|
||||
paths.push(...subPaths)
|
||||
}
|
||||
} else {
|
||||
paths.push(currentPath)
|
||||
}
|
||||
}
|
||||
|
||||
return paths
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively generates all output paths with their types from an outputs schema.
|
||||
*
|
||||
* @param outputs - The outputs schema object
|
||||
* @param prefix - Current path prefix for recursion
|
||||
* @returns Array of objects containing path and type for each output field
|
||||
*/
|
||||
function generateOutputPathsWithTypes(
|
||||
outputs: Record<string, any>,
|
||||
prefix = ''
|
||||
): Array<{ path: string; type: string }> {
|
||||
const paths: Array<{ path: string; type: string }> = []
|
||||
|
||||
for (const [key, value] of Object.entries(outputs)) {
|
||||
const currentPath = prefix ? `${prefix}.${key}` : key
|
||||
|
||||
if (typeof value === 'string') {
|
||||
paths.push({ path: currentPath, type: value })
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
if ('type' in value && typeof value.type === 'string') {
|
||||
if (value.type === 'array' && value.items?.properties) {
|
||||
paths.push({ path: currentPath, type: 'array' })
|
||||
const subPaths = generateOutputPathsWithTypes(value.items.properties, currentPath)
|
||||
paths.push(...subPaths)
|
||||
} else if ((value.type === 'object' || value.type === 'json') && value.properties) {
|
||||
paths.push({ path: currentPath, type: value.type })
|
||||
const subPaths = generateOutputPathsWithTypes(value.properties, currentPath)
|
||||
paths.push(...subPaths)
|
||||
} else {
|
||||
paths.push({ path: currentPath, type: value.type })
|
||||
}
|
||||
} else {
|
||||
const subPaths = generateOutputPathsWithTypes(value, currentPath)
|
||||
paths.push(...subPaths)
|
||||
}
|
||||
} else {
|
||||
paths.push({ path: currentPath, type: 'any' })
|
||||
}
|
||||
}
|
||||
|
||||
return paths
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the tool outputs for a block operation.
|
||||
*
|
||||
* @param blockConfig - The block configuration containing tools config
|
||||
* @param operation - The selected operation for the tool
|
||||
* @returns Outputs schema for the tool, or empty object on error
|
||||
*/
|
||||
export function getToolOutputs(blockConfig: BlockConfig, operation: string): Record<string, any> {
|
||||
if (!blockConfig?.tools?.config?.tool) return {}
|
||||
|
||||
try {
|
||||
const toolId = blockConfig.tools.config.tool({ operation })
|
||||
if (!toolId) return {}
|
||||
|
||||
const toolConfig = getTool(toolId)
|
||||
if (!toolConfig?.outputs) return {}
|
||||
|
||||
return toolConfig.outputs
|
||||
} catch (error) {
|
||||
logger.warn('Failed to get tool outputs for operation', { operation, error })
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates output paths for a tool-based block.
|
||||
*
|
||||
* @param blockConfig - The block configuration containing tools config
|
||||
* @param operation - The selected operation for the tool
|
||||
* @returns Array of output paths for the tool, or empty array on error
|
||||
*/
|
||||
export function getToolOutputPaths(blockConfig: BlockConfig, operation: string): string[] {
|
||||
const outputs = getToolOutputs(blockConfig, operation)
|
||||
if (!outputs || Object.keys(outputs).length === 0) return []
|
||||
return generateOutputPaths(outputs)
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates output paths from a schema definition.
|
||||
*
|
||||
* @param outputs - The outputs schema object
|
||||
* @returns Array of dot-separated paths to all output fields
|
||||
*/
|
||||
export function getOutputPathsFromSchema(outputs: Record<string, any>): string[] {
|
||||
return generateOutputPaths(outputs)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the output type for a specific path in a tool's outputs.
|
||||
*
|
||||
* @param blockConfig - The block configuration containing tools config
|
||||
* @param operation - The selected operation for the tool
|
||||
* @param path - The dot-separated path to the output field
|
||||
* @returns The type of the output field, or 'any' if not found
|
||||
*/
|
||||
export function getToolOutputType(
|
||||
blockConfig: BlockConfig,
|
||||
operation: string,
|
||||
path: string
|
||||
): string {
|
||||
const outputs = getToolOutputs(blockConfig, operation)
|
||||
if (!outputs || Object.keys(outputs).length === 0) return 'any'
|
||||
|
||||
const pathsWithTypes = generateOutputPathsWithTypes(outputs)
|
||||
const matchingPath = pathsWithTypes.find((p) => p.path === path)
|
||||
return matchingPath?.type || 'any'
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user