Compare commits

...

6 Commits

Author SHA1 Message Date
Cursor Agent
49532627a1 fix(executor): use performance.now() for precise block timing
Replace Date.now() with performance.now() for timing measurements in
the executor to provide sub-millisecond precision. This fixes timing
discrepancies with fast-executing blocks like the start block where
millisecond precision was insufficient.

Changes:
- block-executor.ts: Use performance.now() for block execution timing
- engine.ts: Use performance.now() for overall execution timing

Co-authored-by: emir <emir@simstudio.ai>
2026-01-30 10:56:53 +00:00
Waleed
f718079593 improvement(docs): instant copy button + performance optimizations (#3076) 2026-01-29 23:24:58 -08:00
Waleed
dd2f0c6a6a feat(tools): added similarweb (#3071) 2026-01-29 20:39:23 -08:00
Waleed
f99518b837 feat(calcom): added calcom (#3070)
* feat(tools): added calcom

* added more triggers, tested

* updated regex in script for release to be more lenient

* fix(tag-dropdown): performance improvements and scroll bug fixes

- Add flatTagIndexMap for O(1) tag lookups (replaces O(n²) findIndex calls)
- Memoize caret position calculation to avoid DOM manipulation on every render
- Use refs for inputValue/cursorPosition to keep handleTagSelect callback stable
- Change itemRefs from index-based to tag-based keys to prevent stale refs
- Fix scroll jump in nested folders by removing scroll reset from registerFolder
- Add onFolderEnter callback for scroll reset when entering folder via keyboard
- Disable keyboard navigation wrap-around at boundaries
- Simplify selection reset to single effect on flatTagList.length change

Also:
- Add safeCompare utility for timing-safe string comparison
- Refactor webhook signature validation to use safeCompare

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* updated types

* fix(calcom): simplify required field constraints for booking attendee

The condition field already restricts these to calcom_create_booking,
so simplified to required: true. Per Cal.com API docs, email is optional
while name and timeZone are required.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* added tests

* updated folder multi select, updated calcom and github tools and docs generator script

* updated drag, updated outputs for tools, regen docs with nested docs script

* updated setup instructions links, destructure trigger outputs, fix text subblock styling

* updated docs gen script

* updated docs script

* updated docs script

* updated script

* remove destructuring of stripe webhook

* expanded wand textarea, updated calcom tools

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 20:37:30 -08:00
Siddharth Ganesan
2b026ded16 fix(copilot): hosted api key validation + credential validation (#3000)
* Fix

* Fix greptile

* Fix validation

* Fix comments

* Lint

* Fix

* remove passed in workspace id ref

* Fix comments

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2026-01-29 10:48:59 -08:00
Siddharth Ganesan
dca0758054 fix(executor): conditional deactivation for loops/parallels (#3069)
* Fix deactivation

* Remove comments
2026-01-29 10:43:30 -08:00
546 changed files with 34563 additions and 8794 deletions

View File

@@ -1,5 +1,6 @@
import type React from 'react' import type React from 'react'
import { findNeighbour } from 'fumadocs-core/page-tree' import { findNeighbour } from 'fumadocs-core/page-tree'
import { Pre } from 'fumadocs-ui/components/codeblock'
import defaultMdxComponents from 'fumadocs-ui/mdx' import defaultMdxComponents from 'fumadocs-ui/mdx'
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page' import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page'
import { ChevronLeft, ChevronRight } from 'lucide-react' import { ChevronLeft, ChevronRight } from 'lucide-react'
@@ -21,6 +22,7 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
const data = page.data as PageData const data = page.data as PageData
const MDX = data.body const MDX = data.body
const baseUrl = 'https://docs.sim.ai' const baseUrl = 'https://docs.sim.ai'
const markdownContent = await data.getText('processed')
const pageTreeRecord = source.pageTree as Record<string, any> const pageTreeRecord = source.pageTree as Record<string, any>
const pageTree = const pageTree =
@@ -200,7 +202,7 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
<div className='relative mt-6 sm:mt-0'> <div className='relative mt-6 sm:mt-0'>
<div className='absolute top-1 right-0 flex items-center gap-2'> <div className='absolute top-1 right-0 flex items-center gap-2'>
<div className='hidden sm:flex'> <div className='hidden sm:flex'>
<LLMCopyButton markdownUrl={`${page.url}.mdx`} /> <LLMCopyButton content={markdownContent} />
</div> </div>
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} /> <PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
</div> </div>
@@ -211,7 +213,11 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
<MDX <MDX
components={{ components={{
...defaultMdxComponents, ...defaultMdxComponents,
CodeBlock, pre: (props: React.HTMLAttributes<HTMLPreElement>) => (
<CodeBlock {...props}>
<Pre>{props.children}</Pre>
</CodeBlock>
),
h1: (props: React.HTMLAttributes<HTMLHeadingElement>) => ( h1: (props: React.HTMLAttributes<HTMLHeadingElement>) => (
<Heading as='h1' {...props} /> <Heading as='h1' {...props} />
), ),

View File

@@ -3,6 +3,7 @@ import { defineI18nUI } from 'fumadocs-ui/i18n'
import { DocsLayout } from 'fumadocs-ui/layouts/docs' import { DocsLayout } from 'fumadocs-ui/layouts/docs'
import { RootProvider } from 'fumadocs-ui/provider/next' import { RootProvider } from 'fumadocs-ui/provider/next'
import { Geist_Mono, Inter } from 'next/font/google' import { Geist_Mono, Inter } from 'next/font/google'
import Script from 'next/script'
import { import {
SidebarFolder, SidebarFolder,
SidebarItem, SidebarItem,
@@ -17,11 +18,13 @@ import '../global.css'
const inter = Inter({ const inter = Inter({
subsets: ['latin'], subsets: ['latin'],
variable: '--font-geist-sans', variable: '--font-geist-sans',
display: 'swap',
}) })
const geistMono = Geist_Mono({ const geistMono = Geist_Mono({
subsets: ['latin'], subsets: ['latin'],
variable: '--font-geist-mono', variable: '--font-geist-mono',
display: 'swap',
}) })
const { provider } = defineI18nUI(i18n, { const { provider } = defineI18nUI(i18n, {
@@ -93,10 +96,9 @@ export default async function Layout({ children, params }: LayoutProps) {
type='application/ld+json' type='application/ld+json'
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }} dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
/> />
{/* OneDollarStats Analytics - CDN script handles everything automatically */}
<script defer src='https://assets.onedollarstats.com/stonks.js' />
</head> </head>
<body className='flex min-h-screen flex-col font-sans'> <body className='flex min-h-screen flex-col font-sans'>
<Script src='https://assets.onedollarstats.com/stonks.js' strategy='lazyOnload' />
<RootProvider i18n={provider(lang)}> <RootProvider i18n={provider(lang)}>
<Navbar /> <Navbar />
<DocsLayout <DocsLayout

View File

@@ -9,7 +9,7 @@ export default function NotFound() {
<DocsPage> <DocsPage>
<DocsBody> <DocsBody>
<div className='flex min-h-[60vh] flex-col items-center justify-center text-center'> <div className='flex min-h-[60vh] flex-col items-center justify-center text-center'>
<h1 className='mb-4 bg-gradient-to-b from-[#8357FF] to-[#6F3DFA] bg-clip-text font-bold text-8xl text-transparent'> <h1 className='mb-4 bg-gradient-to-b from-[#47d991] to-[#33c482] bg-clip-text font-bold text-8xl text-transparent'>
404 404
</h1> </h1>
<h2 className='mb-2 font-semibold text-2xl text-foreground'>Page Not Found</h2> <h2 className='mb-2 font-semibold text-2xl text-foreground'>Page Not Found</h2>

View File

@@ -5113,3 +5113,60 @@ export function PulseIcon(props: SVGProps<SVGSVGElement>) {
</svg> </svg>
) )
} }
export function SimilarwebIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
role='img'
viewBox='0 0 24 24'
xmlns='http://www.w3.org/2000/svg'
height='24'
width='24'
>
<path
d='M22.099 5.781c-1.283 -2 -3.14 -3.67 -5.27 -4.52l-0.63 -0.213a7.433 7.433 0 0 0 -2.15 -0.331c-2.307 0.01 -4.175 1.92 -4.175 4.275a4.3 4.3 0 0 0 0.867 2.602l-0.26 -0.342c0.124 0.186 0.26 0.37 0.417 0.556 0.663 0.802 1.604 1.635 2.822 2.58 2.999 2.32 4.943 4.378 5.104 6.93 0.038 0.344 0.062 0.696 0.062 1.051 0 1.297 -0.283 2.67 -0.764 3.635h0.005s-0.207 0.377 -0.077 0.487c0.066 0.057 0.21 0.1 0.46 -0.053a12.104 12.104 0 0 0 3.4 -3.33 12.111 12.111 0 0 0 2.088 -6.635 12.098 12.098 0 0 0 -1.9 -6.692zm-9.096 8.718 -1.878 -1.55c-3.934 -2.87 -5.98 -5.966 -4.859 -9.783a8.73 8.73 0 0 1 0.37 -1.016v-0.004s0.278 -0.583 -0.327 -0.295a12.067 12.067 0 0 0 -6.292 9.975 12.11 12.11 0 0 0 2.053 7.421 9.394 9.394 0 0 0 2.154 2.168H4.22c4.148 3.053 7.706 1.446 7.706 1.446h0.003a4.847 4.847 0 0 0 2.962 -4.492 4.855 4.855 0 0 0 -1.889 -3.87z'
fill='currentColor'
/>
</svg>
)
}
export function CalComIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
width='101'
height='22'
viewBox='0 0 101 22'
fill='currentColor'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M10.0582 20.817C4.32115 20.817 0 16.2763 0 10.6704C0 5.04589 4.1005 0.467773 10.0582 0.467773C13.2209 0.467773 15.409 1.43945 17.1191 3.66311L14.3609 5.96151C13.2025 4.72822 11.805 4.11158 10.0582 4.11158C6.17833 4.11158 4.04533 7.08268 4.04533 10.6704C4.04533 14.2582 6.38059 17.1732 10.0582 17.1732C11.7866 17.1732 13.2577 16.5566 14.4161 15.3233L17.1375 17.7151C15.501 19.8453 13.2577 20.817 10.0582 20.817Z'
fill='#292929'
/>
<path
d='M29.0161 5.88601H32.7304V20.4612H29.0161V18.331C28.2438 19.8446 26.9566 20.8536 24.4927 20.8536C20.5577 20.8536 17.4133 17.4341 17.4133 13.2297C17.4133 9.02528 20.5577 5.60571 24.4927 5.60571C26.9383 5.60571 28.2438 6.61477 29.0161 8.12835V5.88601ZM29.1264 13.2297C29.1264 10.95 27.5634 9.06266 25.0995 9.06266C22.7274 9.06266 21.1828 10.9686 21.1828 13.2297C21.1828 15.4346 22.7274 17.3967 25.0995 17.3967C27.5451 17.3967 29.1264 15.4907 29.1264 13.2297Z'
fill='#292929'
/>
<path d='M35.3599 0H39.0742V20.4427H35.3599V0Z' fill='#292929' />
<path
d='M40.7291 18.5182C40.7291 17.3223 41.6853 16.3132 42.9908 16.3132C44.2964 16.3132 45.2158 17.3223 45.2158 18.5182C45.2158 19.7515 44.278 20.7605 42.9908 20.7605C41.7037 20.7605 40.7291 19.7515 40.7291 18.5182Z'
fill='#292929'
/>
<path
d='M59.4296 18.1068C58.0505 19.7885 55.9543 20.8536 53.4719 20.8536C49.0404 20.8536 45.7858 17.4341 45.7858 13.2297C45.7858 9.02528 49.0404 5.60571 53.4719 5.60571C55.8623 5.60571 57.9402 6.61477 59.3193 8.20309L56.4508 10.6136C55.7336 9.71667 54.7958 9.04397 53.4719 9.04397C51.0999 9.04397 49.5553 10.95 49.5553 13.211C49.5553 15.472 51.0999 17.378 53.4719 17.378C54.9062 17.378 55.8991 16.6306 56.6346 15.6215L59.4296 18.1068Z'
fill='#292929'
/>
<path
d='M59.7422 13.2297C59.7422 9.02528 62.9968 5.60571 67.4283 5.60571C71.8598 5.60571 75.1144 9.02528 75.1144 13.2297C75.1144 17.4341 71.8598 20.8536 67.4283 20.8536C62.9968 20.8349 59.7422 17.4341 59.7422 13.2297ZM71.3449 13.2297C71.3449 10.95 69.8003 9.06266 67.4283 9.06266C65.0563 9.04397 63.5117 10.95 63.5117 13.2297C63.5117 15.4907 65.0563 17.3967 67.4283 17.3967C69.8003 17.3967 71.3449 15.4907 71.3449 13.2297Z'
fill='#292929'
/>
<path
d='M100.232 11.5482V20.4428H96.518V12.4638C96.518 9.94119 95.3412 8.85739 93.576 8.85739C91.921 8.85739 90.7442 9.67958 90.7442 12.4638V20.4428H87.0299V12.4638C87.0299 9.94119 85.8346 8.85739 84.0878 8.85739C82.4329 8.85739 80.9802 9.67958 80.9802 12.4638V20.4428H77.2659V5.8676H80.9802V7.88571C81.7525 6.31607 83.15 5.53125 85.3014 5.53125C87.3425 5.53125 89.0525 6.5403 89.9903 8.24074C90.9281 6.50293 92.3072 5.53125 94.8079 5.53125C97.8603 5.54994 100.232 7.86702 100.232 11.5482Z'
fill='#292929'
/>
</svg>
)
}

View File

@@ -8,13 +8,7 @@ import { ThemeToggle } from '@/components/ui/theme-toggle'
export function Navbar() { export function Navbar() {
return ( return (
<nav <nav className='sticky top-0 z-50 border-border/50 border-b bg-background/80 backdrop-blur-md backdrop-saturate-150'>
className='sticky top-0 z-50 border-border/50 border-b'
style={{
backdropFilter: 'blur(25px) saturate(180%)',
WebkitBackdropFilter: 'blur(25px) saturate(180%)',
}}
>
{/* Desktop: Single row layout */} {/* Desktop: Single row layout */}
<div className='hidden h-16 w-full items-center lg:flex'> <div className='hidden h-16 w-full items-center lg:flex'>
<div <div

View File

@@ -1,45 +1,13 @@
'use client' 'use client'
import { useState } from 'react'
import { useCopyButton } from 'fumadocs-ui/utils/use-copy-button' import { useCopyButton } from 'fumadocs-ui/utils/use-copy-button'
import { Check, Copy } from 'lucide-react' import { Check, Copy } from 'lucide-react'
const cache = new Map<string, string>() export function LLMCopyButton({ content }: { content: string }) {
const [checked, onClick] = useCopyButton(() => navigator.clipboard.writeText(content))
export function LLMCopyButton({
markdownUrl,
}: {
/**
* A URL to fetch the raw Markdown/MDX content of page
*/
markdownUrl: string
}) {
const [isLoading, setLoading] = useState(false)
const [checked, onClick] = useCopyButton(async () => {
const cached = cache.get(markdownUrl)
if (cached) return navigator.clipboard.writeText(cached)
setLoading(true)
try {
await navigator.clipboard.write([
new ClipboardItem({
'text/plain': fetch(markdownUrl).then(async (res) => {
const content = await res.text()
cache.set(markdownUrl, content)
return content
}),
}),
])
} finally {
setLoading(false)
}
})
return ( return (
<button <button
disabled={isLoading}
onClick={onClick} onClick={onClick}
className='flex cursor-pointer items-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-2 text-muted-foreground/60 text-sm leading-none transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground' className='flex cursor-pointer items-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-2 text-muted-foreground/60 text-sm leading-none transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground'
aria-label={checked ? 'Copied to clipboard' : 'Copy page content'} aria-label={checked ? 'Copied to clipboard' : 'Copy page content'}

View File

@@ -17,23 +17,16 @@ export function CodeBlock(props: React.ComponentProps<typeof FumadocsCodeBlock>)
return ( return (
<FumadocsCodeBlock <FumadocsCodeBlock
{...props} {...props}
Actions={({ children, className }) => ( Actions={({ className }) => (
<div className={cn('empty:hidden', className)}> <div className={cn('empty:hidden', className)}>
{/* Custom copy button */}
<button <button
type='button' type='button'
aria-label={copied ? 'Copied Text' : 'Copy Text'} aria-label={copied ? 'Copied Text' : 'Copy Text'}
onClick={(e) => { onClick={(e) => {
const pre = (e.currentTarget as HTMLElement) const pre = (e.currentTarget as HTMLElement).closest('figure')?.querySelector('pre')
.closest('.nd-codeblock')
?.querySelector('pre')
if (pre) handleCopy(pre.textContent || '') if (pre) handleCopy(pre.textContent || '')
}} }}
className={cn( className='cursor-pointer rounded-md p-2 text-muted-foreground transition-colors hover:text-foreground'
'cursor-pointer rounded-md p-2 transition-all',
'border border-border bg-background/80 hover:bg-muted',
'backdrop-blur-sm'
)}
> >
<span className='flex items-center justify-center'> <span className='flex items-center justify-center'>
{copied ? ( {copied ? (

View File

@@ -13,6 +13,7 @@ import {
AsanaIcon, AsanaIcon,
BrainIcon, BrainIcon,
BrowserUseIcon, BrowserUseIcon,
CalComIcon,
CalendlyIcon, CalendlyIcon,
CirclebackIcon, CirclebackIcon,
ClayIcon, ClayIcon,
@@ -100,6 +101,7 @@ import {
ServiceNowIcon, ServiceNowIcon,
SftpIcon, SftpIcon,
ShopifyIcon, ShopifyIcon,
SimilarwebIcon,
SlackIcon, SlackIcon,
SmtpIcon, SmtpIcon,
SQSIcon, SQSIcon,
@@ -141,6 +143,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
arxiv: ArxivIcon, arxiv: ArxivIcon,
asana: AsanaIcon, asana: AsanaIcon,
browser_use: BrowserUseIcon, browser_use: BrowserUseIcon,
calcom: CalComIcon,
calendly: CalendlyIcon, calendly: CalendlyIcon,
circleback: CirclebackIcon, circleback: CirclebackIcon,
clay: ClayIcon, clay: ClayIcon,
@@ -228,6 +231,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
sftp: SftpIcon, sftp: SftpIcon,
sharepoint: MicrosoftSharepointIcon, sharepoint: MicrosoftSharepointIcon,
shopify: ShopifyIcon, shopify: ShopifyIcon,
similarweb: SimilarwebIcon,
slack: SlackIcon, slack: SlackIcon,
smtp: SmtpIcon, smtp: SmtpIcon,
sqs: SQSIcon, sqs: SQSIcon,

View File

@@ -52,12 +52,12 @@ Send a message to an external A2A-compatible agent.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `content` | string | The text response from the agent | | `content` | string | Text response content from the agent |
| `taskId` | string | Task ID for follow-up interactions | | `taskId` | string | Unique task identifier |
| `contextId` | string | Context ID for conversation continuity | | `contextId` | string | Groups related tasks/messages |
| `state` | string | Task state | | `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
| `artifacts` | array | Structured output artifacts | | `artifacts` | array | Task output artifacts |
| `history` | array | Full message history | | `history` | array | Conversation history \(Message array\) |
### `a2a_get_task` ### `a2a_get_task`
@@ -76,11 +76,11 @@ Query the status of an existing A2A task.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `taskId` | string | Task ID | | `taskId` | string | Unique task identifier |
| `contextId` | string | Context ID | | `contextId` | string | Groups related tasks/messages |
| `state` | string | Task state | | `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
| `artifacts` | array | Output artifacts | | `artifacts` | array | Task output artifacts |
| `history` | array | Message history | | `history` | array | Conversation history \(Message array\) |
### `a2a_cancel_task` ### `a2a_cancel_task`
@@ -99,7 +99,7 @@ Cancel a running A2A task.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `cancelled` | boolean | Whether cancellation was successful | | `cancelled` | boolean | Whether cancellation was successful |
| `state` | string | Task state after cancellation | | `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
### `a2a_get_agent_card` ### `a2a_get_agent_card`
@@ -116,14 +116,15 @@ Fetch the Agent Card (discovery document) for an A2A agent.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `name` | string | Agent name | | `name` | string | Agent display name |
| `description` | string | Agent description | | `description` | string | Agent purpose/capabilities |
| `url` | string | Agent endpoint URL | | `url` | string | Service endpoint URL |
| `version` | string | Agent version | | `provider` | object | Creator organization details |
| `capabilities` | object | Agent capabilities \(streaming, pushNotifications, etc.\) | | `capabilities` | object | Feature support matrix |
| `skills` | array | Skills the agent can perform | | `skills` | array | Available operations |
| `defaultInputModes` | array | Default input modes \(text, file, data\) | | `version` | string | A2A protocol version supported by the agent |
| `defaultOutputModes` | array | Default output modes \(text, file, data\) | | `defaultInputModes` | array | Default input content types accepted by the agent |
| `defaultOutputModes` | array | Default output content types produced by the agent |
### `a2a_resubscribe` ### `a2a_resubscribe`
@@ -141,12 +142,12 @@ Reconnect to an ongoing A2A task stream after connection interruption.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `taskId` | string | Task ID | | `taskId` | string | Unique task identifier |
| `contextId` | string | Context ID | | `contextId` | string | Groups related tasks/messages |
| `state` | string | Current task state | | `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
| `isRunning` | boolean | Whether the task is still running | | `isRunning` | boolean | Whether the task is still running |
| `artifacts` | array | Output artifacts | | `artifacts` | array | Task output artifacts |
| `history` | array | Message history | | `history` | array | Conversation history \(Message array\) |
### `a2a_set_push_notification` ### `a2a_set_push_notification`
@@ -166,9 +167,9 @@ Configure a webhook to receive task update notifications.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `url` | string | Configured webhook URL | | `url` | string | HTTPS webhook URL for notifications |
| `token` | string | Token for webhook validation | | `token` | string | Authentication token for webhook validation |
| `success` | boolean | Whether configuration was successful | | `success` | boolean | Whether the operation was successful |
### `a2a_get_push_notification` ### `a2a_get_push_notification`
@@ -186,9 +187,8 @@ Get the push notification webhook configuration for a task.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `url` | string | Configured webhook URL | | `token` | string | Authentication token for webhook validation |
| `token` | string | Token for webhook validation | | `exists` | boolean | Whether the resource exists |
| `exists` | boolean | Whether a push notification config exists |
### `a2a_delete_push_notification` ### `a2a_delete_push_notification`
@@ -207,6 +207,6 @@ Delete the push notification webhook configuration for a task.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether deletion was successful | | `success` | boolean | Whether the operation was successful |

View File

@@ -98,12 +98,12 @@ Get backlink statistics for a target domain or URL. Returns totals for different
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `stats` | object | Backlink statistics summary | | `stats` | object | Backlink statistics summary |
| ↳ `total` | number | Total number of live backlinks | | ↳ `total` | number | Total number of live backlinks |
| ↳ `dofollow` | number | Number of dofollow backlinks | | ↳ `dofollow` | number | Number of dofollow backlinks |
| ↳ `nofollow` | number | Number of nofollow backlinks | | ↳ `nofollow` | number | Number of nofollow backlinks |
| ↳ `text` | number | Number of text backlinks | | ↳ `text` | number | Number of text backlinks |
| ↳ `image` | number | Number of image backlinks | | ↳ `image` | number | Number of image backlinks |
| ↳ `redirect` | number | Number of redirect backlinks | | ↳ `redirect` | number | Number of redirect backlinks |
### `ahrefs_referring_domains` ### `ahrefs_referring_domains`
@@ -205,14 +205,14 @@ Get detailed metrics for a keyword including search volume, keyword difficulty,
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `overview` | object | Keyword metrics overview | | `overview` | object | Keyword metrics overview |
| ↳ `keyword` | string | The analyzed keyword | | ↳ `keyword` | string | The analyzed keyword |
| ↳ `searchVolume` | number | Monthly search volume | | ↳ `searchVolume` | number | Monthly search volume |
| ↳ `keywordDifficulty` | number | Keyword difficulty score \(0-100\) | | ↳ `keywordDifficulty` | number | Keyword difficulty score \(0-100\) |
| ↳ `cpc` | number | Cost per click in USD | | ↳ `cpc` | number | Cost per click in USD |
| ↳ `clicks` | number | Estimated clicks per month | | ↳ `clicks` | number | Estimated clicks per month |
| ↳ `clicksPercentage` | number | Percentage of searches that result in clicks | | ↳ `clicksPercentage` | number | Percentage of searches that result in clicks |
| ↳ `parentTopic` | string | The parent topic for this keyword | | ↳ `parentTopic` | string | The parent topic for this keyword |
| ↳ `trafficPotential` | number | Estimated traffic potential if ranking #1 | | ↳ `trafficPotential` | number | Estimated traffic potential if ranking #1 |
### `ahrefs_broken_backlinks` ### `ahrefs_broken_backlinks`

View File

@@ -59,11 +59,11 @@ Retrieve a single task by GID or get multiple tasks with filters
| `notes` | string | Task notes or description | | `notes` | string | Task notes or description |
| `completed` | boolean | Whether the task is completed | | `completed` | boolean | Whether the task is completed |
| `assignee` | object | Assignee details | | `assignee` | object | Assignee details |
| ↳ `gid` | string | Assignee GID | | ↳ `gid` | string | Assignee GID |
| ↳ `name` | string | Assignee name | | ↳ `name` | string | Assignee name |
| `created_by` | object | Creator details | | `created_by` | object | Creator details |
| ↳ `gid` | string | Creator GID | | ↳ `gid` | string | Creator GID |
| ↳ `name` | string | Creator name | | ↳ `name` | string | Creator name |
| `due_on` | string | Due date \(YYYY-MM-DD\) | | `due_on` | string | Due date \(YYYY-MM-DD\) |
| `created_at` | string | Task creation timestamp | | `created_at` | string | Task creation timestamp |
| `modified_at` | string | Task last modified timestamp | | `modified_at` | string | Task last modified timestamp |
@@ -175,15 +175,15 @@ Search for tasks in an Asana workspace
| ↳ `notes` | string | Task notes | | ↳ `notes` | string | Task notes |
| ↳ `completed` | boolean | Completion status | | ↳ `completed` | boolean | Completion status |
| ↳ `assignee` | object | Assignee details | | ↳ `assignee` | object | Assignee details |
| ↳ `gid` | string | Assignee GID | | ↳ `gid` | string | Assignee GID |
| ↳ `name` | string | Assignee name | | ↳ `name` | string | Assignee name |
| ↳ `due_on` | string | Due date | | ↳ `due_on` | string | Due date |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `modified_at` | string | Modified timestamp | | ↳ `modified_at` | string | Modified timestamp |
| `next_page` | object | Pagination info | | `next_page` | object | Pagination info |
| ↳ `offset` | string | Offset token | | ↳ `offset` | string | Offset token |
| ↳ `path` | string | API path | | ↳ `path` | string | API path |
| ↳ `uri` | string | Full URI | | ↳ `uri` | string | Full URI |
### `asana_add_comment` ### `asana_add_comment`
@@ -206,7 +206,7 @@ Add a comment (story) to an Asana task
| `text` | string | Comment text content | | `text` | string | Comment text content |
| `created_at` | string | Comment creation timestamp | | `created_at` | string | Comment creation timestamp |
| `created_by` | object | Comment author details | | `created_by` | object | Comment author details |
| ↳ `gid` | string | Author GID | | ↳ `gid` | string | Author GID |
| ↳ `name` | string | Author name | | ↳ `name` | string | Author name |

View File

@@ -0,0 +1,789 @@
---
title: CalCom
description: Manage Cal.com bookings, event types, schedules, and availability
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="calcom"
color="#FFFFFE"
/>
{/* MANUAL-CONTENT-START:intro */}
[Cal.com](https://cal.com/) is a flexible and open-source scheduling platform that makes it easy to manage appointments, bookings, event types, and team availabilities.
With Cal.com, you can:
- **Automate scheduling**: Allow users to view your available time slots and book meetings automatically, without back-and-forth emails.
- **Manage events**: Create and customize event types, durations, and rules for one-on-one or group meetings.
- **Integrate calendars**: Seamlessly connect with Google, Outlook, Apple, or other calendar providers to avoid double bookings.
- **Handle attendees and guests**: Collect attendee information, manage guests, and send invitations or reminders.
- **Control availability**: Define custom working hours, buffer times, and cancellation/rebooking rules.
- **Power workflows**: Trigger custom actions via webhooks when a booking is created, cancelled, or rescheduled.
In Sim, the Cal.com integration enables your agents to book meetings, check availabilities, manage event types, and automate scheduling tasks programmatically. This helps agents coordinate meetings, send bookings on behalf of users, check schedules, or respond to booking events—all without manual intervention. By connecting Sim with Cal.com, you unlock highly automated and intelligent scheduling workflows that can integrate seamlessly with your broader automation needs.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Cal.com into your workflow. Create and manage bookings, event types, schedules, and check availability slots. Supports creating, listing, rescheduling, and canceling bookings, as well as managing event types and schedules. Can also trigger workflows based on Cal.com webhook events (booking created, cancelled, rescheduled). Connect your Cal.com account via OAuth.
## Tools
### `calcom_create_booking`
Create a new booking on Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Yes | The ID of the event type to book |
| `start` | string | Yes | Start time in UTC ISO 8601 format \(e.g., 2024-01-15T09:00:00Z\) |
| `attendee` | object | Yes | Attendee information object with name, email, timeZone, and optional phoneNumber \(constructed from individual attendee fields\) |
| `guests` | array | No | Array of guest email addresses |
| `items` | string | No | Guest email address |
| `lengthInMinutes` | number | No | Duration of the booking in minutes \(overrides event type default\) |
| `metadata` | object | No | Custom metadata to attach to the booking |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Created booking details |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `uid` | string | Unique identifier for the booking |
| ↳ `title` | string | Title of the booking |
| ↳ `status` | string | Booking status \(e.g., accepted, pending, cancelled\) |
| ↳ `start` | string | Start time in ISO 8601 format |
| ↳ `end` | string | End time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `meetingUrl` | string | URL to join the meeting |
| ↳ `location` | string | Location of the booking |
| ↳ `absentHost` | boolean | Whether the host was absent |
| ↳ `guests` | array | Guest email addresses |
| ↳ `bookingFieldsResponses` | json | Custom booking field responses \(dynamic keys based on event type configuration\) |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `icsUid` | string | ICS calendar UID |
| ↳ `createdAt` | string | When the booking was created |
### `calcom_get_booking`
Get details of a specific booking by its UID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Yes | Unique identifier \(UID\) of the booking |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Booking details |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `uid` | string | Unique identifier for the booking |
| ↳ `title` | string | Title of the booking |
| ↳ `description` | string | Description of the booking |
| ↳ `status` | string | Booking status \(e.g., accepted, pending, cancelled\) |
| ↳ `start` | string | Start time in ISO 8601 format |
| ↳ `end` | string | End time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `meetingUrl` | string | URL to join the meeting |
| ↳ `location` | string | Location of the booking |
| ↳ `absentHost` | boolean | Whether the host was absent |
| ↳ `guests` | array | Guest email addresses |
| ↳ `bookingFieldsResponses` | json | Custom booking field responses \(dynamic keys based on event type configuration\) |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `rating` | number | Booking rating |
| ↳ `icsUid` | string | ICS calendar UID |
| ↳ `cancellationReason` | string | Reason for cancellation if cancelled |
| ↳ `reschedulingReason` | string | Reason for rescheduling if rescheduled |
| ↳ `rescheduledFromUid` | string | Original booking UID if this booking was rescheduled |
| ↳ `rescheduledToUid` | string | New booking UID after reschedule |
| ↳ `cancelledByEmail` | string | Email of person who cancelled the booking |
| ↳ `rescheduledByEmail` | string | Email of person who rescheduled the booking |
| ↳ `createdAt` | string | When the booking was created |
| ↳ `updatedAt` | string | When the booking was last updated |
### `calcom_list_bookings`
List all bookings with optional status filter
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `status` | string | No | Filter bookings by status: upcoming, recurring, past, cancelled, or unconfirmed |
| `take` | number | No | Number of bookings to return \(pagination limit\) |
| `skip` | number | No | Number of bookings to skip \(pagination offset\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | array | Array of bookings |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `uid` | string | Unique identifier for the booking |
| ↳ `title` | string | Title of the booking |
| ↳ `description` | string | Description of the booking |
| ↳ `status` | string | Booking status \(e.g., accepted, pending, cancelled\) |
| ↳ `start` | string | Start time in ISO 8601 format |
| ↳ `end` | string | End time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `meetingUrl` | string | URL to join the meeting |
| ↳ `location` | string | Location of the booking |
| ↳ `absentHost` | boolean | Whether the host was absent |
| ↳ `guests` | array | Guest email addresses |
| ↳ `bookingFieldsResponses` | json | Custom booking field responses \(dynamic keys based on event type configuration\) |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `rating` | number | Booking rating |
| ↳ `icsUid` | string | ICS calendar UID |
| ↳ `cancellationReason` | string | Reason for cancellation if cancelled |
| ↳ `cancelledByEmail` | string | Email of person who cancelled the booking |
| ↳ `reschedulingReason` | string | Reason for rescheduling if rescheduled |
| ↳ `rescheduledByEmail` | string | Email of person who rescheduled the booking |
| ↳ `rescheduledFromUid` | string | Original booking UID if this booking was rescheduled |
| ↳ `rescheduledToUid` | string | New booking UID after reschedule |
| ↳ `createdAt` | string | When the booking was created |
| ↳ `updatedAt` | string | When the booking was last updated |
| `pagination` | object | Pagination metadata |
| ↳ `totalItems` | number | Total number of items |
| ↳ `remainingItems` | number | Remaining items after current page |
| ↳ `returnedItems` | number | Number of items returned in this response |
| ↳ `itemsPerPage` | number | Items per page |
| ↳ `currentPage` | number | Current page number |
| ↳ `totalPages` | number | Total number of pages |
| ↳ `hasNextPage` | boolean | Whether there is a next page |
| ↳ `hasPreviousPage` | boolean | Whether there is a previous page |
### `calcom_cancel_booking`
Cancel an existing booking
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Yes | Unique identifier \(UID\) of the booking to cancel |
| `cancellationReason` | string | No | Reason for cancelling the booking |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Cancelled booking details |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `uid` | string | Unique identifier for the booking |
| ↳ `title` | string | Title of the booking |
| ↳ `cancellationReason` | string | Reason for cancellation if cancelled |
| ↳ `cancelledByEmail` | string | Email of person who cancelled the booking |
| ↳ `start` | string | Start time in ISO 8601 format |
| ↳ `end` | string | End time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `location` | string | Location of the booking |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `createdAt` | string | When the booking was created |
| ↳ `status` | string | Booking status \(should be cancelled\) |
### `calcom_reschedule_booking`
Reschedule an existing booking to a new time
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Yes | Unique identifier \(UID\) of the booking to reschedule |
| `start` | string | Yes | New start time in UTC ISO 8601 format \(e.g., 2024-01-15T09:00:00Z\) |
| `reschedulingReason` | string | No | Reason for rescheduling the booking |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Rescheduled booking details |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `title` | string | Title of the booking |
| ↳ `status` | string | Booking status \(e.g., accepted, pending, cancelled\) |
| ↳ `reschedulingReason` | string | Reason for rescheduling if rescheduled |
| ↳ `rescheduledFromUid` | string | Original booking UID if this booking was rescheduled |
| ↳ `rescheduledByEmail` | string | Email of person who rescheduled the booking |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `meetingUrl` | string | URL to join the meeting |
| ↳ `location` | string | Location of the booking |
| ↳ `guests` | array | Guest email addresses |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `icsUid` | string | ICS calendar UID |
| ↳ `createdAt` | string | When the booking was created |
| ↳ `uid` | string | Unique identifier for the new booking |
| ↳ `start` | string | New start time in ISO 8601 format |
| ↳ `end` | string | New end time in ISO 8601 format |
### `calcom_confirm_booking`
Confirm a pending booking that requires confirmation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Yes | Unique identifier \(UID\) of the booking to confirm |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Confirmed booking details |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `uid` | string | Unique identifier for the booking |
| ↳ `title` | string | Title of the booking |
| ↳ `start` | string | Start time in ISO 8601 format |
| ↳ `end` | string | End time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `meetingUrl` | string | URL to join the meeting |
| ↳ `location` | string | Location of the booking |
| ↳ `guests` | array | Guest email addresses |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `icsUid` | string | ICS calendar UID |
| ↳ `createdAt` | string | When the booking was created |
| ↳ `status` | string | Booking status \(should be accepted/confirmed\) |
### `calcom_decline_booking`
Decline a pending booking request
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Yes | Unique identifier \(UID\) of the booking to decline |
| `reason` | string | No | Reason for declining the booking |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Declined booking details |
| ↳ `eventType` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `slug` | string | Event type slug |
| ↳ `attendees` | array | List of attendees |
| ↳ `name` | string | Attendee name |
| ↳ `email` | string | Attendee actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `timeZone` | string | Attendee timezone \(IANA format\) |
| ↳ `phoneNumber` | string | Attendee phone number |
| ↳ `language` | string | Attendee language preference \(ISO code\) |
| ↳ `absent` | boolean | Whether attendee was absent |
| ↳ `hosts` | array | List of hosts |
| ↳ `id` | number | Host user ID |
| ↳ `name` | string | Host display name |
| ↳ `email` | string | Host actual email address |
| ↳ `displayEmail` | string | Email shown publicly \(may differ from actual email\) |
| ↳ `username` | string | Host Cal.com username |
| ↳ `timeZone` | string | Host timezone \(IANA format\) |
| ↳ `id` | number | Numeric booking ID |
| ↳ `uid` | string | Unique identifier for the booking |
| ↳ `title` | string | Title of the booking |
| ↳ `cancellationReason` | string | Reason for cancellation if cancelled |
| ↳ `start` | string | Start time in ISO 8601 format |
| ↳ `end` | string | End time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `eventTypeId` | number | Event type ID |
| ↳ `location` | string | Location of the booking |
| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic key-value pairs\) |
| ↳ `createdAt` | string | When the booking was created |
| ↳ `status` | string | Booking status \(should be cancelled/rejected\) |
### `calcom_create_event_type`
Create a new event type in Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `title` | string | Yes | Title of the event type |
| `slug` | string | Yes | Unique slug for the event type URL |
| `lengthInMinutes` | number | Yes | Duration of the event in minutes |
| `description` | string | No | Description of the event type |
| `slotInterval` | number | No | Interval between available booking slots in minutes |
| `minimumBookingNotice` | number | No | Minimum notice required before booking in minutes |
| `beforeEventBuffer` | number | No | Buffer time before the event in minutes |
| `afterEventBuffer` | number | No | Buffer time after the event in minutes |
| `scheduleId` | number | No | ID of the schedule to use for availability |
| `disableGuests` | boolean | No | Whether to disable guests from being added to bookings |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Created event type details |
| ↳ `id` | number | Event type ID |
| ↳ `title` | string | Event type title |
| ↳ `slug` | string | Event type slug |
| ↳ `description` | string | Event type description |
| ↳ `lengthInMinutes` | number | Duration in minutes |
| ↳ `slotInterval` | number | Slot interval in minutes |
| ↳ `minimumBookingNotice` | number | Minimum booking notice in minutes |
| ↳ `beforeEventBuffer` | number | Buffer before event in minutes |
| ↳ `afterEventBuffer` | number | Buffer after event in minutes |
| ↳ `scheduleId` | number | Schedule ID |
| ↳ `disableGuests` | boolean | Whether guests are disabled |
| ↳ `createdAt` | string | ISO timestamp of creation |
| ↳ `updatedAt` | string | ISO timestamp of last update |
### `calcom_get_event_type`
Get detailed information about a specific event type
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Yes | Event type ID to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Event type details |
| ↳ `id` | number | Event type ID |
| ↳ `title` | string | Event type title |
| ↳ `slug` | string | Event type slug |
| ↳ `description` | string | Event type description |
| ↳ `lengthInMinutes` | number | Duration in minutes |
| ↳ `slotInterval` | number | Slot interval in minutes |
| ↳ `minimumBookingNotice` | number | Minimum booking notice in minutes |
| ↳ `beforeEventBuffer` | number | Buffer before event in minutes |
| ↳ `afterEventBuffer` | number | Buffer after event in minutes |
| ↳ `scheduleId` | number | Schedule ID |
| ↳ `disableGuests` | boolean | Whether guests are disabled |
| ↳ `createdAt` | string | ISO timestamp of creation |
| ↳ `updatedAt` | string | ISO timestamp of last update |
### `calcom_list_event_types`
Retrieve a list of all event types
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `sortCreatedAt` | string | No | Sort by creation date: "asc" or "desc" |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | array | Array of event types |
| ↳ `id` | number | Event type ID |
| ↳ `title` | string | Event type title |
| ↳ `slug` | string | Event type slug |
| ↳ `description` | string | Event type description |
| ↳ `lengthInMinutes` | number | Duration in minutes |
| ↳ `slotInterval` | number | Slot interval in minutes |
| ↳ `minimumBookingNotice` | number | Minimum booking notice in minutes |
| ↳ `beforeEventBuffer` | number | Buffer before event in minutes |
| ↳ `afterEventBuffer` | number | Buffer after event in minutes |
| ↳ `scheduleId` | number | Schedule ID |
| ↳ `disableGuests` | boolean | Whether guests are disabled |
| ↳ `createdAt` | string | ISO timestamp of creation |
| ↳ `updatedAt` | string | ISO timestamp of last update |
### `calcom_update_event_type`
Update an existing event type in Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Yes | Event type ID to update |
| `title` | string | No | Title of the event type |
| `slug` | string | No | Unique slug for the event type URL |
| `lengthInMinutes` | number | No | Duration of the event in minutes |
| `description` | string | No | Description of the event type |
| `slotInterval` | number | No | Interval between available booking slots in minutes |
| `minimumBookingNotice` | number | No | Minimum notice required before booking in minutes |
| `beforeEventBuffer` | number | No | Buffer time before the event in minutes |
| `afterEventBuffer` | number | No | Buffer time after the event in minutes |
| `scheduleId` | number | No | ID of the schedule to use for availability |
| `disableGuests` | boolean | No | Whether to disable guests from being added to bookings |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Updated event type details |
| ↳ `id` | number | Event type ID |
| ↳ `title` | string | Event type title |
| ↳ `slug` | string | Event type slug |
| ↳ `description` | string | Event type description |
| ↳ `lengthInMinutes` | number | Duration in minutes |
| ↳ `slotInterval` | number | Slot interval in minutes |
| ↳ `minimumBookingNotice` | number | Minimum booking notice in minutes |
| ↳ `beforeEventBuffer` | number | Buffer before event in minutes |
| ↳ `afterEventBuffer` | number | Buffer after event in minutes |
| ↳ `scheduleId` | number | Schedule ID |
| ↳ `disableGuests` | boolean | Whether guests are disabled |
| ↳ `createdAt` | string | ISO timestamp of creation |
| ↳ `updatedAt` | string | ISO timestamp of last update |
### `calcom_delete_event_type`
Delete an event type from Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Yes | Event type ID to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Deleted event type details |
| ↳ `id` | number | Event type ID |
| ↳ `lengthInMinutes` | number | Duration in minutes |
| ↳ `title` | string | Event type title |
| ↳ `slug` | string | Event type slug |
### `calcom_create_schedule`
Create a new availability schedule in Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `name` | string | Yes | Name of the schedule |
| `timeZone` | string | Yes | Timezone for the schedule \(e.g., America/New_York\) |
| `isDefault` | boolean | Yes | Whether this schedule should be the default |
| `availability` | array | No | Availability intervals for the schedule |
| `items` | object | No | Availability interval |
| `properties` | array | No | Days of the week \(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday\) |
| `days` | array | No | Days of the week \(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday\) |
| `startTime` | string | No | Start time in HH:MM format |
| `endTime` | string | No | End time in HH:MM format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Created schedule data |
| ↳ `id` | number | Schedule ID |
| ↳ `ownerId` | number | Owner user ID |
| ↳ `name` | string | Schedule name |
| ↳ `timeZone` | string | Timezone \(e.g., America/New_York\) |
| ↳ `isDefault` | boolean | Whether this is the default schedule |
| ↳ `availability` | array | Availability windows |
| ↳ `days` | array | Days of the week \(Monday, Tuesday, etc.\) |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
| ↳ `overrides` | array | Date-specific availability overrides |
| ↳ `date` | string | Date in YYYY-MM-DD format |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
### `calcom_get_schedule`
Get a specific schedule by ID from Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `scheduleId` | string | Yes | ID of the schedule to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Schedule data |
| ↳ `id` | number | Schedule ID |
| ↳ `ownerId` | number | Owner user ID |
| ↳ `name` | string | Schedule name |
| ↳ `timeZone` | string | Timezone \(e.g., America/New_York\) |
| ↳ `isDefault` | boolean | Whether this is the default schedule |
| ↳ `availability` | array | Availability windows |
| ↳ `days` | array | Days of the week \(Monday, Tuesday, etc.\) |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
| ↳ `overrides` | array | Date-specific availability overrides |
| ↳ `date` | string | Date in YYYY-MM-DD format |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
### `calcom_list_schedules`
List all availability schedules from Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | array | Array of schedule objects |
| ↳ `id` | number | Schedule ID |
| ↳ `ownerId` | number | Owner user ID |
| ↳ `name` | string | Schedule name |
| ↳ `timeZone` | string | Timezone \(e.g., America/New_York\) |
| ↳ `isDefault` | boolean | Whether this is the default schedule |
| ↳ `availability` | array | Availability windows |
| ↳ `days` | array | Days of the week \(Monday, Tuesday, etc.\) |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
| ↳ `overrides` | array | Date-specific availability overrides |
| ↳ `date` | string | Date in YYYY-MM-DD format |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
### `calcom_update_schedule`
Update an existing schedule in Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `scheduleId` | string | Yes | ID of the schedule to update |
| `name` | string | No | New name for the schedule |
| `timeZone` | string | No | New timezone for the schedule \(e.g., America/New_York\) |
| `isDefault` | boolean | No | Whether this schedule should be the default |
| `availability` | array | No | New availability intervals for the schedule |
| `items` | object | No | Availability interval |
| `properties` | array | No | Days of the week \(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday\) |
| `days` | array | No | Days of the week \(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday\) |
| `startTime` | string | No | Start time in HH:MM format |
| `endTime` | string | No | End time in HH:MM format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Updated schedule data |
| ↳ `id` | number | Schedule ID |
| ↳ `ownerId` | number | Owner user ID |
| ↳ `name` | string | Schedule name |
| ↳ `timeZone` | string | Timezone \(e.g., America/New_York\) |
| ↳ `isDefault` | boolean | Whether this is the default schedule |
| ↳ `availability` | array | Availability windows |
| ↳ `days` | array | Days of the week \(Monday, Tuesday, etc.\) |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
| ↳ `overrides` | array | Date-specific availability overrides |
| ↳ `date` | string | Date in YYYY-MM-DD format |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
### `calcom_delete_schedule`
Delete a schedule from Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `scheduleId` | string | Yes | ID of the schedule to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status \(success or error\) |
### `calcom_get_default_schedule`
Get the default availability schedule from Cal.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | object | Default schedule data |
| ↳ `id` | number | Schedule ID |
| ↳ `ownerId` | number | Owner user ID |
| ↳ `name` | string | Schedule name |
| ↳ `timeZone` | string | Timezone \(e.g., America/New_York\) |
| ↳ `isDefault` | boolean | Whether this is the default schedule |
| ↳ `availability` | array | Availability windows |
| ↳ `days` | array | Days of the week \(Monday, Tuesday, etc.\) |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
| ↳ `overrides` | array | Date-specific availability overrides |
| ↳ `date` | string | Date in YYYY-MM-DD format |
| ↳ `startTime` | string | Start time in HH:MM format |
| ↳ `endTime` | string | End time in HH:MM format |
### `calcom_get_slots`
Get available booking slots for a Cal.com event type within a time range
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `start` | string | Yes | Start of time range in UTC ISO 8601 format \(e.g., 2024-01-15T00:00:00Z\) |
| `end` | string | Yes | End of time range in UTC ISO 8601 format \(e.g., 2024-01-22T00:00:00Z\) |
| `eventTypeId` | number | No | Event type ID for direct lookup |
| `eventTypeSlug` | string | No | Event type slug \(requires username to be set\) |
| `username` | string | No | Username for personal event types \(required when using eventTypeSlug\) |
| `timeZone` | string | No | Timezone for returned slots \(defaults to UTC\) |
| `duration` | number | No | Slot length in minutes |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Response status |
| `data` | json | Available time slots grouped by date \(YYYY-MM-DD keys\). Each date maps to an array of slot objects with start time, optional end time, and seated event info. |

View File

@@ -47,16 +47,16 @@ Get information about the currently authenticated Calendly user
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `resource` | object | Current user information | | `resource` | object | Current user information |
| ↳ `uri` | string | Canonical reference to the user | | ↳ `uri` | string | Canonical reference to the user |
| ↳ `name` | string | User full name | | ↳ `name` | string | User full name |
| ↳ `slug` | string | Unique identifier for the user in URLs | | ↳ `slug` | string | Unique identifier for the user in URLs |
| ↳ `email` | string | User email address | | ↳ `email` | string | User email address |
| ↳ `scheduling_url` | string | URL to the user | | ↳ `scheduling_url` | string | URL to the user's scheduling page |
| ↳ `timezone` | string | User timezone | | ↳ `timezone` | string | User timezone |
| ↳ `avatar_url` | string | URL to user avatar image | | ↳ `avatar_url` | string | URL to user avatar image |
| ↳ `created_at` | string | ISO timestamp when user was created | | ↳ `created_at` | string | ISO timestamp when user was created |
| ↳ `updated_at` | string | ISO timestamp when user was last updated | | ↳ `updated_at` | string | ISO timestamp when user was last updated |
| ↳ `current_organization` | string | URI of current organization | | ↳ `current_organization` | string | URI of current organization |
### `calendly_list_event_types` ### `calendly_list_event_types`
@@ -82,7 +82,7 @@ Retrieve a list of all event types for a user or organization
| ↳ `uri` | string | Canonical reference to the event type | | ↳ `uri` | string | Canonical reference to the event type |
| ↳ `name` | string | Event type name | | ↳ `name` | string | Event type name |
| ↳ `active` | boolean | Whether the event type is active | | ↳ `active` | boolean | Whether the event type is active |
| ↳ `booking_method` | string | Booking method \(e.g., | | ↳ `booking_method` | string | Booking method \(e.g., "round_robin_or_collect", "collective"\) |
| ↳ `color` | string | Hex color code | | ↳ `color` | string | Hex color code |
| ↳ `created_at` | string | ISO timestamp of creation | | ↳ `created_at` | string | ISO timestamp of creation |
| ↳ `description_html` | string | HTML formatted description | | ↳ `description_html` | string | HTML formatted description |
@@ -93,11 +93,11 @@ Retrieve a list of all event types for a user or organization
| ↳ `type` | string | Event type classification | | ↳ `type` | string | Event type classification |
| ↳ `updated_at` | string | ISO timestamp of last update | | ↳ `updated_at` | string | ISO timestamp of last update |
| `pagination` | object | Pagination information | | `pagination` | object | Pagination information |
| ↳ `count` | number | Number of results in this page | | ↳ `count` | number | Number of results in this page |
| ↳ `next_page` | string | URL to next page \(if available\) | | ↳ `next_page` | string | URL to next page \(if available\) |
| ↳ `previous_page` | string | URL to previous page \(if available\) | | ↳ `previous_page` | string | URL to previous page \(if available\) |
| ↳ `next_page_token` | string | Token for next page | | ↳ `next_page_token` | string | Token for next page |
| ↳ `previous_page_token` | string | Token for previous page | | ↳ `previous_page_token` | string | Token for previous page |
### `calendly_get_event_type` ### `calendly_get_event_type`
@@ -115,26 +115,26 @@ Get detailed information about a specific event type
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `resource` | object | Event type details | | `resource` | object | Event type details |
| ↳ `uri` | string | Canonical reference to the event type | | ↳ `uri` | string | Canonical reference to the event type |
| ↳ `name` | string | Event type name | | ↳ `name` | string | Event type name |
| ↳ `active` | boolean | Whether the event type is active | | ↳ `active` | boolean | Whether the event type is active |
| ↳ `booking_method` | string | Booking method | | ↳ `booking_method` | string | Booking method |
| ↳ `color` | string | Hex color code | | ↳ `color` | string | Hex color code |
| ↳ `created_at` | string | ISO timestamp of creation | | ↳ `created_at` | string | ISO timestamp of creation |
| ↳ `custom_questions` | array | Custom questions for invitees | | ↳ `custom_questions` | array | Custom questions for invitees |
| ↳ `name` | string | Question text | | ↳ `name` | string | Question text |
| ↳ `type` | string | Question type \(text, single_select, multi_select, etc.\) | | ↳ `type` | string | Question type \(text, single_select, multi_select, etc.\) |
| ↳ `position` | number | Question order | | ↳ `position` | number | Question order |
| ↳ `enabled` | boolean | Whether question is enabled | | ↳ `enabled` | boolean | Whether question is enabled |
| ↳ `required` | boolean | Whether question is required | | ↳ `required` | boolean | Whether question is required |
| ↳ `answer_choices` | array | Available answer choices | | ↳ `answer_choices` | array | Available answer choices |
| ↳ `description_html` | string | HTML formatted description | | ↳ `description_html` | string | HTML formatted description |
| ↳ `description_plain` | string | Plain text description | | ↳ `description_plain` | string | Plain text description |
| ↳ `duration` | number | Duration in minutes | | ↳ `duration` | number | Duration in minutes |
| ↳ `scheduling_url` | string | URL to scheduling page | | ↳ `scheduling_url` | string | URL to scheduling page |
| ↳ `slug` | string | Unique identifier for URLs | | ↳ `slug` | string | Unique identifier for URLs |
| ↳ `type` | string | Event type classification | | ↳ `type` | string | Event type classification |
| ↳ `updated_at` | string | ISO timestamp of last update | | ↳ `updated_at` | string | ISO timestamp of last update |
### `calendly_list_scheduled_events` ### `calendly_list_scheduled_events`
@@ -167,21 +167,21 @@ Retrieve a list of scheduled events for a user or organization
| ↳ `end_time` | string | ISO timestamp of event end | | ↳ `end_time` | string | ISO timestamp of event end |
| ↳ `event_type` | string | URI of the event type | | ↳ `event_type` | string | URI of the event type |
| ↳ `location` | object | Event location details | | ↳ `location` | object | Event location details |
| ↳ `type` | string | Location type \(e.g., | | ↳ `type` | string | Location type \(e.g., "zoom", "google_meet", "physical"\) |
| ↳ `location` | string | Location description | | ↳ `location` | string | Location description |
| ↳ `join_url` | string | URL to join online meeting \(if applicable\) | | ↳ `join_url` | string | URL to join online meeting \(if applicable\) |
| ↳ `invitees_counter` | object | Invitee count information | | ↳ `invitees_counter` | object | Invitee count information |
| ↳ `total` | number | Total number of invitees | | ↳ `total` | number | Total number of invitees |
| ↳ `active` | number | Number of active invitees | | ↳ `active` | number | Number of active invitees |
| ↳ `limit` | number | Maximum number of invitees | | ↳ `limit` | number | Maximum number of invitees |
| ↳ `created_at` | string | ISO timestamp of event creation | | ↳ `created_at` | string | ISO timestamp of event creation |
| ↳ `updated_at` | string | ISO timestamp of last update | | ↳ `updated_at` | string | ISO timestamp of last update |
| `pagination` | object | Pagination information | | `pagination` | object | Pagination information |
| ↳ `count` | number | Number of results in this page | | ↳ `count` | number | Number of results in this page |
| ↳ `next_page` | string | URL to next page \(if available\) | | ↳ `next_page` | string | URL to next page \(if available\) |
| ↳ `previous_page` | string | URL to previous page \(if available\) | | ↳ `previous_page` | string | URL to previous page \(if available\) |
| ↳ `next_page_token` | string | Token for next page | | ↳ `next_page_token` | string | Token for next page |
| ↳ `previous_page_token` | string | Token for previous page | | ↳ `previous_page_token` | string | Token for previous page |
### `calendly_get_scheduled_event` ### `calendly_get_scheduled_event`
@@ -199,30 +199,30 @@ Get detailed information about a specific scheduled event
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `resource` | object | Scheduled event details | | `resource` | object | Scheduled event details |
| ↳ `uri` | string | Canonical reference to the event | | ↳ `uri` | string | Canonical reference to the event |
| ↳ `name` | string | Event name | | ↳ `name` | string | Event name |
| ↳ `status` | string | Event status \(active or canceled\) | | ↳ `status` | string | Event status \(active or canceled\) |
| ↳ `start_time` | string | ISO timestamp of event start | | ↳ `start_time` | string | ISO timestamp of event start |
| ↳ `end_time` | string | ISO timestamp of event end | | ↳ `end_time` | string | ISO timestamp of event end |
| ↳ `event_type` | string | URI of the event type | | ↳ `event_type` | string | URI of the event type |
| ↳ `location` | object | Event location details | | ↳ `location` | object | Event location details |
| ↳ `type` | string | Location type | | ↳ `type` | string | Location type |
| ↳ `location` | string | Location description | | ↳ `location` | string | Location description |
| ↳ `join_url` | string | URL to join online meeting | | ↳ `join_url` | string | URL to join online meeting |
| ↳ `invitees_counter` | object | Invitee count information | | ↳ `invitees_counter` | object | Invitee count information |
| ↳ `total` | number | Total number of invitees | | ↳ `total` | number | Total number of invitees |
| ↳ `active` | number | Number of active invitees | | ↳ `active` | number | Number of active invitees |
| ↳ `limit` | number | Maximum number of invitees | | ↳ `limit` | number | Maximum number of invitees |
| ↳ `event_memberships` | array | Event hosts/members | | ↳ `event_memberships` | array | Event hosts/members |
| ↳ `user` | string | User URI | | ↳ `user` | string | User URI |
| ↳ `user_email` | string | User email | | ↳ `user_email` | string | User email |
| ↳ `user_name` | string | User name | | ↳ `user_name` | string | User name |
| ↳ `event_guests` | array | Additional guests | | ↳ `event_guests` | array | Additional guests |
| ↳ `email` | string | Guest email | | ↳ `email` | string | Guest email |
| ↳ `created_at` | string | When guest was added | | ↳ `created_at` | string | When guest was added |
| ↳ `updated_at` | string | When guest info was updated | | ↳ `updated_at` | string | When guest info was updated |
| ↳ `created_at` | string | ISO timestamp of event creation | | ↳ `created_at` | string | ISO timestamp of event creation |
| ↳ `updated_at` | string | ISO timestamp of last update | | ↳ `updated_at` | string | ISO timestamp of last update |
### `calendly_list_event_invitees` ### `calendly_list_event_invitees`
@@ -252,9 +252,9 @@ Retrieve a list of invitees for a scheduled event
| ↳ `last_name` | string | Invitee last name | | ↳ `last_name` | string | Invitee last name |
| ↳ `status` | string | Invitee status \(active or canceled\) | | ↳ `status` | string | Invitee status \(active or canceled\) |
| ↳ `questions_and_answers` | array | Responses to custom questions | | ↳ `questions_and_answers` | array | Responses to custom questions |
| ↳ `question` | string | Question text | | ↳ `question` | string | Question text |
| ↳ `answer` | string | Invitee answer | | ↳ `answer` | string | Invitee answer |
| ↳ `position` | number | Question order | | ↳ `position` | number | Question order |
| ↳ `timezone` | string | Invitee timezone | | ↳ `timezone` | string | Invitee timezone |
| ↳ `event` | string | URI of the scheduled event | | ↳ `event` | string | URI of the scheduled event |
| ↳ `created_at` | string | ISO timestamp when invitee was created | | ↳ `created_at` | string | ISO timestamp when invitee was created |
@@ -263,11 +263,11 @@ Retrieve a list of invitees for a scheduled event
| ↳ `reschedule_url` | string | URL to reschedule the booking | | ↳ `reschedule_url` | string | URL to reschedule the booking |
| ↳ `rescheduled` | boolean | Whether invitee rescheduled | | ↳ `rescheduled` | boolean | Whether invitee rescheduled |
| `pagination` | object | Pagination information | | `pagination` | object | Pagination information |
| ↳ `count` | number | Number of results in this page | | ↳ `count` | number | Number of results in this page |
| ↳ `next_page` | string | URL to next page \(if available\) | | ↳ `next_page` | string | URL to next page \(if available\) |
| ↳ `previous_page` | string | URL to previous page \(if available\) | | ↳ `previous_page` | string | URL to previous page \(if available\) |
| ↳ `next_page_token` | string | Token for next page | | ↳ `next_page_token` | string | Token for next page |
| ↳ `previous_page_token` | string | Token for previous page | | ↳ `previous_page_token` | string | Token for previous page |
### `calendly_cancel_event` ### `calendly_cancel_event`
@@ -286,9 +286,9 @@ Cancel a scheduled event
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `resource` | object | Cancellation details | | `resource` | object | Cancellation details |
| ↳ `canceler_type` | string | Type of canceler \(host or invitee\) | | ↳ `canceler_type` | string | Type of canceler \(host or invitee\) |
| ↳ `canceled_by` | string | Name of person who canceled | | ↳ `canceled_by` | string | Name of person who canceled |
| ↳ `reason` | string | Cancellation reason | | ↳ `reason` | string | Cancellation reason |
| ↳ `created_at` | string | ISO timestamp when event was canceled | | ↳ `created_at` | string | ISO timestamp when event was canceled |

View File

@@ -51,10 +51,10 @@ Populate Clay with data from a JSON file. Enables direct communication and notif
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `data` | json | Response data from Clay webhook | | `data` | json | Response data from Clay webhook |
| `metadata` | object | Webhook response metadata | | `metadata` | object | Webhook response metadata |
| ↳ `status` | number | HTTP status code | | ↳ `status` | number | HTTP status code |
| ↳ `statusText` | string | HTTP status text | | ↳ `statusText` | string | HTTP status text |
| ↳ `headers` | object | Response headers from Clay | | ↳ `headers` | object | Response headers from Clay |
| ↳ `timestamp` | string | ISO timestamp when webhook was received | | ↳ `timestamp` | string | ISO timestamp when webhook was received |
| ↳ `contentType` | string | Content type of the response | | ↳ `contentType` | string | Content type of the response |

View File

@@ -67,11 +67,11 @@ List all users in your Clerk application with optional filtering and pagination
| ↳ `primaryEmailAddressId` | string | Primary email address ID | | ↳ `primaryEmailAddressId` | string | Primary email address ID |
| ↳ `primaryPhoneNumberId` | string | Primary phone number ID | | ↳ `primaryPhoneNumberId` | string | Primary phone number ID |
| ↳ `emailAddresses` | array | User email addresses | | ↳ `emailAddresses` | array | User email addresses |
| ↳ `id` | string | Email address ID | | ↳ `id` | string | Email address ID |
| ↳ `emailAddress` | string | Email address | | ↳ `emailAddress` | string | Email address |
| ↳ `phoneNumbers` | array | User phone numbers | | ↳ `phoneNumbers` | array | User phone numbers |
| ↳ `id` | string | Phone number ID | | ↳ `id` | string | Phone number ID |
| ↳ `phoneNumber` | string | Phone number | | ↳ `phoneNumber` | string | Phone number |
| ↳ `externalId` | string | External system ID | | ↳ `externalId` | string | External system ID |
| ↳ `passwordEnabled` | boolean | Whether password is enabled | | ↳ `passwordEnabled` | boolean | Whether password is enabled |
| ↳ `twoFactorEnabled` | boolean | Whether 2FA is enabled | | ↳ `twoFactorEnabled` | boolean | Whether 2FA is enabled |

View File

@@ -140,7 +140,20 @@ Search for content across Confluence pages, blog posts, and other content.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ts` | string | Timestamp of search | | `ts` | string | Timestamp of search |
| `results` | array | Search results | | `results` | array | Array of search results |
| ↳ `id` | string | Unique content identifier |
| ↳ `title` | string | Content title |
| ↳ `type` | string | Content type \(e.g., page, blogpost, attachment, comment\) |
| ↳ `status` | string | Content status \(e.g., current\) |
| ↳ `url` | string | URL to view the content in Confluence |
| ↳ `excerpt` | string | Text excerpt matching the search query |
| ↳ `spaceKey` | string | Key of the space containing the content |
| ↳ `space` | object | Space information for the content |
| ↳ `id` | string | Space identifier |
| ↳ `key` | string | Space key |
| ↳ `name` | string | Space name |
| ↳ `lastModified` | string | ISO 8601 timestamp of last modification |
| ↳ `entityType` | string | Entity type identifier \(e.g., content, space\) |
### `confluence_create_comment` ### `confluence_create_comment`
@@ -180,8 +193,25 @@ List all comments on a Confluence page.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval | | `ts` | string | ISO 8601 timestamp of the operation |
| `comments` | array | List of comments | | `comments` | array | Array of Confluence comments |
| ↳ `id` | string | Unique comment identifier |
| ↳ `status` | string | Comment status \(e.g., current\) |
| ↳ `title` | string | Comment title |
| ↳ `pageId` | string | ID of the page the comment belongs to |
| ↳ `blogPostId` | string | ID of the blog post the comment belongs to |
| ↳ `parentCommentId` | string | ID of the parent comment |
| ↳ `body` | object | Comment body content |
| ↳ `value` | string | Comment body content |
| ↳ `representation` | string | Content representation format \(e.g., storage, view\) |
| ↳ `createdAt` | string | ISO 8601 timestamp when the comment was created |
| ↳ `authorId` | string | Account ID of the comment author |
| ↳ `version` | object | Comment version information |
| ↳ `number` | number | Version number |
| ↳ `message` | string | Version message |
| ↳ `minorEdit` | boolean | Whether this is a minor edit |
| ↳ `authorId` | string | Account ID of the version author |
| ↳ `createdAt` | string | ISO 8601 timestamp of version creation |
### `confluence_update_comment` ### `confluence_update_comment`
@@ -268,8 +298,24 @@ List all attachments on a Confluence page.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval | | `ts` | string | ISO 8601 timestamp of the operation |
| `attachments` | array | List of attachments | | `attachments` | array | Array of Confluence attachments |
| ↳ `id` | string | Unique attachment identifier \(prefixed with "att"\) |
| ↳ `title` | string | Attachment file name |
| ↳ `status` | string | Attachment status \(e.g., current, archived, trashed\) |
| ↳ `mediaType` | string | MIME type of the attachment |
| ↳ `fileSize` | number | File size in bytes |
| ↳ `downloadUrl` | string | URL to download the attachment |
| ↳ `webuiUrl` | string | URL to view the attachment in Confluence UI |
| ↳ `pageId` | string | ID of the page the attachment belongs to |
| ↳ `blogPostId` | string | ID of the blog post the attachment belongs to |
| ↳ `comment` | string | Comment/description of the attachment |
| ↳ `version` | object | Attachment version information |
| ↳ `number` | number | Version number |
| ↳ `message` | string | Version message |
| ↳ `minorEdit` | boolean | Whether this is a minor edit |
| ↳ `authorId` | string | Account ID of the version author |
| ↳ `createdAt` | string | ISO 8601 timestamp of version creation |
### `confluence_delete_attachment` ### `confluence_delete_attachment`
@@ -308,7 +354,10 @@ List all labels on a Confluence page.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval | | `ts` | string | Timestamp of retrieval |
| `labels` | array | List of labels | | `labels` | array | Array of labels on the page |
| ↳ `id` | string | Unique label identifier |
| ↳ `name` | string | Label name |
| ↳ `prefix` | string | Label prefix/type \(e.g., global, my, team\) |
### `confluence_get_space` ### `confluence_get_space`
@@ -350,7 +399,18 @@ List all Confluence spaces accessible to the user.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval | | `ts` | string | ISO 8601 timestamp of the operation |
| `spaces` | array | List of spaces | | `spaces` | array | Array of Confluence spaces |
| ↳ `id` | string | Unique space identifier |
| ↳ `key` | string | Space key \(short identifier used in URLs\) |
| ↳ `name` | string | Space name |
| ↳ `type` | string | Space type \(e.g., global, personal\) |
| ↳ `status` | string | Space status \(e.g., current, archived\) |
| ↳ `authorId` | string | Account ID of the space creator |
| ↳ `createdAt` | string | ISO 8601 timestamp when the space was created |
| ↳ `homepageId` | string | ID of the space homepage |
| ↳ `description` | object | Space description |
| ↳ `value` | string | Description text content |
| ↳ `representation` | string | Content representation format \(e.g., plain, view, storage\) |

View File

@@ -99,15 +99,15 @@ Post an event to the Datadog event stream. Use for deployment notifications, ale
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `event` | object | The created event details | | `event` | object | The created event details |
| ↳ `id` | number | Event ID | | ↳ `id` | number | Event ID |
| ↳ `title` | string | Event title | | ↳ `title` | string | Event title |
| ↳ `text` | string | Event text | | ↳ `text` | string | Event text |
| ↳ `date_happened` | number | Unix timestamp when event occurred | | ↳ `date_happened` | number | Unix timestamp when event occurred |
| ↳ `priority` | string | Event priority | | ↳ `priority` | string | Event priority |
| ↳ `alert_type` | string | Alert type | | ↳ `alert_type` | string | Alert type |
| ↳ `host` | string | Associated host | | ↳ `host` | string | Associated host |
| ↳ `tags` | array | Event tags | | ↳ `tags` | array | Event tags |
| ↳ `url` | string | URL to view the event in Datadog | | ↳ `url` | string | URL to view the event in Datadog |
### `datadog_create_monitor` ### `datadog_create_monitor`
@@ -133,16 +133,16 @@ Create a new monitor/alert in Datadog. Monitors can track metrics, service check
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `monitor` | object | The created monitor details | | `monitor` | object | The created monitor details |
| ↳ `id` | number | Monitor ID | | ↳ `id` | number | Monitor ID |
| ↳ `name` | string | Monitor name | | ↳ `name` | string | Monitor name |
| ↳ `type` | string | Monitor type | | ↳ `type` | string | Monitor type |
| ↳ `query` | string | Monitor query | | ↳ `query` | string | Monitor query |
| ↳ `message` | string | Notification message | | ↳ `message` | string | Notification message |
| ↳ `tags` | array | Monitor tags | | ↳ `tags` | array | Monitor tags |
| ↳ `priority` | number | Monitor priority | | ↳ `priority` | number | Monitor priority |
| ↳ `overall_state` | string | Current monitor state | | ↳ `overall_state` | string | Current monitor state |
| ↳ `created` | string | Creation timestamp | | ↳ `created` | string | Creation timestamp |
| ↳ `modified` | string | Last modification timestamp | | ↳ `modified` | string | Last modification timestamp |
### `datadog_get_monitor` ### `datadog_get_monitor`
@@ -164,16 +164,16 @@ Retrieve details of a specific monitor by ID.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `monitor` | object | The monitor details | | `monitor` | object | The monitor details |
| ↳ `id` | number | Monitor ID | | ↳ `id` | number | Monitor ID |
| ↳ `name` | string | Monitor name | | ↳ `name` | string | Monitor name |
| ↳ `type` | string | Monitor type | | ↳ `type` | string | Monitor type |
| ↳ `query` | string | Monitor query | | ↳ `query` | string | Monitor query |
| ↳ `message` | string | Notification message | | ↳ `message` | string | Notification message |
| ↳ `tags` | array | Monitor tags | | ↳ `tags` | array | Monitor tags |
| ↳ `priority` | number | Monitor priority | | ↳ `priority` | number | Monitor priority |
| ↳ `overall_state` | string | Current monitor state | | ↳ `overall_state` | string | Current monitor state |
| ↳ `created` | string | Creation timestamp | | ↳ `created` | string | Creation timestamp |
| ↳ `modified` | string | Last modification timestamp | | ↳ `modified` | string | Last modification timestamp |
### `datadog_list_monitors` ### `datadog_list_monitors`
@@ -252,11 +252,11 @@ Search and retrieve logs from Datadog. Use for troubleshooting, analysis, or mon
| `logs` | array | List of log entries | | `logs` | array | List of log entries |
| ↳ `id` | string | Log ID | | ↳ `id` | string | Log ID |
| ↳ `content` | object | Log content | | ↳ `content` | object | Log content |
| ↳ `timestamp` | string | Log timestamp | | ↳ `timestamp` | string | Log timestamp |
| ↳ `host` | string | Host name | | ↳ `host` | string | Host name |
| ↳ `service` | string | Service name | | ↳ `service` | string | Service name |
| ↳ `message` | string | Log message | | ↳ `message` | string | Log message |
| ↳ `status` | string | Log status/level | | ↳ `status` | string | Log status/level |
| `nextLogId` | string | Cursor for pagination | | `nextLogId` | string | Cursor for pagination |
### `datadog_send_logs` ### `datadog_send_logs`
@@ -302,12 +302,12 @@ Schedule a downtime to suppress monitor notifications during maintenance windows
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `downtime` | object | The created downtime details | | `downtime` | object | The created downtime details |
| ↳ `id` | number | Downtime ID | | ↳ `id` | number | Downtime ID |
| ↳ `scope` | array | Downtime scope | | ↳ `scope` | array | Downtime scope |
| ↳ `message` | string | Downtime message | | ↳ `message` | string | Downtime message |
| ↳ `start` | number | Start time \(Unix timestamp\) | | ↳ `start` | number | Start time \(Unix timestamp\) |
| ↳ `end` | number | End time \(Unix timestamp\) | | ↳ `end` | number | End time \(Unix timestamp\) |
| ↳ `active` | boolean | Whether downtime is currently active | | ↳ `active` | boolean | Whether downtime is currently active |
### `datadog_list_downtimes` ### `datadog_list_downtimes`

View File

@@ -64,21 +64,21 @@ Send a message to a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Discord message data | | `data` | object | Discord message data |
| ↳ `id` | string | Message ID | | ↳ `id` | string | Message ID |
| ↳ `content` | string | Message content | | ↳ `content` | string | Message content |
| ↳ `channel_id` | string | Channel ID where message was sent | | ↳ `channel_id` | string | Channel ID where message was sent |
| ↳ `author` | object | Message author information | | ↳ `author` | object | Message author information |
| ↳ `id` | string | Author user ID | | ↳ `id` | string | Author user ID |
| ↳ `username` | string | Author username | | ↳ `username` | string | Author username |
| ↳ `avatar` | string | Author avatar hash | | ↳ `avatar` | string | Author avatar hash |
| ↳ `bot` | boolean | Whether author is a bot | | ↳ `bot` | boolean | Whether author is a bot |
| ↳ `timestamp` | string | Message timestamp | | ↳ `timestamp` | string | Message timestamp |
| ↳ `edited_timestamp` | string | Message edited timestamp | | ↳ `edited_timestamp` | string | Message edited timestamp |
| ↳ `embeds` | array | Message embeds | | ↳ `embeds` | array | Message embeds |
| ↳ `attachments` | array | Message attachments | | ↳ `attachments` | array | Message attachments |
| ↳ `mentions` | array | User mentions in message | | ↳ `mentions` | array | User mentions in message |
| ↳ `mention_roles` | array | Role mentions in message | | ↳ `mention_roles` | array | Role mentions in message |
| ↳ `mention_everyone` | boolean | Whether message mentions everyone | | ↳ `mention_everyone` | boolean | Whether message mentions everyone |
### `discord_get_messages` ### `discord_get_messages`
@@ -98,23 +98,23 @@ Retrieve messages from a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Container for messages data | | `data` | object | Container for messages data |
| ↳ `messages` | array | Array of Discord messages with full metadata | | ↳ `messages` | array | Array of Discord messages with full metadata |
| ↳ `id` | string | Message ID | | ↳ `id` | string | Message ID |
| ↳ `content` | string | Message content | | ↳ `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 |
| ↳ `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 |
| ↳ `channel_id` | string | Channel ID | | ↳ `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 |
| ↳ `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 |
| ↳ `channel_id` | string | Channel ID |
### `discord_get_server` ### `discord_get_server`
@@ -133,14 +133,14 @@ Retrieve information about a Discord server (guild)
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Discord server \(guild\) information | | `data` | object | Discord server \(guild\) information |
| ↳ `id` | string | Server ID | | ↳ `id` | string | Server ID |
| ↳ `name` | string | Server name | | ↳ `name` | string | Server name |
| ↳ `icon` | string | Server icon hash | | ↳ `icon` | string | Server icon hash |
| ↳ `description` | string | Server description | | ↳ `description` | string | Server description |
| ↳ `owner_id` | string | Server owner user ID | | ↳ `owner_id` | string | Server owner user ID |
| ↳ `roles` | array | Server roles | | ↳ `roles` | array | Server roles |
| ↳ `channels` | array | Server channels | | ↳ `channels` | array | Server channels |
| ↳ `member_count` | number | Number of members in server | | ↳ `member_count` | number | Number of members in server |
### `discord_get_user` ### `discord_get_user`
@@ -159,14 +159,14 @@ Retrieve information about a Discord user
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Discord user information | | `data` | object | Discord user information |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `username` | string | Username | | ↳ `username` | string | Username |
| ↳ `discriminator` | string | User discriminator \(4-digit number\) | | ↳ `discriminator` | string | User discriminator \(4-digit number\) |
| ↳ `avatar` | string | User avatar hash | | ↳ `avatar` | string | User avatar hash |
| ↳ `bot` | boolean | Whether user is a bot | | ↳ `bot` | boolean | Whether user is a bot |
| ↳ `system` | boolean | Whether user is a system user | | ↳ `system` | boolean | Whether user is a system user |
| ↳ `email` | string | User email \(if available\) | | ↳ `email` | string | User email \(if available\) |
| ↳ `verified` | boolean | Whether user email is verified | | ↳ `verified` | boolean | Whether user email is verified |
### `discord_edit_message` ### `discord_edit_message`
@@ -188,10 +188,10 @@ Edit an existing message in a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Updated Discord message data | | `data` | object | Updated Discord message data |
| ↳ `id` | string | Message ID | | ↳ `id` | string | Message ID |
| ↳ `content` | string | Updated message content | | ↳ `content` | string | Updated message content |
| ↳ `channel_id` | string | Channel ID | | ↳ `channel_id` | string | Channel ID |
| ↳ `edited_timestamp` | string | Message edited timestamp | | ↳ `edited_timestamp` | string | Message edited timestamp |
### `discord_delete_message` ### `discord_delete_message`
@@ -312,11 +312,11 @@ Create a thread in a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Created thread data | | `data` | object | Created thread data |
| ↳ `id` | string | Thread ID | | ↳ `id` | string | Thread ID |
| ↳ `name` | string | Thread name | | ↳ `name` | string | Thread name |
| ↳ `type` | number | Thread channel type | | ↳ `type` | number | Thread channel type |
| ↳ `guild_id` | string | Server ID | | ↳ `guild_id` | string | Server ID |
| ↳ `parent_id` | string | Parent channel ID | | ↳ `parent_id` | string | Parent channel ID |
### `discord_join_thread` ### `discord_join_thread`
@@ -373,8 +373,8 @@ Archive or unarchive a thread in Discord
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Updated thread data | | `data` | object | Updated thread data |
| ↳ `id` | string | Thread ID | | ↳ `id` | string | Thread ID |
| ↳ `archived` | boolean | Whether thread is archived | | ↳ `archived` | boolean | Whether thread is archived |
### `discord_create_channel` ### `discord_create_channel`
@@ -397,10 +397,10 @@ Create a new channel in a Discord server
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Created channel data | | `data` | object | Created channel data |
| ↳ `id` | string | Channel ID | | ↳ `id` | string | Channel ID |
| ↳ `name` | string | Channel name | | ↳ `name` | string | Channel name |
| ↳ `type` | number | Channel type | | ↳ `type` | number | Channel type |
| ↳ `guild_id` | string | Server ID | | ↳ `guild_id` | string | Server ID |
### `discord_update_channel` ### `discord_update_channel`
@@ -422,10 +422,10 @@ Update a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Updated channel data | | `data` | object | Updated channel data |
| ↳ `id` | string | Channel ID | | ↳ `id` | string | Channel ID |
| ↳ `name` | string | Channel name | | ↳ `name` | string | Channel name |
| ↳ `type` | number | Channel type | | ↳ `type` | number | Channel type |
| ↳ `topic` | string | Channel topic | | ↳ `topic` | string | Channel topic |
### `discord_delete_channel` ### `discord_delete_channel`
@@ -463,11 +463,11 @@ Get information about a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Channel data | | `data` | object | Channel data |
| ↳ `id` | string | Channel ID | | ↳ `id` | string | Channel ID |
| ↳ `name` | string | Channel name | | ↳ `name` | string | Channel name |
| ↳ `type` | number | Channel type | | ↳ `type` | number | Channel type |
| ↳ `topic` | string | Channel topic | | ↳ `topic` | string | Channel topic |
| ↳ `guild_id` | string | Server ID | | ↳ `guild_id` | string | Server ID |
### `discord_create_role` ### `discord_create_role`
@@ -490,11 +490,11 @@ Create a new role in a Discord server
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Created role data | | `data` | object | Created role data |
| ↳ `id` | string | Role ID | | ↳ `id` | string | Role ID |
| ↳ `name` | string | Role name | | ↳ `name` | string | Role name |
| ↳ `color` | number | Role color | | ↳ `color` | number | Role color |
| ↳ `hoist` | boolean | Whether role is hoisted | | ↳ `hoist` | boolean | Whether role is hoisted |
| ↳ `mentionable` | boolean | Whether role is mentionable | | ↳ `mentionable` | boolean | Whether role is mentionable |
### `discord_update_role` ### `discord_update_role`
@@ -518,9 +518,9 @@ Update a role in a Discord server
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Updated role data | | `data` | object | Updated role data |
| ↳ `id` | string | Role ID | | ↳ `id` | string | Role ID |
| ↳ `name` | string | Role name | | ↳ `name` | string | Role name |
| ↳ `color` | number | Role color | | ↳ `color` | number | Role color |
### `discord_delete_role` ### `discord_delete_role`
@@ -654,13 +654,13 @@ Get information about a member in a Discord server
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Member data | | `data` | object | Member data |
| ↳ `user` | object | User information | | ↳ `user` | object | User information |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `username` | string | Username | | ↳ `username` | string | Username |
| ↳ `avatar` | string | Avatar hash | | ↳ `avatar` | string | Avatar hash |
| ↳ `nick` | string | Server nickname | | ↳ `nick` | string | Server nickname |
| ↳ `roles` | array | Array of role IDs | | ↳ `roles` | array | Array of role IDs |
| ↳ `joined_at` | string | When the member joined | | ↳ `joined_at` | string | When the member joined |
### `discord_update_member` ### `discord_update_member`
@@ -683,9 +683,9 @@ Update a member in a Discord server (e.g., change nickname)
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Updated member data | | `data` | object | Updated member data |
| ↳ `nick` | string | Server nickname | | ↳ `nick` | string | Server nickname |
| ↳ `mute` | boolean | Voice mute status | | ↳ `mute` | boolean | Voice mute status |
| ↳ `deaf` | boolean | Voice deaf status | | ↳ `deaf` | boolean | Voice deaf status |
### `discord_create_invite` ### `discord_create_invite`
@@ -708,11 +708,11 @@ Create an invite link for a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Created invite data | | `data` | object | Created invite data |
| ↳ `code` | string | Invite code | | ↳ `code` | string | Invite code |
| ↳ `url` | string | Full invite URL | | ↳ `url` | string | Full invite URL |
| ↳ `max_age` | number | Max age in seconds | | ↳ `max_age` | number | Max age in seconds |
| ↳ `max_uses` | number | Max uses | | ↳ `max_uses` | number | Max uses |
| ↳ `temporary` | boolean | Whether temporary | | ↳ `temporary` | boolean | Whether temporary |
### `discord_get_invite` ### `discord_get_invite`
@@ -732,11 +732,11 @@ Get information about a Discord invite
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Invite data | | `data` | object | Invite data |
| ↳ `code` | string | Invite code | | ↳ `code` | string | Invite code |
| ↳ `guild` | object | Server information | | ↳ `guild` | object | Server information |
| ↳ `channel` | object | Channel information | | ↳ `channel` | object | Channel information |
| ↳ `approximate_member_count` | number | Approximate member count | | ↳ `approximate_member_count` | number | Approximate member count |
| ↳ `approximate_presence_count` | number | Approximate online count | | ↳ `approximate_presence_count` | number | Approximate online count |
### `discord_delete_invite` ### `discord_delete_invite`
@@ -775,11 +775,11 @@ Create a webhook in a Discord channel
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Created webhook data | | `data` | object | Created webhook data |
| ↳ `id` | string | Webhook ID | | ↳ `id` | string | Webhook ID |
| ↳ `name` | string | Webhook name | | ↳ `name` | string | Webhook name |
| ↳ `token` | string | Webhook token | | ↳ `token` | string | Webhook token |
| ↳ `url` | string | Webhook URL | | ↳ `url` | string | Webhook URL |
| ↳ `channel_id` | string | Channel ID | | ↳ `channel_id` | string | Channel ID |
### `discord_execute_webhook` ### `discord_execute_webhook`
@@ -801,10 +801,10 @@ Execute a Discord webhook to send a message
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Message sent via webhook | | `data` | object | Message sent via webhook |
| ↳ `id` | string | Message ID | | ↳ `id` | string | Message ID |
| ↳ `content` | string | Message content | | ↳ `content` | string | Message content |
| ↳ `channel_id` | string | Channel ID | | ↳ `channel_id` | string | Channel ID |
| ↳ `timestamp` | string | Message timestamp | | ↳ `timestamp` | string | Message timestamp |
### `discord_get_webhook` ### `discord_get_webhook`
@@ -824,11 +824,11 @@ Get information about a Discord webhook
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Webhook data | | `data` | object | Webhook data |
| ↳ `id` | string | Webhook ID | | ↳ `id` | string | Webhook ID |
| ↳ `name` | string | Webhook name | | ↳ `name` | string | Webhook name |
| ↳ `channel_id` | string | Channel ID | | ↳ `channel_id` | string | Channel ID |
| ↳ `guild_id` | string | Server ID | | ↳ `guild_id` | string | Server ID |
| ↳ `token` | string | Webhook token | | ↳ `token` | string | Webhook token |
### `discord_delete_webhook` ### `discord_delete_webhook`

View File

@@ -54,15 +54,15 @@ Upload a file to Dropbox
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | object | The uploaded file metadata | | `file` | object | The uploaded file metadata |
| ↳ `id` | string | Unique identifier for the file | | ↳ `id` | string | Unique identifier for the file |
| ↳ `name` | string | Name of the file | | ↳ `name` | string | Name of the file |
| ↳ `path_display` | string | Display path of the file | | ↳ `path_display` | string | Display path of the file |
| ↳ `path_lower` | string | Lowercase path of the file | | ↳ `path_lower` | string | Lowercase path of the file |
| ↳ `size` | number | Size of the file in bytes | | ↳ `size` | number | Size of the file in bytes |
| ↳ `client_modified` | string | Client modification time | | ↳ `client_modified` | string | Client modification time |
| ↳ `server_modified` | string | Server modification time | | ↳ `server_modified` | string | Server modification time |
| ↳ `rev` | string | Revision identifier | | ↳ `rev` | string | Revision identifier |
| ↳ `content_hash` | string | Content hash for the file | | ↳ `content_hash` | string | Content hash for the file |
### `dropbox_download` ### `dropbox_download`
@@ -79,10 +79,10 @@ Download a file from Dropbox and get a temporary link
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | object | The file metadata | | `file` | object | The file metadata |
| ↳ `id` | string | Unique identifier for the file | | ↳ `id` | string | Unique identifier for the file |
| ↳ `name` | string | Name of the file | | ↳ `name` | string | Name of the file |
| ↳ `path_display` | string | Display path of the file | | ↳ `path_display` | string | Display path of the file |
| ↳ `size` | number | Size of the file in bytes | | ↳ `size` | number | Size of the file in bytes |
| `temporaryLink` | string | Temporary link to download the file \(valid for ~4 hours\) | | `temporaryLink` | string | Temporary link to download the file \(valid for ~4 hours\) |
| `content` | string | Base64 encoded file content \(if fetched\) | | `content` | string | Base64 encoded file content \(if fetched\) |
@@ -128,10 +128,10 @@ Create a new folder in Dropbox
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `folder` | object | The created folder metadata | | `folder` | object | The created folder metadata |
| ↳ `id` | string | Unique identifier for the folder | | ↳ `id` | string | Unique identifier for the folder |
| ↳ `name` | string | Name of the folder | | ↳ `name` | string | Name of the folder |
| ↳ `path_display` | string | Display path of the folder | | ↳ `path_display` | string | Display path of the folder |
| ↳ `path_lower` | string | Lowercase path of the folder | | ↳ `path_lower` | string | Lowercase path of the folder |
### `dropbox_delete` ### `dropbox_delete`
@@ -148,8 +148,8 @@ Delete a file or folder in Dropbox (moves to trash)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `metadata` | object | Metadata of the deleted item | | `metadata` | object | Metadata of the deleted item |
| ↳ `name` | string | Name of the deleted item | | ↳ `name` | string | Name of the deleted item |
| ↳ `path_display` | string | Display path | | ↳ `path_display` | string | Display path |
| `deleted` | boolean | Whether the deletion was successful | | `deleted` | boolean | Whether the deletion was successful |
### `dropbox_copy` ### `dropbox_copy`
@@ -169,10 +169,10 @@ Copy a file or folder in Dropbox
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `metadata` | object | Metadata of the copied item | | `metadata` | object | Metadata of the copied item |
| ↳ `id` | string | Unique identifier | | ↳ `id` | string | Unique identifier |
| ↳ `name` | string | Name of the copied item | | ↳ `name` | string | Name of the copied item |
| ↳ `path_display` | string | Display path | | ↳ `path_display` | string | Display path |
| ↳ `size` | number | Size in bytes \(files only\) | | ↳ `size` | number | Size in bytes \(files only\) |
### `dropbox_move` ### `dropbox_move`
@@ -191,10 +191,10 @@ Move or rename a file or folder in Dropbox
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `metadata` | object | Metadata of the moved item | | `metadata` | object | Metadata of the moved item |
| ↳ `id` | string | Unique identifier | | ↳ `id` | string | Unique identifier |
| ↳ `name` | string | Name of the moved item | | ↳ `name` | string | Name of the moved item |
| ↳ `path_display` | string | Display path | | ↳ `path_display` | string | Display path |
| ↳ `size` | number | Size in bytes \(files only\) | | ↳ `size` | number | Size in bytes \(files only\) |
### `dropbox_get_metadata` ### `dropbox_get_metadata`
@@ -213,15 +213,15 @@ Get metadata for a file or folder in Dropbox
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `metadata` | object | Metadata for the file or folder | | `metadata` | object | Metadata for the file or folder |
| ↳ `id` | string | Unique identifier | | ↳ `id` | string | Unique identifier |
| ↳ `name` | string | Name of the item | | ↳ `name` | string | Name of the item |
| ↳ `path_display` | string | Display path | | ↳ `path_display` | string | Display path |
| ↳ `path_lower` | string | Lowercase path | | ↳ `path_lower` | string | Lowercase path |
| ↳ `size` | number | Size in bytes \(files only\) | | ↳ `size` | number | Size in bytes \(files only\) |
| ↳ `client_modified` | string | Client modification time | | ↳ `client_modified` | string | Client modification time |
| ↳ `server_modified` | string | Server modification time | | ↳ `server_modified` | string | Server modification time |
| ↳ `rev` | string | Revision identifier | | ↳ `rev` | string | Revision identifier |
| ↳ `content_hash` | string | Content hash | | ↳ `content_hash` | string | Content hash |
### `dropbox_create_shared_link` ### `dropbox_create_shared_link`
@@ -241,11 +241,11 @@ Create a shareable link for a file or folder in Dropbox
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `sharedLink` | object | The created shared link | | `sharedLink` | object | The created shared link |
| ↳ `url` | string | The shared link URL | | ↳ `url` | string | The shared link URL |
| ↳ `name` | string | Name of the shared item | | ↳ `name` | string | Name of the shared item |
| ↳ `path_lower` | string | Lowercase path of the shared item | | ↳ `path_lower` | string | Lowercase path of the shared item |
| ↳ `expires` | string | Expiration date if set | | ↳ `expires` | string | Expiration date if set |
| ↳ `link_permissions` | object | Permissions for the shared link | | ↳ `link_permissions` | object | Permissions for the shared link |
### `dropbox_search` ### `dropbox_search`

View File

@@ -66,7 +66,7 @@ Search the web using Exa AI. Returns relevant search results with titles, URLs,
| ↳ `publishedDate` | string | Date when the content was published | | ↳ `publishedDate` | string | Date when the content was published |
| ↳ `author` | string | The author of the content | | ↳ `author` | string | The author of the content |
| ↳ `summary` | string | A brief summary of the content | | ↳ `summary` | string | A brief summary of the content |
| ↳ `favicon` | string | URL of the site | | ↳ `favicon` | string | URL of the site's favicon |
| ↳ `image` | string | URL of a representative image from the page | | ↳ `image` | string | URL of a representative image from the page |
| ↳ `text` | string | Text snippet or full content from the page | | ↳ `text` | string | Text snippet or full content from the page |
| ↳ `score` | number | Relevance score for the search result | | ↳ `score` | number | Relevance score for the search result |

View File

@@ -61,6 +61,20 @@ Extract structured content from web pages with comprehensive metadata support. C
| `markdown` | string | Page content in markdown format | | `markdown` | string | Page content in markdown format |
| `html` | string | Raw HTML content of the page | | `html` | string | Raw HTML content of the page |
| `metadata` | object | Page metadata including SEO and Open Graph information | | `metadata` | object | Page metadata including SEO and Open Graph information |
| ↳ `title` | string | Page title |
| ↳ `description` | string | Page meta description |
| ↳ `language` | string | Page language code \(e.g., "en"\) |
| ↳ `sourceURL` | string | Original source URL that was scraped |
| ↳ `statusCode` | number | HTTP status code of the response |
| ↳ `keywords` | string | Page meta keywords |
| ↳ `robots` | string | Robots meta directive \(e.g., "follow, index"\) |
| ↳ `ogTitle` | string | Open Graph title |
| ↳ `ogDescription` | string | Open Graph description |
| ↳ `ogUrl` | string | Open Graph URL |
| ↳ `ogImage` | string | Open Graph image URL |
| ↳ `ogLocaleAlternate` | array | Alternate locale versions for Open Graph |
| ↳ `ogSiteName` | string | Open Graph site name |
| ↳ `error` | string | Error message if scrape failed |
### `firecrawl_search` ### `firecrawl_search`
@@ -77,7 +91,21 @@ Search for information on the web using Firecrawl
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `data` | array | Search results data | | `data` | array | Search results data with scraped content and metadata |
| ↳ `title` | string | Search result title from search engine |
| ↳ `description` | string | Search result description/snippet from search engine |
| ↳ `url` | string | URL of the search result |
| ↳ `markdown` | string | Page content in markdown \(when scrapeOptions.formats includes "markdown"\) |
| ↳ `html` | string | Processed HTML content \(when scrapeOptions.formats includes "html"\) |
| ↳ `rawHtml` | string | Unprocessed raw HTML \(when scrapeOptions.formats includes "rawHtml"\) |
| ↳ `links` | array | Links found on the page \(when scrapeOptions.formats includes "links"\) |
| ↳ `screenshot` | string | Screenshot URL \(expires after 24 hours, when scrapeOptions.formats includes "screenshot"\) |
| ↳ `metadata` | object | Metadata about the search result page |
| ↳ `title` | string | Page title |
| ↳ `description` | string | Page meta description |
| ↳ `sourceURL` | string | Original source URL |
| ↳ `statusCode` | number | HTTP status code |
| ↳ `error` | string | Error message if scrape failed |
### `firecrawl_crawl` ### `firecrawl_crawl`
@@ -98,13 +126,17 @@ Crawl entire websites and extract structured content from all accessible pages
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pages` | array | Array of crawled pages with their content and metadata | | `pages` | array | Array of crawled pages with their content and metadata |
| ↳ `markdown` | string | Page content in markdown format | | ↳ `markdown` | string | Page content in markdown format |
| ↳ `html` | string | Page HTML content | | ↳ `html` | string | Processed HTML content of the page |
| ↳ `metadata` | object | Page metadata | | ↳ `rawHtml` | string | Unprocessed raw HTML content |
| ↳ `title` | string | Page title | | ↳ `links` | array | Array of links found on the page |
| ↳ `description` | string | Page description | | ↳ `screenshot` | string | Screenshot URL \(expires after 24 hours\) |
| ↳ `language` | string | Page language | | ↳ `metadata` | object | Page metadata from crawl operation |
| ↳ `sourceURL` | string | Source URL of the page | | ↳ `title` | string | Page title |
| ↳ `statusCode` | number | HTTP status code | | ↳ `description` | string | Page meta description |
| ↳ `language` | string | Page language code |
| ↳ `sourceURL` | string | Original source URL |
| ↳ `statusCode` | number | HTTP status code |
| ↳ `ogLocaleAlternate` | array | Alternate locale versions |
| `total` | number | Total number of pages found during crawl | | `total` | number | Total number of pages found during crawl |
| `creditsUsed` | number | Number of credits consumed by the crawl operation | | `creditsUsed` | number | Number of credits consumed by the crawl operation |

View File

@@ -75,18 +75,18 @@ Get a single transcript with full details including summary, action items, and a
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `transcript` | object | The transcript with full details | | `transcript` | object | The transcript with full details |
| ↳ `id` | string | Transcript ID | | ↳ `id` | string | Transcript ID |
| ↳ `title` | string | Meeting title | | ↳ `title` | string | Meeting title |
| ↳ `date` | number | Meeting timestamp | | ↳ `date` | number | Meeting timestamp |
| ↳ `duration` | number | Meeting duration in seconds | | ↳ `duration` | number | Meeting duration in seconds |
| ↳ `transcript_url` | string | URL to view transcript | | ↳ `transcript_url` | string | URL to view transcript |
| ↳ `audio_url` | string | URL to audio recording | | ↳ `audio_url` | string | URL to audio recording |
| ↳ `host_email` | string | Host email address | | ↳ `host_email` | string | Host email address |
| ↳ `participants` | array | List of participant emails | | ↳ `participants` | array | List of participant emails |
| ↳ `speakers` | array | List of speakers | | ↳ `speakers` | array | List of speakers |
| ↳ `sentences` | array | Transcript sentences | | ↳ `sentences` | array | Transcript sentences |
| ↳ `summary` | object | Meeting summary and action items | | ↳ `summary` | object | Meeting summary and action items |
| ↳ `analytics` | object | Meeting analytics and sentiment | | ↳ `analytics` | object | Meeting analytics and sentiment |
### `fireflies_get_user` ### `fireflies_get_user`
@@ -104,15 +104,15 @@ Get user information from Fireflies.ai. Returns current user if no ID specified.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | User information | | `user` | object | User information |
| ↳ `user_id` | string | User ID | | ↳ `user_id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `integrations` | array | Connected integrations | | ↳ `integrations` | array | Connected integrations |
| ↳ `is_admin` | boolean | Whether user is admin | | ↳ `is_admin` | boolean | Whether user is admin |
| ↳ `minutes_consumed` | number | Total minutes transcribed | | ↳ `minutes_consumed` | number | Total minutes transcribed |
| ↳ `num_transcripts` | number | Number of transcripts | | ↳ `num_transcripts` | number | Number of transcripts |
| ↳ `recent_transcript` | string | Most recent transcript ID | | ↳ `recent_transcript` | string | Most recent transcript ID |
| ↳ `recent_meeting` | string | Most recent meeting date | | ↳ `recent_meeting` | string | Most recent meeting date |
### `fireflies_list_users` ### `fireflies_list_users`
@@ -214,9 +214,9 @@ Create a soundbite/highlight from a specific time range in a transcript
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `bite` | object | Created bite details | | `bite` | object | Created bite details |
| ↳ `id` | string | Bite ID | | ↳ `id` | string | Bite ID |
| ↳ `name` | string | Bite name | | ↳ `name` | string | Bite name |
| ↳ `status` | string | Processing status | | ↳ `status` | string | Processing status |
### `fireflies_list_bites` ### `fireflies_list_bites`

File diff suppressed because it is too large Load Diff

View File

@@ -87,10 +87,10 @@ Read content from a Google Docs document
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `content` | string | Extracted document text content | | `content` | string | Extracted document text content |
| `metadata` | json | Document metadata including ID, title, and URL | | `metadata` | json | Document metadata including ID, title, and URL |
| ↳ `documentId` | string | Google Docs document ID | | ↳ `documentId` | string | Google Docs document ID |
| ↳ `title` | string | Document title | | ↳ `title` | string | Document title |
| ↳ `mimeType` | string | Document MIME type | | ↳ `mimeType` | string | Document MIME type |
| ↳ `url` | string | Document URL | | ↳ `url` | string | Document URL |
### `google_docs_write` ### `google_docs_write`
@@ -109,10 +109,10 @@ Write or update content in a Google Docs document
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `updatedContent` | boolean | Indicates if document content was updated successfully | | `updatedContent` | boolean | Indicates if document content was updated successfully |
| `metadata` | json | Updated document metadata including ID, title, and URL | | `metadata` | json | Updated document metadata including ID, title, and URL |
| ↳ `documentId` | string | Google Docs document ID | | ↳ `documentId` | string | Google Docs document ID |
| ↳ `title` | string | Document title | | ↳ `title` | string | Document title |
| ↳ `mimeType` | string | Document MIME type | | ↳ `mimeType` | string | Document MIME type |
| ↳ `url` | string | Document URL | | ↳ `url` | string | Document URL |
### `google_docs_create` ### `google_docs_create`
@@ -132,9 +132,9 @@ Create a new Google Docs document
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `metadata` | json | Created document metadata including ID, title, and URL | | `metadata` | json | Created document metadata including ID, title, and URL |
| ↳ `documentId` | string | Google Docs document ID | | ↳ `documentId` | string | Google Docs document ID |
| ↳ `title` | string | Document title | | ↳ `title` | string | Document title |
| ↳ `mimeType` | string | Document MIME type | | ↳ `mimeType` | string | Document MIME type |
| ↳ `url` | string | Document URL | | ↳ `url` | string | Document URL |

View File

@@ -134,29 +134,29 @@ Get metadata for a specific file in Google Drive by its ID
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | json | The file metadata | | `file` | json | The file metadata |
| ↳ `id` | string | Google Drive file ID | | ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type | | ↳ `mimeType` | string | MIME type |
| ↳ `description` | string | File description | | ↳ `description` | string | File description |
| ↳ `size` | string | File size in bytes | | ↳ `size` | string | File size in bytes |
| ↳ `starred` | boolean | Whether file is starred | | ↳ `starred` | boolean | Whether file is starred |
| ↳ `trashed` | boolean | Whether file is in trash | | ↳ `trashed` | boolean | Whether file is in trash |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
| ↳ `webContentLink` | string | Direct download URL | | ↳ `webContentLink` | string | Direct download URL |
| ↳ `iconLink` | string | URL to file icon | | ↳ `iconLink` | string | URL to file icon |
| ↳ `thumbnailLink` | string | URL to thumbnail | | ↳ `thumbnailLink` | string | URL to thumbnail |
| ↳ `parents` | json | Parent folder IDs | | ↳ `parents` | json | Parent folder IDs |
| ↳ `owners` | json | List of file owners | | ↳ `owners` | json | List of file owners |
| ↳ `permissions` | json | File permissions | | ↳ `permissions` | json | File permissions |
| ↳ `createdTime` | string | File creation time | | ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time | | ↳ `modifiedTime` | string | Last modification time |
| ↳ `lastModifyingUser` | json | User who last modified the file | | ↳ `lastModifyingUser` | json | User who last modified the file |
| ↳ `shared` | boolean | Whether file is shared | | ↳ `shared` | boolean | Whether file is shared |
| ↳ `ownedByMe` | boolean | Whether owned by current user | | ↳ `ownedByMe` | boolean | Whether owned by current user |
| ↳ `capabilities` | json | User capabilities on file | | ↳ `capabilities` | json | User capabilities on file |
| ↳ `md5Checksum` | string | MD5 hash | | ↳ `md5Checksum` | string | MD5 hash |
| ↳ `version` | string | Version number | | ↳ `version` | string | Version number |
### `google_drive_create_folder` ### `google_drive_create_folder`
@@ -175,43 +175,43 @@ Create a new folder in Google Drive with complete metadata returned
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | object | Complete created folder metadata from Google Drive | | `file` | object | Complete created folder metadata from Google Drive |
| ↳ `id` | string | Google Drive folder ID | | ↳ `id` | string | Google Drive folder ID |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | Folder name | | ↳ `name` | string | Folder name |
| ↳ `mimeType` | string | MIME type \(application/vnd.google-apps.folder\) | | ↳ `mimeType` | string | MIME type \(application/vnd.google-apps.folder\) |
| ↳ `description` | string | Folder description | | ↳ `description` | string | Folder description |
| ↳ `owners` | json | List of folder owners | | ↳ `owners` | json | List of folder owners |
| ↳ `permissions` | json | Folder permissions | | ↳ `permissions` | json | Folder permissions |
| ↳ `permissionIds` | json | Permission IDs | | ↳ `permissionIds` | json | Permission IDs |
| ↳ `shared` | boolean | Whether folder is shared | | ↳ `shared` | boolean | Whether folder is shared |
| ↳ `ownedByMe` | boolean | Whether owned by current user | | ↳ `ownedByMe` | boolean | Whether owned by current user |
| ↳ `writersCanShare` | boolean | Whether writers can share | | ↳ `writersCanShare` | boolean | Whether writers can share |
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy | | ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission | | ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
| ↳ `sharingUser` | json | User who shared the folder | | ↳ `sharingUser` | json | User who shared the folder |
| ↳ `starred` | boolean | Whether folder is starred | | ↳ `starred` | boolean | Whether folder is starred |
| ↳ `trashed` | boolean | Whether folder is in trash | | ↳ `trashed` | boolean | Whether folder is in trash |
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed | | ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
| ↳ `appProperties` | json | App-specific properties | | ↳ `appProperties` | json | App-specific properties |
| ↳ `folderColorRgb` | string | Folder color | | ↳ `folderColorRgb` | string | Folder color |
| ↳ `createdTime` | string | Folder creation time | | ↳ `createdTime` | string | Folder creation time |
| ↳ `modifiedTime` | string | Last modification time | | ↳ `modifiedTime` | string | Last modification time |
| ↳ `modifiedByMeTime` | string | When modified by current user | | ↳ `modifiedByMeTime` | string | When modified by current user |
| ↳ `viewedByMeTime` | string | When last viewed by current user | | ↳ `viewedByMeTime` | string | When last viewed by current user |
| ↳ `sharedWithMeTime` | string | When shared with current user | | ↳ `sharedWithMeTime` | string | When shared with current user |
| ↳ `lastModifyingUser` | json | User who last modified the folder | | ↳ `lastModifyingUser` | json | User who last modified the folder |
| ↳ `viewedByMe` | boolean | Whether viewed by current user | | ↳ `viewedByMe` | boolean | Whether viewed by current user |
| ↳ `modifiedByMe` | boolean | Whether modified by current user | | ↳ `modifiedByMe` | boolean | Whether modified by current user |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
| ↳ `iconLink` | string | URL to folder icon | | ↳ `iconLink` | string | URL to folder icon |
| ↳ `parents` | json | Parent folder IDs | | ↳ `parents` | json | Parent folder IDs |
| ↳ `spaces` | json | Spaces containing folder | | ↳ `spaces` | json | Spaces containing folder |
| ↳ `driveId` | string | Shared drive ID | | ↳ `driveId` | string | Shared drive ID |
| ↳ `capabilities` | json | User capabilities on folder | | ↳ `capabilities` | json | User capabilities on folder |
| ↳ `version` | string | Version number | | ↳ `version` | string | Version number |
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app | | ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
| ↳ `contentRestrictions` | json | Content restrictions | | ↳ `contentRestrictions` | json | Content restrictions |
| ↳ `linkShareMetadata` | json | Link share metadata | | ↳ `linkShareMetadata` | json | Link share metadata |
### `google_drive_upload` ### `google_drive_upload`
@@ -233,58 +233,58 @@ Upload a file to Google Drive with complete metadata returned
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | object | Complete uploaded file metadata from Google Drive | | `file` | object | Complete uploaded file metadata from Google Drive |
| ↳ `id` | string | Google Drive file ID | | ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type | | ↳ `mimeType` | string | MIME type |
| ↳ `description` | string | File description | | ↳ `description` | string | File description |
| ↳ `originalFilename` | string | Original uploaded filename | | ↳ `originalFilename` | string | Original uploaded filename |
| ↳ `fullFileExtension` | string | Full file extension | | ↳ `fullFileExtension` | string | Full file extension |
| ↳ `fileExtension` | string | File extension | | ↳ `fileExtension` | string | File extension |
| ↳ `owners` | json | List of file owners | | ↳ `owners` | json | List of file owners |
| ↳ `permissions` | json | File permissions | | ↳ `permissions` | json | File permissions |
| ↳ `permissionIds` | json | Permission IDs | | ↳ `permissionIds` | json | Permission IDs |
| ↳ `shared` | boolean | Whether file is shared | | ↳ `shared` | boolean | Whether file is shared |
| ↳ `ownedByMe` | boolean | Whether owned by current user | | ↳ `ownedByMe` | boolean | Whether owned by current user |
| ↳ `writersCanShare` | boolean | Whether writers can share | | ↳ `writersCanShare` | boolean | Whether writers can share |
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy | | ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission | | ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
| ↳ `sharingUser` | json | User who shared the file | | ↳ `sharingUser` | json | User who shared the file |
| ↳ `starred` | boolean | Whether file is starred | | ↳ `starred` | boolean | Whether file is starred |
| ↳ `trashed` | boolean | Whether file is in trash | | ↳ `trashed` | boolean | Whether file is in trash |
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed | | ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
| ↳ `appProperties` | json | App-specific properties | | ↳ `appProperties` | json | App-specific properties |
| ↳ `createdTime` | string | File creation time | | ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time | | ↳ `modifiedTime` | string | Last modification time |
| ↳ `modifiedByMeTime` | string | When modified by current user | | ↳ `modifiedByMeTime` | string | When modified by current user |
| ↳ `viewedByMeTime` | string | When last viewed by current user | | ↳ `viewedByMeTime` | string | When last viewed by current user |
| ↳ `sharedWithMeTime` | string | When shared with current user | | ↳ `sharedWithMeTime` | string | When shared with current user |
| ↳ `lastModifyingUser` | json | User who last modified the file | | ↳ `lastModifyingUser` | json | User who last modified the file |
| ↳ `viewedByMe` | boolean | Whether viewed by current user | | ↳ `viewedByMe` | boolean | Whether viewed by current user |
| ↳ `modifiedByMe` | boolean | Whether modified by current user | | ↳ `modifiedByMe` | boolean | Whether modified by current user |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
| ↳ `webContentLink` | string | Direct download URL | | ↳ `webContentLink` | string | Direct download URL |
| ↳ `iconLink` | string | URL to file icon | | ↳ `iconLink` | string | URL to file icon |
| ↳ `thumbnailLink` | string | URL to thumbnail | | ↳ `thumbnailLink` | string | URL to thumbnail |
| ↳ `exportLinks` | json | Export format links | | ↳ `exportLinks` | json | Export format links |
| ↳ `size` | string | File size in bytes | | ↳ `size` | string | File size in bytes |
| ↳ `quotaBytesUsed` | string | Storage quota used | | ↳ `quotaBytesUsed` | string | Storage quota used |
| ↳ `md5Checksum` | string | MD5 hash | | ↳ `md5Checksum` | string | MD5 hash |
| ↳ `sha1Checksum` | string | SHA-1 hash | | ↳ `sha1Checksum` | string | SHA-1 hash |
| ↳ `sha256Checksum` | string | SHA-256 hash | | ↳ `sha256Checksum` | string | SHA-256 hash |
| ↳ `parents` | json | Parent folder IDs | | ↳ `parents` | json | Parent folder IDs |
| ↳ `spaces` | json | Spaces containing file | | ↳ `spaces` | json | Spaces containing file |
| ↳ `driveId` | string | Shared drive ID | | ↳ `driveId` | string | Shared drive ID |
| ↳ `capabilities` | json | User capabilities on file | | ↳ `capabilities` | json | User capabilities on file |
| ↳ `version` | string | Version number | | ↳ `version` | string | Version number |
| ↳ `headRevisionId` | string | Head revision ID | | ↳ `headRevisionId` | string | Head revision ID |
| ↳ `hasThumbnail` | boolean | Whether has thumbnail | | ↳ `hasThumbnail` | boolean | Whether has thumbnail |
| ↳ `thumbnailVersion` | string | Thumbnail version | | ↳ `thumbnailVersion` | string | Thumbnail version |
| ↳ `imageMediaMetadata` | json | Image-specific metadata | | ↳ `imageMediaMetadata` | json | Image-specific metadata |
| ↳ `videoMediaMetadata` | json | Video-specific metadata | | ↳ `videoMediaMetadata` | json | Video-specific metadata |
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app | | ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
| ↳ `contentRestrictions` | json | Content restrictions | | ↳ `contentRestrictions` | json | Content restrictions |
| ↳ `linkShareMetadata` | json | Link share metadata | | ↳ `linkShareMetadata` | json | Link share metadata |
### `google_drive_download` ### `google_drive_download`
@@ -304,64 +304,64 @@ Download a file from Google Drive with complete metadata (exports Google Workspa
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | object | Downloaded file data | | `file` | object | Downloaded file data |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type of the file | | ↳ `mimeType` | string | MIME type of the file |
| ↳ `data` | string | File content as base64-encoded string | | ↳ `data` | string | File content as base64-encoded string |
| ↳ `size` | number | File size in bytes | | ↳ `size` | number | File size in bytes |
| `metadata` | object | Complete file metadata from Google Drive | | `metadata` | object | Complete file metadata from Google Drive |
| ↳ `id` | string | Google Drive file ID | | ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type | | ↳ `mimeType` | string | MIME type |
| ↳ `description` | string | File description | | ↳ `description` | string | File description |
| ↳ `originalFilename` | string | Original uploaded filename | | ↳ `originalFilename` | string | Original uploaded filename |
| ↳ `fullFileExtension` | string | Full file extension | | ↳ `fullFileExtension` | string | Full file extension |
| ↳ `fileExtension` | string | File extension | | ↳ `fileExtension` | string | File extension |
| ↳ `owners` | json | List of file owners | | ↳ `owners` | json | List of file owners |
| ↳ `permissions` | json | File permissions | | ↳ `permissions` | json | File permissions |
| ↳ `permissionIds` | json | Permission IDs | | ↳ `permissionIds` | json | Permission IDs |
| ↳ `shared` | boolean | Whether file is shared | | ↳ `shared` | boolean | Whether file is shared |
| ↳ `ownedByMe` | boolean | Whether owned by current user | | ↳ `ownedByMe` | boolean | Whether owned by current user |
| ↳ `writersCanShare` | boolean | Whether writers can share | | ↳ `writersCanShare` | boolean | Whether writers can share |
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy | | ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission | | ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
| ↳ `sharingUser` | json | User who shared the file | | ↳ `sharingUser` | json | User who shared the file |
| ↳ `starred` | boolean | Whether file is starred | | ↳ `starred` | boolean | Whether file is starred |
| ↳ `trashed` | boolean | Whether file is in trash | | ↳ `trashed` | boolean | Whether file is in trash |
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed | | ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
| ↳ `appProperties` | json | App-specific properties | | ↳ `appProperties` | json | App-specific properties |
| ↳ `createdTime` | string | File creation time | | ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time | | ↳ `modifiedTime` | string | Last modification time |
| ↳ `modifiedByMeTime` | string | When modified by current user | | ↳ `modifiedByMeTime` | string | When modified by current user |
| ↳ `viewedByMeTime` | string | When last viewed by current user | | ↳ `viewedByMeTime` | string | When last viewed by current user |
| ↳ `sharedWithMeTime` | string | When shared with current user | | ↳ `sharedWithMeTime` | string | When shared with current user |
| ↳ `lastModifyingUser` | json | User who last modified the file | | ↳ `lastModifyingUser` | json | User who last modified the file |
| ↳ `viewedByMe` | boolean | Whether viewed by current user | | ↳ `viewedByMe` | boolean | Whether viewed by current user |
| ↳ `modifiedByMe` | boolean | Whether modified by current user | | ↳ `modifiedByMe` | boolean | Whether modified by current user |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
| ↳ `webContentLink` | string | Direct download URL | | ↳ `webContentLink` | string | Direct download URL |
| ↳ `iconLink` | string | URL to file icon | | ↳ `iconLink` | string | URL to file icon |
| ↳ `thumbnailLink` | string | URL to thumbnail | | ↳ `thumbnailLink` | string | URL to thumbnail |
| ↳ `exportLinks` | json | Export format links | | ↳ `exportLinks` | json | Export format links |
| ↳ `size` | string | File size in bytes | | ↳ `size` | string | File size in bytes |
| ↳ `quotaBytesUsed` | string | Storage quota used | | ↳ `quotaBytesUsed` | string | Storage quota used |
| ↳ `md5Checksum` | string | MD5 hash | | ↳ `md5Checksum` | string | MD5 hash |
| ↳ `sha1Checksum` | string | SHA-1 hash | | ↳ `sha1Checksum` | string | SHA-1 hash |
| ↳ `sha256Checksum` | string | SHA-256 hash | | ↳ `sha256Checksum` | string | SHA-256 hash |
| ↳ `parents` | json | Parent folder IDs | | ↳ `parents` | json | Parent folder IDs |
| ↳ `spaces` | json | Spaces containing file | | ↳ `spaces` | json | Spaces containing file |
| ↳ `driveId` | string | Shared drive ID | | ↳ `driveId` | string | Shared drive ID |
| ↳ `capabilities` | json | User capabilities on file | | ↳ `capabilities` | json | User capabilities on file |
| ↳ `version` | string | Version number | | ↳ `version` | string | Version number |
| ↳ `headRevisionId` | string | Head revision ID | | ↳ `headRevisionId` | string | Head revision ID |
| ↳ `hasThumbnail` | boolean | Whether has thumbnail | | ↳ `hasThumbnail` | boolean | Whether has thumbnail |
| ↳ `thumbnailVersion` | string | Thumbnail version | | ↳ `thumbnailVersion` | string | Thumbnail version |
| ↳ `imageMediaMetadata` | json | Image-specific metadata | | ↳ `imageMediaMetadata` | json | Image-specific metadata |
| ↳ `videoMediaMetadata` | json | Video-specific metadata | | ↳ `videoMediaMetadata` | json | Video-specific metadata |
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app | | ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
| ↳ `contentRestrictions` | json | Content restrictions | | ↳ `contentRestrictions` | json | Content restrictions |
| ↳ `linkShareMetadata` | json | Link share metadata | | ↳ `linkShareMetadata` | json | Link share metadata |
| ↳ `revisions` | json | File revision history \(first 100 revisions only\) | | ↳ `revisions` | json | File revision history \(first 100 revisions only\) |
### `google_drive_copy` ### `google_drive_copy`
@@ -380,16 +380,16 @@ Create a copy of a file in Google Drive
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | json | The copied file metadata | | `file` | json | The copied file metadata |
| ↳ `id` | string | Google Drive file ID of the copy | | ↳ `id` | string | Google Drive file ID of the copy |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type | | ↳ `mimeType` | string | MIME type |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
| ↳ `parents` | json | Parent folder IDs | | ↳ `parents` | json | Parent folder IDs |
| ↳ `createdTime` | string | File creation time | | ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time | | ↳ `modifiedTime` | string | Last modification time |
| ↳ `owners` | json | List of file owners | | ↳ `owners` | json | List of file owners |
| ↳ `size` | string | File size in bytes | | ↳ `size` | string | File size in bytes |
### `google_drive_update` ### `google_drive_update`
@@ -411,15 +411,15 @@ Update file metadata in Google Drive (rename, move, star, add description)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | json | The updated file metadata | | `file` | json | The updated file metadata |
| ↳ `id` | string | Google Drive file ID | | ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type | | ↳ `mimeType` | string | MIME type |
| ↳ `description` | string | File description | | ↳ `description` | string | File description |
| ↳ `starred` | boolean | Whether file is starred | | ↳ `starred` | boolean | Whether file is starred |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
| ↳ `parents` | json | Parent folder IDs | | ↳ `parents` | json | Parent folder IDs |
| ↳ `modifiedTime` | string | Last modification time | | ↳ `modifiedTime` | string | Last modification time |
### `google_drive_trash` ### `google_drive_trash`
@@ -436,13 +436,13 @@ Move a file to the trash in Google Drive (can be restored later)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `file` | json | The trashed file metadata | | `file` | json | The trashed file metadata |
| ↳ `id` | string | Google Drive file ID | | ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier | | ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name | | ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type | | ↳ `mimeType` | string | MIME type |
| ↳ `trashed` | boolean | Whether file is in trash \(should be true\) | | ↳ `trashed` | boolean | Whether file is in trash \(should be true\) |
| ↳ `trashedTime` | string | When file was trashed | | ↳ `trashedTime` | string | When file was trashed |
| ↳ `webViewLink` | string | URL to view in browser | | ↳ `webViewLink` | string | URL to view in browser |
### `google_drive_delete` ### `google_drive_delete`
@@ -484,14 +484,14 @@ Share a file with a user, group, domain, or make it public
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `permission` | json | The created permission details | | `permission` | json | The created permission details |
| ↳ `id` | string | Permission ID | | ↳ `id` | string | Permission ID |
| ↳ `type` | string | Grantee type \(user, group, domain, anyone\) | | ↳ `type` | string | Grantee type \(user, group, domain, anyone\) |
| ↳ `role` | string | Permission role | | ↳ `role` | string | Permission role |
| ↳ `emailAddress` | string | Email of the grantee | | ↳ `emailAddress` | string | Email of the grantee |
| ↳ `displayName` | string | Display name of the grantee | | ↳ `displayName` | string | Display name of the grantee |
| ↳ `domain` | string | Domain of the grantee | | ↳ `domain` | string | Domain of the grantee |
| ↳ `expirationTime` | string | Expiration time | | ↳ `expirationTime` | string | Expiration time |
| ↳ `deleted` | boolean | Whether grantee is deleted | | ↳ `deleted` | boolean | Whether grantee is deleted |
### `google_drive_unshare` ### `google_drive_unshare`
@@ -555,16 +555,16 @@ Get information about the user and their Google Drive (storage quota, capabiliti
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | json | Information about the authenticated user | | `user` | json | Information about the authenticated user |
| ↳ `displayName` | string | User display name | | ↳ `displayName` | string | User display name |
| ↳ `emailAddress` | string | User email address | | ↳ `emailAddress` | string | User email address |
| ↳ `photoLink` | string | URL to user profile photo | | ↳ `photoLink` | string | URL to user profile photo |
| ↳ `permissionId` | string | User permission ID | | ↳ `permissionId` | string | User permission ID |
| ↳ `me` | boolean | Whether this is the authenticated user | | ↳ `me` | boolean | Whether this is the authenticated user |
| `storageQuota` | json | Storage quota information in bytes | | `storageQuota` | json | Storage quota information in bytes |
| ↳ `limit` | string | Total storage limit in bytes \(null for unlimited\) | | ↳ `limit` | string | Total storage limit in bytes \(null for unlimited\) |
| ↳ `usage` | string | Total storage used in bytes | | ↳ `usage` | string | Total storage used in bytes |
| ↳ `usageInDrive` | string | Storage used by Drive files in bytes | | ↳ `usageInDrive` | string | Storage used by Drive files in bytes |
| ↳ `usageInDriveTrash` | string | Storage used by trashed files in bytes | | ↳ `usageInDriveTrash` | string | Storage used by trashed files in bytes |
| `canCreateDrives` | boolean | Whether user can create shared drives | | `canCreateDrives` | boolean | Whether user can create shared drives |
| `importFormats` | json | Map of MIME types that can be imported and their target formats | | `importFormats` | json | Map of MIME types that can be imported and their target formats |
| `exportFormats` | json | Map of Google Workspace MIME types and their exportable formats | | `exportFormats` | json | Map of Google Workspace MIME types and their exportable formats |

View File

@@ -57,10 +57,10 @@ Retrieve a single response or list responses from a Google Form
| ↳ `lastSubmittedTime` | string | When the response was last submitted | | ↳ `lastSubmittedTime` | string | When the response was last submitted |
| ↳ `answers` | json | Map of question IDs to answer values | | ↳ `answers` | json | Map of question IDs to answer values |
| `response` | object | Single form response \(when responseId is provided\) | | `response` | object | Single form response \(when responseId is provided\) |
| ↳ `responseId` | string | Unique response ID | | ↳ `responseId` | string | Unique response ID |
| ↳ `createTime` | string | When the response was created | | ↳ `createTime` | string | When the response was created |
| ↳ `lastSubmittedTime` | string | When the response was last submitted | | ↳ `lastSubmittedTime` | string | When the response was last submitted |
| ↳ `answers` | json | Map of question IDs to answer values | | ↳ `answers` | json | Map of question IDs to answer values |
| `raw` | json | Raw API response data | | `raw` | json | Raw API response data |
### `google_forms_get_form` ### `google_forms_get_form`
@@ -131,25 +131,25 @@ Apply multiple updates to a form (add items, update info, change settings, etc.)
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `replies` | array | The replies from each update request | | `replies` | array | The replies from each update request |
| `writeControl` | object | Write control information with revision IDs | | `writeControl` | object | Write control information with revision IDs |
| ↳ `requiredRevisionId` | string | Required revision ID for conflict detection | | ↳ `requiredRevisionId` | string | Required revision ID for conflict detection |
| ↳ `targetRevisionId` | string | Target revision ID | | ↳ `targetRevisionId` | string | Target revision ID |
| `form` | object | The updated form \(if includeFormInResponse was true\) | | `form` | object | The updated form \(if includeFormInResponse was true\) |
| ↳ `formId` | string | The form ID | | ↳ `formId` | string | The form ID |
| ↳ `info` | object | Form info containing title and description | | ↳ `info` | object | Form info containing title and description |
| ↳ `title` | string | The form title visible to responders | | ↳ `title` | string | The form title visible to responders |
| ↳ `description` | string | The form description | | ↳ `description` | string | The form description |
| ↳ `documentTitle` | string | The document title visible in Drive | | ↳ `documentTitle` | string | The document title visible in Drive |
| ↳ `settings` | object | Form settings | | ↳ `settings` | object | Form settings |
| ↳ `quizSettings` | object | Quiz settings | | ↳ `quizSettings` | object | Quiz settings |
| ↳ `isQuiz` | boolean | Whether the form is a quiz | | ↳ `isQuiz` | boolean | Whether the form is a quiz |
| ↳ `emailCollectionType` | string | Email collection type | | ↳ `emailCollectionType` | string | Email collection type |
| ↳ `revisionId` | string | The revision ID of the form | | ↳ `revisionId` | string | The revision ID of the form |
| ↳ `responderUri` | string | The URI to share with responders | | ↳ `responderUri` | string | The URI to share with responders |
| ↳ `linkedSheetId` | string | The ID of the linked Google Sheet | | ↳ `linkedSheetId` | string | The ID of the linked Google Sheet |
| ↳ `publishSettings` | object | Form publish settings | | ↳ `publishSettings` | object | Form publish settings |
| ↳ `publishState` | object | Current publish state | | ↳ `publishState` | object | Current publish state |
| ↳ `isPublished` | boolean | Whether the form is published | | ↳ `isPublished` | boolean | Whether the form is published |
| ↳ `isAcceptingResponses` | boolean | Whether the form is accepting responses | | ↳ `isAcceptingResponses` | boolean | Whether the form is accepting responses |
### `google_forms_set_publish_settings` ### `google_forms_set_publish_settings`
@@ -169,9 +169,9 @@ Update the publish settings of a form (publish/unpublish, accept responses)
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `formId` | string | The form ID | | `formId` | string | The form ID |
| `publishSettings` | json | The updated publish settings | | `publishSettings` | json | The updated publish settings |
| ↳ `publishState` | object | The publish state | | ↳ `publishState` | object | The publish state |
| ↳ `isPublished` | boolean | Whether the form is published | | ↳ `isPublished` | boolean | Whether the form is published |
| ↳ `isAcceptingResponses` | boolean | Whether the form accepts responses | | ↳ `isAcceptingResponses` | boolean | Whether the form accepts responses |
### `google_forms_create_watch` ### `google_forms_create_watch`

View File

@@ -231,7 +231,7 @@ List all email aliases for a Google Group
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `aliases` | array | List of email aliases for the group | | `aliases` | array | List of email aliases for the group |
| ↳ `id` | string | Unique group identifier | | ↳ `id` | string | Unique group identifier |
| ↳ `primaryEmail` | string | Group | | ↳ `primaryEmail` | string | Group's primary email address |
| ↳ `alias` | string | Alias email address | | ↳ `alias` | string | Alias email address |
| ↳ `kind` | string | API resource type | | ↳ `kind` | string | API resource type |
| ↳ `etag` | string | Resource version identifier | | ↳ `etag` | string | Resource version identifier |
@@ -252,7 +252,7 @@ Add an email alias to a Google Group
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `id` | string | Unique group identifier | | `id` | string | Unique group identifier |
| `primaryEmail` | string | Group | | `primaryEmail` | string | Group's primary email address |
| `alias` | string | The alias that was added | | `alias` | string | The alias that was added |
| `kind` | string | API resource type | | `kind` | string | API resource type |
| `etag` | string | Resource version identifier | | `etag` | string | Resource version identifier |
@@ -288,7 +288,7 @@ Get the settings for a Google Group including access permissions, moderation, an
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `email` | string | The group | | `email` | string | The group's email address |
| `name` | string | The group name \(max 75 characters\) | | `name` | string | The group name \(max 75 characters\) |
| `description` | string | The group description \(max 4096 characters\) | | `description` | string | The group description \(max 4096 characters\) |
| `whoCanJoin` | string | Who can join the group \(ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN\) | | `whoCanJoin` | string | Who can join the group \(ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN\) |
@@ -297,7 +297,7 @@ Get the settings for a Google Group including access permissions, moderation, an
| `whoCanPostMessage` | string | Who can post messages to the group | | `whoCanPostMessage` | string | Who can post messages to the group |
| `allowExternalMembers` | string | Whether external users can be members | | `allowExternalMembers` | string | Whether external users can be members |
| `allowWebPosting` | string | Whether web posting is allowed | | `allowWebPosting` | string | Whether web posting is allowed |
| `primaryLanguage` | string | The group | | `primaryLanguage` | string | The group's primary language |
| `isArchived` | string | Whether messages are archived | | `isArchived` | string | Whether messages are archived |
| `archiveOnly` | string | Whether the group is archive-only \(inactive\) | | `archiveOnly` | string | Whether the group is archive-only \(inactive\) |
| `messageModerationLevel` | string | Message moderation level | | `messageModerationLevel` | string | Message moderation level |
@@ -368,7 +368,7 @@ Update the settings for a Google Group including access permissions, moderation,
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `email` | string | The group | | `email` | string | The group's email address |
| `name` | string | The group name | | `name` | string | The group name |
| `description` | string | The group description | | `description` | string | The group description |
| `whoCanJoin` | string | Who can join the group | | `whoCanJoin` | string | Who can join the group |
@@ -377,7 +377,7 @@ Update the settings for a Google Group including access permissions, moderation,
| `whoCanPostMessage` | string | Who can post messages to the group | | `whoCanPostMessage` | string | Who can post messages to the group |
| `allowExternalMembers` | string | Whether external users can be members | | `allowExternalMembers` | string | Whether external users can be members |
| `allowWebPosting` | string | Whether web posting is allowed | | `allowWebPosting` | string | Whether web posting is allowed |
| `primaryLanguage` | string | The group | | `primaryLanguage` | string | The group's primary language |
| `isArchived` | string | Whether messages are archived | | `isArchived` | string | Whether messages are archived |
| `archiveOnly` | string | Whether the group is archive-only | | `archiveOnly` | string | Whether the group is archive-only |
| `messageModerationLevel` | string | Message moderation level | | `messageModerationLevel` | string | Message moderation level |

View File

@@ -66,12 +66,12 @@ Search the web with the Custom Search API
| ↳ `title` | string | Title of the search result | | ↳ `title` | string | Title of the search result |
| ↳ `link` | string | URL of the search result | | ↳ `link` | string | URL of the search result |
| ↳ `snippet` | string | Snippet or description of the search result | | ↳ `snippet` | string | Snippet or description of the search result |
| ↳ `displayLink` | string | Display URL | | ↳ `displayLink` | string | Display URL \(abbreviated form\) |
| ↳ `pagemap` | object | Additional page metadata | | ↳ `pagemap` | object | PageMap information for the result \(structured data\) |
| `searchInformation` | object | Information about the search query and results | | `searchInformation` | object | Information about the search query and results |
| ↳ `totalResults` | string | Total number of search results available | | ↳ `totalResults` | string | Total number of search results available |
| ↳ `searchTime` | number | Time taken to perform the search in seconds | | ↳ `searchTime` | number | Time taken to perform the search in seconds |
| ↳ `formattedSearchTime` | string | Formatted search time for display | | ↳ `formattedSearchTime` | string | Formatted search time for display |
| ↳ `formattedTotalResults` | string | Formatted total results count for display | | ↳ `formattedTotalResults` | string | Formatted total results count for display |

View File

@@ -53,8 +53,8 @@ Read data from a specific sheet in a Google Sheets spreadsheet
| `range` | string | The range of cells that was read | | `range` | string | The range of cells that was read |
| `values` | array | The cell values as a 2D array | | `values` | array | The cell values as a 2D array |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_write` ### `google_sheets_write`
@@ -79,8 +79,8 @@ Write data to a specific sheet in a Google Sheets spreadsheet
| `updatedColumns` | number | Number of columns updated | | `updatedColumns` | number | Number of columns updated |
| `updatedCells` | number | Number of cells updated | | `updatedCells` | number | Number of cells updated |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_update` ### `google_sheets_update`
@@ -105,8 +105,8 @@ Update data in a specific sheet in a Google Sheets spreadsheet
| `updatedColumns` | number | Number of columns updated | | `updatedColumns` | number | Number of columns updated |
| `updatedCells` | number | Number of cells updated | | `updatedCells` | number | Number of cells updated |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_append` ### `google_sheets_append`
@@ -133,8 +133,8 @@ Append data to the end of a specific sheet in a Google Sheets spreadsheet
| `updatedColumns` | number | Number of columns updated | | `updatedColumns` | number | Number of columns updated |
| `updatedCells` | number | Number of cells updated | | `updatedCells` | number | Number of cells updated |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_clear` ### `google_sheets_clear`
@@ -155,8 +155,8 @@ Clear values from a specific range in a Google Sheets spreadsheet
| `clearedRange` | string | The range that was cleared | | `clearedRange` | string | The range that was cleared |
| `sheetName` | string | Name of the sheet that was cleared | | `sheetName` | string | Name of the sheet that was cleared |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_get_spreadsheet` ### `google_sheets_get_spreadsheet`
@@ -234,8 +234,8 @@ Read multiple ranges from a Google Sheets spreadsheet in a single request
| ↳ `majorDimension` | string | Major dimension \(ROWS or COLUMNS\) | | ↳ `majorDimension` | string | Major dimension \(ROWS or COLUMNS\) |
| ↳ `values` | array | The cell values as a 2D array | | ↳ `values` | array | The cell values as a 2D array |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_batch_update` ### `google_sheets_batch_update`
@@ -265,8 +265,8 @@ Update multiple ranges in a Google Sheets spreadsheet in a single request
| ↳ `updatedColumns` | number | Number of columns updated in this range | | ↳ `updatedColumns` | number | Number of columns updated in this range |
| ↳ `updatedCells` | number | Number of cells updated in this range | | ↳ `updatedCells` | number | Number of cells updated in this range |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_batch_clear` ### `google_sheets_batch_clear`
@@ -286,8 +286,8 @@ Clear multiple ranges in a Google Sheets spreadsheet in a single request
| `spreadsheetId` | string | The spreadsheet ID | | `spreadsheetId` | string | The spreadsheet ID |
| `clearedRanges` | array | Array of ranges that were cleared | | `clearedRanges` | array | Array of ranges that were cleared |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID | | ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `google_sheets_copy_sheet` ### `google_sheets_copy_sheet`

View File

@@ -52,13 +52,13 @@ Read content from a Google Slides presentation
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `slides` | json | Array of slides with their content | | `slides` | json | Array of slides with their content |
| `metadata` | json | Presentation metadata including ID, title, and URL | | `metadata` | json | Presentation metadata including ID, title, and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `title` | string | The presentation title | | ↳ `title` | string | The presentation title |
| ↳ `pageSize` | object | Presentation page size | | ↳ `pageSize` | object | Presentation page size |
| ↳ `width` | json | Page width as a Dimension object | | ↳ `width` | json | Page width as a Dimension object |
| ↳ `height` | json | Page height as a Dimension object | | ↳ `height` | json | Page height as a Dimension object |
| ↳ `mimeType` | string | The mime type of the presentation | | ↳ `mimeType` | string | The mime type of the presentation |
| ↳ `url` | string | URL to open the presentation | | ↳ `url` | string | URL to open the presentation |
### `google_slides_write` ### `google_slides_write`
@@ -78,10 +78,10 @@ Write or update content in a Google Slides presentation
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `updatedContent` | boolean | Indicates if presentation content was updated successfully | | `updatedContent` | boolean | Indicates if presentation content was updated successfully |
| `metadata` | json | Updated presentation metadata including ID, title, and URL | | `metadata` | json | Updated presentation metadata including ID, title, and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `title` | string | The presentation title | | ↳ `title` | string | The presentation title |
| ↳ `mimeType` | string | The mime type of the presentation | | ↳ `mimeType` | string | The mime type of the presentation |
| ↳ `url` | string | URL to open the presentation | | ↳ `url` | string | URL to open the presentation |
### `google_slides_create` ### `google_slides_create`
@@ -101,10 +101,10 @@ Create a new Google Slides presentation
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `metadata` | json | Created presentation metadata including ID, title, and URL | | `metadata` | json | Created presentation metadata including ID, title, and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `title` | string | The presentation title | | ↳ `title` | string | The presentation title |
| ↳ `mimeType` | string | The mime type of the presentation | | ↳ `mimeType` | string | The mime type of the presentation |
| ↳ `url` | string | URL to open the presentation | | ↳ `url` | string | URL to open the presentation |
### `google_slides_replace_all_text` ### `google_slides_replace_all_text`
@@ -126,10 +126,10 @@ Find and replace all occurrences of text throughout a Google Slides presentation
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `occurrencesChanged` | number | Number of text occurrences that were replaced | | `occurrencesChanged` | number | Number of text occurrences that were replaced |
| `metadata` | json | Operation metadata including presentation ID and URL | | `metadata` | json | Operation metadata including presentation ID and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `findText` | string | The text that was searched for | | ↳ `findText` | string | The text that was searched for |
| ↳ `replaceText` | string | The text that replaced the matches | | ↳ `replaceText` | string | The text that replaced the matches |
| ↳ `url` | string | URL to open the presentation | | ↳ `url` | string | URL to open the presentation |
### `google_slides_add_slide` ### `google_slides_add_slide`
@@ -150,10 +150,10 @@ Add a new slide to a Google Slides presentation with a specified layout
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `slideId` | string | The object ID of the newly created slide | | `slideId` | string | The object ID of the newly created slide |
| `metadata` | json | Operation metadata including presentation ID, layout, and URL | | `metadata` | json | Operation metadata including presentation ID, layout, and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `layout` | string | The layout used for the new slide | | ↳ `layout` | string | The layout used for the new slide |
| ↳ `insertionIndex` | number | The zero-based index where the slide was inserted | | ↳ `insertionIndex` | number | The zero-based index where the slide was inserted |
| ↳ `url` | string | URL to open the presentation | | ↳ `url` | string | URL to open the presentation |
### `google_slides_add_image` ### `google_slides_add_image`
@@ -177,10 +177,10 @@ Insert an image into a specific slide in a Google Slides presentation
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `imageId` | string | The object ID of the newly created image | | `imageId` | string | The object ID of the newly created image |
| `metadata` | json | Operation metadata including presentation ID and image URL | | `metadata` | json | Operation metadata including presentation ID and image URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `pageObjectId` | string | The page object ID where the image was inserted | | ↳ `pageObjectId` | string | The page object ID where the image was inserted |
| ↳ `imageUrl` | string | The source image URL | | ↳ `imageUrl` | string | The source image URL |
| ↳ `url` | string | URL to open the presentation | | ↳ `url` | string | URL to open the presentation |
### `google_slides_get_thumbnail` ### `google_slides_get_thumbnail`
@@ -203,10 +203,10 @@ Generate a thumbnail image of a specific slide in a Google Slides presentation
| `width` | number | Width of the thumbnail in pixels | | `width` | number | Width of the thumbnail in pixels |
| `height` | number | Height of the thumbnail in pixels | | `height` | number | Height of the thumbnail in pixels |
| `metadata` | json | Operation metadata including presentation ID and page object ID | | `metadata` | json | Operation metadata including presentation ID and page object ID |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `pageObjectId` | string | The page object ID for the thumbnail | | ↳ `pageObjectId` | string | The page object ID for the thumbnail |
| ↳ `thumbnailSize` | string | The requested thumbnail size | | ↳ `thumbnailSize` | string | The requested thumbnail size |
| ↳ `mimeType` | string | The thumbnail MIME type | | ↳ `mimeType` | string | The thumbnail MIME type |
### `google_slides_get_page` ### `google_slides_get_page`
@@ -227,12 +227,12 @@ Get detailed information about a specific slide/page in a Google Slides presenta
| `pageType` | string | The type of page \(SLIDE, MASTER, LAYOUT, NOTES, NOTES_MASTER\) | | `pageType` | string | The type of page \(SLIDE, MASTER, LAYOUT, NOTES, NOTES_MASTER\) |
| `pageElements` | array | Array of page elements \(shapes, images, tables, etc.\) on this page | | `pageElements` | array | Array of page elements \(shapes, images, tables, etc.\) on this page |
| `slideProperties` | object | Properties specific to slides \(layout, master, notes\) | | `slideProperties` | object | Properties specific to slides \(layout, master, notes\) |
| ↳ `layoutObjectId` | string | Object ID of the layout this slide is based on | | ↳ `layoutObjectId` | string | Object ID of the layout this slide is based on |
| ↳ `masterObjectId` | string | Object ID of the master this slide is based on | | ↳ `masterObjectId` | string | Object ID of the master this slide is based on |
| ↳ `notesPage` | json | The notes page associated with the slide | | ↳ `notesPage` | json | The notes page associated with the slide |
| `metadata` | object | Operation metadata including presentation ID and URL | | `metadata` | object | Operation metadata including presentation ID and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |
### `google_slides_delete_object` ### `google_slides_delete_object`
@@ -252,8 +252,8 @@ Delete a page element (shape, image, table, etc.) or an entire slide from a Goog
| `deleted` | boolean | Whether the object was successfully deleted | | `deleted` | boolean | Whether the object was successfully deleted |
| `objectId` | string | The object ID that was deleted | | `objectId` | string | The object ID that was deleted |
| `metadata` | object | Operation metadata including presentation ID and URL | | `metadata` | object | Operation metadata including presentation ID and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |
### `google_slides_duplicate_object` ### `google_slides_duplicate_object`
@@ -274,9 +274,9 @@ Duplicate an object (slide, shape, image, table, etc.) in a Google Slides presen
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `duplicatedObjectId` | string | The object ID of the newly created duplicate | | `duplicatedObjectId` | string | The object ID of the newly created duplicate |
| `metadata` | object | Operation metadata including presentation ID and source object ID | | `metadata` | object | Operation metadata including presentation ID and source object ID |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `sourceObjectId` | string | The original object ID that was duplicated | | ↳ `sourceObjectId` | string | The original object ID that was duplicated |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |
### `google_slides_update_slides_position` ### `google_slides_update_slides_position`
@@ -298,8 +298,8 @@ Move one or more slides to a new position in a Google Slides presentation
| `slideObjectIds` | array | The slide object IDs that were moved | | `slideObjectIds` | array | The slide object IDs that were moved |
| `insertionIndex` | number | The index where the slides were moved to | | `insertionIndex` | number | The index where the slides were moved to |
| `metadata` | object | Operation metadata including presentation ID and URL | | `metadata` | object | Operation metadata including presentation ID and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |
### `google_slides_create_table` ### `google_slides_create_table`
@@ -326,9 +326,9 @@ Create a new table on a slide in a Google Slides presentation
| `rows` | number | Number of rows in the table | | `rows` | number | Number of rows in the table |
| `columns` | number | Number of columns in the table | | `columns` | number | Number of columns in the table |
| `metadata` | object | Operation metadata including presentation ID and page object ID | | `metadata` | object | Operation metadata including presentation ID and page object ID |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `pageObjectId` | string | The page object ID where the table was created | | ↳ `pageObjectId` | string | The page object ID where the table was created |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |
### `google_slides_create_shape` ### `google_slides_create_shape`
@@ -353,9 +353,9 @@ Create a shape (rectangle, ellipse, text box, arrow, etc.) on a slide in a Googl
| `shapeId` | string | The object ID of the newly created shape | | `shapeId` | string | The object ID of the newly created shape |
| `shapeType` | string | The type of shape that was created | | `shapeType` | string | The type of shape that was created |
| `metadata` | object | Operation metadata including presentation ID and page object ID | | `metadata` | object | Operation metadata including presentation ID and page object ID |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `pageObjectId` | string | The page object ID where the shape was created | | ↳ `pageObjectId` | string | The page object ID where the shape was created |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |
### `google_slides_insert_text` ### `google_slides_insert_text`
@@ -378,7 +378,7 @@ Insert text into a shape or table cell in a Google Slides presentation. Use this
| `objectId` | string | The object ID where text was inserted | | `objectId` | string | The object ID where text was inserted |
| `text` | string | The text that was inserted | | `text` | string | The text that was inserted |
| `metadata` | object | Operation metadata including presentation ID and URL | | `metadata` | object | Operation metadata including presentation ID and URL |
| ↳ `presentationId` | string | The presentation ID | | ↳ `presentationId` | string | The presentation ID |
| ↳ `url` | string | URL to the presentation | | ↳ `url` | string | URL to the presentation |

View File

@@ -51,6 +51,12 @@ Retrieve all users from HubSpot account
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `users` | array | Array of HubSpot user objects | | `users` | array | Array of HubSpot user objects |
| ↳ `id` | string | User ID |
| ↳ `email` | string | User email address |
| ↳ `roleId` | string | User role ID |
| ↳ `primaryTeamId` | string | Primary team ID |
| ↳ `secondaryTeamIds` | array | Secondary team IDs |
| ↳ `superAdmin` | boolean | Whether user is a super admin |
| `totalItems` | number | Total number of users returned | | `totalItems` | number | Total number of users returned |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -71,9 +77,33 @@ Retrieve all contacts from HubSpot account with pagination support
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contacts` | array | Array of HubSpot contact objects | | `contacts` | array | Array of HubSpot contact records |
| `paging` | object | Pagination information | | ↳ `email` | string | Contact email address |
| `metadata` | object | Metadata with totalReturned and hasMore | | ↳ `firstname` | string | Contact first name |
| ↳ `lastname` | string | Contact last name |
| ↳ `phone` | string | Contact phone number |
| ↳ `mobilephone` | string | Contact mobile phone number |
| ↳ `company` | string | Associated company name |
| ↳ `website` | string | Contact website URL |
| ↳ `jobtitle` | string | Contact job title |
| ↳ `lifecyclestage` | string | Lifecycle stage \(subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer\) |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `createdate` | string | Contact creation date \(ISO 8601\) |
| ↳ `lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `address` | string | Street address |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `fax` | string | Fax number |
| ↳ `hs_timezone` | string | Contact timezone |
| `paging` | object | Pagination information for fetching more results |
| ↳ `after` | string | Cursor for next page of results |
| ↳ `link` | string | Link to next page |
| `metadata` | object | Response metadata |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records are available |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
### `hubspot_get_contact` ### `hubspot_get_contact`
@@ -93,7 +123,27 @@ Retrieve a single contact by ID or email from HubSpot
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contact` | object | HubSpot contact object with properties | | `contact` | object | HubSpot contact record |
| ↳ `email` | string | Contact email address |
| ↳ `firstname` | string | Contact first name |
| ↳ `lastname` | string | Contact last name |
| ↳ `phone` | string | Contact phone number |
| ↳ `mobilephone` | string | Contact mobile phone number |
| ↳ `company` | string | Associated company name |
| ↳ `website` | string | Contact website URL |
| ↳ `jobtitle` | string | Contact job title |
| ↳ `lifecyclestage` | string | Lifecycle stage \(subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer\) |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `createdate` | string | Contact creation date \(ISO 8601\) |
| ↳ `lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `address` | string | Street address |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `fax` | string | Fax number |
| ↳ `hs_timezone` | string | Contact timezone |
| `contactId` | string | The retrieved contact ID | | `contactId` | string | The retrieved contact ID |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -112,7 +162,27 @@ Create a new contact in HubSpot. Requires at least one of: email, firstname, or
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contact` | object | Created HubSpot contact object | | `contact` | object | HubSpot contact record |
| ↳ `email` | string | Contact email address |
| ↳ `firstname` | string | Contact first name |
| ↳ `lastname` | string | Contact last name |
| ↳ `phone` | string | Contact phone number |
| ↳ `mobilephone` | string | Contact mobile phone number |
| ↳ `company` | string | Associated company name |
| ↳ `website` | string | Contact website URL |
| ↳ `jobtitle` | string | Contact job title |
| ↳ `lifecyclestage` | string | Lifecycle stage \(subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer\) |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `createdate` | string | Contact creation date \(ISO 8601\) |
| ↳ `lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `address` | string | Street address |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `fax` | string | Fax number |
| ↳ `hs_timezone` | string | Contact timezone |
| `contactId` | string | The created contact ID | | `contactId` | string | The created contact ID |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -132,7 +202,27 @@ Update an existing contact in HubSpot by ID or email
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contact` | object | Updated HubSpot contact object | | `contact` | object | HubSpot contact record |
| ↳ `email` | string | Contact email address |
| ↳ `firstname` | string | Contact first name |
| ↳ `lastname` | string | Contact last name |
| ↳ `phone` | string | Contact phone number |
| ↳ `mobilephone` | string | Contact mobile phone number |
| ↳ `company` | string | Associated company name |
| ↳ `website` | string | Contact website URL |
| ↳ `jobtitle` | string | Contact job title |
| ↳ `lifecyclestage` | string | Lifecycle stage \(subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer\) |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `createdate` | string | Contact creation date \(ISO 8601\) |
| ↳ `lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `address` | string | Street address |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `fax` | string | Fax number |
| ↳ `hs_timezone` | string | Contact timezone |
| `contactId` | string | The updated contact ID | | `contactId` | string | The updated contact ID |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -155,10 +245,34 @@ Search for contacts in HubSpot using filters, sorting, and queries
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contacts` | array | Array of matching HubSpot contact objects | | `contacts` | array | Array of HubSpot contact records |
| ↳ `email` | string | Contact email address |
| ↳ `firstname` | string | Contact first name |
| ↳ `lastname` | string | Contact last name |
| ↳ `phone` | string | Contact phone number |
| ↳ `mobilephone` | string | Contact mobile phone number |
| ↳ `company` | string | Associated company name |
| ↳ `website` | string | Contact website URL |
| ↳ `jobtitle` | string | Contact job title |
| ↳ `lifecyclestage` | string | Lifecycle stage \(subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer\) |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `createdate` | string | Contact creation date \(ISO 8601\) |
| ↳ `lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `address` | string | Street address |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `fax` | string | Fax number |
| ↳ `hs_timezone` | string | Contact timezone |
| `paging` | object | Pagination information for fetching more results |
| ↳ `after` | string | Cursor for next page of results |
| ↳ `link` | string | Link to next page |
| `metadata` | object | Response metadata |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records are available |
| `total` | number | Total number of matching contacts | | `total` | number | Total number of matching contacts |
| `paging` | object | Pagination information |
| `metadata` | object | Metadata with totalReturned and hasMore |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
### `hubspot_list_companies` ### `hubspot_list_companies`
@@ -178,9 +292,34 @@ Retrieve all companies from HubSpot account with pagination support
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `companies` | array | Array of HubSpot company objects | | `companies` | array | Array of HubSpot company records |
| `paging` | object | Pagination information | | ↳ `name` | string | Company name |
| `metadata` | object | Metadata with totalReturned and hasMore | | ↳ `domain` | string | Company website domain \(unique identifier\) |
| ↳ `description` | string | Company description |
| ↳ `industry` | string | Industry type \(e.g., Airlines/Aviation\) |
| ↳ `phone` | string | Company phone number |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `address` | string | Street address |
| ↳ `numberofemployees` | string | Total number of employees |
| ↳ `annualrevenue` | string | Annual revenue estimate |
| ↳ `lifecyclestage` | string | Lifecycle stage |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `hs_createdate` | string | Company creation date \(ISO 8601\) |
| ↳ `hs_lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `hs_additional_domains` | string | Additional domains \(semicolon-separated\) |
| ↳ `num_associated_contacts` | string | Number of associated contacts \(auto-updated\) |
| ↳ `num_associated_deals` | string | Number of associated deals \(auto-updated\) |
| ↳ `website` | string | Company website URL |
| `paging` | object | Pagination information for fetching more results |
| ↳ `after` | string | Cursor for next page of results |
| ↳ `link` | string | Link to next page |
| `metadata` | object | Response metadata |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records are available |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
### `hubspot_get_company` ### `hubspot_get_company`
@@ -200,7 +339,28 @@ Retrieve a single company by ID or domain from HubSpot
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | HubSpot company object with properties | | `company` | object | HubSpot company record |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company website domain \(unique identifier\) |
| ↳ `description` | string | Company description |
| ↳ `industry` | string | Industry type \(e.g., Airlines/Aviation\) |
| ↳ `phone` | string | Company phone number |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `address` | string | Street address |
| ↳ `numberofemployees` | string | Total number of employees |
| ↳ `annualrevenue` | string | Annual revenue estimate |
| ↳ `lifecyclestage` | string | Lifecycle stage |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `hs_createdate` | string | Company creation date \(ISO 8601\) |
| ↳ `hs_lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `hs_additional_domains` | string | Additional domains \(semicolon-separated\) |
| ↳ `num_associated_contacts` | string | Number of associated contacts \(auto-updated\) |
| ↳ `num_associated_deals` | string | Number of associated deals \(auto-updated\) |
| ↳ `website` | string | Company website URL |
| `companyId` | string | The retrieved company ID | | `companyId` | string | The retrieved company ID |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -219,7 +379,28 @@ Create a new company in HubSpot
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | Created HubSpot company object | | `company` | object | HubSpot company record |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company website domain \(unique identifier\) |
| ↳ `description` | string | Company description |
| ↳ `industry` | string | Industry type \(e.g., Airlines/Aviation\) |
| ↳ `phone` | string | Company phone number |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `address` | string | Street address |
| ↳ `numberofemployees` | string | Total number of employees |
| ↳ `annualrevenue` | string | Annual revenue estimate |
| ↳ `lifecyclestage` | string | Lifecycle stage |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `hs_createdate` | string | Company creation date \(ISO 8601\) |
| ↳ `hs_lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `hs_additional_domains` | string | Additional domains \(semicolon-separated\) |
| ↳ `num_associated_contacts` | string | Number of associated contacts \(auto-updated\) |
| ↳ `num_associated_deals` | string | Number of associated deals \(auto-updated\) |
| ↳ `website` | string | Company website URL |
| `companyId` | string | The created company ID | | `companyId` | string | The created company ID |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -239,7 +420,28 @@ Update an existing company in HubSpot by ID or domain
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | Updated HubSpot company object | | `company` | object | HubSpot company record |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company website domain \(unique identifier\) |
| ↳ `description` | string | Company description |
| ↳ `industry` | string | Industry type \(e.g., Airlines/Aviation\) |
| ↳ `phone` | string | Company phone number |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `address` | string | Street address |
| ↳ `numberofemployees` | string | Total number of employees |
| ↳ `annualrevenue` | string | Annual revenue estimate |
| ↳ `lifecyclestage` | string | Lifecycle stage |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `hs_createdate` | string | Company creation date \(ISO 8601\) |
| ↳ `hs_lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `hs_additional_domains` | string | Additional domains \(semicolon-separated\) |
| ↳ `num_associated_contacts` | string | Number of associated contacts \(auto-updated\) |
| ↳ `num_associated_deals` | string | Number of associated deals \(auto-updated\) |
| ↳ `website` | string | Company website URL |
| `companyId` | string | The updated company ID | | `companyId` | string | The updated company ID |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -262,10 +464,35 @@ Search for companies in HubSpot using filters, sorting, and queries
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `companies` | array | Array of matching HubSpot company objects | | `companies` | array | Array of HubSpot company records |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company website domain \(unique identifier\) |
| ↳ `description` | string | Company description |
| ↳ `industry` | string | Industry type \(e.g., Airlines/Aviation\) |
| ↳ `phone` | string | Company phone number |
| ↳ `city` | string | City |
| ↳ `state` | string | State/Region |
| ↳ `zip` | string | Postal/ZIP code |
| ↳ `country` | string | Country |
| ↳ `address` | string | Street address |
| ↳ `numberofemployees` | string | Total number of employees |
| ↳ `annualrevenue` | string | Annual revenue estimate |
| ↳ `lifecyclestage` | string | Lifecycle stage |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `hs_createdate` | string | Company creation date \(ISO 8601\) |
| ↳ `hs_lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `hs_additional_domains` | string | Additional domains \(semicolon-separated\) |
| ↳ `num_associated_contacts` | string | Number of associated contacts \(auto-updated\) |
| ↳ `num_associated_deals` | string | Number of associated deals \(auto-updated\) |
| ↳ `website` | string | Company website URL |
| `paging` | object | Pagination information for fetching more results |
| ↳ `after` | string | Cursor for next page of results |
| ↳ `link` | string | Link to next page |
| `metadata` | object | Response metadata |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records are available |
| `total` | number | Total number of matching companies | | `total` | number | Total number of matching companies |
| `paging` | object | Pagination information |
| `metadata` | object | Metadata with totalReturned and hasMore |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
### `hubspot_list_deals` ### `hubspot_list_deals`
@@ -285,9 +512,25 @@ Retrieve all deals from HubSpot account with pagination support
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deals` | array | Array of HubSpot deal objects | | `deals` | array | Array of HubSpot deal records |
| `paging` | object | Pagination information | | ↳ `dealname` | string | Deal name |
| `metadata` | object | Metadata with totalReturned and hasMore | | ↳ `amount` | string | Deal amount |
| ↳ `dealstage` | string | Current deal stage |
| ↳ `pipeline` | string | Pipeline the deal is in |
| ↳ `closedate` | string | Expected close date \(ISO 8601\) |
| ↳ `dealtype` | string | Deal type \(New Business, Existing Business, etc.\) |
| ↳ `description` | string | Deal description |
| ↳ `hubspot_owner_id` | string | HubSpot owner ID |
| ↳ `hs_object_id` | string | HubSpot object ID \(same as record ID\) |
| ↳ `createdate` | string | Deal creation date \(ISO 8601\) |
| ↳ `hs_lastmodifieddate` | string | Last modified date \(ISO 8601\) |
| ↳ `num_associated_contacts` | string | Number of associated contacts |
| `paging` | object | Pagination information for fetching more results |
| ↳ `after` | string | Cursor for next page of results |
| ↳ `link` | string | Link to next page |
| `metadata` | object | Response metadata |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records are available |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |

View File

@@ -54,11 +54,11 @@ Generate completions using Hugging Face Inference API
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Chat completion results | | `output` | object | Chat completion results |
| ↳ `content` | string | Generated text content | | ↳ `content` | string | Generated text content |
| ↳ `model` | string | Model used for generation | | ↳ `model` | string | Model used for generation |
| ↳ `usage` | object | Token usage information | | ↳ `usage` | object | Token usage information |
| ↳ `prompt_tokens` | number | Number of tokens in the prompt | | ↳ `prompt_tokens` | number | Number of tokens in the prompt |
| ↳ `completion_tokens` | number | Number of tokens in the completion | | ↳ `completion_tokens` | number | Number of tokens in the completion |
| ↳ `total_tokens` | number | Total number of tokens used | | ↳ `total_tokens` | number | Total number of tokens used |

View File

@@ -52,7 +52,12 @@ Returns companies matching a set of criteria using Hunter.io AI-powered search.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | Array of companies matching the search criteria, each containing domain, name, headcount, technologies, and email_count | | `results` | array | List of companies matching the search criteria |
| ↳ `domain` | string | Company domain |
| ↳ `name` | string | Company/organization name |
| ↳ `headcount` | number | Company size/headcount |
| ↳ `technologies` | array | Technologies used by the company |
| ↳ `email_count` | number | Total number of email addresses found |
### `hunter_domain_search` ### `hunter_domain_search`
@@ -74,26 +79,46 @@ Returns all the email addresses found using one given domain name, with sources.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `emails` | array | List of email addresses found for the domain \(up to 100 per request\) |
| ↳ `value` | string | The email address |
| ↳ `type` | string | Email type: personal or generic \(role-based\) |
| ↳ `confidence` | number | Probability score \(0-100\) that the email is correct |
| ↳ `first_name` | string | Person's first name |
| ↳ `last_name` | string | Person's last name |
| ↳ `position` | string | Job title/position |
| ↳ `seniority` | string | Seniority level \(junior, senior, executive\) |
| ↳ `department` | string | Department \(executive, it, finance, management, sales, legal, support, hr, marketing, communication\) |
| ↳ `linkedin` | string | LinkedIn profile URL |
| ↳ `twitter` | string | Twitter handle |
| ↳ `phone_number` | string | Phone number |
| ↳ `sources` | array | List of sources where the email was found \(limited to 20\) |
| ↳ `domain` | string | Domain where the email was found |
| ↳ `uri` | string | Full URL of the source page |
| ↳ `extracted_on` | string | Date when the email was first extracted \(YYYY-MM-DD\) |
| ↳ `last_seen_on` | string | Date when the email was last seen \(YYYY-MM-DD\) |
| ↳ `still_on_page` | boolean | Whether the email is still present on the source page |
| ↳ `verification` | object | Email verification information |
| ↳ `date` | string | Date when the email was verified \(YYYY-MM-DD\) |
| ↳ `status` | string | Verification status \(valid, invalid, accept_all, webmail, disposable, unknown\) |
| `domain` | string | The searched domain name | | `domain` | string | The searched domain name |
| `disposable` | boolean | Whether the domain accepts disposable email addresses | | `disposable` | boolean | Whether the domain is a disposable email service |
| `webmail` | boolean | Whether the domain is a webmail provider | | `webmail` | boolean | Whether the domain is a webmail provider \(e.g., Gmail\) |
| `accept_all` | boolean | Whether the domain accepts all email addresses | | `accept_all` | boolean | Whether the server accepts all email addresses \(may cause false positives\) |
| `pattern` | string | The email pattern used by the organization | | `pattern` | string | The email pattern used by the organization \(e.g., \{first\}, \{first\}.\{last\}\) |
| `organization` | string | The organization name | | `organization` | string | The organization/company name |
| `description` | string | Description of the organization | | `description` | string | Description of the organization |
| `industry` | string | Industry of the organization | | `industry` | string | Industry classification of the organization |
| `twitter` | string | Twitter profile of the organization | | `twitter` | string | Twitter handle of the organization |
| `facebook` | string | Facebook profile of the organization | | `facebook` | string | Facebook page URL of the organization |
| `linkedin` | string | LinkedIn profile of the organization | | `linkedin` | string | LinkedIn company page URL |
| `instagram` | string | Instagram profile of the organization | | `instagram` | string | Instagram profile of the organization |
| `youtube` | string | YouTube channel of the organization | | `youtube` | string | YouTube channel of the organization |
| `technologies` | array | Array of technologies used by the organization | | `technologies` | array | Technologies used by the organization |
| `country` | string | Country where the organization is located | | `country` | string | Country where the organization is headquartered |
| `state` | string | State where the organization is located | | `state` | string | State/province where the organization is located |
| `city` | string | City where the organization is located | | `city` | string | City where the organization is located |
| `postal_code` | string | Postal code of the organization | | `postal_code` | string | Postal code of the organization |
| `street` | string | Street address of the organization | | `street` | string | Street address of the organization |
| `emails` | array | Array of email addresses found for the domain, each containing value, type, confidence, sources, and person details |
### `hunter_email_finder` ### `hunter_email_finder`
@@ -113,10 +138,17 @@ Finds the most likely email address for a person given their name and company do
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `sources` | array | List of sources where the email was found \(limited to 20\) |
| ↳ `domain` | string | Domain where the email was found |
| ↳ `uri` | string | Full URL of the source page |
| ↳ `extracted_on` | string | Date when the email was first extracted \(YYYY-MM-DD\) |
| ↳ `last_seen_on` | string | Date when the email was last seen \(YYYY-MM-DD\) |
| ↳ `still_on_page` | boolean | Whether the email is still present on the source page |
| `verification` | object | Email verification information |
| ↳ `date` | string | Date when the email was verified \(YYYY-MM-DD\) |
| ↳ `status` | string | Verification status \(valid, invalid, accept_all, webmail, disposable, unknown\) |
| `email` | string | The found email address | | `email` | string | The found email address |
| `score` | number | Confidence score for the found email address | | `score` | number | Confidence score \(0-100\) for the found email address |
| `sources` | array | Array of sources where the email was found, each containing domain, uri, extracted_on, last_seen_on, and still_on_page |
| `verification` | object | Verification information containing date and status |
### `hunter_email_verifier` ### `hunter_email_verifier`
@@ -133,20 +165,25 @@ Verifies the deliverability of an email address and provides detailed verificati
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `sources` | array | List of sources where the email was found \(limited to 20\) |
| ↳ `domain` | string | Domain where the email was found |
| ↳ `uri` | string | Full URL of the source page |
| ↳ `extracted_on` | string | Date when the email was first extracted \(YYYY-MM-DD\) |
| ↳ `last_seen_on` | string | Date when the email was last seen \(YYYY-MM-DD\) |
| ↳ `still_on_page` | boolean | Whether the email is still present on the source page |
| `result` | string | Deliverability result: deliverable, undeliverable, or risky | | `result` | string | Deliverability result: deliverable, undeliverable, or risky |
| `score` | number | Confidence score for the verification result | | `score` | number | Deliverability score \(0-100\). Webmail and disposable emails receive an arbitrary score of 50. |
| `email` | string | The verified email address | | `email` | string | The verified email address |
| `regexp` | boolean | Whether the email follows a valid regex pattern | | `regexp` | boolean | Whether the email passes regular expression validation |
| `gibberish` | boolean | Whether the email appears to be gibberish | | `gibberish` | boolean | Whether the email appears to be auto-generated \(e.g., e65rc109q@company.com\) |
| `disposable` | boolean | Whether the email is from a disposable email provider | | `disposable` | boolean | Whether the email is from a disposable email service |
| `webmail` | boolean | Whether the email is from a webmail provider | | `webmail` | boolean | Whether the email is from a webmail provider \(e.g., Gmail\) |
| `mx_records` | boolean | Whether MX records exist for the domain | | `mx_records` | boolean | Whether MX records exist for the domain |
| `smtp_server` | boolean | Whether the SMTP server is reachable | | `smtp_server` | boolean | Whether connection to the SMTP server was successful |
| `smtp_check` | boolean | Whether the SMTP check was successful | | `smtp_check` | boolean | Whether the email address doesn't bounce |
| `accept_all` | boolean | Whether the domain accepts all email addresses | | `accept_all` | boolean | Whether the server accepts all email addresses \(may cause false positives\) |
| `block` | boolean | Whether the email is blocked | | `block` | boolean | Whether the domain is blocking verification \(validity could not be determined\) |
| `status` | string | Verification status: valid, invalid, accept_all, webmail, disposable, or unknown | | `status` | string | Verification status: valid, invalid, accept_all, webmail, disposable, unknown, or blocked |
| `sources` | array | Array of sources where the email was found |
### `hunter_companies_find` ### `hunter_companies_find`
@@ -163,8 +200,15 @@ Enriches company data using domain name.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | Company information |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company domain |
| ↳ `industry` | string | Industry classification |
| ↳ `size` | string | Company size/headcount range |
| ↳ `country` | string | Country where the company is located |
| ↳ `linkedin` | string | LinkedIn company page URL |
| ↳ `twitter` | string | Twitter handle |
| `person` | object | Person information \(undefined for companies_find tool\) | | `person` | object | Person information \(undefined for companies_find tool\) |
| `company` | object | Company information including name, domain, industry, size, country, linkedin, and twitter |
### `hunter_email_count` ### `hunter_email_count`
@@ -183,10 +227,27 @@ Returns the total number of email addresses found for a domain or company.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `department` | object | Email count breakdown by department |
| ↳ `executive` | number | Number of executive department emails |
| ↳ `it` | number | Number of IT department emails |
| ↳ `finance` | number | Number of finance department emails |
| ↳ `management` | number | Number of management department emails |
| ↳ `sales` | number | Number of sales department emails |
| ↳ `legal` | number | Number of legal department emails |
| ↳ `support` | number | Number of support department emails |
| ↳ `hr` | number | Number of HR department emails |
| ↳ `marketing` | number | Number of marketing department emails |
| ↳ `communication` | number | Number of communication department emails |
| ↳ `education` | number | Number of education department emails |
| ↳ `design` | number | Number of design department emails |
| ↳ `health` | number | Number of health department emails |
| ↳ `operations` | number | Number of operations department emails |
| `seniority` | object | Email count breakdown by seniority level |
| ↳ `junior` | number | Number of junior-level emails |
| ↳ `senior` | number | Number of senior-level emails |
| ↳ `executive` | number | Number of executive-level emails |
| `total` | number | Total number of email addresses found | | `total` | number | Total number of email addresses found |
| `personal_emails` | number | Number of personal email addresses found | | `personal_emails` | number | Number of personal email addresses \(individual employees\) |
| `generic_emails` | number | Number of generic email addresses found | | `generic_emails` | number | Number of generic/role-based email addresses \(e.g., contact@, info@\) |
| `department` | object | Breakdown of email addresses by department \(executive, it, finance, management, sales, legal, support, hr, marketing, communication\) |
| `seniority` | object | Breakdown of email addresses by seniority level \(junior, senior, executive\) |

View File

@@ -58,9 +58,9 @@ Generate images using OpenAI
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Generated image data | | `output` | object | Generated image data |
| ↳ `content` | string | Image URL or identifier | | ↳ `content` | string | Image URL or identifier |
| ↳ `image` | string | Base64 encoded image data | | ↳ `image` | string | Base64 encoded image data |
| ↳ `metadata` | object | Image generation metadata | | ↳ `metadata` | object | Image generation metadata |
| ↳ `model` | string | Model used for image generation | | ↳ `model` | string | Model used for image generation |

View File

@@ -58,32 +58,36 @@ List incidents from incident.io. Returns a list of incidents with their details
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incidents` | array | List of incidents | | `incidents` | array | List of incidents |
| ↳ `id` | string | Incident ID | | ↳ `id` | string | Incident ID |
| ↳ `name` | string | Incident name | | ↳ `name` | string | Incident name/title |
| ↳ `summary` | string | Brief summary of the incident | | ↳ `summary` | string | Incident summary |
| ↳ `description` | string | Detailed description of the incident | | ↳ `description` | string | Incident description |
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) | | ↳ `mode` | string | Incident mode \(standard, retrospective, test\) |
| ↳ `call_url` | string | URL for the incident call/bridge | | ↳ `call_url` | string | Video call URL |
| ↳ `severity` | object | Severity of the incident | | ↳ `severity` | object | Incident severity |
| ↳ `id` | string | Severity ID | | ↳ `id` | string | Severity ID |
| ↳ `name` | string | Severity name | | ↳ `name` | string | Severity name \(e.g., Critical, Major, Minor\) |
| ↳ `rank` | number | Severity rank | | ↳ `description` | string | Severity description |
| ↳ `status` | object | Current status of the incident | | ↳ `rank` | number | Severity rank \(lower = more severe\) |
| ↳ `id` | string | Status ID | | ↳ `status` | object | Current incident status |
| ↳ `name` | string | Status name | | ↳ `id` | string | Status ID |
| ↳ `category` | string | Status category | | ↳ `name` | string | Status name |
| ↳ `incident_type` | object | Type of the incident | | ↳ `description` | string | Status description |
| ↳ `id` | string | Type ID | | ↳ `category` | string | Status category \(triage, active, post-incident, closed\) |
| ↳ `name` | string | Type name | | ↳ `incident_type` | object | Incident type |
| ↳ `created_at` | string | Creation timestamp | | ↳ `id` | string | Incident type ID |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `name` | string | Incident type name |
| ↳ `incident_url` | string | URL to the incident | | ↳ `description` | string | Incident type description |
| ↳ `slack_channel_id` | string | Associated Slack channel ID | | ↳ `is_default` | boolean | Whether this is the default incident type |
| ↳ `slack_channel_name` | string | Associated Slack channel name | | ↳ `created_at` | string | When the incident was created \(ISO 8601\) |
| ↳ `visibility` | string | Incident visibility | | ↳ `updated_at` | string | When the incident was last updated \(ISO 8601\) |
| ↳ `incident_url` | string | URL to the incident page |
| ↳ `slack_channel_id` | string | Slack channel ID |
| ↳ `slack_channel_name` | string | Slack channel name |
| ↳ `visibility` | string | Incident visibility \(public, private\) |
| `pagination_meta` | object | Pagination metadata | | `pagination_meta` | object | Pagination metadata |
| ↳ `after` | string | Cursor for the next page | | ↳ `after` | string | Cursor for next page |
| ↳ `page_size` | number | Number of items per page | | ↳ `page_size` | number | Number of items per page |
| ↳ `total_record_count` | number | Total number of records available | | ↳ `total_record_count` | number | Total number of records |
### `incidentio_incidents_create` ### `incidentio_incidents_create`
@@ -107,29 +111,29 @@ Create a new incident in incident.io. Requires idempotency_key, severity_id, and
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident` | object | The created incident object | | `incident` | object | The created incident object |
| ↳ `id` | string | Incident ID | | ↳ `id` | string | Incident ID |
| ↳ `name` | string | Incident name | | ↳ `name` | string | Incident name |
| ↳ `summary` | string | Brief summary of the incident | | ↳ `summary` | string | Brief summary of the incident |
| ↳ `description` | string | Detailed description of the incident | | ↳ `description` | string | Detailed description of the incident |
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) | | ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
| ↳ `call_url` | string | URL for the incident call/bridge | | ↳ `call_url` | string | URL for the incident call/bridge |
| ↳ `severity` | object | Severity of the incident | | ↳ `severity` | object | Severity of the incident |
| ↳ `id` | string | Severity ID | | ↳ `id` | string | Severity ID |
| ↳ `name` | string | Severity name | | ↳ `name` | string | Severity name |
| ↳ `rank` | number | Severity rank | | ↳ `rank` | number | Severity rank |
| ↳ `status` | object | Current status of the incident | | ↳ `status` | object | Current status of the incident |
| ↳ `id` | string | Status ID | | ↳ `id` | string | Status ID |
| ↳ `name` | string | Status name | | ↳ `name` | string | Status name |
| ↳ `category` | string | Status category | | ↳ `category` | string | Status category |
| ↳ `incident_type` | object | Type of the incident | | ↳ `incident_type` | object | Type of the incident |
| ↳ `id` | string | Type ID | | ↳ `id` | string | Type ID |
| ↳ `name` | string | Type name | | ↳ `name` | string | Type name |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_url` | string | URL to the incident | | ↳ `incident_url` | string | URL to the incident |
| ↳ `slack_channel_id` | string | Associated Slack channel ID | | ↳ `slack_channel_id` | string | Associated Slack channel ID |
| ↳ `slack_channel_name` | string | Associated Slack channel name | | ↳ `slack_channel_name` | string | Associated Slack channel name |
| ↳ `visibility` | string | Incident visibility | | ↳ `visibility` | string | Incident visibility |
### `incidentio_incidents_show` ### `incidentio_incidents_show`
@@ -147,32 +151,32 @@ Retrieve detailed information about a specific incident from incident.io by its
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident` | object | Detailed incident information | | `incident` | object | Detailed incident information |
| ↳ `id` | string | Incident ID | | ↳ `id` | string | Incident ID |
| ↳ `name` | string | Incident name | | ↳ `name` | string | Incident name |
| ↳ `summary` | string | Brief summary of the incident | | ↳ `summary` | string | Brief summary of the incident |
| ↳ `description` | string | Detailed description of the incident | | ↳ `description` | string | Detailed description of the incident |
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) | | ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
| ↳ `call_url` | string | URL for the incident call/bridge | | ↳ `call_url` | string | URL for the incident call/bridge |
| ↳ `permalink` | string | Permanent link to the incident | | ↳ `permalink` | string | Permanent link to the incident |
| ↳ `severity` | object | Severity of the incident | | ↳ `severity` | object | Severity of the incident |
| ↳ `id` | string | Severity ID | | ↳ `id` | string | Severity ID |
| ↳ `name` | string | Severity name | | ↳ `name` | string | Severity name |
| ↳ `rank` | number | Severity rank | | ↳ `rank` | number | Severity rank |
| ↳ `status` | object | Current status of the incident | | ↳ `status` | object | Current status of the incident |
| ↳ `id` | string | Status ID | | ↳ `id` | string | Status ID |
| ↳ `name` | string | Status name | | ↳ `name` | string | Status name |
| ↳ `category` | string | Status category | | ↳ `category` | string | Status category |
| ↳ `incident_type` | object | Type of the incident | | ↳ `incident_type` | object | Type of the incident |
| ↳ `id` | string | Type ID | | ↳ `id` | string | Type ID |
| ↳ `name` | string | Type name | | ↳ `name` | string | Type name |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_url` | string | URL to the incident | | ↳ `incident_url` | string | URL to the incident |
| ↳ `slack_channel_id` | string | Associated Slack channel ID | | ↳ `slack_channel_id` | string | Associated Slack channel ID |
| ↳ `slack_channel_name` | string | Associated Slack channel name | | ↳ `slack_channel_name` | string | Associated Slack channel name |
| ↳ `visibility` | string | Incident visibility | | ↳ `visibility` | string | Incident visibility |
| ↳ `custom_field_entries` | array | Custom field values for the incident | | ↳ `custom_field_entries` | array | Custom field values for the incident |
| ↳ `incident_role_assignments` | array | Role assignments for the incident | | ↳ `incident_role_assignments` | array | Role assignments for the incident |
### `incidentio_incidents_update` ### `incidentio_incidents_update`
@@ -196,29 +200,29 @@ Update an existing incident in incident.io. Can update name, summary, severity,
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident` | object | The updated incident object | | `incident` | object | The updated incident object |
| ↳ `id` | string | Incident ID | | ↳ `id` | string | Incident ID |
| ↳ `name` | string | Incident name | | ↳ `name` | string | Incident name |
| ↳ `summary` | string | Brief summary of the incident | | ↳ `summary` | string | Brief summary of the incident |
| ↳ `description` | string | Detailed description of the incident | | ↳ `description` | string | Detailed description of the incident |
| ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) | | ↳ `mode` | string | Incident mode \(e.g., standard, retrospective\) |
| ↳ `call_url` | string | URL for the incident call/bridge | | ↳ `call_url` | string | URL for the incident call/bridge |
| ↳ `severity` | object | Severity of the incident | | ↳ `severity` | object | Severity of the incident |
| ↳ `id` | string | Severity ID | | ↳ `id` | string | Severity ID |
| ↳ `name` | string | Severity name | | ↳ `name` | string | Severity name |
| ↳ `rank` | number | Severity rank | | ↳ `rank` | number | Severity rank |
| ↳ `status` | object | Current status of the incident | | ↳ `status` | object | Current status of the incident |
| ↳ `id` | string | Status ID | | ↳ `id` | string | Status ID |
| ↳ `name` | string | Status name | | ↳ `name` | string | Status name |
| ↳ `category` | string | Status category | | ↳ `category` | string | Status category |
| ↳ `incident_type` | object | Type of the incident | | ↳ `incident_type` | object | Type of the incident |
| ↳ `id` | string | Type ID | | ↳ `id` | string | Type ID |
| ↳ `name` | string | Type name | | ↳ `name` | string | Type name |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_url` | string | URL to the incident | | ↳ `incident_url` | string | URL to the incident |
| ↳ `slack_channel_id` | string | Associated Slack channel ID | | ↳ `slack_channel_id` | string | Associated Slack channel ID |
| ↳ `slack_channel_name` | string | Associated Slack channel name | | ↳ `slack_channel_name` | string | Associated Slack channel name |
| ↳ `visibility` | string | Incident visibility | | ↳ `visibility` | string | Incident visibility |
### `incidentio_actions_list` ### `incidentio_actions_list`
@@ -240,23 +244,23 @@ List actions from incident.io. Optionally filter by incident ID.
| ↳ `id` | string | Action ID | | ↳ `id` | string | Action ID |
| ↳ `description` | string | Action description | | ↳ `description` | string | Action description |
| ↳ `assignee` | object | Assigned user | | ↳ `assignee` | object | Assigned user |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `status` | string | Action status | | ↳ `status` | string | Action status |
| ↳ `due_at` | string | Due date/time | | ↳ `due_at` | string | Due date/time |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_id` | string | Associated incident ID | | ↳ `incident_id` | string | Associated incident ID |
| ↳ `creator` | object | User who created the action | | ↳ `creator` | object | User who created the action |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `completed_at` | string | Completion timestamp | | ↳ `completed_at` | string | Completion timestamp |
| ↳ `external_issue_reference` | object | External issue tracking reference | | ↳ `external_issue_reference` | object | External issue tracking reference |
| ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) | | ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) |
| ↳ `issue_name` | string | Issue identifier | | ↳ `issue_name` | string | Issue identifier |
| ↳ `issue_permalink` | string | URL to the external issue | | ↳ `issue_permalink` | string | URL to the external issue |
### `incidentio_actions_show` ### `incidentio_actions_show`
@@ -274,26 +278,26 @@ Get detailed information about a specific action from incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `action` | object | Action details | | `action` | object | Action details |
| ↳ `id` | string | Action ID | | ↳ `id` | string | Action ID |
| ↳ `description` | string | Action description | | ↳ `description` | string | Action description |
| ↳ `assignee` | object | Assigned user | | ↳ `assignee` | object | Assigned user |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `status` | string | Action status | | ↳ `status` | string | Action status |
| ↳ `due_at` | string | Due date/time | | ↳ `due_at` | string | Due date/time |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_id` | string | Associated incident ID | | ↳ `incident_id` | string | Associated incident ID |
| ↳ `creator` | object | User who created the action | | ↳ `creator` | object | User who created the action |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `completed_at` | string | Completion timestamp | | ↳ `completed_at` | string | Completion timestamp |
| ↳ `external_issue_reference` | object | External issue tracking reference | | ↳ `external_issue_reference` | object | External issue tracking reference |
| ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) | | ↳ `provider` | string | Issue tracking provider \(e.g., Jira, Linear\) |
| ↳ `issue_name` | string | Issue identifier | | ↳ `issue_name` | string | Issue identifier |
| ↳ `issue_permalink` | string | URL to the external issue | | ↳ `issue_permalink` | string | URL to the external issue |
### `incidentio_follow_ups_list` ### `incidentio_follow_ups_list`
@@ -316,28 +320,28 @@ List follow-ups from incident.io. Optionally filter by incident ID.
| ↳ `title` | string | Follow-up title | | ↳ `title` | string | Follow-up title |
| ↳ `description` | string | Follow-up description | | ↳ `description` | string | Follow-up description |
| ↳ `assignee` | object | Assigned user | | ↳ `assignee` | object | Assigned user |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `status` | string | Follow-up status | | ↳ `status` | string | Follow-up status |
| ↳ `priority` | object | Follow-up priority | | ↳ `priority` | object | Follow-up priority |
| ↳ `id` | string | Priority ID | | ↳ `id` | string | Priority ID |
| ↳ `name` | string | Priority name | | ↳ `name` | string | Priority name |
| ↳ `description` | string | Priority description | | ↳ `description` | string | Priority description |
| ↳ `rank` | number | Priority rank | | ↳ `rank` | number | Priority rank |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_id` | string | Associated incident ID | | ↳ `incident_id` | string | Associated incident ID |
| ↳ `creator` | object | User who created the follow-up | | ↳ `creator` | object | User who created the follow-up |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `completed_at` | string | Completion timestamp | | ↳ `completed_at` | string | Completion timestamp |
| ↳ `labels` | array | Labels associated with the follow-up | | ↳ `labels` | array | Labels associated with the follow-up |
| ↳ `external_issue_reference` | object | External issue tracking reference | | ↳ `external_issue_reference` | object | External issue tracking reference |
| ↳ `provider` | string | External provider name | | ↳ `provider` | string | External provider name |
| ↳ `issue_name` | string | External issue name or ID | | ↳ `issue_name` | string | External issue name or ID |
| ↳ `issue_permalink` | string | Permalink to external issue | | ↳ `issue_permalink` | string | Permalink to external issue |
### `incidentio_follow_ups_show` ### `incidentio_follow_ups_show`
@@ -355,32 +359,32 @@ Get detailed information about a specific follow-up from incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `follow_up` | object | Follow-up details | | `follow_up` | object | Follow-up details |
| ↳ `id` | string | Follow-up ID | | ↳ `id` | string | Follow-up ID |
| ↳ `title` | string | Follow-up title | | ↳ `title` | string | Follow-up title |
| ↳ `description` | string | Follow-up description | | ↳ `description` | string | Follow-up description |
| ↳ `assignee` | object | Assigned user | | ↳ `assignee` | object | Assigned user |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `status` | string | Follow-up status | | ↳ `status` | string | Follow-up status |
| ↳ `priority` | object | Follow-up priority | | ↳ `priority` | object | Follow-up priority |
| ↳ `id` | string | Priority ID | | ↳ `id` | string | Priority ID |
| ↳ `name` | string | Priority name | | ↳ `name` | string | Priority name |
| ↳ `description` | string | Priority description | | ↳ `description` | string | Priority description |
| ↳ `rank` | number | Priority rank | | ↳ `rank` | number | Priority rank |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `incident_id` | string | Associated incident ID | | ↳ `incident_id` | string | Associated incident ID |
| ↳ `creator` | object | User who created the follow-up | | ↳ `creator` | object | User who created the follow-up |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `completed_at` | string | Completion timestamp | | ↳ `completed_at` | string | Completion timestamp |
| ↳ `labels` | array | Labels associated with the follow-up | | ↳ `labels` | array | Labels associated with the follow-up |
| ↳ `external_issue_reference` | object | External issue tracking reference | | ↳ `external_issue_reference` | object | External issue tracking reference |
| ↳ `provider` | string | External provider name | | ↳ `provider` | string | External provider name |
| ↳ `issue_name` | string | External issue name or ID | | ↳ `issue_name` | string | External issue name or ID |
| ↳ `issue_permalink` | string | Permalink to external issue | | ↳ `issue_permalink` | string | Permalink to external issue |
### `incidentio_users_list` ### `incidentio_users_list`
@@ -419,10 +423,10 @@ Get detailed information about a specific user in your Incident.io workspace by
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | Details of the requested user | | `user` | object | Details of the requested user |
| ↳ `id` | string | Unique identifier for the user | | ↳ `id` | string | Unique identifier for the user |
| ↳ `name` | string | Full name of the user | | ↳ `name` | string | Full name of the user |
| ↳ `email` | string | Email address of the user | | ↳ `email` | string | Email address of the user |
| ↳ `role` | string | Role of the user in the workspace | | ↳ `role` | string | Role of the user in the workspace |
### `incidentio_workflows_list` ### `incidentio_workflows_list`
@@ -448,8 +452,8 @@ List all workflows in your incident.io workspace.
| ↳ `created_at` | string | When the workflow was created | | ↳ `created_at` | string | When the workflow was created |
| ↳ `updated_at` | string | When the workflow was last updated | | ↳ `updated_at` | string | When the workflow was last updated |
| `pagination_meta` | object | Pagination metadata | | `pagination_meta` | object | Pagination metadata |
| ↳ `after` | string | Cursor for next page | | ↳ `after` | string | Cursor for next page |
| ↳ `page_size` | number | Number of results per page | | ↳ `page_size` | number | Number of results per page |
### `incidentio_workflows_show` ### `incidentio_workflows_show`
@@ -467,12 +471,12 @@ Get details of a specific workflow in incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `workflow` | object | The workflow details | | `workflow` | object | The workflow details |
| ↳ `id` | string | Unique identifier for the workflow | | ↳ `id` | string | Unique identifier for the workflow |
| ↳ `name` | string | Name of the workflow | | ↳ `name` | string | Name of the workflow |
| ↳ `state` | string | State of the workflow \(active, draft, or disabled\) | | ↳ `state` | string | State of the workflow \(active, draft, or disabled\) |
| ↳ `folder` | string | Folder the workflow belongs to | | ↳ `folder` | string | Folder the workflow belongs to |
| ↳ `created_at` | string | When the workflow was created | | ↳ `created_at` | string | When the workflow was created |
| ↳ `updated_at` | string | When the workflow was last updated | | ↳ `updated_at` | string | When the workflow was last updated |
### `incidentio_workflows_update` ### `incidentio_workflows_update`
@@ -493,12 +497,12 @@ Update an existing workflow in incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `workflow` | object | The updated workflow | | `workflow` | object | The updated workflow |
| ↳ `id` | string | Unique identifier for the workflow | | ↳ `id` | string | Unique identifier for the workflow |
| ↳ `name` | string | Name of the workflow | | ↳ `name` | string | Name of the workflow |
| ↳ `state` | string | State of the workflow \(active, draft, or disabled\) | | ↳ `state` | string | State of the workflow \(active, draft, or disabled\) |
| ↳ `folder` | string | Folder the workflow belongs to | | ↳ `folder` | string | Folder the workflow belongs to |
| ↳ `created_at` | string | When the workflow was created | | ↳ `created_at` | string | When the workflow was created |
| ↳ `updated_at` | string | When the workflow was last updated | | ↳ `updated_at` | string | When the workflow was last updated |
### `incidentio_workflows_delete` ### `incidentio_workflows_delete`
@@ -540,8 +544,8 @@ List all schedules in incident.io
| ↳ `created_at` | string | When the schedule was created | | ↳ `created_at` | string | When the schedule was created |
| ↳ `updated_at` | string | When the schedule was last updated | | ↳ `updated_at` | string | When the schedule was last updated |
| `pagination_meta` | object | Pagination metadata | | `pagination_meta` | object | Pagination metadata |
| ↳ `after` | string | Cursor for next page | | ↳ `after` | string | Cursor for next page |
| ↳ `page_size` | number | Number of results per page | | ↳ `page_size` | number | Number of results per page |
### `incidentio_schedules_create` ### `incidentio_schedules_create`
@@ -562,11 +566,11 @@ Create a new schedule in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `schedule` | object | The created schedule | | `schedule` | object | The created schedule |
| ↳ `id` | string | The schedule ID | | ↳ `id` | string | The schedule ID |
| ↳ `name` | string | The schedule name | | ↳ `name` | string | The schedule name |
| ↳ `timezone` | string | The schedule timezone | | ↳ `timezone` | string | The schedule timezone |
| ↳ `created_at` | string | When the schedule was created | | ↳ `created_at` | string | When the schedule was created |
| ↳ `updated_at` | string | When the schedule was last updated | | ↳ `updated_at` | string | When the schedule was last updated |
### `incidentio_schedules_show` ### `incidentio_schedules_show`
@@ -584,11 +588,11 @@ Get details of a specific schedule in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `schedule` | object | The schedule details | | `schedule` | object | The schedule details |
| ↳ `id` | string | The schedule ID | | ↳ `id` | string | The schedule ID |
| ↳ `name` | string | The schedule name | | ↳ `name` | string | The schedule name |
| ↳ `timezone` | string | The schedule timezone | | ↳ `timezone` | string | The schedule timezone |
| ↳ `created_at` | string | When the schedule was created | | ↳ `created_at` | string | When the schedule was created |
| ↳ `updated_at` | string | When the schedule was last updated | | ↳ `updated_at` | string | When the schedule was last updated |
### `incidentio_schedules_update` ### `incidentio_schedules_update`
@@ -610,11 +614,11 @@ Update an existing schedule in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `schedule` | object | The updated schedule | | `schedule` | object | The updated schedule |
| ↳ `id` | string | The schedule ID | | ↳ `id` | string | The schedule ID |
| ↳ `name` | string | The schedule name | | ↳ `name` | string | The schedule name |
| ↳ `timezone` | string | The schedule timezone | | ↳ `timezone` | string | The schedule timezone |
| ↳ `created_at` | string | When the schedule was created | | ↳ `created_at` | string | When the schedule was created |
| ↳ `updated_at` | string | When the schedule was last updated | | ↳ `updated_at` | string | When the schedule was last updated |
### `incidentio_schedules_delete` ### `incidentio_schedules_delete`
@@ -673,10 +677,10 @@ Create a new escalation policy in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `escalation` | object | The created escalation policy | | `escalation` | object | The created escalation policy |
| ↳ `id` | string | The escalation policy ID | | ↳ `id` | string | The escalation policy ID |
| ↳ `name` | string | The escalation policy name | | ↳ `name` | string | The escalation policy name |
| ↳ `created_at` | string | When the escalation policy was created | | ↳ `created_at` | string | When the escalation policy was created |
| ↳ `updated_at` | string | When the escalation policy was last updated | | ↳ `updated_at` | string | When the escalation policy was last updated |
### `incidentio_escalations_show` ### `incidentio_escalations_show`
@@ -694,10 +698,10 @@ Get details of a specific escalation policy in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `escalation` | object | The escalation policy details | | `escalation` | object | The escalation policy details |
| ↳ `id` | string | The escalation policy ID | | ↳ `id` | string | The escalation policy ID |
| ↳ `name` | string | The escalation policy name | | ↳ `name` | string | The escalation policy name |
| ↳ `created_at` | string | When the escalation policy was created | | ↳ `created_at` | string | When the escalation policy was created |
| ↳ `updated_at` | string | When the escalation policy was last updated | | ↳ `updated_at` | string | When the escalation policy was last updated |
### `incidentio_custom_fields_list` ### `incidentio_custom_fields_list`
@@ -739,12 +743,12 @@ Create a new custom field in incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `custom_field` | object | Created custom field | | `custom_field` | object | Created custom field |
| ↳ `id` | string | Custom field ID | | ↳ `id` | string | Custom field ID |
| ↳ `name` | string | Custom field name | | ↳ `name` | string | Custom field name |
| ↳ `description` | string | Custom field description | | ↳ `description` | string | Custom field description |
| ↳ `field_type` | string | Custom field type | | ↳ `field_type` | string | Custom field type |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
### `incidentio_custom_fields_show` ### `incidentio_custom_fields_show`
@@ -762,12 +766,12 @@ Get detailed information about a specific custom field from incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `custom_field` | object | Custom field details | | `custom_field` | object | Custom field details |
| ↳ `id` | string | Custom field ID | | ↳ `id` | string | Custom field ID |
| ↳ `name` | string | Custom field name | | ↳ `name` | string | Custom field name |
| ↳ `description` | string | Custom field description | | ↳ `description` | string | Custom field description |
| ↳ `field_type` | string | Custom field type | | ↳ `field_type` | string | Custom field type |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
### `incidentio_custom_fields_update` ### `incidentio_custom_fields_update`
@@ -787,12 +791,12 @@ Update an existing custom field in incident.io.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `custom_field` | object | Updated custom field | | `custom_field` | object | Updated custom field |
| ↳ `id` | string | Custom field ID | | ↳ `id` | string | Custom field ID |
| ↳ `name` | string | Custom field name | | ↳ `name` | string | Custom field name |
| ↳ `description` | string | Custom field description | | ↳ `description` | string | Custom field description |
| ↳ `field_type` | string | Custom field type | | ↳ `field_type` | string | Custom field type |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
### `incidentio_custom_fields_delete` ### `incidentio_custom_fields_delete`
@@ -915,15 +919,15 @@ Create a new incident role in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident_role` | object | The created incident role | | `incident_role` | object | The created incident role |
| ↳ `id` | string | The incident role ID | | ↳ `id` | string | The incident role ID |
| ↳ `name` | string | The incident role name | | ↳ `name` | string | The incident role name |
| ↳ `description` | string | The incident role description | | ↳ `description` | string | The incident role description |
| ↳ `instructions` | string | Instructions for the role | | ↳ `instructions` | string | Instructions for the role |
| ↳ `shortform` | string | Short form abbreviation of the role | | ↳ `shortform` | string | Short form abbreviation of the role |
| ↳ `role_type` | string | The type of role | | ↳ `role_type` | string | The type of role |
| ↳ `required` | boolean | Whether the role is required | | ↳ `required` | boolean | Whether the role is required |
| ↳ `created_at` | string | When the role was created | | ↳ `created_at` | string | When the role was created |
| ↳ `updated_at` | string | When the role was last updated | | ↳ `updated_at` | string | When the role was last updated |
### `incidentio_incident_roles_show` ### `incidentio_incident_roles_show`
@@ -941,15 +945,15 @@ Get details of a specific incident role in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident_role` | object | The incident role details | | `incident_role` | object | The incident role details |
| ↳ `id` | string | The incident role ID | | ↳ `id` | string | The incident role ID |
| ↳ `name` | string | The incident role name | | ↳ `name` | string | The incident role name |
| ↳ `description` | string | The incident role description | | ↳ `description` | string | The incident role description |
| ↳ `instructions` | string | Instructions for the role | | ↳ `instructions` | string | Instructions for the role |
| ↳ `shortform` | string | Short form abbreviation of the role | | ↳ `shortform` | string | Short form abbreviation of the role |
| ↳ `role_type` | string | The type of role | | ↳ `role_type` | string | The type of role |
| ↳ `required` | boolean | Whether the role is required | | ↳ `required` | boolean | Whether the role is required |
| ↳ `created_at` | string | When the role was created | | ↳ `created_at` | string | When the role was created |
| ↳ `updated_at` | string | When the role was last updated | | ↳ `updated_at` | string | When the role was last updated |
### `incidentio_incident_roles_update` ### `incidentio_incident_roles_update`
@@ -971,15 +975,15 @@ Update an existing incident role in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident_role` | object | The updated incident role | | `incident_role` | object | The updated incident role |
| ↳ `id` | string | The incident role ID | | ↳ `id` | string | The incident role ID |
| ↳ `name` | string | The incident role name | | ↳ `name` | string | The incident role name |
| ↳ `description` | string | The incident role description | | ↳ `description` | string | The incident role description |
| ↳ `instructions` | string | Instructions for the role | | ↳ `instructions` | string | Instructions for the role |
| ↳ `shortform` | string | Short form abbreviation of the role | | ↳ `shortform` | string | Short form abbreviation of the role |
| ↳ `role_type` | string | The type of role | | ↳ `role_type` | string | The type of role |
| ↳ `required` | boolean | Whether the role is required | | ↳ `required` | boolean | Whether the role is required |
| ↳ `created_at` | string | When the role was created | | ↳ `created_at` | string | When the role was created |
| ↳ `updated_at` | string | When the role was last updated | | ↳ `updated_at` | string | When the role was last updated |
### `incidentio_incident_roles_delete` ### `incidentio_incident_roles_delete`
@@ -1035,11 +1039,11 @@ Get details of a specific incident timestamp definition in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `incident_timestamp` | object | The incident timestamp details | | `incident_timestamp` | object | The incident timestamp details |
| ↳ `id` | string | The timestamp ID | | ↳ `id` | string | The timestamp ID |
| ↳ `name` | string | The timestamp name | | ↳ `name` | string | The timestamp name |
| ↳ `rank` | number | The rank/order of the timestamp | | ↳ `rank` | number | The rank/order of the timestamp |
| ↳ `created_at` | string | When the timestamp was created | | ↳ `created_at` | string | When the timestamp was created |
| ↳ `updated_at` | string | When the timestamp was last updated | | ↳ `updated_at` | string | When the timestamp was last updated |
### `incidentio_incident_updates_list` ### `incidentio_incident_updates_list`
@@ -1063,22 +1067,22 @@ List all updates for a specific incident in incident.io
| ↳ `incident_id` | string | The incident ID | | ↳ `incident_id` | string | The incident ID |
| ↳ `message` | string | The update message | | ↳ `message` | string | The update message |
| ↳ `new_severity` | object | New severity if changed | | ↳ `new_severity` | object | New severity if changed |
| ↳ `id` | string | Severity ID | | ↳ `id` | string | Severity ID |
| ↳ `name` | string | Severity name | | ↳ `name` | string | Severity name |
| ↳ `rank` | number | Severity rank | | ↳ `rank` | number | Severity rank |
| ↳ `new_status` | object | New status if changed | | ↳ `new_status` | object | New status if changed |
| ↳ `id` | string | Status ID | | ↳ `id` | string | Status ID |
| ↳ `name` | string | Status name | | ↳ `name` | string | Status name |
| ↳ `category` | string | Status category | | ↳ `category` | string | Status category |
| ↳ `updater` | object | User who created the update | | ↳ `updater` | object | User who created the update |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `created_at` | string | When the update was created | | ↳ `created_at` | string | When the update was created |
| ↳ `updated_at` | string | When the update was last modified | | ↳ `updated_at` | string | When the update was last modified |
| `pagination_meta` | object | Pagination information | | `pagination_meta` | object | Pagination information |
| ↳ `after` | string | Cursor for next page | | ↳ `after` | string | Cursor for next page |
| ↳ `page_size` | number | Number of results per page | | ↳ `page_size` | number | Number of results per page |
### `incidentio_schedule_entries_list` ### `incidentio_schedule_entries_list`
@@ -1103,18 +1107,18 @@ List all entries for a specific schedule in incident.io
| ↳ `id` | string | The entry ID | | ↳ `id` | string | The entry ID |
| ↳ `schedule_id` | string | The schedule ID | | ↳ `schedule_id` | string | The schedule ID |
| ↳ `user` | object | User assigned to this entry | | ↳ `user` | object | User assigned to this entry |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `start_at` | string | When the entry starts | | ↳ `start_at` | string | When the entry starts |
| ↳ `end_at` | string | When the entry ends | | ↳ `end_at` | string | When the entry ends |
| ↳ `layer_id` | string | The schedule layer ID | | ↳ `layer_id` | string | The schedule layer ID |
| ↳ `created_at` | string | When the entry was created | | ↳ `created_at` | string | When the entry was created |
| ↳ `updated_at` | string | When the entry was last updated | | ↳ `updated_at` | string | When the entry was last updated |
| `pagination_meta` | object | Pagination information | | `pagination_meta` | object | Pagination information |
| ↳ `after` | string | Cursor for next page | | ↳ `after` | string | Cursor for next page |
| ↳ `after_url` | string | URL for next page | | ↳ `after_url` | string | URL for next page |
| ↳ `page_size` | number | Number of results per page | | ↳ `page_size` | number | Number of results per page |
### `incidentio_schedule_overrides_create` ### `incidentio_schedule_overrides_create`
@@ -1138,17 +1142,17 @@ Create a new schedule override in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `override` | object | The created schedule override | | `override` | object | The created schedule override |
| ↳ `id` | string | The override ID | | ↳ `id` | string | The override ID |
| ↳ `rotation_id` | string | The rotation ID | | ↳ `rotation_id` | string | The rotation ID |
| ↳ `schedule_id` | string | The schedule ID | | ↳ `schedule_id` | string | The schedule ID |
| ↳ `user` | object | User assigned to this override | | ↳ `user` | object | User assigned to this override |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `start_at` | string | When the override starts | | ↳ `start_at` | string | When the override starts |
| ↳ `end_at` | string | When the override ends | | ↳ `end_at` | string | When the override ends |
| ↳ `created_at` | string | When the override was created | | ↳ `created_at` | string | When the override was created |
| ↳ `updated_at` | string | When the override was last updated | | ↳ `updated_at` | string | When the override was last updated |
### `incidentio_escalation_paths_create` ### `incidentio_escalation_paths_create`
@@ -1168,22 +1172,22 @@ Create a new escalation path in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `escalation_path` | object | The created escalation path | | `escalation_path` | object | The created escalation path |
| ↳ `id` | string | The escalation path ID | | ↳ `id` | string | The escalation path ID |
| ↳ `name` | string | The escalation path name | | ↳ `name` | string | The escalation path name |
| ↳ `path` | array | Array of escalation levels | | ↳ `path` | array | Array of escalation levels |
| ↳ `targets` | array | Targets for this level | | ↳ `targets` | array | Targets for this level |
| ↳ `id` | string | Target ID | | ↳ `id` | string | Target ID |
| ↳ `type` | string | Target type | | ↳ `type` | string | Target type |
| ↳ `schedule_id` | string | Schedule ID if type is schedule | | ↳ `schedule_id` | string | Schedule ID if type is schedule |
| ↳ `user_id` | string | User ID if type is user | | ↳ `user_id` | string | User ID if type is user |
| ↳ `urgency` | string | Urgency level | | ↳ `urgency` | string | Urgency level |
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds | | ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
| ↳ `working_hours` | array | Working hours configuration | | ↳ `working_hours` | array | Working hours configuration |
| ↳ `weekday` | string | Day of week | | ↳ `weekday` | string | Day of week |
| ↳ `start_time` | string | Start time | | ↳ `start_time` | string | Start time |
| ↳ `end_time` | string | End time | | ↳ `end_time` | string | End time |
| ↳ `created_at` | string | When the path was created | | ↳ `created_at` | string | When the path was created |
| ↳ `updated_at` | string | When the path was last updated | | ↳ `updated_at` | string | When the path was last updated |
### `incidentio_escalation_paths_show` ### `incidentio_escalation_paths_show`
@@ -1201,22 +1205,22 @@ Get details of a specific escalation path in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `escalation_path` | object | The escalation path details | | `escalation_path` | object | The escalation path details |
| ↳ `id` | string | The escalation path ID | | ↳ `id` | string | The escalation path ID |
| ↳ `name` | string | The escalation path name | | ↳ `name` | string | The escalation path name |
| ↳ `path` | array | Array of escalation levels | | ↳ `path` | array | Array of escalation levels |
| ↳ `targets` | array | Targets for this level | | ↳ `targets` | array | Targets for this level |
| ↳ `id` | string | Target ID | | ↳ `id` | string | Target ID |
| ↳ `type` | string | Target type | | ↳ `type` | string | Target type |
| ↳ `schedule_id` | string | Schedule ID if type is schedule | | ↳ `schedule_id` | string | Schedule ID if type is schedule |
| ↳ `user_id` | string | User ID if type is user | | ↳ `user_id` | string | User ID if type is user |
| ↳ `urgency` | string | Urgency level | | ↳ `urgency` | string | Urgency level |
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds | | ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
| ↳ `working_hours` | array | Working hours configuration | | ↳ `working_hours` | array | Working hours configuration |
| ↳ `weekday` | string | Day of week | | ↳ `weekday` | string | Day of week |
| ↳ `start_time` | string | Start time | | ↳ `start_time` | string | Start time |
| ↳ `end_time` | string | End time | | ↳ `end_time` | string | End time |
| ↳ `created_at` | string | When the path was created | | ↳ `created_at` | string | When the path was created |
| ↳ `updated_at` | string | When the path was last updated | | ↳ `updated_at` | string | When the path was last updated |
### `incidentio_escalation_paths_update` ### `incidentio_escalation_paths_update`
@@ -1237,22 +1241,22 @@ Update an existing escalation path in incident.io
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `escalation_path` | object | The updated escalation path | | `escalation_path` | object | The updated escalation path |
| ↳ `id` | string | The escalation path ID | | ↳ `id` | string | The escalation path ID |
| ↳ `name` | string | The escalation path name | | ↳ `name` | string | The escalation path name |
| ↳ `path` | array | Array of escalation levels | | ↳ `path` | array | Array of escalation levels |
| ↳ `targets` | array | Targets for this level | | ↳ `targets` | array | Targets for this level |
| ↳ `id` | string | Target ID | | ↳ `id` | string | Target ID |
| ↳ `type` | string | Target type | | ↳ `type` | string | Target type |
| ↳ `schedule_id` | string | Schedule ID if type is schedule | | ↳ `schedule_id` | string | Schedule ID if type is schedule |
| ↳ `user_id` | string | User ID if type is user | | ↳ `user_id` | string | User ID if type is user |
| ↳ `urgency` | string | Urgency level | | ↳ `urgency` | string | Urgency level |
| ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds | | ↳ `time_to_ack_seconds` | number | Time to acknowledge in seconds |
| ↳ `working_hours` | array | Working hours configuration | | ↳ `working_hours` | array | Working hours configuration |
| ↳ `weekday` | string | Day of week | | ↳ `weekday` | string | Day of week |
| ↳ `start_time` | string | Start time | | ↳ `start_time` | string | Start time |
| ↳ `end_time` | string | End time | | ↳ `end_time` | string | End time |
| ↳ `created_at` | string | When the path was created | | ↳ `created_at` | string | When the path was created |
| ↳ `updated_at` | string | When the path was last updated | | ↳ `updated_at` | string | When the path was last updated |
### `incidentio_escalation_paths_delete` ### `incidentio_escalation_paths_delete`

View File

@@ -61,50 +61,50 @@ Create a new contact in Intercom with email, external_id, or role. Returns API-a
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contact` | object | Created contact object | | `contact` | object | Created contact object |
| ↳ `id` | string | Unique identifier for the contact | | ↳ `id` | string | Unique identifier for the contact |
| ↳ `type` | string | Object type \(contact\) | | ↳ `type` | string | Object type \(contact\) |
| ↳ `role` | string | Role of the contact \(user or lead\) | | ↳ `role` | string | Role of the contact \(user or lead\) |
| ↳ `email` | string | Email address of the contact | | ↳ `email` | string | Email address of the contact |
| ↳ `phone` | string | Phone number of the contact | | ↳ `phone` | string | Phone number of the contact |
| ↳ `name` | string | Name of the contact | | ↳ `name` | string | Name of the contact |
| ↳ `avatar` | string | Avatar URL of the contact | | ↳ `avatar` | string | Avatar URL of the contact |
| ↳ `owner_id` | string | ID of the admin assigned to this contact | | ↳ `owner_id` | string | ID of the admin assigned to this contact |
| ↳ `external_id` | string | External identifier for the contact | | ↳ `external_id` | string | External identifier for the contact |
| ↳ `created_at` | number | Unix timestamp when contact was created | | ↳ `created_at` | number | Unix timestamp when contact was created |
| ↳ `updated_at` | number | Unix timestamp when contact was last updated | | ↳ `updated_at` | number | Unix timestamp when contact was last updated |
| ↳ `signed_up_at` | number | Unix timestamp when user signed up | | ↳ `signed_up_at` | number | Unix timestamp when user signed up |
| ↳ `last_seen_at` | number | Unix timestamp when user was last seen | | ↳ `last_seen_at` | number | Unix timestamp when user was last seen |
| ↳ `workspace_id` | string | Workspace ID the contact belongs to | | ↳ `workspace_id` | string | Workspace ID the contact belongs to |
| ↳ `custom_attributes` | object | Custom attributes set on the contact | | ↳ `custom_attributes` | object | Custom attributes set on the contact |
| ↳ `tags` | object | Tags associated with the contact | | ↳ `tags` | object | Tags associated with the contact |
| ↳ `type` | string | List type | | ↳ `type` | string | List type |
| ↳ `url` | string | URL to fetch tags | | ↳ `url` | string | URL to fetch tags |
| ↳ `data` | array | Array of tag objects | | ↳ `data` | array | Array of tag objects |
| ↳ `has_more` | boolean | Whether there are more tags | | ↳ `has_more` | boolean | Whether there are more tags |
| ↳ `total_count` | number | Total number of tags | | ↳ `total_count` | number | Total number of tags |
| ↳ `notes` | object | Notes associated with the contact | | ↳ `notes` | object | Notes associated with the contact |
| ↳ `type` | string | List type | | ↳ `type` | string | List type |
| ↳ `url` | string | URL to fetch notes | | ↳ `url` | string | URL to fetch notes |
| ↳ `data` | array | Array of note objects | | ↳ `data` | array | Array of note objects |
| ↳ `has_more` | boolean | Whether there are more notes | | ↳ `has_more` | boolean | Whether there are more notes |
| ↳ `total_count` | number | Total number of notes | | ↳ `total_count` | number | Total number of notes |
| ↳ `companies` | object | Companies associated with the contact | | ↳ `companies` | object | Companies associated with the contact |
| ↳ `type` | string | List type | | ↳ `type` | string | List type |
| ↳ `url` | string | URL to fetch companies | | ↳ `url` | string | URL to fetch companies |
| ↳ `data` | array | Array of company objects | | ↳ `data` | array | Array of company objects |
| ↳ `has_more` | boolean | Whether there are more companies | | ↳ `has_more` | boolean | Whether there are more companies |
| ↳ `total_count` | number | Total number of companies | | ↳ `total_count` | number | Total number of companies |
| ↳ `location` | object | Location information for the contact | | ↳ `location` | object | Location information for the contact |
| ↳ `type` | string | Location type | | ↳ `type` | string | Location type |
| ↳ `city` | string | City | | ↳ `city` | string | City |
| ↳ `region` | string | Region/State | | ↳ `region` | string | Region/State |
| ↳ `country` | string | Country | | ↳ `country` | string | Country |
| ↳ `country_code` | string | Country code | | ↳ `country_code` | string | Country code |
| ↳ `continent_code` | string | Continent code | | ↳ `continent_code` | string | Continent code |
| ↳ `social_profiles` | object | Social profiles of the contact | | ↳ `social_profiles` | object | Social profiles of the contact |
| ↳ `type` | string | List type | | ↳ `type` | string | List type |
| ↳ `data` | array | Array of social profile objects | | ↳ `data` | array | Array of social profile objects |
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails | | ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
| `contactId` | string | ID of the created contact | | `contactId` | string | ID of the created contact |
### `intercom_get_contact` ### `intercom_get_contact`
@@ -122,25 +122,65 @@ Get a single contact by ID from Intercom. Returns API-aligned fields only.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contact` | object | Contact object | | `contact` | object | Contact object |
| ↳ `id` | string | Unique identifier for the contact | | ↳ `id` | string | Unique identifier for the contact |
| ↳ `type` | string | Object type \(contact\) | | ↳ `type` | string | Object type \(contact\) |
| ↳ `role` | string | Role of the contact \(user or lead\) | | ↳ `role` | string | Role of the contact \(user or lead\) |
| ↳ `email` | string | Email address of the contact | | ↳ `email` | string | Email address of the contact |
| ↳ `phone` | string | Phone number of the contact | | ↳ `email_domain` | string | Email domain of the contact |
| ↳ `name` | string | Name of the contact | | ↳ `phone` | string | Phone number of the contact |
| ↳ `avatar` | string | Avatar URL of the contact | | ↳ `name` | string | Name of the contact |
| ↳ `owner_id` | string | ID of the admin assigned to this contact | | ↳ `avatar` | string | Avatar URL of the contact |
| ↳ `external_id` | string | External identifier for the contact | | ↳ `owner_id` | string | ID of the admin assigned account ownership |
| ↳ `created_at` | number | Unix timestamp when contact was created | | ↳ `external_id` | string | External identifier provided by the client |
| ↳ `updated_at` | number | Unix timestamp when contact was last updated | | ↳ `workspace_id` | string | Workspace ID the contact belongs to |
| ↳ `workspace_id` | string | Workspace ID the contact belongs to | | ↳ `created_at` | number | Unix timestamp when contact was created |
| ↳ `custom_attributes` | object | Custom attributes set on the contact | | ↳ `updated_at` | number | Unix timestamp when contact was last updated |
| ↳ `tags` | object | Tags associated with the contact | | ↳ `signed_up_at` | number | Unix timestamp when user signed up |
| ↳ `notes` | object | Notes associated with the contact | | ↳ `last_seen_at` | number | Unix timestamp when user was last seen |
| ↳ `companies` | object | Companies associated with the contact | | ↳ `last_contacted_at` | number | Unix timestamp when contact was last contacted |
| ↳ `location` | object | Location information for the contact | | ↳ `last_replied_at` | number | Unix timestamp when contact last replied |
| ↳ `social_profiles` | object | Social profiles of the contact | | ↳ `last_email_opened_at` | number | Unix timestamp when contact last opened an email |
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails | | ↳ `last_email_clicked_at` | number | Unix timestamp when contact last clicked an email link |
| ↳ `has_hard_bounced` | boolean | Whether email to this contact has hard bounced |
| ↳ `marked_email_as_spam` | boolean | Whether contact marked email as spam |
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
| ↳ `browser` | string | Browser used by contact |
| ↳ `browser_version` | string | Browser version |
| ↳ `browser_language` | string | Browser language setting |
| ↳ `os` | string | Operating system |
| ↳ `language_override` | string | Language override setting |
| ↳ `custom_attributes` | object | Custom attributes set on the contact |
| ↳ `tags` | object | Tags associated with the contact \(up to 10 displayed\) |
| ↳ `type` | string | List type identifier |
| ↳ `url` | string | URL to fetch full list |
| ↳ `data` | array | Array of objects \(up to 10\) |
| ↳ `has_more` | boolean | Whether there are more items beyond this list |
| ↳ `total_count` | number | Total number of items |
| ↳ `notes` | object | Notes associated with the contact \(up to 10 displayed\) |
| ↳ `type` | string | List type identifier |
| ↳ `url` | string | URL to fetch full list |
| ↳ `data` | array | Array of objects \(up to 10\) |
| ↳ `has_more` | boolean | Whether there are more items beyond this list |
| ↳ `total_count` | number | Total number of items |
| ↳ `companies` | object | Companies associated with the contact \(up to 10 displayed\) |
| ↳ `type` | string | List type identifier |
| ↳ `url` | string | URL to fetch full list |
| ↳ `data` | array | Array of objects \(up to 10\) |
| ↳ `has_more` | boolean | Whether there are more items beyond this list |
| ↳ `total_count` | number | Total number of items |
| ↳ `location` | object | Location information for the contact |
| ↳ `type` | string | Object type \(location\) |
| ↳ `city` | string | City name |
| ↳ `region` | string | Region or state name |
| ↳ `country` | string | Country name |
| ↳ `country_code` | string | ISO country code |
| ↳ `continent_code` | string | Continent code |
| ↳ `social_profiles` | object | Social profiles of the contact |
| ↳ `type` | string | Social network type \(e.g., twitter, facebook\) |
| ↳ `name` | string | Social network name |
| ↳ `url` | string | Profile URL |
| ↳ `username` | string | Username on the social network |
| ↳ `id` | string | User ID on the social network |
### `intercom_update_contact` ### `intercom_update_contact`
@@ -169,25 +209,25 @@ Update an existing contact in Intercom. Returns API-aligned fields only.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contact` | object | Updated contact object | | `contact` | object | Updated contact object |
| ↳ `id` | string | Unique identifier for the contact | | ↳ `id` | string | Unique identifier for the contact |
| ↳ `type` | string | Object type \(contact\) | | ↳ `type` | string | Object type \(contact\) |
| ↳ `role` | string | Role of the contact \(user or lead\) | | ↳ `role` | string | Role of the contact \(user or lead\) |
| ↳ `email` | string | Email address of the contact | | ↳ `email` | string | Email address of the contact |
| ↳ `phone` | string | Phone number of the contact | | ↳ `phone` | string | Phone number of the contact |
| ↳ `name` | string | Name of the contact | | ↳ `name` | string | Name of the contact |
| ↳ `avatar` | string | Avatar URL of the contact | | ↳ `avatar` | string | Avatar URL of the contact |
| ↳ `owner_id` | string | ID of the admin assigned to this contact | | ↳ `owner_id` | string | ID of the admin assigned to this contact |
| ↳ `external_id` | string | External identifier for the contact | | ↳ `external_id` | string | External identifier for the contact |
| ↳ `created_at` | number | Unix timestamp when contact was created | | ↳ `created_at` | number | Unix timestamp when contact was created |
| ↳ `updated_at` | number | Unix timestamp when contact was last updated | | ↳ `updated_at` | number | Unix timestamp when contact was last updated |
| ↳ `workspace_id` | string | Workspace ID the contact belongs to | | ↳ `workspace_id` | string | Workspace ID the contact belongs to |
| ↳ `custom_attributes` | object | Custom attributes set on the contact | | ↳ `custom_attributes` | object | Custom attributes set on the contact |
| ↳ `tags` | object | Tags associated with the contact | | ↳ `tags` | object | Tags associated with the contact |
| ↳ `notes` | object | Notes associated with the contact | | ↳ `notes` | object | Notes associated with the contact |
| ↳ `companies` | object | Companies associated with the contact | | ↳ `companies` | object | Companies associated with the contact |
| ↳ `location` | object | Location information for the contact | | ↳ `location` | object | Location information for the contact |
| ↳ `social_profiles` | object | Social profiles of the contact | | ↳ `social_profiles` | object | Social profiles of the contact |
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails | | ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
| `contactId` | string | ID of the updated contact | | `contactId` | string | ID of the updated contact |
### `intercom_list_contacts` ### `intercom_list_contacts`
@@ -220,10 +260,10 @@ List all contacts from Intercom with pagination support
| ↳ `tags` | object | Tags associated with the contact | | ↳ `tags` | object | Tags associated with the contact |
| ↳ `companies` | object | Companies associated with the contact | | ↳ `companies` | object | Companies associated with the contact |
| `pages` | object | Pagination information | | `pages` | object | Pagination information |
| ↳ `type` | string | Pages type identifier | | ↳ `type` | string | Pages type identifier |
| ↳ `page` | number | Current page number | | ↳ `page` | number | Current page number |
| ↳ `per_page` | number | Number of results per page | | ↳ `per_page` | number | Number of results per page |
| ↳ `total_pages` | number | Total number of pages | | ↳ `total_pages` | number | Total number of pages |
| `total_count` | number | Total number of contacts | | `total_count` | number | Total number of contacts |
### `intercom_search_contacts` ### `intercom_search_contacts`
@@ -267,10 +307,10 @@ Search for contacts in Intercom using a query
| ↳ `social_profiles` | object | Social profiles of the contact | | ↳ `social_profiles` | object | Social profiles of the contact |
| ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails | | ↳ `unsubscribed_from_emails` | boolean | Whether contact is unsubscribed from emails |
| `pages` | object | Pagination information | | `pages` | object | Pagination information |
| ↳ `type` | string | Pages type identifier | | ↳ `type` | string | Pages type identifier |
| ↳ `page` | number | Current page number | | ↳ `page` | number | Current page number |
| ↳ `per_page` | number | Number of results per page | | ↳ `per_page` | number | Number of results per page |
| ↳ `total_pages` | number | Total number of pages | | ↳ `total_pages` | number | Total number of pages |
| `total_count` | number | Total number of matching contacts | | `total_count` | number | Total number of matching contacts |
### `intercom_delete_contact` ### `intercom_delete_contact`
@@ -313,28 +353,28 @@ Create or update a company in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | Created or updated company object | | `company` | object | Created or updated company object |
| ↳ `id` | string | Unique identifier for the company | | ↳ `id` | string | Unique identifier for the company |
| ↳ `type` | string | Object type \(company\) | | ↳ `type` | string | Object type \(company\) |
| ↳ `app_id` | string | Intercom app ID | | ↳ `app_id` | string | Intercom app ID |
| ↳ `company_id` | string | Your unique identifier for the company | | ↳ `company_id` | string | Your unique identifier for the company |
| ↳ `name` | string | Name of the company | | ↳ `name` | string | Name of the company |
| ↳ `website` | string | Company website URL | | ↳ `website` | string | Company website URL |
| ↳ `plan` | object | Company plan information | | ↳ `plan` | object | Company plan information |
| ↳ `size` | number | Number of employees | | ↳ `size` | number | Number of employees |
| ↳ `industry` | string | Industry the company operates in | | ↳ `industry` | string | Industry the company operates in |
| ↳ `monthly_spend` | number | Monthly revenue from this company | | ↳ `monthly_spend` | number | Monthly revenue from this company |
| ↳ `session_count` | number | Number of sessions | | ↳ `session_count` | number | Number of sessions |
| ↳ `user_count` | number | Number of users in the company | | ↳ `user_count` | number | Number of users in the company |
| ↳ `created_at` | number | Unix timestamp when company was created | | ↳ `created_at` | number | Unix timestamp when company was created |
| ↳ `updated_at` | number | Unix timestamp when company was last updated | | ↳ `updated_at` | number | Unix timestamp when company was last updated |
| ↳ `remote_created_at` | number | Unix timestamp when company was created by you | | ↳ `remote_created_at` | number | Unix timestamp when company was created by you |
| ↳ `custom_attributes` | object | Custom attributes set on the company | | ↳ `custom_attributes` | object | Custom attributes set on the company |
| ↳ `tags` | object | Tags associated with the company | | ↳ `tags` | object | Tags associated with the company |
| ↳ `type` | string | Tag list type | | ↳ `type` | string | Tag list type |
| ↳ `tags` | array | Array of tag objects | | ↳ `tags` | array | Array of tag objects |
| ↳ `segments` | object | Segments the company belongs to | | ↳ `segments` | object | Segments the company belongs to |
| ↳ `type` | string | Segment list type | | ↳ `type` | string | Segment list type |
| ↳ `segments` | array | Array of segment objects | | ↳ `segments` | array | Array of segment objects |
| `companyId` | string | ID of the created/updated company | | `companyId` | string | ID of the created/updated company |
### `intercom_get_company` ### `intercom_get_company`
@@ -352,23 +392,23 @@ Retrieve a single company by ID from Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | Company object | | `company` | object | Company object |
| ↳ `id` | string | Unique identifier for the company | | ↳ `id` | string | Unique identifier for the company |
| ↳ `type` | string | Object type \(company\) | | ↳ `type` | string | Object type \(company\) |
| ↳ `app_id` | string | Intercom app ID | | ↳ `app_id` | string | Intercom app ID |
| ↳ `company_id` | string | Your unique identifier for the company | | ↳ `company_id` | string | Your unique identifier for the company |
| ↳ `name` | string | Name of the company | | ↳ `name` | string | Name of the company |
| ↳ `website` | string | Company website URL | | ↳ `website` | string | Company website URL |
| ↳ `plan` | object | Company plan information | | ↳ `plan` | object | Company plan information |
| ↳ `size` | number | Number of employees | | ↳ `size` | number | Number of employees |
| ↳ `industry` | string | Industry the company operates in | | ↳ `industry` | string | Industry the company operates in |
| ↳ `monthly_spend` | number | Monthly revenue from this company | | ↳ `monthly_spend` | number | Monthly revenue from this company |
| ↳ `session_count` | number | Number of sessions | | ↳ `session_count` | number | Number of sessions |
| ↳ `user_count` | number | Number of users in the company | | ↳ `user_count` | number | Number of users in the company |
| ↳ `created_at` | number | Unix timestamp when company was created | | ↳ `created_at` | number | Unix timestamp when company was created |
| ↳ `updated_at` | number | Unix timestamp when company was last updated | | ↳ `updated_at` | number | Unix timestamp when company was last updated |
| ↳ `custom_attributes` | object | Custom attributes set on the company | | ↳ `custom_attributes` | object | Custom attributes set on the company |
| ↳ `tags` | object | Tags associated with the company | | ↳ `tags` | object | Tags associated with the company |
| ↳ `segments` | object | Segments the company belongs to | | ↳ `segments` | object | Segments the company belongs to |
### `intercom_list_companies` ### `intercom_list_companies`
@@ -403,10 +443,10 @@ List all companies from Intercom with pagination support. Note: This endpoint ha
| ↳ `tags` | object | Tags associated with the company | | ↳ `tags` | object | Tags associated with the company |
| ↳ `segments` | object | Segments the company belongs to | | ↳ `segments` | object | Segments the company belongs to |
| `pages` | object | Pagination information | | `pages` | object | Pagination information |
| ↳ `type` | string | Pages type identifier | | ↳ `type` | string | Pages type identifier |
| ↳ `page` | number | Current page number | | ↳ `page` | number | Current page number |
| ↳ `per_page` | number | Number of results per page | | ↳ `per_page` | number | Number of results per page |
| ↳ `total_pages` | number | Total number of pages | | ↳ `total_pages` | number | Total number of pages |
| `total_count` | number | Total number of companies | | `total_count` | number | Total number of companies |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -427,25 +467,25 @@ Retrieve a single conversation by ID from Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `conversation` | object | Conversation object | | `conversation` | object | Conversation object |
| ↳ `id` | string | Unique identifier for the conversation | | ↳ `id` | string | Unique identifier for the conversation |
| ↳ `type` | string | Object type \(conversation\) | | ↳ `type` | string | Object type \(conversation\) |
| ↳ `title` | string | Title of the conversation | | ↳ `title` | string | Title of the conversation |
| ↳ `created_at` | number | Unix timestamp when conversation was created | | ↳ `created_at` | number | Unix timestamp when conversation was created |
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated | | ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
| ↳ `waiting_since` | number | Unix timestamp when waiting for reply | | ↳ `waiting_since` | number | Unix timestamp when waiting for reply |
| ↳ `snoozed_until` | number | Unix timestamp when snooze ends | | ↳ `snoozed_until` | number | Unix timestamp when snooze ends |
| ↳ `open` | boolean | Whether the conversation is open | | ↳ `open` | boolean | Whether the conversation is open |
| ↳ `state` | string | State of the conversation | | ↳ `state` | string | State of the conversation |
| ↳ `read` | boolean | Whether the conversation has been read | | ↳ `read` | boolean | Whether the conversation has been read |
| ↳ `priority` | string | Priority of the conversation | | ↳ `priority` | string | Priority of the conversation |
| ↳ `admin_assignee_id` | number | ID of assigned admin | | ↳ `admin_assignee_id` | number | ID of assigned admin |
| ↳ `team_assignee_id` | string | ID of assigned team | | ↳ `team_assignee_id` | string | ID of assigned team |
| ↳ `tags` | object | Tags on the conversation | | ↳ `tags` | object | Tags on the conversation |
| ↳ `source` | object | Source of the conversation | | ↳ `source` | object | Source of the conversation |
| ↳ `contacts` | object | Contacts in the conversation | | ↳ `contacts` | object | Contacts in the conversation |
| ↳ `teammates` | object | Teammates in the conversation | | ↳ `teammates` | object | Teammates in the conversation |
| ↳ `conversation_parts` | object | Parts of the conversation | | ↳ `conversation_parts` | object | Parts of the conversation |
| ↳ `statistics` | object | Conversation statistics | | ↳ `statistics` | object | Conversation statistics |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
### `intercom_list_conversations` ### `intercom_list_conversations`
@@ -482,10 +522,10 @@ List all conversations from Intercom with pagination support
| ↳ `source` | object | Source of the conversation | | ↳ `source` | object | Source of the conversation |
| ↳ `contacts` | object | Contacts in the conversation | | ↳ `contacts` | object | Contacts in the conversation |
| `pages` | object | Pagination information | | `pages` | object | Pagination information |
| ↳ `type` | string | Pages type identifier | | ↳ `type` | string | Pages type identifier |
| ↳ `page` | number | Current page number | | ↳ `page` | number | Current page number |
| ↳ `per_page` | number | Number of results per page | | ↳ `per_page` | number | Number of results per page |
| ↳ `total_pages` | number | Total number of pages | | ↳ `total_pages` | number | Total number of pages |
| `total_count` | number | Total number of conversations | | `total_count` | number | Total number of conversations |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -509,22 +549,22 @@ Reply to a conversation as an admin in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `conversation` | object | Updated conversation object | | `conversation` | object | Updated conversation object |
| ↳ `id` | string | Unique identifier for the conversation | | ↳ `id` | string | Unique identifier for the conversation |
| ↳ `type` | string | Object type \(conversation\) | | ↳ `type` | string | Object type \(conversation\) |
| ↳ `title` | string | Title of the conversation | | ↳ `title` | string | Title of the conversation |
| ↳ `created_at` | number | Unix timestamp when conversation was created | | ↳ `created_at` | number | Unix timestamp when conversation was created |
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated | | ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
| ↳ `waiting_since` | number | Unix timestamp when waiting for reply | | ↳ `waiting_since` | number | Unix timestamp when waiting for reply |
| ↳ `open` | boolean | Whether the conversation is open | | ↳ `open` | boolean | Whether the conversation is open |
| ↳ `state` | string | State of the conversation | | ↳ `state` | string | State of the conversation |
| ↳ `read` | boolean | Whether the conversation has been read | | ↳ `read` | boolean | Whether the conversation has been read |
| ↳ `priority` | string | Priority of the conversation | | ↳ `priority` | string | Priority of the conversation |
| ↳ `admin_assignee_id` | number | ID of assigned admin | | ↳ `admin_assignee_id` | number | ID of assigned admin |
| ↳ `team_assignee_id` | string | ID of assigned team | | ↳ `team_assignee_id` | string | ID of assigned team |
| ↳ `tags` | object | Tags on the conversation | | ↳ `tags` | object | Tags on the conversation |
| ↳ `source` | object | Source of the conversation | | ↳ `source` | object | Source of the conversation |
| ↳ `contacts` | object | Contacts in the conversation | | ↳ `contacts` | object | Contacts in the conversation |
| ↳ `conversation_parts` | object | Parts of the conversation | | ↳ `conversation_parts` | object | Parts of the conversation |
| `conversationId` | string | ID of the conversation | | `conversationId` | string | ID of the conversation |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -563,10 +603,10 @@ Search for conversations in Intercom using a query. Returns API-aligned fields o
| ↳ `source` | object | Source of the conversation | | ↳ `source` | object | Source of the conversation |
| ↳ `contacts` | object | Contacts in the conversation | | ↳ `contacts` | object | Contacts in the conversation |
| `pages` | object | Pagination information | | `pages` | object | Pagination information |
| ↳ `type` | string | Pages type identifier | | ↳ `type` | string | Pages type identifier |
| ↳ `page` | number | Current page number | | ↳ `page` | number | Current page number |
| ↳ `per_page` | number | Number of results per page | | ↳ `per_page` | number | Number of results per page |
| ↳ `total_pages` | number | Total number of pages | | ↳ `total_pages` | number | Total number of pages |
| `total_count` | number | Total number of matching conversations | | `total_count` | number | Total number of matching conversations |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -591,21 +631,21 @@ Create a new ticket in Intercom. Returns API-aligned fields only.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ticket` | object | Created ticket object | | `ticket` | object | Created ticket object |
| ↳ `id` | string | Unique identifier for the ticket | | ↳ `id` | string | Unique identifier for the ticket |
| ↳ `type` | string | Object type \(ticket\) | | ↳ `type` | string | Object type \(ticket\) |
| ↳ `ticket_id` | string | Ticket ID | | ↳ `ticket_id` | string | Ticket ID |
| ↳ `ticket_type` | object | Type of the ticket | | ↳ `ticket_type` | object | Type of the ticket |
| ↳ `ticket_attributes` | object | Attributes of the ticket | | ↳ `ticket_attributes` | object | Attributes of the ticket |
| ↳ `ticket_state` | string | State of the ticket | | ↳ `ticket_state` | string | State of the ticket |
| ↳ `ticket_state_internal_label` | string | Internal label for ticket state | | ↳ `ticket_state_internal_label` | string | Internal label for ticket state |
| ↳ `ticket_state_external_label` | string | External label for ticket state | | ↳ `ticket_state_external_label` | string | External label for ticket state |
| ↳ `created_at` | number | Unix timestamp when ticket was created | | ↳ `created_at` | number | Unix timestamp when ticket was created |
| ↳ `updated_at` | number | Unix timestamp when ticket was last updated | | ↳ `updated_at` | number | Unix timestamp when ticket was last updated |
| ↳ `contacts` | object | Contacts associated with the ticket | | ↳ `contacts` | object | Contacts associated with the ticket |
| ↳ `admin_assignee_id` | string | ID of assigned admin | | ↳ `admin_assignee_id` | string | ID of assigned admin |
| ↳ `team_assignee_id` | string | ID of assigned team | | ↳ `team_assignee_id` | string | ID of assigned team |
| ↳ `is_shared` | boolean | Whether the ticket is shared | | ↳ `is_shared` | boolean | Whether the ticket is shared |
| ↳ `open` | boolean | Whether the ticket is open | | ↳ `open` | boolean | Whether the ticket is open |
| `ticketId` | string | ID of the created ticket | | `ticketId` | string | ID of the created ticket |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -624,21 +664,21 @@ Retrieve a single ticket by ID from Intercom. Returns API-aligned fields only.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ticket` | object | Ticket object | | `ticket` | object | Ticket object |
| ↳ `id` | string | Unique identifier for the ticket | | ↳ `id` | string | Unique identifier for the ticket |
| ↳ `type` | string | Object type \(ticket\) | | ↳ `type` | string | Object type \(ticket\) |
| ↳ `ticket_id` | string | Ticket ID | | ↳ `ticket_id` | string | Ticket ID |
| ↳ `ticket_type` | object | Type of the ticket | | ↳ `ticket_type` | object | Type of the ticket |
| ↳ `ticket_attributes` | object | Attributes of the ticket | | ↳ `ticket_attributes` | object | Attributes of the ticket |
| ↳ `ticket_state` | string | State of the ticket | | ↳ `ticket_state` | string | State of the ticket |
| ↳ `ticket_state_internal_label` | string | Internal label for ticket state | | ↳ `ticket_state_internal_label` | string | Internal label for ticket state |
| ↳ `ticket_state_external_label` | string | External label for ticket state | | ↳ `ticket_state_external_label` | string | External label for ticket state |
| ↳ `created_at` | number | Unix timestamp when ticket was created | | ↳ `created_at` | number | Unix timestamp when ticket was created |
| ↳ `updated_at` | number | Unix timestamp when ticket was last updated | | ↳ `updated_at` | number | Unix timestamp when ticket was last updated |
| ↳ `contacts` | object | Contacts associated with the ticket | | ↳ `contacts` | object | Contacts associated with the ticket |
| ↳ `admin_assignee_id` | string | ID of assigned admin | | ↳ `admin_assignee_id` | string | ID of assigned admin |
| ↳ `team_assignee_id` | string | ID of assigned team | | ↳ `team_assignee_id` | string | ID of assigned team |
| ↳ `is_shared` | boolean | Whether the ticket is shared | | ↳ `is_shared` | boolean | Whether the ticket is shared |
| ↳ `open` | boolean | Whether the ticket is open | | ↳ `open` | boolean | Whether the ticket is open |
| `ticketId` | string | ID of the retrieved ticket | | `ticketId` | string | ID of the retrieved ticket |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -663,18 +703,18 @@ Update a ticket in Intercom (change state, assignment, attributes)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ticket` | object | The updated ticket object | | `ticket` | object | The updated ticket object |
| ↳ `id` | string | Unique identifier for the ticket | | ↳ `id` | string | Unique identifier for the ticket |
| ↳ `type` | string | Object type \(ticket\) | | ↳ `type` | string | Object type \(ticket\) |
| ↳ `ticket_id` | string | Ticket ID shown in Intercom UI | | ↳ `ticket_id` | string | Ticket ID shown in Intercom UI |
| ↳ `ticket_state` | string | State of the ticket | | ↳ `ticket_state` | string | State of the ticket |
| ↳ `ticket_attributes` | object | Attributes of the ticket | | ↳ `ticket_attributes` | object | Attributes of the ticket |
| ↳ `open` | boolean | Whether the ticket is open | | ↳ `open` | boolean | Whether the ticket is open |
| ↳ `is_shared` | boolean | Whether the ticket is visible to users | | ↳ `is_shared` | boolean | Whether the ticket is visible to users |
| ↳ `snoozed_until` | number | Unix timestamp when ticket will reopen | | ↳ `snoozed_until` | number | Unix timestamp when ticket will reopen |
| ↳ `admin_assignee_id` | string | ID of assigned admin | | ↳ `admin_assignee_id` | string | ID of assigned admin |
| ↳ `team_assignee_id` | string | ID of assigned team | | ↳ `team_assignee_id` | string | ID of assigned team |
| ↳ `created_at` | number | Unix timestamp when ticket was created | | ↳ `created_at` | number | Unix timestamp when ticket was created |
| ↳ `updated_at` | number | Unix timestamp when ticket was last updated | | ↳ `updated_at` | number | Unix timestamp when ticket was last updated |
| `ticketId` | string | ID of the updated ticket | | `ticketId` | string | ID of the updated ticket |
| `ticket_state` | string | Current state of the ticket | | `ticket_state` | string | Current state of the ticket |
@@ -701,13 +741,13 @@ Create and send a new admin-initiated message in Intercom. Returns API-aligned f
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | object | Created message object | | `message` | object | Created message object |
| ↳ `id` | string | Unique identifier for the message | | ↳ `id` | string | Unique identifier for the message |
| ↳ `type` | string | Object type \(message\) | | ↳ `type` | string | Object type \(message\) |
| ↳ `created_at` | number | Unix timestamp when message was created | | ↳ `created_at` | number | Unix timestamp when message was created |
| ↳ `body` | string | Body of the message | | ↳ `body` | string | Body of the message |
| ↳ `message_type` | string | Type of the message \(in_app or email\) | | ↳ `message_type` | string | Type of the message \(in_app or email\) |
| ↳ `conversation_id` | string | ID of the conversation created | | ↳ `conversation_id` | string | ID of the conversation created |
| ↳ `owner` | object | Owner of the message | | ↳ `owner` | object | Owner of the message |
| `messageId` | string | ID of the created message | | `messageId` | string | ID of the created message |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -755,13 +795,13 @@ Close a conversation in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `conversation` | object | The closed conversation object | | `conversation` | object | The closed conversation object |
| ↳ `id` | string | Unique identifier for the conversation | | ↳ `id` | string | Unique identifier for the conversation |
| ↳ `type` | string | Object type \(conversation\) | | ↳ `type` | string | Object type \(conversation\) |
| ↳ `state` | string | State of the conversation \(closed\) | | ↳ `state` | string | State of the conversation \(closed\) |
| ↳ `open` | boolean | Whether the conversation is open \(false\) | | ↳ `open` | boolean | Whether the conversation is open \(false\) |
| ↳ `read` | boolean | Whether the conversation has been read | | ↳ `read` | boolean | Whether the conversation has been read |
| ↳ `created_at` | number | Unix timestamp when conversation was created | | ↳ `created_at` | number | Unix timestamp when conversation was created |
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated | | ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
| `conversationId` | string | ID of the closed conversation | | `conversationId` | string | ID of the closed conversation |
| `state` | string | State of the conversation \(closed\) | | `state` | string | State of the conversation \(closed\) |
@@ -781,13 +821,13 @@ Open a closed or snoozed conversation in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `conversation` | object | The opened conversation object | | `conversation` | object | The opened conversation object |
| ↳ `id` | string | Unique identifier for the conversation | | ↳ `id` | string | Unique identifier for the conversation |
| ↳ `type` | string | Object type \(conversation\) | | ↳ `type` | string | Object type \(conversation\) |
| ↳ `state` | string | State of the conversation \(open\) | | ↳ `state` | string | State of the conversation \(open\) |
| ↳ `open` | boolean | Whether the conversation is open \(true\) | | ↳ `open` | boolean | Whether the conversation is open \(true\) |
| ↳ `read` | boolean | Whether the conversation has been read | | ↳ `read` | boolean | Whether the conversation has been read |
| ↳ `created_at` | number | Unix timestamp when conversation was created | | ↳ `created_at` | number | Unix timestamp when conversation was created |
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated | | ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
| `conversationId` | string | ID of the opened conversation | | `conversationId` | string | ID of the opened conversation |
| `state` | string | State of the conversation \(open\) | | `state` | string | State of the conversation \(open\) |
@@ -808,13 +848,13 @@ Snooze a conversation to reopen at a future time
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `conversation` | object | The snoozed conversation object | | `conversation` | object | The snoozed conversation object |
| ↳ `id` | string | Unique identifier for the conversation | | ↳ `id` | string | Unique identifier for the conversation |
| ↳ `type` | string | Object type \(conversation\) | | ↳ `type` | string | Object type \(conversation\) |
| ↳ `state` | string | State of the conversation \(snoozed\) | | ↳ `state` | string | State of the conversation \(snoozed\) |
| ↳ `open` | boolean | Whether the conversation is open | | ↳ `open` | boolean | Whether the conversation is open |
| ↳ `snoozed_until` | number | Unix timestamp when conversation will reopen | | ↳ `snoozed_until` | number | Unix timestamp when conversation will reopen |
| ↳ `created_at` | number | Unix timestamp when conversation was created | | ↳ `created_at` | number | Unix timestamp when conversation was created |
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated | | ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
| `conversationId` | string | ID of the snoozed conversation | | `conversationId` | string | ID of the snoozed conversation |
| `state` | string | State of the conversation \(snoozed\) | | `state` | string | State of the conversation \(snoozed\) |
| `snoozed_until` | number | Unix timestamp when conversation will reopen | | `snoozed_until` | number | Unix timestamp when conversation will reopen |
@@ -837,14 +877,14 @@ Assign a conversation to an admin or team in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `conversation` | object | The assigned conversation object | | `conversation` | object | The assigned conversation object |
| ↳ `id` | string | Unique identifier for the conversation | | ↳ `id` | string | Unique identifier for the conversation |
| ↳ `type` | string | Object type \(conversation\) | | ↳ `type` | string | Object type \(conversation\) |
| ↳ `state` | string | State of the conversation | | ↳ `state` | string | State of the conversation |
| ↳ `open` | boolean | Whether the conversation is open | | ↳ `open` | boolean | Whether the conversation is open |
| ↳ `admin_assignee_id` | number | ID of the assigned admin | | ↳ `admin_assignee_id` | number | ID of the assigned admin |
| ↳ `team_assignee_id` | string | ID of the assigned team | | ↳ `team_assignee_id` | string | ID of the assigned team |
| ↳ `created_at` | number | Unix timestamp when conversation was created | | ↳ `created_at` | number | Unix timestamp when conversation was created |
| ↳ `updated_at` | number | Unix timestamp when conversation was last updated | | ↳ `updated_at` | number | Unix timestamp when conversation was last updated |
| `conversationId` | string | ID of the assigned conversation | | `conversationId` | string | ID of the assigned conversation |
| `admin_assignee_id` | number | ID of the assigned admin | | `admin_assignee_id` | number | ID of the assigned admin |
| `team_assignee_id` | string | ID of the assigned team | | `team_assignee_id` | string | ID of the assigned team |
@@ -966,13 +1006,13 @@ Add a note to a specific contact
| `created_at` | number | Unix timestamp when the note was created | | `created_at` | number | Unix timestamp when the note was created |
| `type` | string | Object type \(note\) | | `type` | string | Object type \(note\) |
| `author` | object | The admin who created the note | | `author` | object | The admin who created the note |
| ↳ `type` | string | Author type \(admin\) | | ↳ `type` | string | Author type \(admin\) |
| ↳ `id` | string | Author ID | | ↳ `id` | string | Author ID |
| ↳ `name` | string | Author name | | ↳ `name` | string | Author name |
| ↳ `email` | string | Author email | | ↳ `email` | string | Author email |
| `contact` | object | The contact the note was created for | | `contact` | object | The contact the note was created for |
| ↳ `type` | string | Contact type | | ↳ `type` | string | Contact type |
| ↳ `id` | string | Contact ID | | ↳ `id` | string | Contact ID |
### `intercom_create_event` ### `intercom_create_event`
@@ -1011,16 +1051,16 @@ Attach a contact to a company in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | The company object the contact was attached to | | `company` | object | The company object the contact was attached to |
| ↳ `id` | string | Unique identifier for the company | | ↳ `id` | string | Unique identifier for the company |
| ↳ `type` | string | Object type \(company\) | | ↳ `type` | string | Object type \(company\) |
| ↳ `company_id` | string | The company_id you defined | | ↳ `company_id` | string | The company_id you defined |
| ↳ `name` | string | Name of the company | | ↳ `name` | string | Name of the company |
| ↳ `created_at` | number | Unix timestamp when company was created | | ↳ `created_at` | number | Unix timestamp when company was created |
| ↳ `updated_at` | number | Unix timestamp when company was updated | | ↳ `updated_at` | number | Unix timestamp when company was updated |
| ↳ `user_count` | number | Number of users in the company | | ↳ `user_count` | number | Number of users in the company |
| ↳ `session_count` | number | Number of sessions | | ↳ `session_count` | number | Number of sessions |
| ↳ `monthly_spend` | number | Monthly spend amount | | ↳ `monthly_spend` | number | Monthly spend amount |
| ↳ `plan` | object | Company plan details | | ↳ `plan` | object | Company plan details |
| `companyId` | string | ID of the company | | `companyId` | string | ID of the company |
| `name` | string | Name of the company | | `name` | string | Name of the company |
@@ -1040,10 +1080,10 @@ Remove a contact from a company in Intercom
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `company` | object | The company object the contact was detached from | | `company` | object | The company object the contact was detached from |
| ↳ `id` | string | Unique identifier for the company | | ↳ `id` | string | Unique identifier for the company |
| ↳ `type` | string | Object type \(company\) | | ↳ `type` | string | Object type \(company\) |
| ↳ `company_id` | string | The company_id you defined | | ↳ `company_id` | string | The company_id you defined |
| ↳ `name` | string | Name of the company | | ↳ `name` | string | Name of the company |
| `companyId` | string | ID of the company | | `companyId` | string | ID of the company |
| `name` | string | Name of the company | | `name` | string | Name of the company |

View File

@@ -91,5 +91,11 @@ Search the web and return top 5 results with LLM-friendly content. Each result i
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | Array of search results, each containing title, description, url, and LLM-friendly content | | `results` | array | Array of search results, each containing title, description, url, and LLM-friendly content |
| ↳ `title` | string | Page title |
| ↳ `description` | string | Page description or meta description |
| ↳ `url` | string | Page URL |
| ↳ `content` | string | LLM-friendly extracted content |
| ↳ `usage` | object | Token usage information |
| ↳ `tokens` | number | Number of tokens consumed by this request |

View File

@@ -53,6 +53,33 @@ Retrieve a list of prediction markets from Kalshi with all filtering options (V2
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `markets` | array | Array of market objects with all API fields | | `markets` | array | Array of market objects with all API fields |
| ↳ `ticker` | string | Unique market ticker identifier |
| ↳ `event_ticker` | string | Parent event ticker |
| ↳ `market_type` | string | Market type \(binary, etc.\) |
| ↳ `title` | string | Market title/question |
| ↳ `subtitle` | string | Market subtitle |
| ↳ `yes_sub_title` | string | Yes outcome subtitle |
| ↳ `no_sub_title` | string | No outcome subtitle |
| ↳ `open_time` | string | Market open time \(ISO 8601\) |
| ↳ `close_time` | string | Market close time \(ISO 8601\) |
| ↳ `expiration_time` | string | Contract expiration time |
| ↳ `status` | string | Market status \(open, closed, settled, etc.\) |
| ↳ `yes_bid` | number | Current best yes bid price in cents |
| ↳ `yes_ask` | number | Current best yes ask price in cents |
| ↳ `no_bid` | number | Current best no bid price in cents |
| ↳ `no_ask` | number | Current best no ask price in cents |
| ↳ `last_price` | number | Last trade price in cents |
| ↳ `previous_yes_bid` | number | Previous yes bid |
| ↳ `previous_yes_ask` | number | Previous yes ask |
| ↳ `previous_price` | number | Previous last price |
| ↳ `volume` | number | Total volume \(contracts traded\) |
| ↳ `volume_24h` | number | 24-hour trading volume |
| ↳ `liquidity` | number | Market liquidity measure |
| ↳ `open_interest` | number | Open interest \(outstanding contracts\) |
| ↳ `result` | string | Settlement result \(yes, no, null\) |
| ↳ `cap_strike` | number | Cap strike for ranged markets |
| ↳ `floor_strike` | number | Floor strike for ranged markets |
| ↳ `category` | string | Market category |
| `cursor` | string | Pagination cursor for fetching more results | | `cursor` | string | Pagination cursor for fetching more results |
### `kalshi_get_market` ### `kalshi_get_market`
@@ -70,57 +97,57 @@ Retrieve details of a specific prediction market by ticker (V2 - full API respon
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `market` | object | Market object with all API fields | | `market` | object | Market object with all API fields |
| ↳ `ticker` | string | Market ticker | | ↳ `ticker` | string | Market ticker |
| ↳ `event_ticker` | string | Event ticker | | ↳ `event_ticker` | string | Event ticker |
| ↳ `market_type` | string | Market type | | ↳ `market_type` | string | Market type |
| ↳ `title` | string | Market title | | ↳ `title` | string | Market title |
| ↳ `subtitle` | string | Market subtitle | | ↳ `subtitle` | string | Market subtitle |
| ↳ `yes_sub_title` | string | Yes outcome subtitle | | ↳ `yes_sub_title` | string | Yes outcome subtitle |
| ↳ `no_sub_title` | string | No outcome subtitle | | ↳ `no_sub_title` | string | No outcome subtitle |
| ↳ `open_time` | string | Market open time | | ↳ `open_time` | string | Market open time |
| ↳ `close_time` | string | Market close time | | ↳ `close_time` | string | Market close time |
| ↳ `expected_expiration_time` | string | Expected expiration time | | ↳ `expected_expiration_time` | string | Expected expiration time |
| ↳ `expiration_time` | string | Expiration time | | ↳ `expiration_time` | string | Expiration time |
| ↳ `latest_expiration_time` | string | Latest expiration time | | ↳ `latest_expiration_time` | string | Latest expiration time |
| ↳ `settlement_timer_seconds` | number | Settlement timer in seconds | | ↳ `settlement_timer_seconds` | number | Settlement timer in seconds |
| ↳ `status` | string | Market status | | ↳ `status` | string | Market status |
| ↳ `response_price_units` | string | Response price units | | ↳ `response_price_units` | string | Response price units |
| ↳ `notional_value` | number | Notional value | | ↳ `notional_value` | number | Notional value |
| ↳ `tick_size` | number | Tick size | | ↳ `tick_size` | number | Tick size |
| ↳ `yes_bid` | number | Current yes bid price | | ↳ `yes_bid` | number | Current yes bid price |
| ↳ `yes_ask` | number | Current yes ask price | | ↳ `yes_ask` | number | Current yes ask price |
| ↳ `no_bid` | number | Current no bid price | | ↳ `no_bid` | number | Current no bid price |
| ↳ `no_ask` | number | Current no ask price | | ↳ `no_ask` | number | Current no ask price |
| ↳ `last_price` | number | Last trade price | | ↳ `last_price` | number | Last trade price |
| ↳ `previous_yes_bid` | number | Previous yes bid | | ↳ `previous_yes_bid` | number | Previous yes bid |
| ↳ `previous_yes_ask` | number | Previous yes ask | | ↳ `previous_yes_ask` | number | Previous yes ask |
| ↳ `previous_price` | number | Previous price | | ↳ `previous_price` | number | Previous price |
| ↳ `volume` | number | Total volume | | ↳ `volume` | number | Total volume |
| ↳ `volume_24h` | number | 24-hour volume | | ↳ `volume_24h` | number | 24-hour volume |
| ↳ `liquidity` | number | Market liquidity | | ↳ `liquidity` | number | Market liquidity |
| ↳ `open_interest` | number | Open interest | | ↳ `open_interest` | number | Open interest |
| ↳ `result` | string | Market result | | ↳ `result` | string | Market result |
| ↳ `cap_strike` | number | Cap strike | | ↳ `cap_strike` | number | Cap strike |
| ↳ `floor_strike` | number | Floor strike | | ↳ `floor_strike` | number | Floor strike |
| ↳ `can_close_early` | boolean | Can close early | | ↳ `can_close_early` | boolean | Can close early |
| ↳ `expiration_value` | string | Expiration value | | ↳ `expiration_value` | string | Expiration value |
| ↳ `category` | string | Market category | | ↳ `category` | string | Market category |
| ↳ `risk_limit_cents` | number | Risk limit in cents | | ↳ `risk_limit_cents` | number | Risk limit in cents |
| ↳ `strike_type` | string | Strike type | | ↳ `strike_type` | string | Strike type |
| ↳ `rules_primary` | string | Primary rules | | ↳ `rules_primary` | string | Primary rules |
| ↳ `rules_secondary` | string | Secondary rules | | ↳ `rules_secondary` | string | Secondary rules |
| ↳ `settlement_source_url` | string | Settlement source URL | | ↳ `settlement_source_url` | string | Settlement source URL |
| ↳ `custom_strike` | object | Custom strike object | | ↳ `custom_strike` | object | Custom strike object |
| ↳ `underlying` | string | Underlying asset | | ↳ `underlying` | string | Underlying asset |
| ↳ `settlement_value` | number | Settlement value | | ↳ `settlement_value` | number | Settlement value |
| ↳ `cfd_contract_size` | number | CFD contract size | | ↳ `cfd_contract_size` | number | CFD contract size |
| ↳ `yes_fee_fp` | number | Yes fee \(fixed-point\) | | ↳ `yes_fee_fp` | number | Yes fee \(fixed-point\) |
| ↳ `no_fee_fp` | number | No fee \(fixed-point\) | | ↳ `no_fee_fp` | number | No fee \(fixed-point\) |
| ↳ `last_price_fp` | number | Last price \(fixed-point\) | | ↳ `last_price_fp` | number | Last price \(fixed-point\) |
| ↳ `yes_bid_fp` | number | Yes bid \(fixed-point\) | | ↳ `yes_bid_fp` | number | Yes bid \(fixed-point\) |
| ↳ `yes_ask_fp` | number | Yes ask \(fixed-point\) | | ↳ `yes_ask_fp` | number | Yes ask \(fixed-point\) |
| ↳ `no_bid_fp` | number | No bid \(fixed-point\) | | ↳ `no_bid_fp` | number | No bid \(fixed-point\) |
| ↳ `no_ask_fp` | number | No ask \(fixed-point\) | | ↳ `no_ask_fp` | number | No ask \(fixed-point\) |
### `kalshi_get_events` ### `kalshi_get_events`
@@ -141,7 +168,19 @@ Retrieve a list of events from Kalshi with optional filtering (V2 - exact API re
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `events` | array | Array of event objects | | `events` | array | Array of event objects |
| ↳ `event_ticker` | string | Unique event ticker identifier |
| ↳ `series_ticker` | string | Parent series ticker |
| ↳ `title` | string | Event title |
| ↳ `sub_title` | string | Event subtitle |
| ↳ `mutually_exclusive` | boolean | Whether markets are mutually exclusive |
| ↳ `category` | string | Event category |
| ↳ `strike_date` | string | Strike/settlement date |
| ↳ `status` | string | Event status |
| `milestones` | array | Array of milestone objects \(if requested\) | | `milestones` | array | Array of milestone objects \(if requested\) |
| ↳ `event_ticker` | string | Event ticker |
| ↳ `milestone_type` | string | Milestone type |
| ↳ `milestone_date` | string | Milestone date |
| ↳ `milestone_title` | string | Milestone title |
| `cursor` | string | Pagination cursor for fetching more results | | `cursor` | string | Pagination cursor for fetching more results |
### `kalshi_get_event` ### `kalshi_get_event`
@@ -160,18 +199,18 @@ Retrieve details of a specific event by ticker (V2 - exact API response)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `event` | object | Event object with full details matching Kalshi API response | | `event` | object | Event object with full details matching Kalshi API response |
| ↳ `event_ticker` | string | Event ticker | | ↳ `event_ticker` | string | Event ticker |
| ↳ `series_ticker` | string | Series ticker | | ↳ `series_ticker` | string | Series ticker |
| ↳ `title` | string | Event title | | ↳ `title` | string | Event title |
| ↳ `sub_title` | string | Event subtitle | | ↳ `sub_title` | string | Event subtitle |
| ↳ `mutually_exclusive` | boolean | Mutually exclusive markets | | ↳ `mutually_exclusive` | boolean | Mutually exclusive markets |
| ↳ `category` | string | Event category | | ↳ `category` | string | Event category |
| ↳ `collateral_return_type` | string | Collateral return type | | ↳ `collateral_return_type` | string | Collateral return type |
| ↳ `strike_date` | string | Strike date | | ↳ `strike_date` | string | Strike date |
| ↳ `strike_period` | string | Strike period | | ↳ `strike_period` | string | Strike period |
| ↳ `available_on_brokers` | boolean | Available on brokers | | ↳ `available_on_brokers` | boolean | Available on brokers |
| ↳ `product_metadata` | object | Product metadata | | ↳ `product_metadata` | object | Product metadata |
| ↳ `markets` | array | Nested markets \(if requested\) | | ↳ `markets` | array | Nested markets \(if requested\) |
### `kalshi_get_balance` ### `kalshi_get_balance`
@@ -213,7 +252,21 @@ Retrieve your open positions from Kalshi (V2 - exact API response)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `market_positions` | array | Array of market position objects | | `market_positions` | array | Array of market position objects |
| ↳ `ticker` | string | Market ticker |
| ↳ `event_ticker` | string | Event ticker |
| ↳ `event_title` | string | Event title |
| ↳ `market_title` | string | Market title |
| ↳ `position` | number | Net position \(positive=yes, negative=no\) |
| ↳ `market_exposure` | number | Maximum potential loss in cents |
| ↳ `realized_pnl` | number | Realized profit/loss in cents |
| ↳ `total_traded` | number | Total contracts traded |
| ↳ `resting_orders_count` | number | Number of resting orders |
| ↳ `fees_paid` | number | Total fees paid in cents |
| `event_positions` | array | Array of event position objects | | `event_positions` | array | Array of event position objects |
| ↳ `event_ticker` | string | Event ticker |
| ↳ `event_exposure` | number | Event-level exposure in cents |
| ↳ `realized_pnl` | number | Realized P&L in cents |
| ↳ `total_cost` | number | Total cost basis in cents |
| `cursor` | string | Pagination cursor for fetching more results | | `cursor` | string | Pagination cursor for fetching more results |
### `kalshi_get_orders` ### `kalshi_get_orders`
@@ -237,6 +290,24 @@ Retrieve your orders from Kalshi with optional filtering (V2 with full API respo
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `orders` | array | Array of order objects with full API response fields | | `orders` | array | Array of order objects with full API response fields |
| ↳ `order_id` | string | Unique order identifier |
| ↳ `user_id` | string | User ID |
| ↳ `client_order_id` | string | Client-provided order ID |
| ↳ `ticker` | string | Market ticker |
| ↳ `side` | string | Order side \(yes/no\) |
| ↳ `action` | string | Order action \(buy/sell\) |
| ↳ `type` | string | Order type \(limit/market\) |
| ↳ `status` | string | Order status \(resting, canceled, executed\) |
| ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents |
| ↳ `fill_count` | number | Number of contracts filled |
| ↳ `remaining_count` | number | Remaining contracts to fill |
| ↳ `initial_count` | number | Initial order size |
| ↳ `taker_fees` | number | Taker fees paid in cents |
| ↳ `maker_fees` | number | Maker fees paid in cents |
| ↳ `created_time` | string | Order creation time \(ISO 8601\) |
| ↳ `expiration_time` | string | Order expiration time |
| ↳ `last_update_time` | string | Last order update time |
| `cursor` | string | Pagination cursor for fetching more results | | `cursor` | string | Pagination cursor for fetching more results |
### `kalshi_get_order` ### `kalshi_get_order`
@@ -256,39 +327,39 @@ Retrieve details of a specific order by ID from Kalshi (V2 with full API respons
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | Order object with full API response fields | | `order` | object | Order object with full API response fields |
| ↳ `order_id` | string | Order ID | | ↳ `order_id` | string | Order ID |
| ↳ `user_id` | string | User ID | | ↳ `user_id` | string | User ID |
| ↳ `client_order_id` | string | Client order ID | | ↳ `client_order_id` | string | Client order ID |
| ↳ `ticker` | string | Market ticker | | ↳ `ticker` | string | Market ticker |
| ↳ `side` | string | Order side \(yes/no\) | | ↳ `side` | string | Order side \(yes/no\) |
| ↳ `action` | string | Action \(buy/sell\) | | ↳ `action` | string | Action \(buy/sell\) |
| ↳ `type` | string | Order type \(limit/market\) | | ↳ `type` | string | Order type \(limit/market\) |
| ↳ `status` | string | Order status \(resting/canceled/executed\) | | ↳ `status` | string | Order status \(resting/canceled/executed\) |
| ↳ `yes_price` | number | Yes price in cents | | ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents | | ↳ `no_price` | number | No price in cents |
| ↳ `yes_price_dollars` | string | Yes price in dollars | | ↳ `yes_price_dollars` | string | Yes price in dollars |
| ↳ `no_price_dollars` | string | No price in dollars | | ↳ `no_price_dollars` | string | No price in dollars |
| ↳ `fill_count` | number | Filled contract count | | ↳ `fill_count` | number | Filled contract count |
| ↳ `fill_count_fp` | string | Filled count \(fixed-point\) | | ↳ `fill_count_fp` | string | Filled count \(fixed-point\) |
| ↳ `remaining_count` | number | Remaining contracts | | ↳ `remaining_count` | number | Remaining contracts |
| ↳ `remaining_count_fp` | string | Remaining count \(fixed-point\) | | ↳ `remaining_count_fp` | string | Remaining count \(fixed-point\) |
| ↳ `initial_count` | number | Initial contract count | | ↳ `initial_count` | number | Initial contract count |
| ↳ `initial_count_fp` | string | Initial count \(fixed-point\) | | ↳ `initial_count_fp` | string | Initial count \(fixed-point\) |
| ↳ `taker_fees` | number | Taker fees in cents | | ↳ `taker_fees` | number | Taker fees in cents |
| ↳ `maker_fees` | number | Maker fees in cents | | ↳ `maker_fees` | number | Maker fees in cents |
| ↳ `taker_fees_dollars` | string | Taker fees in dollars | | ↳ `taker_fees_dollars` | string | Taker fees in dollars |
| ↳ `maker_fees_dollars` | string | Maker fees in dollars | | ↳ `maker_fees_dollars` | string | Maker fees in dollars |
| ↳ `taker_fill_cost` | number | Taker fill cost in cents | | ↳ `taker_fill_cost` | number | Taker fill cost in cents |
| ↳ `maker_fill_cost` | number | Maker fill cost in cents | | ↳ `maker_fill_cost` | number | Maker fill cost in cents |
| ↳ `taker_fill_cost_dollars` | string | Taker fill cost in dollars | | ↳ `taker_fill_cost_dollars` | string | Taker fill cost in dollars |
| ↳ `maker_fill_cost_dollars` | string | Maker fill cost in dollars | | ↳ `maker_fill_cost_dollars` | string | Maker fill cost in dollars |
| ↳ `queue_position` | number | Queue position \(deprecated\) | | ↳ `queue_position` | number | Queue position \(deprecated\) |
| ↳ `expiration_time` | string | Order expiration time | | ↳ `expiration_time` | string | Order expiration time |
| ↳ `created_time` | string | Order creation time | | ↳ `created_time` | string | Order creation time |
| ↳ `last_update_time` | string | Last update time | | ↳ `last_update_time` | string | Last update time |
| ↳ `self_trade_prevention_type` | string | Self-trade prevention type | | ↳ `self_trade_prevention_type` | string | Self-trade prevention type |
| ↳ `order_group_id` | string | Order group ID | | ↳ `order_group_id` | string | Order group ID |
| ↳ `cancel_order_on_pause` | boolean | Cancel on market pause | | ↳ `cancel_order_on_pause` | boolean | Cancel on market pause |
### `kalshi_get_orderbook` ### `kalshi_get_orderbook`
@@ -305,13 +376,13 @@ Retrieve the orderbook (yes and no bids) for a specific market (V2 - includes de
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `orderbook` | object | Orderbook with yes/no bids \(legacy integer counts\) | | `orderbook` | object | Orderbook with yes/no bids \(legacy integer counts\) |
| ↳ `yes` | array | Yes side bids as tuples \[price_cents, count\] | | ↳ `yes` | array | Yes side bids as tuples \[price_cents, count\] |
| ↳ `no` | array | No side bids as tuples \[price_cents, count\] | | ↳ `no` | array | No side bids as tuples \[price_cents, count\] |
| ↳ `yes_dollars` | array | Yes side bids as tuples \[dollars_string, count\] | | ↳ `yes_dollars` | array | Yes side bids as tuples \[dollars_string, count\] |
| ↳ `no_dollars` | array | No side bids as tuples \[dollars_string, count\] | | ↳ `no_dollars` | array | No side bids as tuples \[dollars_string, count\] |
| `orderbook_fp` | object | Orderbook with fixed-point counts \(preferred\) | | `orderbook_fp` | object | Orderbook with fixed-point counts \(preferred\) |
| ↳ `yes_dollars` | array | Yes side bids as tuples \[dollars_string, fp_count_string\] | | ↳ `yes_dollars` | array | Yes side bids as tuples \[dollars_string, fp_count_string\] |
| ↳ `no_dollars` | array | No side bids as tuples \[dollars_string, fp_count_string\] | | ↳ `no_dollars` | array | No side bids as tuples \[dollars_string, fp_count_string\] |
### `kalshi_get_trades` ### `kalshi_get_trades`
@@ -329,6 +400,12 @@ Retrieve recent trades with additional filtering options (V2 - includes trade_id
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `trades` | array | Array of trade objects with trade_id and count_fp | | `trades` | array | Array of trade objects with trade_id and count_fp |
| ↳ `ticker` | string | Market ticker |
| ↳ `yes_price` | number | Trade price for yes in cents |
| ↳ `no_price` | number | Trade price for no in cents |
| ↳ `count` | number | Number of contracts traded |
| ↳ `taker_side` | string | Taker side \(yes/no\) |
| ↳ `created_time` | string | Trade time \(ISO 8601\) |
| `cursor` | string | Pagination cursor for fetching more results | | `cursor` | string | Pagination cursor for fetching more results |
### `kalshi_get_candlesticks` ### `kalshi_get_candlesticks`
@@ -374,6 +451,16 @@ Retrieve your portfolio
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `fills` | array | Array of fill/trade objects with all API fields | | `fills` | array | Array of fill/trade objects with all API fields |
| ↳ `trade_id` | string | Unique trade identifier |
| ↳ `order_id` | string | Associated order ID |
| ↳ `ticker` | string | Market ticker |
| ↳ `side` | string | Trade side \(yes/no\) |
| ↳ `action` | string | Trade action \(buy/sell\) |
| ↳ `count` | number | Number of contracts |
| ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents |
| ↳ `is_taker` | boolean | Whether this was a taker trade |
| ↳ `created_time` | string | Trade execution time \(ISO 8601\) |
| `cursor` | string | Pagination cursor for fetching more results | | `cursor` | string | Pagination cursor for fetching more results |
### `kalshi_get_series_by_ticker` ### `kalshi_get_series_by_ticker`
@@ -391,20 +478,20 @@ Retrieve details of a specific market series by ticker (V2 - exact API response)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `series` | object | Series object with full details matching Kalshi API response | | `series` | object | Series object with full details matching Kalshi API response |
| ↳ `ticker` | string | Series ticker | | ↳ `ticker` | string | Series ticker |
| ↳ `title` | string | Series title | | ↳ `title` | string | Series title |
| ↳ `frequency` | string | Event frequency | | ↳ `frequency` | string | Event frequency |
| ↳ `category` | string | Series category | | ↳ `category` | string | Series category |
| ↳ `tags` | array | Series tags | | ↳ `tags` | array | Series tags |
| ↳ `settlement_sources` | array | Settlement sources | | ↳ `settlement_sources` | array | Settlement sources |
| ↳ `contract_url` | string | Contract URL | | ↳ `contract_url` | string | Contract URL |
| ↳ `contract_terms_url` | string | Contract terms URL | | ↳ `contract_terms_url` | string | Contract terms URL |
| ↳ `fee_type` | string | Fee type | | ↳ `fee_type` | string | Fee type |
| ↳ `fee_multiplier` | number | Fee multiplier | | ↳ `fee_multiplier` | number | Fee multiplier |
| ↳ `additional_prohibitions` | array | Additional prohibitions | | ↳ `additional_prohibitions` | array | Additional prohibitions |
| ↳ `product_metadata` | object | Product metadata | | ↳ `product_metadata` | object | Product metadata |
| ↳ `volume` | number | Series volume | | ↳ `volume` | number | Series volume |
| ↳ `volume_fp` | number | Volume \(fixed-point\) | | ↳ `volume_fp` | number | Volume \(fixed-point\) |
### `kalshi_get_exchange_status` ### `kalshi_get_exchange_status`
@@ -456,39 +543,39 @@ Create a new order on a Kalshi prediction market (V2 with full API response)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | The created order object with full API response fields | | `order` | object | The created order object with full API response fields |
| ↳ `order_id` | string | Order ID | | ↳ `order_id` | string | Order ID |
| ↳ `user_id` | string | User ID | | ↳ `user_id` | string | User ID |
| ↳ `client_order_id` | string | Client order ID | | ↳ `client_order_id` | string | Client order ID |
| ↳ `ticker` | string | Market ticker | | ↳ `ticker` | string | Market ticker |
| ↳ `side` | string | Order side \(yes/no\) | | ↳ `side` | string | Order side \(yes/no\) |
| ↳ `action` | string | Action \(buy/sell\) | | ↳ `action` | string | Action \(buy/sell\) |
| ↳ `type` | string | Order type \(limit/market\) | | ↳ `type` | string | Order type \(limit/market\) |
| ↳ `status` | string | Order status \(resting/canceled/executed\) | | ↳ `status` | string | Order status \(resting/canceled/executed\) |
| ↳ `yes_price` | number | Yes price in cents | | ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents | | ↳ `no_price` | number | No price in cents |
| ↳ `yes_price_dollars` | string | Yes price in dollars | | ↳ `yes_price_dollars` | string | Yes price in dollars |
| ↳ `no_price_dollars` | string | No price in dollars | | ↳ `no_price_dollars` | string | No price in dollars |
| ↳ `fill_count` | number | Filled contract count | | ↳ `fill_count` | number | Filled contract count |
| ↳ `fill_count_fp` | string | Filled count \(fixed-point\) | | ↳ `fill_count_fp` | string | Filled count \(fixed-point\) |
| ↳ `remaining_count` | number | Remaining contracts | | ↳ `remaining_count` | number | Remaining contracts |
| ↳ `remaining_count_fp` | string | Remaining count \(fixed-point\) | | ↳ `remaining_count_fp` | string | Remaining count \(fixed-point\) |
| ↳ `initial_count` | number | Initial contract count | | ↳ `initial_count` | number | Initial contract count |
| ↳ `initial_count_fp` | string | Initial count \(fixed-point\) | | ↳ `initial_count_fp` | string | Initial count \(fixed-point\) |
| ↳ `taker_fees` | number | Taker fees in cents | | ↳ `taker_fees` | number | Taker fees in cents |
| ↳ `maker_fees` | number | Maker fees in cents | | ↳ `maker_fees` | number | Maker fees in cents |
| ↳ `taker_fees_dollars` | string | Taker fees in dollars | | ↳ `taker_fees_dollars` | string | Taker fees in dollars |
| ↳ `maker_fees_dollars` | string | Maker fees in dollars | | ↳ `maker_fees_dollars` | string | Maker fees in dollars |
| ↳ `taker_fill_cost` | number | Taker fill cost in cents | | ↳ `taker_fill_cost` | number | Taker fill cost in cents |
| ↳ `maker_fill_cost` | number | Maker fill cost in cents | | ↳ `maker_fill_cost` | number | Maker fill cost in cents |
| ↳ `taker_fill_cost_dollars` | string | Taker fill cost in dollars | | ↳ `taker_fill_cost_dollars` | string | Taker fill cost in dollars |
| ↳ `maker_fill_cost_dollars` | string | Maker fill cost in dollars | | ↳ `maker_fill_cost_dollars` | string | Maker fill cost in dollars |
| ↳ `queue_position` | number | Queue position \(deprecated\) | | ↳ `queue_position` | number | Queue position \(deprecated\) |
| ↳ `expiration_time` | string | Order expiration time | | ↳ `expiration_time` | string | Order expiration time |
| ↳ `created_time` | string | Order creation time | | ↳ `created_time` | string | Order creation time |
| ↳ `last_update_time` | string | Last update time | | ↳ `last_update_time` | string | Last update time |
| ↳ `self_trade_prevention_type` | string | Self-trade prevention type | | ↳ `self_trade_prevention_type` | string | Self-trade prevention type |
| ↳ `order_group_id` | string | Order group ID | | ↳ `order_group_id` | string | Order group ID |
| ↳ `cancel_order_on_pause` | boolean | Cancel on market pause | | ↳ `cancel_order_on_pause` | boolean | Cancel on market pause |
### `kalshi_cancel_order` ### `kalshi_cancel_order`
@@ -507,39 +594,39 @@ Cancel an existing order on Kalshi (V2 with full API response)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | The canceled order object with full API response fields | | `order` | object | The canceled order object with full API response fields |
| ↳ `order_id` | string | Order ID | | ↳ `order_id` | string | Order ID |
| ↳ `user_id` | string | User ID | | ↳ `user_id` | string | User ID |
| ↳ `client_order_id` | string | Client order ID | | ↳ `client_order_id` | string | Client order ID |
| ↳ `ticker` | string | Market ticker | | ↳ `ticker` | string | Market ticker |
| ↳ `side` | string | Order side \(yes/no\) | | ↳ `side` | string | Order side \(yes/no\) |
| ↳ `action` | string | Action \(buy/sell\) | | ↳ `action` | string | Action \(buy/sell\) |
| ↳ `type` | string | Order type \(limit/market\) | | ↳ `type` | string | Order type \(limit/market\) |
| ↳ `status` | string | Order status \(resting/canceled/executed\) | | ↳ `status` | string | Order status \(resting/canceled/executed\) |
| ↳ `yes_price` | number | Yes price in cents | | ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents | | ↳ `no_price` | number | No price in cents |
| ↳ `yes_price_dollars` | string | Yes price in dollars | | ↳ `yes_price_dollars` | string | Yes price in dollars |
| ↳ `no_price_dollars` | string | No price in dollars | | ↳ `no_price_dollars` | string | No price in dollars |
| ↳ `fill_count` | number | Filled contract count | | ↳ `fill_count` | number | Filled contract count |
| ↳ `fill_count_fp` | string | Filled count \(fixed-point\) | | ↳ `fill_count_fp` | string | Filled count \(fixed-point\) |
| ↳ `remaining_count` | number | Remaining contracts | | ↳ `remaining_count` | number | Remaining contracts |
| ↳ `remaining_count_fp` | string | Remaining count \(fixed-point\) | | ↳ `remaining_count_fp` | string | Remaining count \(fixed-point\) |
| ↳ `initial_count` | number | Initial contract count | | ↳ `initial_count` | number | Initial contract count |
| ↳ `initial_count_fp` | string | Initial count \(fixed-point\) | | ↳ `initial_count_fp` | string | Initial count \(fixed-point\) |
| ↳ `taker_fees` | number | Taker fees in cents | | ↳ `taker_fees` | number | Taker fees in cents |
| ↳ `maker_fees` | number | Maker fees in cents | | ↳ `maker_fees` | number | Maker fees in cents |
| ↳ `taker_fees_dollars` | string | Taker fees in dollars | | ↳ `taker_fees_dollars` | string | Taker fees in dollars |
| ↳ `maker_fees_dollars` | string | Maker fees in dollars | | ↳ `maker_fees_dollars` | string | Maker fees in dollars |
| ↳ `taker_fill_cost` | number | Taker fill cost in cents | | ↳ `taker_fill_cost` | number | Taker fill cost in cents |
| ↳ `maker_fill_cost` | number | Maker fill cost in cents | | ↳ `maker_fill_cost` | number | Maker fill cost in cents |
| ↳ `taker_fill_cost_dollars` | string | Taker fill cost in dollars | | ↳ `taker_fill_cost_dollars` | string | Taker fill cost in dollars |
| ↳ `maker_fill_cost_dollars` | string | Maker fill cost in dollars | | ↳ `maker_fill_cost_dollars` | string | Maker fill cost in dollars |
| ↳ `queue_position` | number | Queue position \(deprecated\) | | ↳ `queue_position` | number | Queue position \(deprecated\) |
| ↳ `expiration_time` | string | Order expiration time | | ↳ `expiration_time` | string | Order expiration time |
| ↳ `created_time` | string | Order creation time | | ↳ `created_time` | string | Order creation time |
| ↳ `last_update_time` | string | Last update time | | ↳ `last_update_time` | string | Last update time |
| ↳ `self_trade_prevention_type` | string | Self-trade prevention type | | ↳ `self_trade_prevention_type` | string | Self-trade prevention type |
| ↳ `order_group_id` | string | Order group ID | | ↳ `order_group_id` | string | Order group ID |
| ↳ `cancel_order_on_pause` | boolean | Cancel on market pause | | ↳ `cancel_order_on_pause` | boolean | Cancel on market pause |
| `reduced_by` | number | Number of contracts canceled | | `reduced_by` | number | Number of contracts canceled |
| `reduced_by_fp` | string | Number of contracts canceled in fixed-point format | | `reduced_by_fp` | string | Number of contracts canceled in fixed-point format |
@@ -570,62 +657,62 @@ Modify the price or quantity of an existing order on Kalshi (V2 with full API re
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `old_order` | object | The original order object before amendment | | `old_order` | object | The original order object before amendment |
| ↳ `order_id` | string | Order ID | | ↳ `order_id` | string | Order ID |
| ↳ `user_id` | string | User ID | | ↳ `user_id` | string | User ID |
| ↳ `ticker` | string | Market ticker | | ↳ `ticker` | string | Market ticker |
| ↳ `event_ticker` | string | Event ticker | | ↳ `event_ticker` | string | Event ticker |
| ↳ `status` | string | Order status | | ↳ `status` | string | Order status |
| ↳ `side` | string | Order side \(yes/no\) | | ↳ `side` | string | Order side \(yes/no\) |
| ↳ `type` | string | Order type \(limit/market\) | | ↳ `type` | string | Order type \(limit/market\) |
| ↳ `yes_price` | number | Yes price in cents | | ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents | | ↳ `no_price` | number | No price in cents |
| ↳ `action` | string | Action \(buy/sell\) | | ↳ `action` | string | Action \(buy/sell\) |
| ↳ `count` | number | Number of contracts | | ↳ `count` | number | Number of contracts |
| ↳ `remaining_count` | number | Remaining contracts | | ↳ `remaining_count` | number | Remaining contracts |
| ↳ `created_time` | string | Order creation time | | ↳ `created_time` | string | Order creation time |
| ↳ `expiration_time` | string | Order expiration time | | ↳ `expiration_time` | string | Order expiration time |
| ↳ `order_group_id` | string | Order group ID | | ↳ `order_group_id` | string | Order group ID |
| ↳ `client_order_id` | string | Client order ID | | ↳ `client_order_id` | string | Client order ID |
| ↳ `place_count` | number | Place count | | ↳ `place_count` | number | Place count |
| ↳ `decrease_count` | number | Decrease count | | ↳ `decrease_count` | number | Decrease count |
| ↳ `queue_position` | number | Queue position | | ↳ `queue_position` | number | Queue position |
| ↳ `maker_fill_count` | number | Maker fill count | | ↳ `maker_fill_count` | number | Maker fill count |
| ↳ `taker_fill_count` | number | Taker fill count | | ↳ `taker_fill_count` | number | Taker fill count |
| ↳ `maker_fees` | number | Maker fees | | ↳ `maker_fees` | number | Maker fees |
| ↳ `taker_fees` | number | Taker fees | | ↳ `taker_fees` | number | Taker fees |
| ↳ `last_update_time` | string | Last update time | | ↳ `last_update_time` | string | Last update time |
| ↳ `take_profit_order_id` | string | Take profit order ID | | ↳ `take_profit_order_id` | string | Take profit order ID |
| ↳ `stop_loss_order_id` | string | Stop loss order ID | | ↳ `stop_loss_order_id` | string | Stop loss order ID |
| ↳ `amend_count` | number | Amend count | | ↳ `amend_count` | number | Amend count |
| ↳ `amend_taker_fill_count` | number | Amend taker fill count | | ↳ `amend_taker_fill_count` | number | Amend taker fill count |
| `order` | object | The amended order object with full API response fields | | `order` | object | The amended order object with full API response fields |
| ↳ `order_id` | string | Order ID | | ↳ `order_id` | string | Order ID |
| ↳ `user_id` | string | User ID | | ↳ `user_id` | string | User ID |
| ↳ `ticker` | string | Market ticker | | ↳ `ticker` | string | Market ticker |
| ↳ `event_ticker` | string | Event ticker | | ↳ `event_ticker` | string | Event ticker |
| ↳ `status` | string | Order status | | ↳ `status` | string | Order status |
| ↳ `side` | string | Order side \(yes/no\) | | ↳ `side` | string | Order side \(yes/no\) |
| ↳ `type` | string | Order type \(limit/market\) | | ↳ `type` | string | Order type \(limit/market\) |
| ↳ `yes_price` | number | Yes price in cents | | ↳ `yes_price` | number | Yes price in cents |
| ↳ `no_price` | number | No price in cents | | ↳ `no_price` | number | No price in cents |
| ↳ `action` | string | Action \(buy/sell\) | | ↳ `action` | string | Action \(buy/sell\) |
| ↳ `count` | number | Number of contracts | | ↳ `count` | number | Number of contracts |
| ↳ `remaining_count` | number | Remaining contracts | | ↳ `remaining_count` | number | Remaining contracts |
| ↳ `created_time` | string | Order creation time | | ↳ `created_time` | string | Order creation time |
| ↳ `expiration_time` | string | Order expiration time | | ↳ `expiration_time` | string | Order expiration time |
| ↳ `order_group_id` | string | Order group ID | | ↳ `order_group_id` | string | Order group ID |
| ↳ `client_order_id` | string | Client order ID | | ↳ `client_order_id` | string | Client order ID |
| ↳ `place_count` | number | Place count | | ↳ `place_count` | number | Place count |
| ↳ `decrease_count` | number | Decrease count | | ↳ `decrease_count` | number | Decrease count |
| ↳ `queue_position` | number | Queue position | | ↳ `queue_position` | number | Queue position |
| ↳ `maker_fill_count` | number | Maker fill count | | ↳ `maker_fill_count` | number | Maker fill count |
| ↳ `taker_fill_count` | number | Taker fill count | | ↳ `taker_fill_count` | number | Taker fill count |
| ↳ `maker_fees` | number | Maker fees | | ↳ `maker_fees` | number | Maker fees |
| ↳ `taker_fees` | number | Taker fees | | ↳ `taker_fees` | number | Taker fees |
| ↳ `last_update_time` | string | Last update time | | ↳ `last_update_time` | string | Last update time |
| ↳ `take_profit_order_id` | string | Take profit order ID | | ↳ `take_profit_order_id` | string | Take profit order ID |
| ↳ `stop_loss_order_id` | string | Stop loss order ID | | ↳ `stop_loss_order_id` | string | Stop loss order ID |
| ↳ `amend_count` | number | Amend count | | ↳ `amend_count` | number | Amend count |
| ↳ `amend_taker_fill_count` | number | Amend taker fill count | | ↳ `amend_taker_fill_count` | number | Amend taker fill count |

View File

@@ -85,14 +85,14 @@ Upload a new chunk to a document in a knowledge base
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `data` | object | Information about the uploaded chunk | | `data` | object | Information about the uploaded chunk |
| ↳ `chunkId` | string | Chunk ID | | ↳ `chunkId` | string | Chunk ID |
| ↳ `chunkIndex` | number | Index of the chunk within the document | | ↳ `chunkIndex` | number | Index of the chunk within the document |
| ↳ `content` | string | Content of the chunk | | ↳ `content` | string | Content of the chunk |
| ↳ `contentLength` | number | Length of the content in characters | | ↳ `contentLength` | number | Length of the content in characters |
| ↳ `tokenCount` | number | Number of tokens in the chunk | | ↳ `tokenCount` | number | Number of tokens in the chunk |
| ↳ `enabled` | boolean | Whether the chunk is enabled | | ↳ `enabled` | boolean | Whether the chunk is enabled |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp |
| `message` | string | Success or error message describing the operation result | | `message` | string | Success or error message describing the operation result |
| `documentId` | string | ID of the document the chunk was added to | | `documentId` | string | ID of the document the chunk was added to |
| `documentName` | string | Name of the document the chunk was added to | | `documentName` | string | Name of the document the chunk was added to |
@@ -117,12 +117,12 @@ Create a new document in a knowledge base
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `data` | object | Information about the created document | | `data` | object | Information about the created document |
| ↳ `documentId` | string | Document ID | | ↳ `documentId` | string | Document ID |
| ↳ `documentName` | string | Document name | | ↳ `documentName` | string | Document name |
| ↳ `type` | string | Document type | | ↳ `type` | string | Document type |
| ↳ `enabled` | boolean | Whether the document is enabled | | ↳ `enabled` | boolean | Whether the document is enabled |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp |
| `message` | string | Success or error message describing the operation result | | `message` | string | Success or error message describing the operation result |
| `documentId` | string | ID of the created document | | `documentId` | string | ID of the created document |

View File

@@ -59,18 +59,27 @@ Fetch and filter issues from Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `hasNextPage` | boolean | Whether there are more results |
| `endCursor` | string | Cursor for the next page |
| `issues` | array | Array of filtered issues from Linear | | `issues` | array | Array of filtered issues from Linear |
| ↳ `id` | string | Issue ID | | ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `description` | string | Issue description | | ↳ `description` | string | Issue description |
| ↳ `priority` | number | Issue priority | | ↳ `priority` | number | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| ↳ `estimate` | number | Issue estimate | | ↳ `estimate` | number | Estimate in points |
| ↳ `url` | string | Issue URL | | ↳ `url` | string | Issue URL |
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) | | ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `state` | object | Issue state | | ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
| ↳ `assignee` | object | Assigned user | | ↳ `state` | object | Workflow state/status |
| ↳ `id` | string | State ID |
| ↳ `name` | string | State name \(e.g., "Todo", "In Progress"\) |
| ↳ `type` | string | State type \(unstarted, started, completed, canceled\) |
| ↳ `assignee` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teamId` | string | Team ID | | ↳ `teamId` | string | Team ID |
| ↳ `teamName` | string | Team name | | ↳ `teamName` | string | Team name |
| ↳ `projectId` | string | Project ID | | ↳ `projectId` | string | Project ID |
@@ -79,8 +88,9 @@ Fetch and filter issues from Linear
| ↳ `cycleNumber` | number | Cycle number | | ↳ `cycleNumber` | number | Cycle number |
| ↳ `cycleName` | string | Cycle name | | ↳ `cycleName` | string | Cycle name |
| ↳ `labels` | array | Issue labels | | ↳ `labels` | array | Issue labels |
| `hasNextPage` | boolean | Whether there are more results available | | ↳ `id` | string | Label ID |
| `endCursor` | string | Cursor for fetching the next page \(use as | | ↳ `name` | string | Label name |
| ↳ `color` | string | Label color \(hex\) |
### `linear_get_issue` ### `linear_get_issue`
@@ -97,17 +107,32 @@ Get a single issue by ID from Linear with full details
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `issue` | object | The issue with full details | | `issue` | object | The issue with full details |
| ↳ `id` | string | Issue ID | | ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `description` | string | Issue description | | ↳ `description` | string | Issue description |
| ↳ `priority` | number | Issue priority \(0-4\) | | ↳ `priority` | number | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| ↳ `estimate` | number | Issue estimate in points | | ↳ `estimate` | number | Estimate in points |
| ↳ `url` | string | Issue URL | | ↳ `url` | string | Issue URL |
| ↳ `state` | object | Issue state/status | | ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
| ↳ `assignee` | object | Assigned user | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `labels` | array | Issue labels | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `completedAt` | string | Completion timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `canceledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
| ↳ `state` | object | Workflow state/status |
| ↳ `id` | string | State ID |
| ↳ `name` | string | State name \(e.g., "Todo", "In Progress"\) |
| ↳ `type` | string | State type \(unstarted, started, completed, canceled\) |
| ↳ `assignee` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teamId` | string | Team ID |
| ↳ `projectId` | string | Project ID |
| ↳ `labels` | array | Issue labels |
| ↳ `id` | string | Label ID |
| ↳ `name` | string | Label name |
| ↳ `color` | string | Label color \(hex\) |
### `linear_create_issue` ### `linear_create_issue`
@@ -137,25 +162,39 @@ Create a new issue in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `issue` | object | The created issue with all its properties | | `issue` | object | The created issue with all its properties |
| ↳ `id` | string | Issue ID | | ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `description` | string | Issue description | | ↳ `description` | string | Issue description |
| ↳ `priority` | number | Issue priority | | ↳ `priority` | number | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| ↳ `estimate` | number | Issue estimate | | ↳ `estimate` | number | Estimate in points |
| ↳ `url` | string | Issue URL | | ↳ `url` | string | Issue URL |
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) | | ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
| ↳ `state` | object | Issue state | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `assignee` | object | Assigned user | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `teamId` | string | Team ID | | ↳ `completedAt` | string | Completion timestamp \(ISO 8601\) |
| ↳ `projectId` | string | Project ID | | ↳ `canceledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `cycleId` | string | Cycle ID | | ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
| ↳ `cycleNumber` | number | Cycle number | | ↳ `state` | object | Workflow state/status |
| ↳ `cycleName` | string | Cycle name | | ↳ `id` | string | State ID |
| ↳ `parentId` | string | Parent issue ID | | ↳ `name` | string | State name \(e.g., "Todo", "In Progress"\) |
| ↳ `parentTitle` | string | Parent issue title | | ↳ `type` | string | State type \(unstarted, started, completed, canceled\) |
| ↳ `projectMilestoneId` | string | Project milestone ID | | ↳ `assignee` | object | User object |
| ↳ `projectMilestoneName` | string | Project milestone name | | ↳ `id` | string | User ID |
| ↳ `labels` | array | Issue labels | | ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teamId` | string | Team ID |
| ↳ `projectId` | string | Project ID |
| ↳ `labels` | array | Issue labels |
| ↳ `id` | string | Label ID |
| ↳ `name` | string | Label name |
| ↳ `color` | string | Label color \(hex\) |
| ↳ `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 |
### `linear_update_issue` ### `linear_update_issue`
@@ -185,22 +224,39 @@ Update an existing issue in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `issue` | object | The updated issue | | `issue` | object | The updated issue |
| ↳ `id` | string | Issue ID | | ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `description` | string | Issue description | | ↳ `description` | string | Issue description |
| ↳ `priority` | number | Issue priority | | ↳ `priority` | number | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| ↳ `estimate` | number | Issue estimate | | ↳ `estimate` | number | Estimate in points |
| ↳ `state` | object | Issue state | | ↳ `url` | string | Issue URL |
| ↳ `assignee` | object | Assigned user | | ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
| ↳ `labels` | array | Issue labels | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) | | ↳ `completedAt` | string | Completion timestamp \(ISO 8601\) |
| ↳ `projectId` | string | Project ID | | ↳ `canceledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `cycleId` | string | Cycle ID | | ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
| ↳ `cycleNumber` | number | Cycle number | | ↳ `state` | object | Workflow state/status |
| ↳ `cycleName` | string | Cycle name | | ↳ `id` | string | State ID |
| ↳ `parentId` | string | Parent issue ID | | ↳ `name` | string | State name \(e.g., "Todo", "In Progress"\) |
| ↳ `parentTitle` | string | Parent issue title | | ↳ `type` | string | State type \(unstarted, started, completed, canceled\) |
| ↳ `assignee` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teamId` | string | Team ID |
| ↳ `projectId` | string | Project ID |
| ↳ `labels` | array | Issue labels |
| ↳ `id` | string | Label ID |
| ↳ `name` | string | Label name |
| ↳ `color` | string | Label color \(hex\) |
| ↳ `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 |
### `linear_archive_issue` ### `linear_archive_issue`
@@ -269,17 +325,36 @@ Search for issues in Linear using full-text search
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `issues` | array | Array of matching issues | | `issues` | array | Array of matching issues |
| ↳ `id` | string | Issue ID | | ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `description` | string | Issue description | | ↳ `description` | string | Issue description |
| ↳ `priority` | number | Issue priority | | ↳ `priority` | number | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| ↳ `state` | object | Issue state | | ↳ `estimate` | number | Estimate in points |
| ↳ `assignee` | object | Assigned user | | ↳ `url` | string | Issue URL |
| ↳ `dueDate` | string | Due date \(YYYY-MM-DD\) |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `completedAt` | string | Completion timestamp \(ISO 8601\) |
| ↳ `canceledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
| ↳ `state` | object | Workflow state/status |
| ↳ `id` | string | State ID |
| ↳ `name` | string | State name \(e.g., "Todo", "In Progress"\) |
| ↳ `type` | string | State type \(unstarted, started, completed, canceled\) |
| ↳ `assignee` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teamId` | string | Team ID |
| ↳ `projectId` | string | Project ID |
| ↳ `labels` | array | Issue labels | | ↳ `labels` | array | Issue labels |
| `pageInfo` | object | Pagination information | | ↳ `id` | string | Label ID |
| ↳ `hasNextPage` | boolean | Whether there are more results | | ↳ `name` | string | Label name |
| ↳ `endCursor` | string | Cursor for next page | | ↳ `color` | string | Label color \(hex\) |
### `linear_add_label_to_issue` ### `linear_add_label_to_issue`
@@ -333,11 +408,17 @@ Add a comment to an issue in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `comment` | object | The created comment | | `comment` | object | The created comment |
| ↳ `id` | string | Comment ID | | ↳ `id` | string | Comment ID |
| ↳ `body` | string | Comment text | | ↳ `body` | string | Comment text \(Markdown\) |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `user` | object | User who created the comment | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `issue` | object | Associated issue | | ↳ `user` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `issue` | object | Issue object |
| ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title |
### `linear_update_comment` ### `linear_update_comment`
@@ -355,10 +436,17 @@ Edit a comment in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `comment` | object | The updated comment | | `comment` | object | The updated comment |
| ↳ `id` | string | Comment ID | | ↳ `id` | string | Comment ID |
| ↳ `body` | string | Comment text | | ↳ `body` | string | Comment text \(Markdown\) |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `user` | object | User who created the comment | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `user` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `issue` | object | Issue object |
| ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title |
### `linear_delete_comment` ### `linear_delete_comment`
@@ -392,15 +480,21 @@ List all comments on an issue in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `comments` | array | Array of comments on the issue | | `comments` | array | Array of comments on the issue |
| ↳ `id` | string | Comment ID | | ↳ `id` | string | Comment ID |
| ↳ `body` | string | Comment text | | ↳ `body` | string | Comment text \(Markdown\) |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `user` | object | User who created the comment | | ↳ `user` | object | User object |
| `pageInfo` | object | Pagination information | | ↳ `id` | string | User ID |
| ↳ `hasNextPage` | boolean | Whether there are more results | | ↳ `name` | string | User name |
| ↳ `endCursor` | string | Cursor for next page | | ↳ `email` | string | User email |
| ↳ `issue` | object | Issue object |
| ↳ `id` | string | Issue ID |
| ↳ `title` | string | Issue title |
### `linear_list_projects` ### `linear_list_projects`
@@ -419,15 +513,25 @@ List projects in Linear with optional filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `projects` | array | Array of projects | | `projects` | array | Array of projects |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `description` | string | Project description | | ↳ `description` | string | Project description |
| ↳ `state` | string | Project state | | ↳ `state` | string | Project state \(planned, started, paused, completed, canceled\) |
| ↳ `priority` | number | Project priority | | ↳ `priority` | number | Project priority \(0-4\) |
| ↳ `lead` | object | Project lead | | ↳ `startDate` | string | Start date \(YYYY-MM-DD\) |
| ↳ `teams` | array | Teams associated with project | | ↳ `targetDate` | string | Target date \(YYYY-MM-DD\) |
| `pageInfo` | object | Pagination information | | ↳ `url` | string | Project URL |
| ↳ `lead` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teams` | array | Associated teams |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_get_project` ### `linear_get_project`
@@ -444,15 +548,21 @@ Get a single project by ID from Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | The project with full details | | `project` | object | The project with full details |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `description` | string | Project description | | ↳ `description` | string | Project description |
| ↳ `state` | string | Project state | | ↳ `state` | string | Project state \(planned, started, paused, completed, canceled\) |
| ↳ `priority` | number | Project priority | | ↳ `priority` | number | Project priority \(0-4\) |
| ↳ `startDate` | string | Start date | | ↳ `startDate` | string | Start date \(YYYY-MM-DD\) |
| ↳ `targetDate` | string | Target completion date | | ↳ `targetDate` | string | Target date \(YYYY-MM-DD\) |
| ↳ `lead` | object | Project lead | | ↳ `url` | string | Project URL |
| ↳ `teams` | array | Associated teams | | ↳ `lead` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teams` | array | Associated teams |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_create_project` ### `linear_create_project`
@@ -475,13 +585,21 @@ Create a new project in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | The created project | | `project` | object | The created project |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `description` | string | Project description | | ↳ `description` | string | Project description |
| ↳ `state` | string | Project state | | ↳ `state` | string | Project state \(planned, started, paused, completed, canceled\) |
| ↳ `priority` | number | Project priority | | ↳ `priority` | number | Project priority \(0-4\) |
| ↳ `lead` | object | Project lead | | ↳ `startDate` | string | Start date \(YYYY-MM-DD\) |
| ↳ `teams` | array | Associated teams | | ↳ `targetDate` | string | Target date \(YYYY-MM-DD\) |
| ↳ `url` | string | Project URL |
| ↳ `lead` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teams` | array | Associated teams |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_update_project` ### `linear_update_project`
@@ -505,15 +623,21 @@ Update an existing project in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | The updated project | | `project` | object | The updated project |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `description` | string | Project description | | ↳ `description` | string | Project description |
| ↳ `state` | string | Project state | | ↳ `state` | string | Project state \(planned, started, paused, completed, canceled\) |
| ↳ `priority` | number | Project priority | | ↳ `priority` | number | Project priority \(0-4\) |
| ↳ `startDate` | string | Project start date | | ↳ `startDate` | string | Start date \(YYYY-MM-DD\) |
| ↳ `targetDate` | string | Project target date | | ↳ `targetDate` | string | Target date \(YYYY-MM-DD\) |
| ↳ `lead` | object | Project lead | | ↳ `url` | string | Project URL |
| ↳ `teams` | array | Associated teams | | ↳ `lead` | object | User object |
| ↳ `id` | string | User ID |
| ↳ `name` | string | User name |
| ↳ `email` | string | User email |
| ↳ `teams` | array | Associated teams |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_archive_project` ### `linear_archive_project`
@@ -548,6 +672,9 @@ List all users in the Linear workspace
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `users` | array | Array of workspace users | | `users` | array | Array of workspace users |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
@@ -556,7 +683,6 @@ List all users in the Linear workspace
| ↳ `active` | boolean | Whether user is active | | ↳ `active` | boolean | Whether user is active |
| ↳ `admin` | boolean | Whether user is admin | | ↳ `admin` | boolean | Whether user is admin |
| ↳ `avatarUrl` | string | Avatar URL | | ↳ `avatarUrl` | string | Avatar URL |
| `pageInfo` | object | Pagination information |
### `linear_list_teams` ### `linear_list_teams`
@@ -573,12 +699,14 @@ List all teams in the Linear workspace
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `teams` | array | Array of teams | | `teams` | array | Array of teams |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `key` | string | Team key \(used in issue identifiers\) | | ↳ `key` | string | Team key \(used in issue identifiers\) |
| ↳ `description` | string | Team description | | ↳ `description` | string | Team description |
| `pageInfo` | object | Pagination information |
### `linear_get_viewer` ### `linear_get_viewer`
@@ -594,13 +722,13 @@ Get the currently authenticated user (viewer) information
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | The currently authenticated user | | `user` | object | The currently authenticated user |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `displayName` | string | Display name | | ↳ `displayName` | string | Display name |
| ↳ `active` | boolean | Whether user is active | | ↳ `active` | boolean | Whether user is active |
| ↳ `admin` | boolean | Whether user is admin | | ↳ `admin` | boolean | Whether user is admin |
| ↳ `avatarUrl` | string | Avatar URL | | ↳ `avatarUrl` | string | Avatar URL |
### `linear_list_labels` ### `linear_list_labels`
@@ -618,13 +746,17 @@ List all labels in Linear workspace or team
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `labels` | array | Array of labels | | `labels` | array | Array of labels |
| ↳ `id` | string | Label ID | | ↳ `id` | string | Label ID |
| ↳ `name` | string | Label name | | ↳ `name` | string | Label name |
| ↳ `color` | string | Label color \(hex\) | | ↳ `color` | string | Label color \(hex\) |
| ↳ `description` | string | Label description | | ↳ `description` | string | Label description |
| ↳ `team` | object | Team this label belongs to | | ↳ `team` | object | Team object |
| `pageInfo` | object | Pagination information | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_create_label` ### `linear_create_label`
@@ -644,11 +776,13 @@ Create a new label in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `label` | object | The created label | | `label` | object | The created label |
| ↳ `id` | string | Label ID | | ↳ `id` | string | Label ID |
| ↳ `name` | string | Label name | | ↳ `name` | string | Label name |
| ↳ `color` | string | Label color | | ↳ `color` | string | Label color \(hex\) |
| ↳ `description` | string | Label description | | ↳ `description` | string | Label description |
| ↳ `team` | object | Team this label belongs to | | ↳ `team` | object | Team object |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_update_label` ### `linear_update_label`
@@ -668,10 +802,13 @@ Update an existing label in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `label` | object | The updated label | | `label` | object | The updated label |
| ↳ `id` | string | Label ID | | ↳ `id` | string | Label ID |
| ↳ `name` | string | Label name | | ↳ `name` | string | Label name |
| ↳ `color` | string | Label color | | ↳ `color` | string | Label color \(hex\) |
| ↳ `description` | string | Label description | | ↳ `description` | string | Label description |
| ↳ `team` | object | Team object |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_archive_label` ### `linear_archive_label`
@@ -706,14 +843,18 @@ List all workflow states (statuses) in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `states` | array | Array of workflow states | | `states` | array | Array of workflow states |
| ↳ `id` | string | State ID | | ↳ `id` | string | State ID |
| ↳ `name` | string | State name \(e.g., | | ↳ `name` | string | State name \(e.g., "Todo", "In Progress"\) |
| ↳ `type` | string | State type \(e.g., | | ↳ `type` | string | State type \(unstarted, started, completed, canceled\) |
| ↳ `color` | string | State color | | ↳ `color` | string | State color \(hex\) |
| ↳ `position` | number | State position in workflow | | ↳ `position` | number | State position in workflow |
| ↳ `team` | object | Team this state belongs to | | ↳ `team` | object | Team object |
| `pageInfo` | object | Pagination information | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_create_workflow_state` ### `linear_create_workflow_state`
@@ -735,12 +876,12 @@ Create a new workflow state (status) in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `state` | object | The created workflow state | | `state` | object | The created workflow state |
| ↳ `id` | string | State ID | | ↳ `id` | string | State ID |
| ↳ `name` | string | State name | | ↳ `name` | string | State name |
| ↳ `type` | string | State type | | ↳ `type` | string | State type |
| ↳ `color` | string | State color | | ↳ `color` | string | State color |
| ↳ `position` | number | State position | | ↳ `position` | number | State position |
| ↳ `team` | object | Team this state belongs to | | ↳ `team` | object | Team this state belongs to |
### `linear_update_workflow_state` ### `linear_update_workflow_state`
@@ -761,11 +902,11 @@ Update an existing workflow state in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `state` | object | The updated workflow state | | `state` | object | The updated workflow state |
| ↳ `id` | string | State ID | | ↳ `id` | string | State ID |
| ↳ `name` | string | State name | | ↳ `name` | string | State name |
| ↳ `type` | string | State type | | ↳ `type` | string | State type |
| ↳ `color` | string | State color | | ↳ `color` | string | State color |
| ↳ `position` | number | State position | | ↳ `position` | number | State position |
### `linear_list_cycles` ### `linear_list_cycles`
@@ -783,16 +924,20 @@ List cycles (sprints/iterations) in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `cycles` | array | Array of cycles | | `cycles` | array | Array of cycles |
| ↳ `id` | string | Cycle ID | | ↳ `id` | string | Cycle ID |
| ↳ `number` | number | Cycle number | | ↳ `number` | number | Cycle number |
| ↳ `name` | string | Cycle name | | ↳ `name` | string | Cycle name |
| ↳ `startsAt` | string | Start date | | ↳ `startsAt` | string | Start date \(ISO 8601\) |
| ↳ `endsAt` | string | End date | | ↳ `endsAt` | string | End date \(ISO 8601\) |
| ↳ `completedAt` | string | Completion date | | ↳ `completedAt` | string | Completion date \(ISO 8601\) |
| ↳ `progress` | number | Progress percentage \(0-1\) | | ↳ `progress` | number | Progress percentage \(0-1\) |
| ↳ `team` | object | Team this cycle belongs to | | ↳ `team` | object | Team object |
| `pageInfo` | object | Pagination information | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_get_cycle` ### `linear_get_cycle`
@@ -809,13 +954,16 @@ Get a single cycle by ID from Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `cycle` | object | The cycle with full details | | `cycle` | object | The cycle with full details |
| ↳ `id` | string | Cycle ID | | ↳ `id` | string | Cycle ID |
| ↳ `number` | number | Cycle number | | ↳ `number` | number | Cycle number |
| ↳ `name` | string | Cycle name | | ↳ `name` | string | Cycle name |
| ↳ `startsAt` | string | Start date | | ↳ `startsAt` | string | Start date \(ISO 8601\) |
| ↳ `endsAt` | string | End date | | ↳ `endsAt` | string | End date \(ISO 8601\) |
| ↳ `progress` | number | Progress percentage | | ↳ `completedAt` | string | Completion date \(ISO 8601\) |
| ↳ `team` | object | Team this cycle belongs to | | ↳ `progress` | number | Progress percentage \(0-1\) |
| ↳ `team` | object | Team object |
| ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name |
### `linear_create_cycle` ### `linear_create_cycle`
@@ -835,12 +983,12 @@ Create a new cycle (sprint/iteration) in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `cycle` | object | The created cycle | | `cycle` | object | The created cycle |
| ↳ `id` | string | Cycle ID | | ↳ `id` | string | Cycle ID |
| ↳ `number` | number | Cycle number | | ↳ `number` | number | Cycle number |
| ↳ `name` | string | Cycle name | | ↳ `name` | string | Cycle name |
| ↳ `startsAt` | string | Start date | | ↳ `startsAt` | string | Start date |
| ↳ `endsAt` | string | End date | | ↳ `endsAt` | string | End date |
| ↳ `team` | object | Team this cycle belongs to | | ↳ `team` | object | Team this cycle belongs to |
### `linear_get_active_cycle` ### `linear_get_active_cycle`
@@ -857,13 +1005,13 @@ Get the currently active cycle for a team
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `cycle` | object | The active cycle \(null if no active cycle\) | | `cycle` | object | The active cycle \(null if no active cycle\) |
| ↳ `id` | string | Cycle ID | | ↳ `id` | string | Cycle ID |
| ↳ `number` | number | Cycle number | | ↳ `number` | number | Cycle number |
| ↳ `name` | string | Cycle name | | ↳ `name` | string | Cycle name |
| ↳ `startsAt` | string | Start date | | ↳ `startsAt` | string | Start date |
| ↳ `endsAt` | string | End date | | ↳ `endsAt` | string | End date |
| ↳ `progress` | number | Progress percentage | | ↳ `progress` | number | Progress percentage |
| ↳ `team` | object | Team this cycle belongs to | | ↳ `team` | object | Team this cycle belongs to |
### `linear_create_attachment` ### `linear_create_attachment`
@@ -883,11 +1031,12 @@ Add an attachment to an issue in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `attachment` | object | The created attachment | | `attachment` | object | The created attachment |
| ↳ `id` | string | Attachment ID | | ↳ `id` | string | Attachment ID |
| ↳ `title` | string | Attachment title | | ↳ `title` | string | Attachment title |
| ↳ `subtitle` | string | Attachment subtitle | | ↳ `subtitle` | string | Attachment subtitle |
| ↳ `url` | string | Attachment URL | | ↳ `url` | string | Attachment URL |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
### `linear_list_attachments` ### `linear_list_attachments`
@@ -905,13 +1054,16 @@ List all attachments on an issue in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `attachments` | array | Array of attachments | | `attachments` | array | Array of attachments |
| ↳ `id` | string | Attachment ID | | ↳ `id` | string | Attachment ID |
| ↳ `title` | string | Attachment title | | ↳ `title` | string | Attachment title |
| ↳ `subtitle` | string | Attachment subtitle | | ↳ `subtitle` | string | Attachment subtitle |
| ↳ `url` | string | Attachment URL | | ↳ `url` | string | Attachment URL |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| `pageInfo` | object | Pagination information | | ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
### `linear_update_attachment` ### `linear_update_attachment`
@@ -930,11 +1082,12 @@ Update an attachment metadata in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `attachment` | object | The updated attachment | | `attachment` | object | The updated attachment |
| ↳ `id` | string | Attachment ID | | ↳ `id` | string | Attachment ID |
| ↳ `title` | string | Attachment title | | ↳ `title` | string | Attachment title |
| ↳ `subtitle` | string | Attachment subtitle | | ↳ `subtitle` | string | Attachment subtitle |
| ↳ `url` | string | Attachment URL | | ↳ `url` | string | Attachment URL |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
### `linear_delete_attachment` ### `linear_delete_attachment`
@@ -969,10 +1122,10 @@ Link two issues together in Linear (blocks, relates to, duplicates)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `relation` | object | The created issue relation | | `relation` | object | The created issue relation |
| ↳ `id` | string | Relation ID | | ↳ `id` | string | Relation ID |
| ↳ `type` | string | Relation type | | ↳ `type` | string | Relation type |
| ↳ `issue` | object | Source issue | | ↳ `issue` | object | Source issue |
| ↳ `relatedIssue` | object | Target issue | | ↳ `relatedIssue` | object | Target issue |
### `linear_list_issue_relations` ### `linear_list_issue_relations`
@@ -1031,11 +1184,11 @@ Bookmark an issue, project, cycle, or label in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `favorite` | object | The created favorite | | `favorite` | object | The created favorite |
| ↳ `id` | string | Favorite ID | | ↳ `id` | string | Favorite ID |
| ↳ `type` | string | Favorite type | | ↳ `type` | string | Favorite type |
| ↳ `issue` | object | Favorited issue \(if applicable\) | | ↳ `issue` | object | Favorited issue \(if applicable\) |
| ↳ `project` | object | Favorited project \(if applicable\) | | ↳ `project` | object | Favorited project \(if applicable\) |
| ↳ `cycle` | object | Favorited cycle \(if applicable\) | | ↳ `cycle` | object | Favorited cycle \(if applicable\) |
### `linear_list_favorites` ### `linear_list_favorites`
@@ -1077,11 +1230,11 @@ Post a status update for a project in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `update` | object | The created project update | | `update` | object | The created project update |
| ↳ `id` | string | Update ID | | ↳ `id` | string | Update ID |
| ↳ `body` | string | Update message | | ↳ `body` | string | Update message |
| ↳ `health` | string | Project health status | | ↳ `health` | string | Project health status |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp |
| ↳ `user` | object | User who created the update | | ↳ `user` | object | User who created the update |
### `linear_list_project_updates` ### `linear_list_project_updates`
@@ -1146,11 +1299,11 @@ Mark a notification as read or unread in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `notification` | object | The updated notification | | `notification` | object | The updated notification |
| ↳ `id` | string | Notification ID | | ↳ `id` | string | Notification ID |
| ↳ `type` | string | Notification type | | ↳ `type` | string | Notification type |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp |
| ↳ `readAt` | string | Read timestamp | | ↳ `readAt` | string | Read timestamp |
| ↳ `issue` | object | Related issue | | ↳ `issue` | object | Related issue |
### `linear_create_customer` ### `linear_create_customer`
@@ -1175,14 +1328,14 @@ Create a new customer in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customer` | object | The created customer | | `customer` | object | The created customer |
| ↳ `id` | string | Customer ID | | ↳ `id` | string | Customer ID |
| ↳ `name` | string | Customer name | | ↳ `name` | string | Customer name |
| ↳ `domains` | array | Associated domains | | ↳ `domains` | array | Associated domains |
| ↳ `externalIds` | array | External IDs | | ↳ `externalIds` | array | External IDs from other systems |
| ↳ `logoUrl` | string | Logo URL | | ↳ `logoUrl` | string | Logo URL |
| ↳ `approximateNeedCount` | number | Number of customer needs | | ↳ `approximateNeedCount` | number | Number of customer needs |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) | | ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_list_customers` ### `linear_list_customers`
@@ -1200,16 +1353,18 @@ List all customers in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results |
| ↳ `endCursor` | string | Cursor for the next page |
| `customers` | array | Array of customers | | `customers` | array | Array of customers |
| ↳ `id` | string | Customer ID | | ↳ `id` | string | Customer ID |
| ↳ `name` | string | Customer name | | ↳ `name` | string | Customer name |
| ↳ `domains` | array | Associated domains | | ↳ `domains` | array | Associated domains |
| ↳ `externalIds` | array | External IDs | | ↳ `externalIds` | array | External IDs from other systems |
| ↳ `logoUrl` | string | Logo URL | | ↳ `logoUrl` | string | Logo URL |
| ↳ `approximateNeedCount` | number | Number of customer needs | | ↳ `approximateNeedCount` | number | Number of customer needs |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) | | ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
| `pageInfo` | object | Pagination information |
### `linear_create_customer_request` ### `linear_create_customer_request`
@@ -1230,17 +1385,17 @@ Create a customer request (need) in Linear. Assign to customer, set urgency (pri
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customerNeed` | object | The created customer request | | `customerNeed` | object | The created customer request |
| ↳ `id` | string | Customer request ID | | ↳ `id` | string | Customer request ID |
| ↳ `body` | string | Request description | | ↳ `body` | string | Request description |
| ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) | | ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp |
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) | | ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
| ↳ `customer` | object | Assigned customer | | ↳ `customer` | object | Assigned customer |
| ↳ `issue` | object | Linked issue \(null if not linked\) | | ↳ `issue` | object | Linked issue \(null if not linked\) |
| ↳ `project` | object | Linked project \(null if not linked\) | | ↳ `project` | object | Linked project \(null if not linked\) |
| ↳ `creator` | object | User who created the request | | ↳ `creator` | object | User who created the request |
| ↳ `url` | string | URL to the customer request | | ↳ `url` | string | URL to the customer request |
### `linear_update_customer_request` ### `linear_update_customer_request`
@@ -1262,17 +1417,17 @@ Update a customer request (need) in Linear. Can change urgency, description, cus
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customerNeed` | object | The updated customer request | | `customerNeed` | object | The updated customer request |
| ↳ `id` | string | Customer request ID | | ↳ `id` | string | Customer request ID |
| ↳ `body` | string | Request description | | ↳ `body` | string | Request description |
| ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) | | ↳ `priority` | number | Urgency level \(0 = Not important, 1 = Important\) |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp |
| ↳ `updatedAt` | string | Last update timestamp | | ↳ `updatedAt` | string | Last update timestamp |
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) | | ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) |
| ↳ `customer` | object | Assigned customer | | ↳ `customer` | object | Assigned customer |
| ↳ `issue` | object | Linked issue \(null if not linked\) | | ↳ `issue` | object | Linked issue \(null if not linked\) |
| ↳ `project` | object | Linked project \(null if not linked\) | | ↳ `project` | object | Linked project \(null if not linked\) |
| ↳ `creator` | object | User who created the request | | ↳ `creator` | object | User who created the request |
| ↳ `url` | string | URL to the customer request | | ↳ `url` | string | URL to the customer request |
### `linear_list_customer_requests` ### `linear_list_customer_requests`
@@ -1319,14 +1474,14 @@ Get a single customer by ID in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customer` | object | The customer data | | `customer` | object | The customer data |
| ↳ `id` | string | Customer ID | | ↳ `id` | string | Customer ID |
| ↳ `name` | string | Customer name | | ↳ `name` | string | Customer name |
| ↳ `domains` | array | Associated domains | | ↳ `domains` | array | Associated domains |
| ↳ `externalIds` | array | External IDs | | ↳ `externalIds` | array | External IDs from other systems |
| ↳ `logoUrl` | string | Logo URL | | ↳ `logoUrl` | string | Logo URL |
| ↳ `approximateNeedCount` | number | Number of customer needs | | ↳ `approximateNeedCount` | number | Number of customer needs |
| ↳ `createdAt` | string | Creation timestamp | | ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(null if not archived\) | | ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_update_customer` ### `linear_update_customer`
@@ -1352,6 +1507,14 @@ Update a customer in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customer` | object | The updated customer | | `customer` | object | The updated customer |
| ↳ `id` | string | Customer ID |
| ↳ `name` | string | Customer name |
| ↳ `domains` | array | Associated domains |
| ↳ `externalIds` | array | External IDs from other systems |
| ↳ `logoUrl` | string | Logo URL |
| ↳ `approximateNeedCount` | number | Number of customer needs |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_delete_customer` ### `linear_delete_customer`
@@ -1405,6 +1568,14 @@ Create a new customer status in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customerStatus` | object | The created customer status | | `customerStatus` | object | The created customer status |
| ↳ `id` | string | Customer status ID |
| ↳ `name` | string | Status name |
| ↳ `displayName` | string | Display name |
| ↳ `description` | string | Status description |
| ↳ `color` | string | Status color \(hex\) |
| ↳ `position` | number | Position in list |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_update_customer_status` ### `linear_update_customer_status`
@@ -1457,6 +1628,14 @@ List all customer statuses in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customerStatuses` | array | List of customer statuses | | `customerStatuses` | array | List of customer statuses |
| ↳ `id` | string | Customer status ID |
| ↳ `name` | string | Status name |
| ↳ `displayName` | string | Display name |
| ↳ `description` | string | Status description |
| ↳ `color` | string | Status color \(hex\) |
| ↳ `position` | number | Position in list |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_create_customer_tier` ### `linear_create_customer_tier`
@@ -1477,6 +1656,14 @@ Create a new customer tier in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customerTier` | object | The created customer tier | | `customerTier` | object | The created customer tier |
| ↳ `id` | string | Customer tier ID |
| ↳ `name` | string | Tier name |
| ↳ `displayName` | string | Display name |
| ↳ `description` | string | Tier description |
| ↳ `color` | string | Tier color \(hex\) |
| ↳ `position` | number | Position in list |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_update_customer_tier` ### `linear_update_customer_tier`
@@ -1529,6 +1716,14 @@ List all customer tiers in Linear
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customerTiers` | array | List of customer tiers | | `customerTiers` | array | List of customer tiers |
| ↳ `id` | string | Customer tier ID |
| ↳ `name` | string | Tier name |
| ↳ `displayName` | string | Display name |
| ↳ `description` | string | Tier description |
| ↳ `color` | string | Tier color \(hex\) |
| ↳ `position` | number | Position in list |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `archivedAt` | string | Archive timestamp \(ISO 8601\) |
### `linear_delete_project` ### `linear_delete_project`

View File

@@ -72,9 +72,9 @@ Retrieve a list of audiences (lists) from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the audiences were successfully retrieved | | `success` | boolean | Whether the audiences were successfully retrieved |
| `output` | object | Audiences data | | `output` | object | Audiences data |
| ↳ `lists` | json | Array of audience/list objects | | ↳ `lists` | json | Array of audience/list objects |
| ↳ `total_items` | number | Total number of lists | | ↳ `total_items` | number | Total number of lists |
| ↳ `total_returned` | number | Number of lists returned in this response | | ↳ `total_returned` | number | Number of lists returned in this response |
### `mailchimp_get_audience` ### `mailchimp_get_audience`
@@ -93,8 +93,8 @@ Retrieve details of a specific audience (list) from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the audience was successfully retrieved | | `success` | boolean | Whether the audience was successfully retrieved |
| `output` | object | Audience data | | `output` | object | Audience data |
| ↳ `list` | json | Audience/list object | | ↳ `list` | json | Audience/list object |
| ↳ `list_id` | string | The unique ID of the audience | | ↳ `list_id` | string | The unique ID of the audience |
### `mailchimp_create_audience` ### `mailchimp_create_audience`
@@ -117,9 +117,9 @@ Create a new audience (list) in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created audience data | | `output` | object | Created audience data |
| ↳ `list` | json | Created audience/list object | | ↳ `list` | json | Created audience/list object |
| ↳ `list_id` | string | Created audience/list ID | | ↳ `list_id` | string | Created audience/list ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_audience` ### `mailchimp_update_audience`
@@ -142,9 +142,9 @@ Update an existing audience (list) in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated audience data | | `output` | object | Updated audience data |
| ↳ `list` | object | Updated audience/list object | | ↳ `list` | object | Updated audience/list object |
| ↳ `list_id` | string | List ID | | ↳ `list_id` | string | List ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_audience` ### `mailchimp_delete_audience`
@@ -183,9 +183,9 @@ Retrieve a list of members from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the members were successfully retrieved | | `success` | boolean | Whether the members were successfully retrieved |
| `output` | object | Members data | | `output` | object | Members data |
| ↳ `members` | json | Array of member objects | | ↳ `members` | json | Array of member objects |
| ↳ `total_items` | number | Total number of members | | ↳ `total_items` | number | Total number of members |
| ↳ `total_returned` | number | Number of members returned in this response | | ↳ `total_returned` | number | Number of members returned in this response |
### `mailchimp_get_member` ### `mailchimp_get_member`
@@ -205,8 +205,8 @@ Retrieve details of a specific member from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the member was successfully retrieved | | `success` | boolean | Whether the member was successfully retrieved |
| `output` | object | Member data | | `output` | object | Member data |
| ↳ `member` | json | Member object | | ↳ `member` | json | Member object |
| ↳ `subscriber_hash` | string | The MD5 hash of the member email address | | ↳ `subscriber_hash` | string | The MD5 hash of the member email address |
### `mailchimp_add_member` ### `mailchimp_add_member`
@@ -229,9 +229,9 @@ Add a new member to a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Added member data | | `output` | object | Added member data |
| ↳ `member` | json | Added member object | | ↳ `member` | json | Added member object |
| ↳ `subscriber_hash` | string | Subscriber hash ID | | ↳ `subscriber_hash` | string | Subscriber hash ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_add_or_update_member` ### `mailchimp_add_or_update_member`
@@ -255,9 +255,9 @@ Add a new member or update an existing member in a Mailchimp audience (upsert)
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Member data | | `output` | object | Member data |
| ↳ `member` | json | Member object | | ↳ `member` | json | Member object |
| ↳ `subscriber_hash` | string | Subscriber hash ID | | ↳ `subscriber_hash` | string | Subscriber hash ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_member` ### `mailchimp_update_member`
@@ -281,9 +281,9 @@ Update an existing member in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated member data | | `output` | object | Updated member data |
| ↳ `member` | object | Updated member object | | ↳ `member` | object | Updated member object |
| ↳ `subscriber_hash` | string | Subscriber hash | | ↳ `subscriber_hash` | string | Subscriber hash |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_member` ### `mailchimp_delete_member`
@@ -321,7 +321,7 @@ Permanently archive (delete) a member from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Archive confirmation | | `output` | object | Archive confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_unarchive_member` ### `mailchimp_unarchive_member`
@@ -343,9 +343,9 @@ Restore an archived member to a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Unarchived member data | | `output` | object | Unarchived member data |
| ↳ `member` | object | Unarchived member object | | ↳ `member` | object | Unarchived member object |
| ↳ `subscriber_hash` | string | Subscriber hash | | ↳ `subscriber_hash` | string | Subscriber hash |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_campaigns` ### `mailchimp_get_campaigns`
@@ -367,9 +367,9 @@ Retrieve a list of campaigns from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the campaigns were successfully retrieved | | `success` | boolean | Whether the campaigns were successfully retrieved |
| `output` | object | Campaigns data | | `output` | object | Campaigns data |
| ↳ `campaigns` | json | Array of campaign objects | | ↳ `campaigns` | json | Array of campaign objects |
| ↳ `total_items` | number | Total number of campaigns | | ↳ `total_items` | number | Total number of campaigns |
| ↳ `total_returned` | number | Number of campaigns returned in this response | | ↳ `total_returned` | number | Number of campaigns returned in this response |
### `mailchimp_get_campaign` ### `mailchimp_get_campaign`
@@ -388,8 +388,8 @@ Retrieve details of a specific campaign from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the campaign was successfully retrieved | | `success` | boolean | Whether the campaign was successfully retrieved |
| `output` | object | Campaign data | | `output` | object | Campaign data |
| ↳ `campaign` | json | Campaign object | | ↳ `campaign` | json | Campaign object |
| ↳ `campaign_id` | string | The unique ID of the campaign | | ↳ `campaign_id` | string | The unique ID of the campaign |
### `mailchimp_create_campaign` ### `mailchimp_create_campaign`
@@ -410,9 +410,9 @@ Create a new campaign in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created campaign data | | `output` | object | Created campaign data |
| ↳ `campaign` | json | Created campaign object | | ↳ `campaign` | json | Created campaign object |
| ↳ `campaign_id` | string | Created campaign ID | | ↳ `campaign_id` | string | Created campaign ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_campaign` ### `mailchimp_update_campaign`
@@ -433,9 +433,9 @@ Update an existing campaign in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated campaign data | | `output` | object | Updated campaign data |
| ↳ `campaign` | object | Updated campaign object | | ↳ `campaign` | object | Updated campaign object |
| ↳ `campaign_id` | string | Campaign ID | | ↳ `campaign_id` | string | Campaign ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_campaign` ### `mailchimp_delete_campaign`
@@ -471,7 +471,7 @@ Send a Mailchimp campaign
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Send confirmation | | `output` | object | Send confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_schedule_campaign` ### `mailchimp_schedule_campaign`
@@ -508,7 +508,7 @@ Unschedule a previously scheduled Mailchimp campaign
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Unschedule confirmation | | `output` | object | Unschedule confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_replicate_campaign` ### `mailchimp_replicate_campaign`
@@ -527,9 +527,9 @@ Create a copy of an existing Mailchimp campaign
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Replicated campaign data | | `output` | object | Replicated campaign data |
| ↳ `campaign` | object | Replicated campaign object | | ↳ `campaign` | object | Replicated campaign object |
| ↳ `campaign_id` | string | Campaign ID | | ↳ `campaign_id` | string | Campaign ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_campaign_content` ### `mailchimp_get_campaign_content`
@@ -548,7 +548,7 @@ Retrieve the HTML and plain-text content for a Mailchimp campaign
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the campaign content was successfully retrieved | | `success` | boolean | Whether the campaign content was successfully retrieved |
| `output` | object | Campaign content data | | `output` | object | Campaign content data |
| ↳ `content` | json | Campaign content object | | ↳ `content` | json | Campaign content object |
### `mailchimp_set_campaign_content` ### `mailchimp_set_campaign_content`
@@ -570,8 +570,8 @@ Set the content for a Mailchimp campaign
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Campaign content data | | `output` | object | Campaign content data |
| ↳ `content` | object | Campaign content object | | ↳ `content` | object | Campaign content object |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_automations` ### `mailchimp_get_automations`
@@ -591,9 +591,9 @@ Retrieve a list of automations from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the automations were successfully retrieved | | `success` | boolean | Whether the automations were successfully retrieved |
| `output` | object | Automations data | | `output` | object | Automations data |
| ↳ `automations` | json | Array of automation objects | | ↳ `automations` | json | Array of automation objects |
| ↳ `total_items` | number | Total number of automations | | ↳ `total_items` | number | Total number of automations |
| ↳ `total_returned` | number | Number of automations returned in this response | | ↳ `total_returned` | number | Number of automations returned in this response |
### `mailchimp_get_automation` ### `mailchimp_get_automation`
@@ -612,8 +612,8 @@ Retrieve details of a specific automation from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the automation was successfully retrieved | | `success` | boolean | Whether the automation was successfully retrieved |
| `output` | object | Automation data | | `output` | object | Automation data |
| ↳ `automation` | json | Automation object | | ↳ `automation` | json | Automation object |
| ↳ `workflow_id` | string | The unique ID of the automation workflow | | ↳ `workflow_id` | string | The unique ID of the automation workflow |
### `mailchimp_start_automation` ### `mailchimp_start_automation`
@@ -632,7 +632,7 @@ Start all emails in a Mailchimp automation workflow
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Start confirmation | | `output` | object | Start confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_pause_automation` ### `mailchimp_pause_automation`
@@ -651,7 +651,7 @@ Pause all emails in a Mailchimp automation workflow
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Pause confirmation | | `output` | object | Pause confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_add_subscriber_to_automation` ### `mailchimp_add_subscriber_to_automation`
@@ -672,8 +672,8 @@ Manually add a subscriber to a workflow email queue
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Subscriber queue data | | `output` | object | Subscriber queue data |
| ↳ `subscriber` | json | Subscriber object | | ↳ `subscriber` | json | Subscriber object |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_templates` ### `mailchimp_get_templates`
@@ -693,9 +693,9 @@ Retrieve a list of templates from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the templates were successfully retrieved | | `success` | boolean | Whether the templates were successfully retrieved |
| `output` | object | Templates data | | `output` | object | Templates data |
| ↳ `templates` | json | Array of template objects | | ↳ `templates` | json | Array of template objects |
| ↳ `total_items` | number | Total number of templates | | ↳ `total_items` | number | Total number of templates |
| ↳ `total_returned` | number | Number of templates returned in this response | | ↳ `total_returned` | number | Number of templates returned in this response |
### `mailchimp_get_template` ### `mailchimp_get_template`
@@ -714,8 +714,8 @@ Retrieve details of a specific template from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the template was successfully retrieved | | `success` | boolean | Whether the template was successfully retrieved |
| `output` | object | Template data | | `output` | object | Template data |
| ↳ `template` | json | Template object | | ↳ `template` | json | Template object |
| ↳ `template_id` | string | The unique ID of the template | | ↳ `template_id` | string | The unique ID of the template |
### `mailchimp_create_template` ### `mailchimp_create_template`
@@ -735,9 +735,9 @@ Create a new template in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created template data | | `output` | object | Created template data |
| ↳ `template` | json | Created template object | | ↳ `template` | json | Created template object |
| ↳ `template_id` | string | Created template ID | | ↳ `template_id` | string | Created template ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_template` ### `mailchimp_update_template`
@@ -758,9 +758,9 @@ Update an existing template in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated template data | | `output` | object | Updated template data |
| ↳ `template` | object | Updated template object | | ↳ `template` | object | Updated template object |
| ↳ `template_id` | string | Template ID | | ↳ `template_id` | string | Template ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_template` ### `mailchimp_delete_template`
@@ -797,9 +797,9 @@ Retrieve a list of campaign reports from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the campaign reports were successfully retrieved | | `success` | boolean | Whether the campaign reports were successfully retrieved |
| `output` | object | Campaign reports data | | `output` | object | Campaign reports data |
| ↳ `reports` | json | Array of campaign report objects | | ↳ `reports` | json | Array of campaign report objects |
| ↳ `total_items` | number | Total number of reports | | ↳ `total_items` | number | Total number of reports |
| ↳ `total_returned` | number | Number of reports returned in this response | | ↳ `total_returned` | number | Number of reports returned in this response |
### `mailchimp_get_campaign_report` ### `mailchimp_get_campaign_report`
@@ -818,8 +818,8 @@ Retrieve the report for a specific campaign from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the campaign report was successfully retrieved | | `success` | boolean | Whether the campaign report was successfully retrieved |
| `output` | object | Campaign report data | | `output` | object | Campaign report data |
| ↳ `report` | json | Campaign report object | | ↳ `report` | json | Campaign report object |
| ↳ `campaign_id` | string | The unique ID of the campaign | | ↳ `campaign_id` | string | The unique ID of the campaign |
### `mailchimp_get_segments` ### `mailchimp_get_segments`
@@ -840,9 +840,9 @@ Retrieve a list of segments from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the segments were successfully retrieved | | `success` | boolean | Whether the segments were successfully retrieved |
| `output` | object | Segments data | | `output` | object | Segments data |
| ↳ `segments` | json | Array of segment objects | | ↳ `segments` | json | Array of segment objects |
| ↳ `total_items` | number | Total number of segments | | ↳ `total_items` | number | Total number of segments |
| ↳ `total_returned` | number | Number of segments returned in this response | | ↳ `total_returned` | number | Number of segments returned in this response |
### `mailchimp_get_segment` ### `mailchimp_get_segment`
@@ -862,8 +862,8 @@ Retrieve details of a specific segment from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the segment was successfully retrieved | | `success` | boolean | Whether the segment was successfully retrieved |
| `output` | object | Segment data | | `output` | object | Segment data |
| ↳ `segment` | json | Segment object | | ↳ `segment` | json | Segment object |
| ↳ `segment_id` | string | The unique ID of the segment | | ↳ `segment_id` | string | The unique ID of the segment |
### `mailchimp_create_segment` ### `mailchimp_create_segment`
@@ -884,9 +884,9 @@ Create a new segment in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created segment data | | `output` | object | Created segment data |
| ↳ `segment` | json | Created segment object | | ↳ `segment` | json | Created segment object |
| ↳ `segment_id` | string | Created segment ID | | ↳ `segment_id` | string | Created segment ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_segment` ### `mailchimp_update_segment`
@@ -908,9 +908,9 @@ Update an existing segment in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated segment data | | `output` | object | Updated segment data |
| ↳ `segment` | object | Updated segment object | | ↳ `segment` | object | Updated segment object |
| ↳ `segment_id` | string | Segment ID | | ↳ `segment_id` | string | Segment ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_segment` ### `mailchimp_delete_segment`
@@ -950,9 +950,9 @@ Retrieve members of a specific segment from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the segment members were successfully retrieved | | `success` | boolean | Whether the segment members were successfully retrieved |
| `output` | object | Segment members data | | `output` | object | Segment members data |
| ↳ `members` | json | Array of member objects | | ↳ `members` | json | Array of member objects |
| ↳ `total_items` | number | Total number of members | | ↳ `total_items` | number | Total number of members |
| ↳ `total_returned` | number | Number of members returned in this response | | ↳ `total_returned` | number | Number of members returned in this response |
### `mailchimp_add_segment_member` ### `mailchimp_add_segment_member`
@@ -973,8 +973,8 @@ Add a member to a specific segment in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Added member data | | `output` | object | Added member data |
| ↳ `member` | json | Added member object | | ↳ `member` | json | Added member object |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_remove_segment_member` ### `mailchimp_remove_segment_member`
@@ -995,7 +995,7 @@ Remove a member from a specific segment in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Removal confirmation | | `output` | object | Removal confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_member_tags` ### `mailchimp_get_member_tags`
@@ -1015,9 +1015,9 @@ Retrieve tags associated with a member in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the member tags were successfully retrieved | | `success` | boolean | Whether the member tags were successfully retrieved |
| `output` | object | Member tags data | | `output` | object | Member tags data |
| ↳ `tags` | json | Array of tag objects | | ↳ `tags` | json | Array of tag objects |
| ↳ `total_items` | number | Total number of tags | | ↳ `total_items` | number | Total number of tags |
| ↳ `total_returned` | number | Number of tags returned in this response | | ↳ `total_returned` | number | Number of tags returned in this response |
### `mailchimp_add_member_tags` ### `mailchimp_add_member_tags`
@@ -1038,7 +1038,7 @@ Add tags to a member in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Tag addition confirmation | | `output` | object | Tag addition confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_remove_member_tags` ### `mailchimp_remove_member_tags`
@@ -1059,7 +1059,7 @@ Remove tags from a member in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Tag removal confirmation | | `output` | object | Tag removal confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_merge_fields` ### `mailchimp_get_merge_fields`
@@ -1080,9 +1080,9 @@ Retrieve a list of merge fields from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the merge fields were successfully retrieved | | `success` | boolean | Whether the merge fields were successfully retrieved |
| `output` | object | Merge fields data | | `output` | object | Merge fields data |
| ↳ `mergeFields` | json | Array of merge field objects | | ↳ `mergeFields` | json | Array of merge field objects |
| ↳ `total_items` | number | Total number of merge fields | | ↳ `total_items` | number | Total number of merge fields |
| ↳ `total_returned` | number | Number of merge fields returned in this response | | ↳ `total_returned` | number | Number of merge fields returned in this response |
### `mailchimp_get_merge_field` ### `mailchimp_get_merge_field`
@@ -1102,8 +1102,8 @@ Retrieve details of a specific merge field from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the merge field was successfully retrieved | | `success` | boolean | Whether the merge field was successfully retrieved |
| `output` | object | Merge field data | | `output` | object | Merge field data |
| ↳ `mergeField` | json | Merge field object | | ↳ `mergeField` | json | Merge field object |
| ↳ `merge_id` | string | The unique ID of the merge field | | ↳ `merge_id` | string | The unique ID of the merge field |
### `mailchimp_create_merge_field` ### `mailchimp_create_merge_field`
@@ -1124,9 +1124,9 @@ Create a new merge field in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created merge field data | | `output` | object | Created merge field data |
| ↳ `mergeField` | json | Created merge field object | | ↳ `mergeField` | json | Created merge field object |
| ↳ `merge_id` | string | Created merge field ID | | ↳ `merge_id` | string | Created merge field ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_merge_field` ### `mailchimp_update_merge_field`
@@ -1147,9 +1147,9 @@ Update an existing merge field in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated merge field data | | `output` | object | Updated merge field data |
| ↳ `mergeField` | object | Updated merge field object | | ↳ `mergeField` | object | Updated merge field object |
| ↳ `merge_id` | string | Merge field ID | | ↳ `merge_id` | string | Merge field ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_merge_field` ### `mailchimp_delete_merge_field`
@@ -1188,9 +1188,9 @@ Retrieve a list of interest categories from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the interest categories were successfully retrieved | | `success` | boolean | Whether the interest categories were successfully retrieved |
| `output` | object | Interest categories data | | `output` | object | Interest categories data |
| ↳ `categories` | json | Array of interest category objects | | ↳ `categories` | json | Array of interest category objects |
| ↳ `total_items` | number | Total number of categories | | ↳ `total_items` | number | Total number of categories |
| ↳ `total_returned` | number | Number of categories returned in this response | | ↳ `total_returned` | number | Number of categories returned in this response |
### `mailchimp_get_interest_category` ### `mailchimp_get_interest_category`
@@ -1210,8 +1210,8 @@ Retrieve details of a specific interest category from a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the interest category was successfully retrieved | | `success` | boolean | Whether the interest category was successfully retrieved |
| `output` | object | Interest category data | | `output` | object | Interest category data |
| ↳ `category` | json | Interest category object | | ↳ `category` | json | Interest category object |
| ↳ `interest_category_id` | string | The unique ID of the interest category | | ↳ `interest_category_id` | string | The unique ID of the interest category |
### `mailchimp_create_interest_category` ### `mailchimp_create_interest_category`
@@ -1232,9 +1232,9 @@ Create a new interest category in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created interest category data | | `output` | object | Created interest category data |
| ↳ `category` | json | Created interest category object | | ↳ `category` | json | Created interest category object |
| ↳ `interest_category_id` | string | Created interest category ID | | ↳ `interest_category_id` | string | Created interest category ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_interest_category` ### `mailchimp_update_interest_category`
@@ -1255,9 +1255,9 @@ Update an existing interest category in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated interest category data | | `output` | object | Updated interest category data |
| ↳ `category` | object | Updated interest category object | | ↳ `category` | object | Updated interest category object |
| ↳ `interest_category_id` | string | Interest category ID | | ↳ `interest_category_id` | string | Interest category ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_interest_category` ### `mailchimp_delete_interest_category`
@@ -1297,9 +1297,9 @@ Retrieve a list of interests from an interest category in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the interests were successfully retrieved | | `success` | boolean | Whether the interests were successfully retrieved |
| `output` | object | Interests data | | `output` | object | Interests data |
| ↳ `interests` | json | Array of interest objects | | ↳ `interests` | json | Array of interest objects |
| ↳ `total_items` | number | Total number of interests | | ↳ `total_items` | number | Total number of interests |
| ↳ `total_returned` | number | Number of interests returned in this response | | ↳ `total_returned` | number | Number of interests returned in this response |
### `mailchimp_get_interest` ### `mailchimp_get_interest`
@@ -1320,8 +1320,8 @@ Retrieve details of a specific interest from an interest category in a Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the interest was successfully retrieved | | `success` | boolean | Whether the interest was successfully retrieved |
| `output` | object | Interest data | | `output` | object | Interest data |
| ↳ `interest` | json | Interest object | | ↳ `interest` | json | Interest object |
| ↳ `interest_id` | string | The unique ID of the interest | | ↳ `interest_id` | string | The unique ID of the interest |
### `mailchimp_create_interest` ### `mailchimp_create_interest`
@@ -1342,9 +1342,9 @@ Create a new interest in an interest category in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created interest data | | `output` | object | Created interest data |
| ↳ `interest` | json | Created interest object | | ↳ `interest` | json | Created interest object |
| ↳ `interest_id` | string | Created interest ID | | ↳ `interest_id` | string | Created interest ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_interest` ### `mailchimp_update_interest`
@@ -1366,9 +1366,9 @@ Update an existing interest in an interest category in a Mailchimp audience
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated interest data | | `output` | object | Updated interest data |
| ↳ `interest` | object | Updated interest object | | ↳ `interest` | object | Updated interest object |
| ↳ `interest_id` | string | Interest ID | | ↳ `interest_id` | string | Interest ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_interest` ### `mailchimp_delete_interest`
@@ -1407,9 +1407,9 @@ Retrieve a list of landing pages from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the landing pages were successfully retrieved | | `success` | boolean | Whether the landing pages were successfully retrieved |
| `output` | object | Landing pages data | | `output` | object | Landing pages data |
| ↳ `landingPages` | json | Array of landing page objects | | ↳ `landingPages` | json | Array of landing page objects |
| ↳ `total_items` | number | Total number of landing pages | | ↳ `total_items` | number | Total number of landing pages |
| ↳ `total_returned` | number | Number of landing pages returned in this response | | ↳ `total_returned` | number | Number of landing pages returned in this response |
### `mailchimp_get_landing_page` ### `mailchimp_get_landing_page`
@@ -1428,8 +1428,8 @@ Retrieve details of a specific landing page from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the landing page was successfully retrieved | | `success` | boolean | Whether the landing page was successfully retrieved |
| `output` | object | Landing page data | | `output` | object | Landing page data |
| ↳ `landingPage` | json | Landing page object | | ↳ `landingPage` | json | Landing page object |
| ↳ `page_id` | string | The unique ID of the landing page | | ↳ `page_id` | string | The unique ID of the landing page |
### `mailchimp_create_landing_page` ### `mailchimp_create_landing_page`
@@ -1449,9 +1449,9 @@ Create a new landing page in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created landing page data | | `output` | object | Created landing page data |
| ↳ `landingPage` | json | Created landing page object | | ↳ `landingPage` | json | Created landing page object |
| ↳ `page_id` | string | Created landing page ID | | ↳ `page_id` | string | Created landing page ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_update_landing_page` ### `mailchimp_update_landing_page`
@@ -1471,9 +1471,9 @@ Update an existing landing page in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated landing page data | | `output` | object | Updated landing page data |
| ↳ `landingPage` | object | Updated landing page object | | ↳ `landingPage` | object | Updated landing page object |
| ↳ `page_id` | string | Landing page ID | | ↳ `page_id` | string | Landing page ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_landing_page` ### `mailchimp_delete_landing_page`
@@ -1509,7 +1509,7 @@ Publish a landing page in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Publish confirmation | | `output` | object | Publish confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_unpublish_landing_page` ### `mailchimp_unpublish_landing_page`
@@ -1528,7 +1528,7 @@ Unpublish a landing page in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Unpublish confirmation | | `output` | object | Unpublish confirmation |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_get_batch_operations` ### `mailchimp_get_batch_operations`
@@ -1548,9 +1548,9 @@ Retrieve a list of batch operations from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the batch operations were successfully retrieved | | `success` | boolean | Whether the batch operations were successfully retrieved |
| `output` | object | Batch operations data | | `output` | object | Batch operations data |
| ↳ `batches` | json | Array of batch operation objects | | ↳ `batches` | json | Array of batch operation objects |
| ↳ `total_items` | number | Total number of batch operations | | ↳ `total_items` | number | Total number of batch operations |
| ↳ `total_returned` | number | Number of batch operations returned in this response | | ↳ `total_returned` | number | Number of batch operations returned in this response |
### `mailchimp_get_batch_operation` ### `mailchimp_get_batch_operation`
@@ -1569,8 +1569,8 @@ Retrieve details of a specific batch operation from Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Whether the batch operation was successfully retrieved | | `success` | boolean | Whether the batch operation was successfully retrieved |
| `output` | object | Batch operation data | | `output` | object | Batch operation data |
| ↳ `batch` | json | Batch operation object | | ↳ `batch` | json | Batch operation object |
| ↳ `batch_id` | string | The unique ID of the batch operation | | ↳ `batch_id` | string | The unique ID of the batch operation |
### `mailchimp_create_batch_operation` ### `mailchimp_create_batch_operation`
@@ -1589,9 +1589,9 @@ Create a new batch operation in Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created batch operation data | | `output` | object | Created batch operation data |
| ↳ `batch` | json | Created batch operation object | | ↳ `batch` | json | Created batch operation object |
| ↳ `batch_id` | string | Created batch operation ID | | ↳ `batch_id` | string | Created batch operation ID |
| ↳ `success` | boolean | Operation success | | ↳ `success` | boolean | Operation success |
### `mailchimp_delete_batch_operation` ### `mailchimp_delete_batch_operation`

View File

@@ -52,6 +52,10 @@ Add memories to Mem0 for persistent storage and retrieval
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ids` | array | Array of memory IDs that were created | | `ids` | array | Array of memory IDs that were created |
| `memories` | array | Array of memory objects that were created | | `memories` | array | Array of memory objects that were created |
| ↳ `id` | string | Unique identifier for the memory |
| ↳ `memory` | string | The content of the memory |
| ↳ `event` | string | Event type indicating operation performed \(ADD, UPDATE, DELETE, NOOP\) |
| ↳ `metadata` | json | Custom metadata associated with the memory |
### `mem0_search_memories` ### `mem0_search_memories`
@@ -70,7 +74,19 @@ Search for memories in Mem0 using semantic search
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `searchResults` | array | Array of search results with memory data, each containing id, data, and score | | `searchResults` | array | Array of search results with memory data and similarity scores |
| ↳ `id` | string | Unique identifier for the memory |
| ↳ `memory` | string | The content of the memory |
| ↳ `user_id` | string | User ID associated with this memory |
| ↳ `agent_id` | string | Agent ID associated with this memory |
| ↳ `app_id` | string | App ID associated with this memory |
| ↳ `run_id` | string | Run/session ID associated with this memory |
| ↳ `hash` | string | Hash of the memory content |
| ↳ `metadata` | json | Custom metadata associated with the memory |
| ↳ `categories` | json | Auto-assigned categories for the memory |
| ↳ `created_at` | string | ISO 8601 timestamp when the memory was created |
| ↳ `updated_at` | string | ISO 8601 timestamp when the memory was last updated |
| ↳ `score` | number | Similarity score from vector search |
| `ids` | array | Array of memory IDs found in the search results | | `ids` | array | Array of memory IDs found in the search results |
### `mem0_get_memories` ### `mem0_get_memories`
@@ -93,6 +109,21 @@ Retrieve memories from Mem0 by ID or filter criteria
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `memories` | array | Array of retrieved memory objects | | `memories` | array | Array of retrieved memory objects |
| ↳ `id` | string | Unique identifier for the memory |
| ↳ `memory` | string | The content of the memory |
| ↳ `user_id` | string | User ID associated with this memory |
| ↳ `agent_id` | string | Agent ID associated with this memory |
| ↳ `app_id` | string | App ID associated with this memory |
| ↳ `run_id` | string | Run/session ID associated with this memory |
| ↳ `hash` | string | Hash of the memory content |
| ↳ `metadata` | json | Custom metadata associated with the memory |
| ↳ `categories` | json | Auto-assigned categories for the memory |
| ↳ `created_at` | string | ISO 8601 timestamp when the memory was created |
| ↳ `updated_at` | string | ISO 8601 timestamp when the memory was last updated |
| ↳ `owner` | string | Owner of the memory |
| ↳ `organization` | string | Organization associated with the memory |
| ↳ `immutable` | boolean | Whether the memory can be modified |
| ↳ `expiration_date` | string | Expiration date after which memory is not retrieved |
| `ids` | array | Array of memory IDs that were retrieved | | `ids` | array | Array of memory IDs that were retrieved |

View File

@@ -9,6 +9,7 @@
"arxiv", "arxiv",
"asana", "asana",
"browser_use", "browser_use",
"calcom",
"calendly", "calendly",
"circleback", "circleback",
"clay", "clay",
@@ -96,6 +97,7 @@
"sftp", "sftp",
"sharepoint", "sharepoint",
"shopify", "shopify",
"similarweb",
"slack", "slack",
"smtp", "smtp",
"sqs", "sqs",

View File

@@ -55,8 +55,8 @@ Read data from a specific sheet in a Microsoft Excel spreadsheet
| `range` | string | The range that was read | | `range` | string | The range that was read |
| `values` | array | Array of rows containing cell values | | `values` | array | Array of rows containing cell values |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Microsoft Excel spreadsheet ID | | ↳ `spreadsheetId` | string | Microsoft Excel spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |
### `microsoft_excel_write` ### `microsoft_excel_write`
@@ -81,7 +81,7 @@ Write data to a specific sheet in a Microsoft Excel spreadsheet
| `updatedColumns` | number | Number of columns updated | | `updatedColumns` | number | Number of columns updated |
| `updatedCells` | number | Number of cells updated | | `updatedCells` | number | Number of cells updated |
| `metadata` | json | Spreadsheet metadata including ID and URL | | `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Microsoft Excel spreadsheet ID | | ↳ `spreadsheetId` | string | Microsoft Excel spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL | | ↳ `spreadsheetUrl` | string | Spreadsheet URL |

View File

@@ -50,9 +50,9 @@ Read tasks from Microsoft Planner - get all user tasks or all tasks from a speci
| `success` | boolean | Whether tasks were retrieved successfully | | `success` | boolean | Whether tasks were retrieved successfully |
| `tasks` | array | Array of task objects with filtered properties | | `tasks` | array | Array of task objects with filtered properties |
| `metadata` | object | Metadata including planId, userId, and planUrl | | `metadata` | object | Metadata including planId, userId, and planUrl |
| ↳ `planId` | string | Plan ID | | ↳ `planId` | string | Plan ID |
| ↳ `userId` | string | User ID | | ↳ `userId` | string | User ID |
| ↳ `planUrl` | string | Microsoft Graph API URL for the plan | | ↳ `planUrl` | string | Microsoft Graph API URL for the plan |
### `microsoft_planner_create_task` ### `microsoft_planner_create_task`
@@ -76,9 +76,9 @@ Create a new task in Microsoft Planner
| `success` | boolean | Whether the task was created successfully | | `success` | boolean | Whether the task was created successfully |
| `task` | object | The created task object with all properties | | `task` | object | The created task object with all properties |
| `metadata` | object | Metadata including planId, taskId, and taskUrl | | `metadata` | object | Metadata including planId, taskId, and taskUrl |
| ↳ `planId` | string | Parent plan ID | | ↳ `planId` | string | Parent plan ID |
| ↳ `taskId` | string | Created task ID | | ↳ `taskId` | string | Created task ID |
| ↳ `taskUrl` | string | Microsoft Graph API URL for the task | | ↳ `taskUrl` | string | Microsoft Graph API URL for the task |
### `microsoft_planner_update_task` ### `microsoft_planner_update_task`
@@ -108,9 +108,9 @@ Update a task in Microsoft Planner
| `taskId` | string | ID of the updated task | | `taskId` | string | ID of the updated task |
| `etag` | string | New ETag after update - use this for subsequent operations | | `etag` | string | New ETag after update - use this for subsequent operations |
| `metadata` | object | Metadata including taskId, planId, and taskUrl | | `metadata` | object | Metadata including taskId, planId, and taskUrl |
| ↳ `taskId` | string | Updated task ID | | ↳ `taskId` | string | Updated task ID |
| ↳ `planId` | string | Parent plan ID | | ↳ `planId` | string | Parent plan ID |
| ↳ `taskUrl` | string | Microsoft Graph API URL for the task | | ↳ `taskUrl` | string | Microsoft Graph API URL for the task |
### `microsoft_planner_delete_task` ### `microsoft_planner_delete_task`
@@ -147,8 +147,8 @@ List all plans shared with the current user
| `success` | boolean | Whether plans were retrieved successfully | | `success` | boolean | Whether plans were retrieved successfully |
| `plans` | array | Array of plan objects shared with the current user | | `plans` | array | Array of plan objects shared with the current user |
| `metadata` | object | Metadata including userId and count | | `metadata` | object | Metadata including userId and count |
| ↳ `count` | number | Number of plans returned | | ↳ `count` | number | Number of plans returned |
| ↳ `userId` | string | User ID | | ↳ `userId` | string | User ID |
### `microsoft_planner_read_plan` ### `microsoft_planner_read_plan`
@@ -167,8 +167,8 @@ Get details of a specific Microsoft Planner plan
| `success` | boolean | Whether the plan was retrieved successfully | | `success` | boolean | Whether the plan was retrieved successfully |
| `plan` | object | The plan object with all properties | | `plan` | object | The plan object with all properties |
| `metadata` | object | Metadata including planId and planUrl | | `metadata` | object | Metadata including planId and planUrl |
| ↳ `planId` | string | Plan ID | | ↳ `planId` | string | Plan ID |
| ↳ `planUrl` | string | Microsoft Graph API URL for the plan | | ↳ `planUrl` | string | Microsoft Graph API URL for the plan |
### `microsoft_planner_list_buckets` ### `microsoft_planner_list_buckets`
@@ -187,8 +187,8 @@ List all buckets in a Microsoft Planner plan
| `success` | boolean | Whether buckets were retrieved successfully | | `success` | boolean | Whether buckets were retrieved successfully |
| `buckets` | array | Array of bucket objects | | `buckets` | array | Array of bucket objects |
| `metadata` | object | Metadata including planId and count | | `metadata` | object | Metadata including planId and count |
| ↳ `planId` | string | Plan ID | | ↳ `planId` | string | Plan ID |
| ↳ `count` | number | Number of buckets returned | | ↳ `count` | number | Number of buckets returned |
### `microsoft_planner_read_bucket` ### `microsoft_planner_read_bucket`
@@ -207,8 +207,8 @@ Get details of a specific bucket
| `success` | boolean | Whether the bucket was retrieved successfully | | `success` | boolean | Whether the bucket was retrieved successfully |
| `bucket` | object | The bucket object with all properties | | `bucket` | object | The bucket object with all properties |
| `metadata` | object | Metadata including bucketId and planId | | `metadata` | object | Metadata including bucketId and planId |
| ↳ `bucketId` | string | Bucket ID | | ↳ `bucketId` | string | Bucket ID |
| ↳ `planId` | string | Parent plan ID | | ↳ `planId` | string | Parent plan ID |
### `microsoft_planner_create_bucket` ### `microsoft_planner_create_bucket`
@@ -228,8 +228,8 @@ Create a new bucket in a Microsoft Planner plan
| `success` | boolean | Whether the bucket was created successfully | | `success` | boolean | Whether the bucket was created successfully |
| `bucket` | object | The created bucket object with all properties | | `bucket` | object | The created bucket object with all properties |
| `metadata` | object | Metadata including bucketId and planId | | `metadata` | object | Metadata including bucketId and planId |
| ↳ `bucketId` | string | Created bucket ID | | ↳ `bucketId` | string | Created bucket ID |
| ↳ `planId` | string | Parent plan ID | | ↳ `planId` | string | Parent plan ID |
### `microsoft_planner_update_bucket` ### `microsoft_planner_update_bucket`
@@ -250,8 +250,8 @@ Update a bucket in Microsoft Planner
| `success` | boolean | Whether the bucket was updated successfully | | `success` | boolean | Whether the bucket was updated successfully |
| `bucket` | object | The updated bucket object with all properties | | `bucket` | object | The updated bucket object with all properties |
| `metadata` | object | Metadata including bucketId and planId | | `metadata` | object | Metadata including bucketId and planId |
| ↳ `bucketId` | string | Updated bucket ID | | ↳ `bucketId` | string | Updated bucket ID |
| ↳ `planId` | string | Parent plan ID | | ↳ `planId` | string | Parent plan ID |
### `microsoft_planner_delete_bucket` ### `microsoft_planner_delete_bucket`
@@ -290,7 +290,7 @@ Get detailed information about a task including checklist and references
| `taskDetails` | object | The task details including description, 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 | | `etag` | string | The ETag value for this task details - use this for update operations |
| `metadata` | object | Metadata including taskId | | `metadata` | object | Metadata including taskId |
| ↳ `taskId` | string | Task ID | | ↳ `taskId` | string | Task ID |
### `microsoft_planner_update_task_details` ### `microsoft_planner_update_task_details`
@@ -314,6 +314,6 @@ Update task details including description, checklist items, and references in Mi
| `success` | boolean | Whether the task details were updated successfully | | `success` | boolean | Whether the task details were updated successfully |
| `taskDetails` | object | The updated task details object with all properties | | `taskDetails` | object | The updated task details object with all properties |
| `metadata` | object | Metadata including taskId | | `metadata` | object | Metadata including taskId |
| ↳ `taskId` | string | Task ID | | ↳ `taskId` | string | Task ID |

View File

@@ -254,15 +254,15 @@ Get a specific message from a Microsoft Teams chat or channel
| `success` | boolean | Whether the retrieval was successful | | `success` | boolean | Whether the retrieval was successful |
| `content` | string | The message content | | `content` | string | The message content |
| `metadata` | object | Message metadata including sender, timestamp, etc. | | `metadata` | object | Message metadata including sender, timestamp, etc. |
| ↳ `messageId` | string | Message ID | | ↳ `messageId` | string | Message ID |
| ↳ `content` | string | Message content | | ↳ `content` | string | Message content |
| ↳ `createdTime` | string | Message creation timestamp | | ↳ `createdTime` | string | Message creation timestamp |
| ↳ `url` | string | Web URL to the message | | ↳ `url` | string | Web URL to the message |
| ↳ `teamId` | string | Team ID | | ↳ `teamId` | string | Team ID |
| ↳ `channelId` | string | Channel ID | | ↳ `channelId` | string | Channel ID |
| ↳ `chatId` | string | Chat ID | | ↳ `chatId` | string | Chat ID |
| ↳ `messages` | array | Array of message details | | ↳ `messages` | array | Array of message details |
| ↳ `messageCount` | number | Number of messages | | ↳ `messageCount` | number | Number of messages |
### `microsoft_teams_set_reaction` ### `microsoft_teams_set_reaction`

View File

@@ -58,24 +58,24 @@ Parse PDF documents using Mistral OCR API
| ↳ `index` | number | Page index \(zero-based\) | | ↳ `index` | number | Page index \(zero-based\) |
| ↳ `markdown` | string | Extracted markdown content | | ↳ `markdown` | string | Extracted markdown content |
| ↳ `images` | array | Images extracted from this page with bounding boxes | | ↳ `images` | array | Images extracted from this page with bounding boxes |
| ↳ `id` | string | Image identifier \(e.g., img-0.jpeg\) | | ↳ `id` | string | Image identifier \(e.g., img-0.jpeg\) |
| ↳ `top_left_x` | number | Top-left X coordinate in pixels | | ↳ `top_left_x` | number | Top-left X coordinate in pixels |
| ↳ `top_left_y` | number | Top-left Y coordinate in pixels | | ↳ `top_left_y` | number | Top-left Y coordinate in pixels |
| ↳ `bottom_right_x` | number | Bottom-right X coordinate in pixels | | ↳ `bottom_right_x` | number | Bottom-right X coordinate in pixels |
| ↳ `bottom_right_y` | number | Bottom-right Y coordinate in pixels | | ↳ `bottom_right_y` | number | Bottom-right Y coordinate in pixels |
| ↳ `image_base64` | string | Base64-encoded image data \(when include_image_base64=true\) | | ↳ `image_base64` | string | Base64-encoded image data \(when include_image_base64=true\) |
| ↳ `dimensions` | object | Page dimensions | | ↳ `dimensions` | object | Page dimensions |
| ↳ `dpi` | number | Dots per inch | | ↳ `dpi` | number | Dots per inch |
| ↳ `height` | number | Page height in pixels | | ↳ `height` | number | Page height in pixels |
| ↳ `width` | number | Page width in pixels | | ↳ `width` | number | Page width in pixels |
| ↳ `tables` | array | Extracted tables as HTML/markdown \(when table_format is set\). Referenced via placeholders like \[tbl-0.html\] | | ↳ `tables` | array | Extracted tables as HTML/markdown \(when table_format is set\). Referenced via placeholders like \[tbl-0.html\] |
| ↳ `hyperlinks` | array | Array of URL strings detected in the page \(e.g., \[ | | ↳ `hyperlinks` | array | Array of URL strings detected in the page \(e.g., \["https://...", "mailto:..."\]\) |
| ↳ `header` | string | Page header content \(when extract_header=true\) | | ↳ `header` | string | Page header content \(when extract_header=true\) |
| ↳ `footer` | string | Page footer content \(when extract_footer=true\) | | ↳ `footer` | string | Page footer content \(when extract_footer=true\) |
| `model` | string | Mistral OCR model identifier \(e.g., mistral-ocr-latest\) | | `model` | string | Mistral OCR model identifier \(e.g., mistral-ocr-latest\) |
| `usage_info` | object | Usage and processing statistics | | `usage_info` | object | Usage and processing statistics |
| ↳ `pages_processed` | number | Total number of pages processed | | ↳ `pages_processed` | number | Total number of pages processed |
| ↳ `doc_size_bytes` | number | Document file size in bytes | | ↳ `doc_size_bytes` | number | Document file size in bytes |
| `document_annotation` | string | Structured annotation data as JSON string \(when applicable\) | | `document_annotation` | string | Structured annotation data as JSON string \(when applicable\) |

View File

@@ -32,11 +32,11 @@ Read content from a Notion page
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `url` | string | Notion page URL |
| `created_time` | string | ISO 8601 creation timestamp |
| `last_edited_time` | string | ISO 8601 last edit timestamp |
| `content` | string | Page content in markdown format | | `content` | string | Page content in markdown format |
| `title` | string | Page title | | `title` | string | Page title |
| `url` | string | Page URL |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |
### `notion_read_database` ### `notion_read_database`
@@ -52,12 +52,12 @@ Read database information and structure from Notion
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `id` | string | Database ID | | `id` | string | Database UUID |
| `title` | string | Database title | | `url` | string | Notion database URL |
| `url` | string | Database URL | | `created_time` | string | ISO 8601 creation timestamp |
| `created_time` | string | Creation timestamp | | `last_edited_time` | string | ISO 8601 last edit timestamp |
| `last_edited_time` | string | Last edit timestamp |
| `properties` | object | Database properties schema | | `properties` | object | Database properties schema |
| `title` | string | Database title |
### `notion_write` ### `notion_write`
@@ -92,11 +92,11 @@ Create a new page in Notion
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `id` | string | Page ID | | `id` | string | Page UUID |
| `url` | string | Notion page URL |
| `created_time` | string | ISO 8601 creation timestamp |
| `last_edited_time` | string | ISO 8601 last edit timestamp |
| `title` | string | Page title | | `title` | string | Page title |
| `url` | string | Page URL |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |
### `notion_query_database` ### `notion_query_database`
@@ -115,13 +115,43 @@ Query and filter Notion database entries with advanced filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | Array of Notion page objects from the database | | `results` | array | Array of page objects from the database |
| ↳ `id` | string | Page ID | | ↳ `object` | string | Always "page" |
| ↳ `created_time` | string | Creation timestamp | | ↳ `id` | string | Page UUID |
| ↳ `last_edited_time` | string | Last edit timestamp | | ↳ `created_time` | string | ISO 8601 creation timestamp |
| ↳ `url` | string | Page URL | | ↳ `last_edited_time` | string | ISO 8601 last edit timestamp |
| ↳ `created_by` | object | Partial user object |
| ↳ `object` | string | Always "user" |
| ↳ `id` | string | User UUID |
| ↳ `last_edited_by` | object | Partial user object |
| ↳ `object` | string | Always "user" |
| ↳ `id` | string | User UUID |
| ↳ `archived` | boolean | Whether the page is archived |
| ↳ `in_trash` | boolean | Whether the page is in trash |
| ↳ `url` | string | Notion page URL |
| ↳ `public_url` | string | Public web URL if shared, null otherwise |
| ↳ `parent` | object | Parent object specifying hierarchical relationship |
| ↳ `type` | string | Parent type: "database_id", "data_source_id", "page_id", "workspace", or "block_id" |
| ↳ `database_id` | string | Parent database UUID \(if type is database_id\) |
| ↳ `data_source_id` | string | Parent data source UUID \(if type is data_source_id\) |
| ↳ `page_id` | string | Parent page UUID \(if type is page_id\) |
| ↳ `workspace` | boolean | True if parent is workspace \(if type is workspace\) |
| ↳ `block_id` | string | Parent block UUID \(if type is block_id\) |
| ↳ `icon` | object | Page/database icon \(emoji, custom_emoji, or file\) |
| ↳ `url` | string | Authenticated URL valid for one hour |
| ↳ `expiry_time` | string | ISO 8601 timestamp when URL expires |
| ↳ `cover` | object | Page/database cover image |
| ↳ `type` | string | File type: "file", "file_upload", or "external" |
| ↳ `file` | object | Notion-hosted file object \(when type is "file"\) |
| ↳ `url` | string | Authenticated URL valid for one hour |
| ↳ `expiry_time` | string | ISO 8601 timestamp when URL expires |
| ↳ `file_upload` | object | API-uploaded file object \(when type is "file_upload"\) |
| ↳ `id` | string | File upload UUID |
| ↳ `external` | object | External file object \(when type is "external"\) |
| ↳ `url` | string | External file URL \(never expires\) |
| ↳ `properties` | object | Page property values \(structure depends on parent type - database properties or title only\) |
| `has_more` | boolean | Whether more results are available | | `has_more` | boolean | Whether more results are available |
| `next_cursor` | string | Cursor for pagination | | `next_cursor` | string | Cursor for next page of results |
| `total_results` | number | Number of results returned | | `total_results` | number | Number of results returned |
### `notion_search` ### `notion_search`
@@ -140,14 +170,31 @@ Search across all pages and databases in Notion workspace
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | Array of search results \(pages and databases\) | | `results` | array | Array of search results \(pages and/or databases\) |
| ↳ `id` | string | Object ID | | ↳ `object` | string | Object type: "page" or "database" |
| ↳ `object` | string | Object type \(page or database\) | | ↳ `id` | string | Object UUID |
| ↳ `created_time` | string | ISO 8601 creation timestamp |
| ↳ `last_edited_time` | string | ISO 8601 last edit timestamp |
| ↳ `created_by` | object | Partial user object |
| ↳ `object` | string | Always "user" |
| ↳ `id` | string | User UUID |
| ↳ `last_edited_by` | object | Partial user object |
| ↳ `object` | string | Always "user" |
| ↳ `id` | string | User UUID |
| ↳ `archived` | boolean | Whether the object is archived |
| ↳ `in_trash` | boolean | Whether the object is in trash |
| ↳ `url` | string | Object URL | | ↳ `url` | string | Object URL |
| ↳ `created_time` | string | Creation timestamp | | ↳ `public_url` | string | Public web URL if shared |
| ↳ `last_edited_time` | string | Last edit timestamp | | ↳ `parent` | object | Parent object specifying hierarchical relationship |
| ↳ `type` | string | Parent type: "database_id", "data_source_id", "page_id", "workspace", or "block_id" |
| ↳ `database_id` | string | Parent database UUID \(if type is database_id\) |
| ↳ `data_source_id` | string | Parent data source UUID \(if type is data_source_id\) |
| ↳ `page_id` | string | Parent page UUID \(if type is page_id\) |
| ↳ `workspace` | boolean | True if parent is workspace \(if type is workspace\) |
| ↳ `block_id` | string | Parent block UUID \(if type is block_id\) |
| ↳ `properties` | object | Object properties |
| `has_more` | boolean | Whether more results are available | | `has_more` | boolean | Whether more results are available |
| `next_cursor` | string | Cursor for pagination | | `next_cursor` | string | Cursor for next page of results |
| `total_results` | number | Number of results returned | | `total_results` | number | Number of results returned |
### `notion_create_database` ### `notion_create_database`
@@ -166,11 +213,11 @@ Create a new database in Notion with custom properties
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `id` | string | Database ID | | `id` | string | Database UUID |
| `title` | string | Database title | | `url` | string | Notion database URL |
| `url` | string | Database URL | | `created_time` | string | ISO 8601 creation timestamp |
| `created_time` | string | Creation timestamp |
| `properties` | object | Database properties schema | | `properties` | object | Database properties schema |
| `title` | string | Database title |
### `notion_add_database_row` ### `notion_add_database_row`
@@ -187,10 +234,10 @@ Add a new row to a Notion database with specified properties
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `id` | string | Page/row ID | | `id` | string | Page UUID |
| `url` | string | Page/row URL | | `url` | string | Notion page URL |
| `created_time` | string | ISO 8601 creation timestamp |
| `last_edited_time` | string | ISO 8601 last edit timestamp |
| `title` | string | Row title | | `title` | string | Row title |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |

View File

@@ -54,10 +54,10 @@ Generate embeddings from text using OpenAI
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Embeddings generation results | | `output` | object | Embeddings generation results |
| ↳ `embeddings` | array | Array of embedding vectors | | ↳ `embeddings` | array | Array of embedding vectors |
| ↳ `model` | string | Model used for generating embeddings | | ↳ `model` | string | Model used for generating embeddings |
| ↳ `usage` | object | Token usage information | | ↳ `usage` | object | Token usage information |
| ↳ `prompt_tokens` | number | Number of tokens in the prompt | | ↳ `prompt_tokens` | number | Number of tokens in the prompt |
| ↳ `total_tokens` | number | Total number of tokens used | | ↳ `total_tokens` | number | Total number of tokens used |

View File

@@ -115,6 +115,29 @@ Read emails from Outlook
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or status message | | `message` | string | Success or status message |
| `results` | array | Array of email message objects | | `results` | array | Array of email message objects |
| ↳ `id` | string | Unique message identifier |
| ↳ `subject` | string | Email subject |
| ↳ `bodyPreview` | string | Preview of the message body |
| ↳ `body` | object | Message body |
| ↳ `contentType` | string | Body content type \(text or html\) |
| ↳ `content` | string | Body content |
| ↳ `sender` | object | Sender information |
| ↳ `name` | string | Display name of the person or entity |
| ↳ `address` | string | Email address |
| ↳ `from` | object | From address information |
| ↳ `name` | string | Display name of the person or entity |
| ↳ `address` | string | Email address |
| ↳ `toRecipients` | array | To recipients |
| ↳ `name` | string | Display name of the person or entity |
| ↳ `address` | string | Email address |
| ↳ `ccRecipients` | array | CC recipients |
| ↳ `name` | string | Display name of the person or entity |
| ↳ `address` | string | Email address |
| ↳ `receivedDateTime` | string | When the message was received \(ISO 8601\) |
| ↳ `sentDateTime` | string | When the message was sent \(ISO 8601\) |
| ↳ `hasAttachments` | boolean | Whether the message has attachments |
| ↳ `isRead` | boolean | Whether the message has been read |
| ↳ `importance` | string | Message importance \(low, normal, high\) |
| `attachments` | file[] | All email attachments flattened from all emails | | `attachments` | file[] | All email attachments flattened from all emails |
### `outlook_forward` ### `outlook_forward`
@@ -135,12 +158,12 @@ Forward an existing Outlook message to specified recipients
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `results` | object | Delivery result details | | `results` | object | Delivery result details |
| ↳ `status` | string | Delivery status of the email | | ↳ `status` | string | Delivery status of the email |
| ↳ `timestamp` | string | Timestamp when email was forwarded | | ↳ `timestamp` | string | Timestamp when email was forwarded |
| ↳ `httpStatus` | number | HTTP status code returned by the API | | ↳ `httpStatus` | number | HTTP status code returned by the API |
| ↳ `requestId` | string | Microsoft Graph request-id header for tracing | | ↳ `requestId` | string | Microsoft Graph request-id header for tracing |
| ↳ `messageId` | string | Forwarded message ID if provided by API | | ↳ `messageId` | string | Forwarded message ID if provided by API |
| ↳ `internetMessageId` | string | RFC 822 Message-ID if provided | | ↳ `internetMessageId` | string | RFC 822 Message-ID if provided |
### `outlook_move` ### `outlook_move`

View File

@@ -109,9 +109,9 @@ Conduct comprehensive deep research across the web using Parallel AI. Synthesize
| ↳ `field` | string | Output field name | | ↳ `field` | string | Output field name |
| ↳ `reasoning` | string | Explanation for the result | | ↳ `reasoning` | string | Explanation for the result |
| ↳ `citations` | array | Array of sources | | ↳ `citations` | array | Array of sources |
| ↳ `url` | string | Source URL | | ↳ `url` | string | Source URL |
| ↳ `title` | string | Source title | | ↳ `title` | string | Source title |
| ↳ `excerpts` | array | Relevant excerpts from the source | | ↳ `excerpts` | array | Relevant excerpts from the source |
| ↳ `confidence` | string | Confidence level indicator | | ↳ `confidence` | string | Confidence level indicator |

View File

@@ -57,9 +57,9 @@ Generate completions using Perplexity AI chat models
| `content` | string | Generated text content | | `content` | string | Generated text content |
| `model` | string | Model used for generation | | `model` | string | Model used for generation |
| `usage` | object | Token usage information | | `usage` | object | Token usage information |
| ↳ `prompt_tokens` | number | Number of tokens in the prompt | | ↳ `prompt_tokens` | number | Number of tokens in the prompt |
| ↳ `completion_tokens` | number | Number of tokens in the completion | | ↳ `completion_tokens` | number | Number of tokens in the completion |
| ↳ `total_tokens` | number | Total number of tokens used | | ↳ `total_tokens` | number | Total number of tokens used |
### `perplexity_search` ### `perplexity_search`
@@ -87,7 +87,7 @@ Get ranked search results from Perplexity
| ↳ `title` | string | Title of the search result | | ↳ `title` | string | Title of the search result |
| ↳ `url` | string | URL of the search result | | ↳ `url` | string | URL of the search result |
| ↳ `snippet` | string | Brief excerpt or summary of the content | | ↳ `snippet` | string | Brief excerpt or summary of the content |
| ↳ `date` | string | Date the page was crawled and added to Perplexity | | ↳ `date` | string | Date the page was crawled and added to Perplexity's index |
| ↳ `last_updated` | string | Date the page was last updated in Perplexity | | ↳ `last_updated` | string | Date the page was last updated in Perplexity's index |

View File

@@ -101,9 +101,9 @@ Search for similar text in a Pinecone index
| ↳ `score` | number | Similarity score | | ↳ `score` | number | Similarity score |
| ↳ `metadata` | object | Associated metadata | | ↳ `metadata` | object | Associated metadata |
| `usage` | object | Usage statistics including tokens, read units, and rerank units | | `usage` | object | Usage statistics including tokens, read units, and rerank units |
| ↳ `total_tokens` | number | Total tokens used for embedding | | ↳ `total_tokens` | number | Total tokens used for embedding |
| ↳ `read_units` | number | Read units consumed | | ↳ `read_units` | number | Read units consumed |
| ↳ `rerank_units` | number | Rerank units used | | ↳ `rerank_units` | number | Rerank units used |
### `pinecone_search_vector` ### `pinecone_search_vector`
@@ -155,6 +155,6 @@ Fetch vectors by ID from a Pinecone index
| ↳ `values` | array | Vector values | | ↳ `values` | array | Vector values |
| ↳ `vector_type` | string | Vector type \(dense/sparse\) | | ↳ `vector_type` | string | Vector type \(dense/sparse\) |
| `usage` | object | Usage statistics including total read units | | `usage` | object | Usage statistics including total read units |
| ↳ `total_tokens` | number | Read units consumed | | ↳ `total_tokens` | number | Read units consumed |

View File

@@ -55,7 +55,25 @@ Retrieve all deals from Pipedrive with optional filters
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deals` | array | Array of deal objects from Pipedrive | | `deals` | array | Array of deal objects from Pipedrive |
| ↳ `id` | number | Deal ID |
| ↳ `title` | string | Deal title |
| ↳ `value` | number | Deal value |
| ↳ `currency` | string | Currency code |
| ↳ `status` | string | Deal status \(open, won, lost, deleted\) |
| ↳ `stage_id` | number | Pipeline stage ID |
| ↳ `pipeline_id` | number | Pipeline ID |
| ↳ `person_id` | number | Associated person ID |
| ↳ `org_id` | number | Associated organization ID |
| ↳ `owner_id` | number | Deal owner user ID |
| ↳ `add_time` | string | When the deal was created \(ISO 8601\) |
| ↳ `update_time` | string | When the deal was last updated \(ISO 8601\) |
| ↳ `won_time` | string | When the deal was won |
| ↳ `lost_time` | string | When the deal was lost |
| ↳ `close_time` | string | When the deal was closed |
| ↳ `expected_close_date` | string | Expected close date |
| `metadata` | object | Pagination metadata for the response | | `metadata` | object | Pagination metadata for the response |
| ↳ `total_items` | number | Total number of items |
| ↳ `has_more` | boolean | Whether more items are available |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
### `pipedrive_get_deal` ### `pipedrive_get_deal`
@@ -140,6 +158,16 @@ Retrieve files from Pipedrive with optional filters
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `files` | array | Array of file objects from Pipedrive | | `files` | array | Array of file objects from Pipedrive |
| ↳ `id` | number | File ID |
| ↳ `name` | string | File name |
| ↳ `file_type` | string | File type/extension |
| ↳ `file_size` | number | File size in bytes |
| ↳ `add_time` | string | When the file was uploaded |
| ↳ `update_time` | string | When the file was last updated |
| ↳ `deal_id` | number | Associated deal ID |
| ↳ `person_id` | number | Associated person ID |
| ↳ `org_id` | number | Associated organization ID |
| ↳ `url` | string | File download URL |
| `total_items` | number | Total number of files returned | | `total_items` | number | Total number of files returned |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -198,6 +226,14 @@ Retrieve all pipelines from Pipedrive
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pipelines` | array | Array of pipeline objects from Pipedrive | | `pipelines` | array | Array of pipeline objects from Pipedrive |
| ↳ `id` | number | Pipeline ID |
| ↳ `name` | string | Pipeline name |
| ↳ `url_title` | string | URL-friendly title |
| ↳ `order_nr` | number | Pipeline order number |
| ↳ `active` | boolean | Whether the pipeline is active |
| ↳ `deal_probability` | boolean | Whether deal probability is enabled |
| ↳ `add_time` | string | When the pipeline was created |
| ↳ `update_time` | string | When the pipeline was last updated |
| `total_items` | number | Total number of pipelines returned | | `total_items` | number | Total number of pipelines returned |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -283,6 +319,19 @@ Retrieve activities (tasks) from Pipedrive with optional filters
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `activities` | array | Array of activity objects from Pipedrive | | `activities` | array | Array of activity objects from Pipedrive |
| ↳ `id` | number | Activity ID |
| ↳ `subject` | string | Activity subject |
| ↳ `type` | string | Activity type \(call, meeting, task, etc.\) |
| ↳ `due_date` | string | Due date \(YYYY-MM-DD\) |
| ↳ `due_time` | string | Due time \(HH:MM\) |
| ↳ `duration` | string | Duration \(HH:MM\) |
| ↳ `deal_id` | number | Associated deal ID |
| ↳ `person_id` | number | Associated person ID |
| ↳ `org_id` | number | Associated organization ID |
| ↳ `done` | boolean | Whether the activity is done |
| ↳ `note` | string | Activity note |
| ↳ `add_time` | string | When the activity was created |
| ↳ `update_time` | string | When the activity was last updated |
| `total_items` | number | Total number of activities returned | | `total_items` | number | Total number of activities returned |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
@@ -354,7 +403,33 @@ Retrieve all leads or a specific lead from Pipedrive
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `leads` | array | Array of lead objects \(when listing all\) | | `leads` | array | Array of lead objects \(when listing all\) |
| ↳ `id` | string | Lead ID \(UUID\) |
| ↳ `title` | string | Lead title |
| ↳ `person_id` | number | ID of the associated person |
| ↳ `organization_id` | number | ID of the associated organization |
| ↳ `owner_id` | number | ID of the lead owner |
| ↳ `value` | object | Lead value |
| ↳ `amount` | number | Value amount |
| ↳ `currency` | string | Currency code \(e.g., USD, EUR\) |
| ↳ `expected_close_date` | string | Expected close date \(YYYY-MM-DD\) |
| ↳ `is_archived` | boolean | Whether the lead is archived |
| ↳ `was_seen` | boolean | Whether the lead was seen |
| ↳ `add_time` | string | When the lead was created \(ISO 8601\) |
| ↳ `update_time` | string | When the lead was last updated \(ISO 8601\) |
| `lead` | object | Single lead object \(when lead_id is provided\) | | `lead` | object | Single lead object \(when lead_id is provided\) |
| ↳ `id` | string | Lead ID \(UUID\) |
| ↳ `title` | string | Lead title |
| ↳ `person_id` | number | ID of the associated person |
| ↳ `organization_id` | number | ID of the associated organization |
| ↳ `owner_id` | number | ID of the lead owner |
| ↳ `value` | object | Lead value |
| ↳ `amount` | number | Value amount |
| ↳ `currency` | string | Currency code \(e.g., USD, EUR\) |
| ↳ `expected_close_date` | string | Expected close date \(YYYY-MM-DD\) |
| ↳ `is_archived` | boolean | Whether the lead is archived |
| ↳ `was_seen` | boolean | Whether the lead was seen |
| ↳ `add_time` | string | When the lead was created \(ISO 8601\) |
| ↳ `update_time` | string | When the lead was last updated \(ISO 8601\) |
| `total_items` | number | Total number of leads returned | | `total_items` | number | Total number of leads returned |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |

View File

@@ -87,28 +87,28 @@ Retrieve details of a specific prediction market by ID or slug
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `market` | object | Market object with details | | `market` | object | Market object with details |
| ↳ `id` | string | Market ID | | ↳ `id` | string | Market ID |
| ↳ `question` | string | Market question | | ↳ `question` | string | Market question |
| ↳ `conditionId` | string | Condition ID | | ↳ `conditionId` | string | Condition ID |
| ↳ `slug` | string | Market slug | | ↳ `slug` | string | Market slug |
| ↳ `resolutionSource` | string | Resolution source | | ↳ `resolutionSource` | string | Resolution source |
| ↳ `endDate` | string | End date | | ↳ `endDate` | string | End date |
| ↳ `startDate` | string | Start date | | ↳ `startDate` | string | Start date |
| ↳ `image` | string | Market image URL | | ↳ `image` | string | Market image URL |
| ↳ `icon` | string | Market icon URL | | ↳ `icon` | string | Market icon URL |
| ↳ `description` | string | Market description | | ↳ `description` | string | Market description |
| ↳ `outcomes` | string | Outcomes JSON string | | ↳ `outcomes` | string | Outcomes JSON string |
| ↳ `outcomePrices` | string | Outcome prices JSON string | | ↳ `outcomePrices` | string | Outcome prices JSON string |
| ↳ `volume` | string | Total volume | | ↳ `volume` | string | Total volume |
| ↳ `liquidity` | string | Total liquidity | | ↳ `liquidity` | string | Total liquidity |
| ↳ `active` | boolean | Whether market is active | | ↳ `active` | boolean | Whether market is active |
| ↳ `closed` | boolean | Whether market is closed | | ↳ `closed` | boolean | Whether market is closed |
| ↳ `archived` | boolean | Whether market is archived | | ↳ `archived` | boolean | Whether market is archived |
| ↳ `volumeNum` | number | Volume as number | | ↳ `volumeNum` | number | Volume as number |
| ↳ `liquidityNum` | number | Liquidity as number | | ↳ `liquidityNum` | number | Liquidity as number |
| ↳ `clobTokenIds` | array | CLOB token IDs | | ↳ `clobTokenIds` | array | CLOB token IDs |
| ↳ `acceptingOrders` | boolean | Whether accepting orders | | ↳ `acceptingOrders` | boolean | Whether accepting orders |
| ↳ `negRisk` | boolean | Whether negative risk | | ↳ `negRisk` | boolean | Whether negative risk |
### `polymarket_get_events` ### `polymarket_get_events`
@@ -162,24 +162,24 @@ Retrieve details of a specific event by ID or slug
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `event` | object | Event object with details | | `event` | object | Event object with details |
| ↳ `id` | string | Event ID | | ↳ `id` | string | Event ID |
| ↳ `ticker` | string | Event ticker | | ↳ `ticker` | string | Event ticker |
| ↳ `slug` | string | Event slug | | ↳ `slug` | string | Event slug |
| ↳ `title` | string | Event title | | ↳ `title` | string | Event title |
| ↳ `description` | string | Event description | | ↳ `description` | string | Event description |
| ↳ `startDate` | string | Start date | | ↳ `startDate` | string | Start date |
| ↳ `creationDate` | string | Creation date | | ↳ `creationDate` | string | Creation date |
| ↳ `endDate` | string | End date | | ↳ `endDate` | string | End date |
| ↳ `image` | string | Event image URL | | ↳ `image` | string | Event image URL |
| ↳ `icon` | string | Event icon URL | | ↳ `icon` | string | Event icon URL |
| ↳ `active` | boolean | Whether event is active | | ↳ `active` | boolean | Whether event is active |
| ↳ `closed` | boolean | Whether event is closed | | ↳ `closed` | boolean | Whether event is closed |
| ↳ `archived` | boolean | Whether event is archived | | ↳ `archived` | boolean | Whether event is archived |
| ↳ `liquidity` | number | Total liquidity | | ↳ `liquidity` | number | Total liquidity |
| ↳ `volume` | number | Total volume | | ↳ `volume` | number | Total volume |
| ↳ `openInterest` | number | Open interest | | ↳ `openInterest` | number | Open interest |
| ↳ `commentCount` | number | Comment count | | ↳ `commentCount` | number | Comment count |
| ↳ `markets` | array | Array of markets in this event | | ↳ `markets` | array | Array of markets in this event |
### `polymarket_get_tags` ### `polymarket_get_tags`
@@ -231,10 +231,10 @@ Search for markets, events, and profiles on Polymarket
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | object | Search results containing markets, events, tags, and profiles arrays | | `results` | object | Search results containing markets, events, tags, and profiles arrays |
| ↳ `markets` | array | Array of matching market objects | | ↳ `markets` | array | Array of matching market objects |
| ↳ `events` | array | Array of matching event objects | | ↳ `events` | array | Array of matching event objects |
| ↳ `tags` | array | Array of matching tag objects | | ↳ `tags` | array | Array of matching tag objects |
| ↳ `profiles` | array | Array of matching profile objects | | ↳ `profiles` | array | Array of matching profile objects |
### `polymarket_get_series` ### `polymarket_get_series`
@@ -283,23 +283,23 @@ Retrieve a specific series (related market group) by ID from Polymarket
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `series` | object | Series object with details | | `series` | object | Series object with details |
| ↳ `id` | string | Series ID | | ↳ `id` | string | Series ID |
| ↳ `ticker` | string | Series ticker | | ↳ `ticker` | string | Series ticker |
| ↳ `slug` | string | Series slug | | ↳ `slug` | string | Series slug |
| ↳ `title` | string | Series title | | ↳ `title` | string | Series title |
| ↳ `seriesType` | string | Series type | | ↳ `seriesType` | string | Series type |
| ↳ `recurrence` | string | Recurrence pattern | | ↳ `recurrence` | string | Recurrence pattern |
| ↳ `image` | string | Series image URL | | ↳ `image` | string | Series image URL |
| ↳ `icon` | string | Series icon URL | | ↳ `icon` | string | Series icon URL |
| ↳ `active` | boolean | Whether series is active | | ↳ `active` | boolean | Whether series is active |
| ↳ `closed` | boolean | Whether series is closed | | ↳ `closed` | boolean | Whether series is closed |
| ↳ `archived` | boolean | Whether series is archived | | ↳ `archived` | boolean | Whether series is archived |
| ↳ `featured` | boolean | Whether series is featured | | ↳ `featured` | boolean | Whether series is featured |
| ↳ `volume` | number | Total volume | | ↳ `volume` | number | Total volume |
| ↳ `liquidity` | number | Total liquidity | | ↳ `liquidity` | number | Total liquidity |
| ↳ `commentCount` | number | Comment count | | ↳ `commentCount` | number | Comment count |
| ↳ `eventCount` | number | Number of events in series | | ↳ `eventCount` | number | Number of events in series |
| ↳ `events` | array | Array of events in this series | | ↳ `events` | array | Array of events in this series |
### `polymarket_get_orderbook` ### `polymarket_get_orderbook`
@@ -316,19 +316,19 @@ Retrieve the order book summary for a specific token
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `orderbook` | object | Order book with bids and asks arrays | | `orderbook` | object | Order book with bids and asks arrays |
| ↳ `market` | string | Market identifier | | ↳ `market` | string | Market identifier |
| ↳ `asset_id` | string | Asset token ID | | ↳ `asset_id` | string | Asset token ID |
| ↳ `hash` | string | Order book hash | | ↳ `hash` | string | Order book hash |
| ↳ `timestamp` | string | Timestamp | | ↳ `timestamp` | string | Timestamp |
| ↳ `bids` | array | Bid orders | | ↳ `bids` | array | Bid orders |
| ↳ `price` | string | Bid price | | ↳ `price` | string | Bid price |
| ↳ `size` | string | Bid size | | ↳ `size` | string | Bid size |
| ↳ `asks` | array | Ask orders | | ↳ `asks` | array | Ask orders |
| ↳ `price` | string | Ask price | | ↳ `price` | string | Ask price |
| ↳ `size` | string | Ask size | | ↳ `size` | string | Ask size |
| ↳ `min_order_size` | string | Minimum order size | | ↳ `min_order_size` | string | Minimum order size |
| ↳ `tick_size` | string | Tick size | | ↳ `tick_size` | string | Tick size |
| ↳ `neg_risk` | boolean | Whether negative risk | | ↳ `neg_risk` | boolean | Whether negative risk |
### `polymarket_get_price` ### `polymarket_get_price`
@@ -417,7 +417,7 @@ Retrieve the bid-ask spread for a specific token
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `spread` | object | Spread value between bid and ask | | `spread` | object | Spread value between bid and ask |
| ↳ `spread` | string | The spread value | | ↳ `spread` | string | The spread value |
### `polymarket_get_tick_size` ### `polymarket_get_tick_size`
@@ -625,15 +625,15 @@ Retrieve top holders of a specific market token
| `holders` | array | Array of market holder groups by token | | `holders` | array | Array of market holder groups by token |
| ↳ `token` | string | Token/asset ID | | ↳ `token` | string | Token/asset ID |
| ↳ `holders` | array | Array of holders for this token | | ↳ `holders` | array | Array of holders for this token |
| ↳ `proxyWallet` | string | Holder wallet address | | ↳ `proxyWallet` | string | Holder wallet address |
| ↳ `bio` | string | Holder bio | | ↳ `bio` | string | Holder bio |
| ↳ `asset` | string | Asset ID | | ↳ `asset` | string | Asset ID |
| ↳ `pseudonym` | string | Holder pseudonym | | ↳ `pseudonym` | string | Holder pseudonym |
| ↳ `amount` | number | Amount held | | ↳ `amount` | number | Amount held |
| ↳ `displayUsernamePublic` | boolean | Whether username is publicly displayed | | ↳ `displayUsernamePublic` | boolean | Whether username is publicly displayed |
| ↳ `outcomeIndex` | number | Outcome index | | ↳ `outcomeIndex` | number | Outcome index |
| ↳ `name` | string | Holder display name | | ↳ `name` | string | Holder display name |
| ↳ `profileImage` | string | Profile image URL | | ↳ `profileImage` | string | Profile image URL |
| ↳ `profileImageOptimized` | string | Optimized profile image URL | | ↳ `profileImageOptimized` | string | Optimized profile image URL |

View File

@@ -179,6 +179,27 @@ Introspect PostgreSQL database schema to retrieve table structures, columns, and
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `tables` | array | Array of table schemas with columns, keys, and indexes | | `tables` | array | Array of table schemas with columns, keys, and indexes |
| ↳ `name` | string | Table name |
| ↳ `schema` | string | Schema name \(e.g., public\) |
| ↳ `columns` | array | Table columns |
| ↳ `name` | string | Column name |
| ↳ `type` | string | Data type \(e.g., integer, varchar, timestamp\) |
| ↳ `nullable` | boolean | Whether the column allows NULL values |
| ↳ `default` | string | Default value expression |
| ↳ `isPrimaryKey` | boolean | Whether the column is part of the primary key |
| ↳ `isForeignKey` | boolean | Whether the column is a foreign key |
| ↳ `references` | object | Foreign key reference information |
| ↳ `table` | string | Referenced table name |
| ↳ `column` | string | Referenced column name |
| ↳ `primaryKey` | array | Primary key column names |
| ↳ `foreignKeys` | array | Foreign key constraints |
| ↳ `column` | string | Local column name |
| ↳ `referencesTable` | string | Referenced table name |
| ↳ `referencesColumn` | string | Referenced column name |
| ↳ `indexes` | array | Table indexes |
| ↳ `name` | string | Index name |
| ↳ `columns` | array | Columns included in the index |
| ↳ `unique` | boolean | Whether the index enforces uniqueness |
| `schemas` | array | List of available schemas in the database | | `schemas` | array | List of available schemas in the database |

View File

@@ -125,11 +125,11 @@ Get detailed information about a specific person in PostHog by their ID or UUID.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `person` | object | Person details including properties and identifiers | | `person` | object | Person details including properties and identifiers |
| ↳ `id` | string | Person ID | | ↳ `id` | string | Person ID |
| ↳ `name` | string | Person name | | ↳ `name` | string | Person name |
| ↳ `distinct_ids` | array | All distinct IDs associated with this person | | ↳ `distinct_ids` | array | All distinct IDs associated with this person |
| ↳ `created_at` | string | When the person was first seen | | ↳ `created_at` | string | When the person was first seen |
| ↳ `uuid` | string | Person UUID | | ↳ `uuid` | string | Person UUID |
### `posthog_delete_person` ### `posthog_delete_person`
@@ -599,19 +599,19 @@ Get details of a specific feature flag
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `flag` | object | Feature flag details | | `flag` | object | Feature flag details |
| ↳ `id` | number | Feature flag ID | | ↳ `id` | number | Feature flag ID |
| ↳ `name` | string | Feature flag name | | ↳ `name` | string | Feature flag name |
| ↳ `key` | string | Feature flag key | | ↳ `key` | string | Feature flag key |
| ↳ `filters` | object | Feature flag filters | | ↳ `filters` | object | Feature flag filters |
| ↳ `deleted` | boolean | Whether the flag is deleted | | ↳ `deleted` | boolean | Whether the flag is deleted |
| ↳ `active` | boolean | Whether the flag is active | | ↳ `active` | boolean | Whether the flag is active |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `created_by` | object | Creator information | | ↳ `created_by` | object | Creator information |
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag | | ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) | | ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity | | ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
| ↳ `usage_dashboard` | number | Usage dashboard ID | | ↳ `usage_dashboard` | number | Usage dashboard ID |
| ↳ `has_enriched_analytics` | boolean | Whether enriched analytics are enabled | | ↳ `has_enriched_analytics` | boolean | Whether enriched analytics are enabled |
### `posthog_create_feature_flag` ### `posthog_create_feature_flag`
@@ -636,17 +636,17 @@ Create a new feature flag in PostHog
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `flag` | object | Created feature flag | | `flag` | object | Created feature flag |
| ↳ `id` | number | Feature flag ID | | ↳ `id` | number | Feature flag ID |
| ↳ `name` | string | Feature flag name | | ↳ `name` | string | Feature flag name |
| ↳ `key` | string | Feature flag key | | ↳ `key` | string | Feature flag key |
| ↳ `filters` | object | Feature flag filters | | ↳ `filters` | object | Feature flag filters |
| ↳ `deleted` | boolean | Whether the flag is deleted | | ↳ `deleted` | boolean | Whether the flag is deleted |
| ↳ `active` | boolean | Whether the flag is active | | ↳ `active` | boolean | Whether the flag is active |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `created_by` | object | Creator information | | ↳ `created_by` | object | Creator information |
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag | | ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) | | ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity | | ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
### `posthog_update_feature_flag` ### `posthog_update_feature_flag`
@@ -672,17 +672,17 @@ Update an existing feature flag in PostHog
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `flag` | object | Updated feature flag | | `flag` | object | Updated feature flag |
| ↳ `id` | number | Feature flag ID | | ↳ `id` | number | Feature flag ID |
| ↳ `name` | string | Feature flag name | | ↳ `name` | string | Feature flag name |
| ↳ `key` | string | Feature flag key | | ↳ `key` | string | Feature flag key |
| ↳ `filters` | object | Feature flag filters | | ↳ `filters` | object | Feature flag filters |
| ↳ `deleted` | boolean | Whether the flag is deleted | | ↳ `deleted` | boolean | Whether the flag is deleted |
| ↳ `active` | boolean | Whether the flag is active | | ↳ `active` | boolean | Whether the flag is active |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `created_by` | object | Creator information | | ↳ `created_by` | object | Creator information |
| ↳ `is_simple_flag` | boolean | Whether this is a simple flag | | ↳ `is_simple_flag` | boolean | Whether this is a simple flag |
| ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) | | ↳ `rollout_percentage` | number | Rollout percentage \(if applicable\) |
| ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity | | ↳ `ensure_experience_continuity` | boolean | Whether to ensure experience continuity |
### `posthog_delete_feature_flag` ### `posthog_delete_feature_flag`
@@ -781,21 +781,21 @@ Get details of a specific experiment
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `experiment` | object | Experiment details | | `experiment` | object | Experiment details |
| ↳ `id` | number | Experiment ID | | ↳ `id` | number | Experiment ID |
| ↳ `name` | string | Experiment name | | ↳ `name` | string | Experiment name |
| ↳ `description` | string | Experiment description | | ↳ `description` | string | Experiment description |
| ↳ `feature_flag_key` | string | Associated feature flag key | | ↳ `feature_flag_key` | string | Associated feature flag key |
| ↳ `feature_flag` | object | Feature flag details | | ↳ `feature_flag` | object | Feature flag details |
| ↳ `parameters` | object | Experiment parameters | | ↳ `parameters` | object | Experiment parameters |
| ↳ `filters` | object | Experiment filters | | ↳ `filters` | object | Experiment filters |
| ↳ `variants` | object | Experiment variants | | ↳ `variants` | object | Experiment variants |
| ↳ `start_date` | string | Start date | | ↳ `start_date` | string | Start date |
| ↳ `end_date` | string | End date | | ↳ `end_date` | string | End date |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `created_by` | object | Creator information | | ↳ `created_by` | object | Creator information |
| ↳ `archived` | boolean | Whether the experiment is archived | | ↳ `archived` | boolean | Whether the experiment is archived |
| ↳ `metrics` | array | Primary metrics | | ↳ `metrics` | array | Primary metrics |
| ↳ `metrics_secondary` | array | Secondary metrics | | ↳ `metrics_secondary` | array | Secondary metrics |
### `posthog_create_experiment` ### `posthog_create_experiment`
@@ -822,19 +822,19 @@ Create a new experiment in PostHog
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `experiment` | object | Created experiment | | `experiment` | object | Created experiment |
| ↳ `id` | number | Experiment ID | | ↳ `id` | number | Experiment ID |
| ↳ `name` | string | Experiment name | | ↳ `name` | string | Experiment name |
| ↳ `description` | string | Experiment description | | ↳ `description` | string | Experiment description |
| ↳ `feature_flag_key` | string | Associated feature flag key | | ↳ `feature_flag_key` | string | Associated feature flag key |
| ↳ `feature_flag` | object | Feature flag details | | ↳ `feature_flag` | object | Feature flag details |
| ↳ `parameters` | object | Experiment parameters | | ↳ `parameters` | object | Experiment parameters |
| ↳ `filters` | object | Experiment filters | | ↳ `filters` | object | Experiment filters |
| ↳ `variants` | object | Experiment variants | | ↳ `variants` | object | Experiment variants |
| ↳ `start_date` | string | Start date | | ↳ `start_date` | string | Start date |
| ↳ `end_date` | string | End date | | ↳ `end_date` | string | End date |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `created_by` | object | Creator information | | ↳ `created_by` | object | Creator information |
| ↳ `archived` | boolean | Whether the experiment is archived | | ↳ `archived` | boolean | Whether the experiment is archived |
### `posthog_list_surveys` ### `posthog_list_surveys`
@@ -886,19 +886,19 @@ Get details of a specific survey in PostHog by ID.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `survey` | object | Survey details | | `survey` | object | Survey details |
| ↳ `id` | string | Survey ID | | ↳ `id` | string | Survey ID |
| ↳ `name` | string | Survey name | | ↳ `name` | string | Survey name |
| ↳ `description` | string | Survey description | | ↳ `description` | string | Survey description |
| ↳ `type` | string | Survey type \(popover or api\) | | ↳ `type` | string | Survey type \(popover or api\) |
| ↳ `questions` | array | Survey questions | | ↳ `questions` | array | Survey questions |
| ↳ `appearance` | object | Survey appearance configuration | | ↳ `appearance` | object | Survey appearance configuration |
| ↳ `conditions` | object | Survey display conditions | | ↳ `conditions` | object | Survey display conditions |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `created_by` | object | Creator information | | ↳ `created_by` | object | Creator information |
| ↳ `start_date` | string | Survey start date | | ↳ `start_date` | string | Survey start date |
| ↳ `end_date` | string | Survey end date | | ↳ `end_date` | string | Survey end date |
| ↳ `archived` | boolean | Whether survey is archived | | ↳ `archived` | boolean | Whether survey is archived |
| ↳ `responses_limit` | number | Maximum number of responses | | ↳ `responses_limit` | number | Maximum number of responses |
### `posthog_create_survey` ### `posthog_create_survey`
@@ -928,14 +928,14 @@ Create a new survey in PostHog. Supports question types: Basic (open), Link, Rat
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `survey` | object | Created survey details | | `survey` | object | Created survey details |
| ↳ `id` | string | Survey ID | | ↳ `id` | string | Survey ID |
| ↳ `name` | string | Survey name | | ↳ `name` | string | Survey name |
| ↳ `description` | string | Survey description | | ↳ `description` | string | Survey description |
| ↳ `type` | string | Survey type \(popover or api\) | | ↳ `type` | string | Survey type \(popover or api\) |
| ↳ `questions` | array | Survey questions | | ↳ `questions` | array | Survey questions |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `start_date` | string | Survey start date | | ↳ `start_date` | string | Survey start date |
| ↳ `end_date` | string | Survey end date | | ↳ `end_date` | string | Survey end date |
### `posthog_update_survey` ### `posthog_update_survey`
@@ -967,15 +967,15 @@ Update an existing survey in PostHog. Can modify questions, appearance, conditio
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `survey` | object | Updated survey details | | `survey` | object | Updated survey details |
| ↳ `id` | string | Survey ID | | ↳ `id` | string | Survey ID |
| ↳ `name` | string | Survey name | | ↳ `name` | string | Survey name |
| ↳ `description` | string | Survey description | | ↳ `description` | string | Survey description |
| ↳ `type` | string | Survey type \(popover or api\) | | ↳ `type` | string | Survey type \(popover or api\) |
| ↳ `questions` | array | Survey questions | | ↳ `questions` | array | Survey questions |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp |
| ↳ `start_date` | string | Survey start date | | ↳ `start_date` | string | Survey start date |
| ↳ `end_date` | string | Survey end date | | ↳ `end_date` | string | Survey end date |
| ↳ `archived` | boolean | Whether survey is archived | | ↳ `archived` | boolean | Whether survey is archived |
### `posthog_list_session_recordings` ### `posthog_list_session_recordings`
@@ -1032,22 +1032,22 @@ Get details of a specific session recording in PostHog by ID.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `recording` | object | Session recording details | | `recording` | object | Session recording details |
| ↳ `id` | string | Recording ID | | ↳ `id` | string | Recording ID |
| ↳ `distinct_id` | string | User distinct ID | | ↳ `distinct_id` | string | User distinct ID |
| ↳ `viewed` | boolean | Whether recording has been viewed | | ↳ `viewed` | boolean | Whether recording has been viewed |
| ↳ `recording_duration` | number | Recording duration in seconds | | ↳ `recording_duration` | number | Recording duration in seconds |
| ↳ `active_seconds` | number | Active time in seconds | | ↳ `active_seconds` | number | Active time in seconds |
| ↳ `inactive_seconds` | number | Inactive time in seconds | | ↳ `inactive_seconds` | number | Inactive time in seconds |
| ↳ `start_time` | string | Recording start timestamp | | ↳ `start_time` | string | Recording start timestamp |
| ↳ `end_time` | string | Recording end timestamp | | ↳ `end_time` | string | Recording end timestamp |
| ↳ `click_count` | number | Number of clicks | | ↳ `click_count` | number | Number of clicks |
| ↳ `keypress_count` | number | Number of keypresses | | ↳ `keypress_count` | number | Number of keypresses |
| ↳ `console_log_count` | number | Number of console logs | | ↳ `console_log_count` | number | Number of console logs |
| ↳ `console_warn_count` | number | Number of console warnings | | ↳ `console_warn_count` | number | Number of console warnings |
| ↳ `console_error_count` | number | Number of console errors | | ↳ `console_error_count` | number | Number of console errors |
| ↳ `start_url` | string | Starting URL of the recording | | ↳ `start_url` | string | Starting URL of the recording |
| ↳ `person` | object | Person information | | ↳ `person` | object | Person information |
| ↳ `matching_events` | array | Events that occurred during recording | | ↳ `matching_events` | array | Events that occurred during recording |
### `posthog_list_recording_playlists` ### `posthog_list_recording_playlists`
@@ -1344,29 +1344,29 @@ Get detailed information about a specific project by ID. Returns comprehensive p
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | Detailed project information with all configuration settings | | `project` | object | Detailed project information with all configuration settings |
| ↳ `id` | number | Project ID | | ↳ `id` | number | Project ID |
| ↳ `uuid` | string | Project UUID | | ↳ `uuid` | string | Project UUID |
| ↳ `organization` | string | Organization UUID | | ↳ `organization` | string | Organization UUID |
| ↳ `api_token` | string | Project API token for ingestion | | ↳ `api_token` | string | Project API token for ingestion |
| ↳ `app_urls` | array | Allowed app URLs | | ↳ `app_urls` | array | Allowed app URLs |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `slack_incoming_webhook` | string | Slack webhook URL for notifications | | ↳ `slack_incoming_webhook` | string | Slack webhook URL for notifications |
| ↳ `created_at` | string | Project creation timestamp | | ↳ `created_at` | string | Project creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `anonymize_ips` | boolean | Whether IP anonymization is enabled | | ↳ `anonymize_ips` | boolean | Whether IP anonymization is enabled |
| ↳ `completed_snippet_onboarding` | boolean | Whether snippet onboarding is completed | | ↳ `completed_snippet_onboarding` | boolean | Whether snippet onboarding is completed |
| ↳ `ingested_event` | boolean | Whether any event has been ingested | | ↳ `ingested_event` | boolean | Whether any event has been ingested |
| ↳ `test_account_filters` | array | Filters for test accounts | | ↳ `test_account_filters` | array | Filters for test accounts |
| ↳ `is_demo` | boolean | Whether this is a demo project | | ↳ `is_demo` | boolean | Whether this is a demo project |
| ↳ `timezone` | string | Project timezone | | ↳ `timezone` | string | Project timezone |
| ↳ `data_attributes` | array | Custom data attributes | | ↳ `data_attributes` | array | Custom data attributes |
| ↳ `person_display_name_properties` | array | Properties used for person display names | | ↳ `person_display_name_properties` | array | Properties used for person display names |
| ↳ `correlation_config` | object | Configuration for correlation analysis | | ↳ `correlation_config` | object | Configuration for correlation analysis |
| ↳ `autocapture_opt_out` | boolean | Whether autocapture is disabled | | ↳ `autocapture_opt_out` | boolean | Whether autocapture is disabled |
| ↳ `autocapture_exceptions_opt_in` | boolean | Whether exception autocapture is enabled | | ↳ `autocapture_exceptions_opt_in` | boolean | Whether exception autocapture is enabled |
| ↳ `session_recording_opt_in` | boolean | Whether session recording 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_console_log_opt_in` | boolean | Whether console log capture is enabled |
| ↳ `capture_performance_opt_in` | boolean | Whether performance capture is enabled | | ↳ `capture_performance_opt_in` | boolean | Whether performance capture is enabled |
### `posthog_list_organizations` ### `posthog_list_organizations`
@@ -1411,20 +1411,20 @@ Get detailed information about a specific organization by ID. Returns comprehens
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `organization` | object | Detailed organization information with settings and features | | `organization` | object | Detailed organization information with settings and features |
| ↳ `id` | string | Organization ID \(UUID\) | | ↳ `id` | string | Organization ID \(UUID\) |
| ↳ `name` | string | Organization name | | ↳ `name` | string | Organization name |
| ↳ `slug` | string | Organization slug | | ↳ `slug` | string | Organization slug |
| ↳ `created_at` | string | Organization creation timestamp | | ↳ `created_at` | string | Organization creation timestamp |
| ↳ `updated_at` | string | Last update timestamp | | ↳ `updated_at` | string | Last update timestamp |
| ↳ `membership_level` | number | User membership level in organization | | ↳ `membership_level` | number | User membership level in organization |
| ↳ `plugins_access_level` | number | Access level for plugins/apps | | ↳ `plugins_access_level` | number | Access level for plugins/apps |
| ↳ `teams` | array | List of team IDs in this organization | | ↳ `teams` | array | List of team IDs in this organization |
| ↳ `available_product_features` | array | Available product features with their limits and descriptions | | ↳ `available_product_features` | array | Available product features with their limits and descriptions |
| ↳ `domain_whitelist` | array | Whitelisted domains for organization | | ↳ `domain_whitelist` | array | Whitelisted domains for organization |
| ↳ `is_member_join_email_enabled` | boolean | Whether member join emails are enabled | | ↳ `is_member_join_email_enabled` | boolean | Whether member join emails are enabled |
| ↳ `metadata` | object | Organization metadata | | ↳ `metadata` | object | Organization metadata |
| ↳ `customer_id` | string | Customer ID for billing | | ↳ `customer_id` | string | Customer ID for billing |
| ↳ `available_features` | array | List of available feature flags for organization | | ↳ `available_features` | array | List of available feature flags for organization |
| ↳ `usage` | object | Organization usage statistics | | ↳ `usage` | object | Organization usage statistics |

View File

@@ -56,8 +56,10 @@ Insert or update points in a Qdrant collection
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `status` | string | Status of the upsert operation | | `status` | string | Operation status \(ok, error\) |
| `data` | object | Result data from the upsert operation | | `data` | object | Result data from the upsert operation |
| ↳ `operation_id` | number | Operation ID for async tracking |
| ↳ `status` | string | Operation status \(acknowledged, completed\) |
### `qdrant_search_vector` ### `qdrant_search_vector`
@@ -81,8 +83,15 @@ Search for similar vectors in a Qdrant collection
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `status` | string | Operation status \(ok, error\) |
| `data` | array | Vector search results with ID, score, payload, and optional vector data | | `data` | array | Vector search results with ID, score, payload, and optional vector data |
| `status` | string | Status of the search operation | | ↳ `id` | string | Point ID \(integer or UUID string\) |
| ↳ `version` | number | Point version number |
| ↳ `score` | number | Similarity score |
| ↳ `payload` | json | Point payload data \(key-value pairs\) |
| ↳ `vector` | json | Point vector\(s\) - single array or named vectors object |
| ↳ `shard_key` | string | Shard key for routing |
| ↳ `order_value` | number | Order value for sorting |
### `qdrant_fetch_points` ### `qdrant_fetch_points`
@@ -104,7 +113,12 @@ Fetch points by ID from a Qdrant collection
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `status` | string | Operation status \(ok, error\) |
| `data` | array | Fetched points with ID, payload, and optional vector data | | `data` | array | Fetched points with ID, payload, and optional vector data |
| `status` | string | Status of the fetch operation | | ↳ `id` | string | Point ID \(integer or UUID string\) |
| ↳ `payload` | json | Point payload data \(key-value pairs\) |
| ↳ `vector` | json | Point vector\(s\) - single array or named vectors object |
| ↳ `shard_key` | string | Shard key for routing |
| ↳ `order_value` | number | Order value for sorting |

View File

@@ -95,13 +95,13 @@ Fetch comments from a specific Reddit post
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `post` | object | Post information including ID, title, author, content, and metadata | | `post` | object | Post information including ID, title, author, content, and metadata |
| ↳ `id` | string | Post ID | | ↳ `id` | string | Post ID |
| ↳ `title` | string | Post title | | ↳ `title` | string | Post title |
| ↳ `author` | string | Post author | | ↳ `author` | string | Post author |
| ↳ `selftext` | string | Post text content | | ↳ `selftext` | string | Post text content |
| ↳ `score` | number | Post score | | ↳ `score` | number | Post score |
| ↳ `created_utc` | number | Creation timestamp | | ↳ `created_utc` | number | Creation timestamp |
| ↳ `permalink` | string | Reddit permalink | | ↳ `permalink` | string | Reddit permalink |
| `comments` | array | Nested comments with author, body, score, timestamps, and replies | | `comments` | array | Nested comments with author, body, score, timestamps, and replies |
| ↳ `id` | string | Comment ID | | ↳ `id` | string | Comment ID |
| ↳ `author` | string | Comment author | | ↳ `author` | string | Comment author |
@@ -208,6 +208,10 @@ Submit a new post to a subreddit (text or link)
| `success` | boolean | Whether the post was submitted successfully | | `success` | boolean | Whether the post was submitted successfully |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Post data including ID, name, URL, and permalink | | `data` | object | Post data including ID, name, URL, and permalink |
| ↳ `id` | string | New post ID |
| ↳ `name` | string | Thing fullname \(t3_xxxxx\) |
| ↳ `url` | string | Post URL from API response |
| ↳ `permalink` | string | Full Reddit permalink |
### `reddit_vote` ### `reddit_vote`
@@ -279,6 +283,10 @@ Add a comment reply to a Reddit post or comment
| `success` | boolean | Whether the reply was posted successfully | | `success` | boolean | Whether the reply was posted successfully |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Comment data including ID, name, permalink, and body | | `data` | object | Comment data including ID, name, permalink, and body |
| ↳ `id` | string | New comment ID |
| ↳ `name` | string | Thing fullname \(t1_xxxxx\) |
| ↳ `permalink` | string | Comment permalink |
| ↳ `body` | string | Comment body text |
### `reddit_edit` ### `reddit_edit`
@@ -298,6 +306,9 @@ Edit the text of your own Reddit post or comment
| `success` | boolean | Whether the edit was successful | | `success` | boolean | Whether the edit was successful |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Updated content data | | `data` | object | Updated content data |
| ↳ `id` | string | Edited thing ID |
| ↳ `body` | string | Updated comment body \(for comments\) |
| ↳ `selftext` | string | Updated post text \(for self posts\) |
### `reddit_delete` ### `reddit_delete`

View File

@@ -53,15 +53,15 @@ Retrieve accounts from Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Accounts data | | `output` | object | Accounts data |
| ↳ `accounts` | array | Array of account objects | | ↳ `paging` | object | Pagination information from Salesforce API |
| ↳ `paging` | object | Pagination information | | ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
| ↳ `nextRecordsUrl` | string | URL for next page of results | | ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
| ↳ `totalSize` | number | Total number of records | | ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
| ↳ `done` | boolean | Whether all records returned | | ↳ `metadata` | object | Response metadata |
| ↳ `metadata` | object | Response metadata | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `totalReturned` | number | Number of accounts returned | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `hasMore` | boolean | Whether more records exist | | ↳ `accounts` | array | Array of account objects |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Salesforce operation success |
### `salesforce_create_account` ### `salesforce_create_account`
@@ -93,9 +93,9 @@ Create a new account in Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created account data | | `output` | object | Created account data |
| ↳ `id` | string | Created account ID | | ↳ `id` | string | The Salesforce ID of the newly created record |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Whether the create operation was successful |
| ↳ `created` | boolean | Whether account was created | | ↳ `created` | boolean | Whether the record was created \(always true on success\) |
### `salesforce_update_account` ### `salesforce_update_account`
@@ -128,8 +128,8 @@ Update an existing account in Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated account data | | `output` | object | Updated account data |
| ↳ `id` | string | Updated account ID | | ↳ `id` | string | The Salesforce ID of the updated record |
| ↳ `updated` | boolean | Whether account was updated | | ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |
### `salesforce_delete_account` ### `salesforce_delete_account`
@@ -149,8 +149,8 @@ Delete an account from Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Deleted account data | | `output` | object | Deleted account data |
| ↳ `id` | string | Deleted account ID | | ↳ `id` | string | The Salesforce ID of the deleted record |
| ↳ `deleted` | boolean | Whether account was deleted | | ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |
### `salesforce_get_contacts` ### `salesforce_get_contacts`
@@ -173,17 +173,17 @@ Get contact(s) from Salesforce - single contact if ID provided, or list if not
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Contact\(s\) data | | `output` | object | Contact\(s\) data |
| ↳ `contacts` | array | Array of contacts \(list query\) | | ↳ `paging` | object | Pagination information from Salesforce API |
| ↳ `contact` | object | Single contact \(by ID\) | | ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
| ↳ `paging` | object | Pagination information | | ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
| ↳ `nextRecordsUrl` | string | URL for next page of results | | ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
| ↳ `totalSize` | number | Total number of records | | ↳ `metadata` | object | Response metadata |
| ↳ `done` | boolean | Whether all records returned | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `metadata` | object | Response metadata | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `totalReturned` | number | Number of contacts returned | | ↳ `contacts` | array | Array of contacts \(list query\) |
| ↳ `hasMore` | boolean | Whether more records exist | | ↳ `contact` | object | Single contact \(by ID\) |
| ↳ `singleContact` | boolean | Whether single contact was returned | | ↳ `singleContact` | boolean | Whether single contact was returned |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Salesforce operation success |
### `salesforce_create_contact` ### `salesforce_create_contact`
@@ -215,9 +215,9 @@ Create a new contact in Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created contact data | | `output` | object | Created contact data |
| ↳ `id` | string | Created contact ID | | ↳ `id` | string | The Salesforce ID of the newly created record |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Whether the create operation was successful |
| ↳ `created` | boolean | Whether contact was created | | ↳ `created` | boolean | Whether the record was created \(always true on success\) |
### `salesforce_update_contact` ### `salesforce_update_contact`
@@ -250,8 +250,8 @@ Update an existing contact in Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated contact data | | `output` | object | Updated contact data |
| ↳ `id` | string | Updated contact ID | | ↳ `id` | string | The Salesforce ID of the updated record |
| ↳ `updated` | boolean | Whether contact was updated | | ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |
### `salesforce_delete_contact` ### `salesforce_delete_contact`
@@ -271,8 +271,8 @@ Delete a contact from Salesforce CRM
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Deleted contact data | | `output` | object | Deleted contact data |
| ↳ `id` | string | Deleted contact ID | | ↳ `id` | string | The Salesforce ID of the deleted record |
| ↳ `deleted` | boolean | Whether contact was deleted | | ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |
### `salesforce_get_leads` ### `salesforce_get_leads`
@@ -295,17 +295,17 @@ Get lead(s) from Salesforce
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Lead data | | `output` | object | Lead data |
| ↳ `lead` | object | Single lead object \(when leadId provided\) | | ↳ `paging` | object | Pagination information from Salesforce API |
| ↳ `leads` | array | Array of lead objects \(when listing\) | | ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
| ↳ `paging` | object | Pagination information | | ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
| ↳ `nextRecordsUrl` | string | URL for next page of results | | ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
| ↳ `totalSize` | number | Total number of records | | ↳ `metadata` | object | Response metadata |
| ↳ `done` | boolean | Whether all records returned | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `metadata` | object | Response metadata | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `totalReturned` | number | Number of leads returned | | ↳ `lead` | object | Single lead object \(when leadId provided\) |
| ↳ `hasMore` | boolean | Whether more records exist | | ↳ `leads` | array | Array of lead objects \(when listing\) |
| ↳ `singleLead` | boolean | Whether single lead was returned | | ↳ `singleLead` | boolean | Whether single lead was returned |
| ↳ `success` | boolean | Operation success status | | ↳ `success` | boolean | Operation success status |
### `salesforce_create_lead` ### `salesforce_create_lead`
@@ -333,9 +333,9 @@ Create a new lead
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created lead data | | `output` | object | Created lead data |
| ↳ `id` | string | Created lead ID | | ↳ `id` | string | The Salesforce ID of the newly created record |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Whether the create operation was successful |
| ↳ `created` | boolean | Whether lead was created | | ↳ `created` | boolean | Whether the record was created \(always true on success\) |
### `salesforce_update_lead` ### `salesforce_update_lead`
@@ -364,8 +364,8 @@ Update an existing lead
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated lead data | | `output` | object | Updated lead data |
| ↳ `id` | string | Updated lead ID | | ↳ `id` | string | The Salesforce ID of the updated record |
| ↳ `updated` | boolean | Whether lead was updated | | ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |
### `salesforce_delete_lead` ### `salesforce_delete_lead`
@@ -385,8 +385,8 @@ Delete a lead
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Deleted lead data | | `output` | object | Deleted lead data |
| ↳ `id` | string | Deleted lead ID | | ↳ `id` | string | The Salesforce ID of the deleted record |
| ↳ `deleted` | boolean | Whether lead was deleted | | ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |
### `salesforce_get_opportunities` ### `salesforce_get_opportunities`
@@ -409,16 +409,16 @@ Get opportunity(ies) from Salesforce
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Opportunity data | | `output` | object | Opportunity data |
| ↳ `opportunity` | object | Single opportunity object \(when opportunityId provided\) | | ↳ `paging` | object | Pagination information from Salesforce API |
| ↳ `opportunities` | array | Array of opportunity objects \(when listing\) | | ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
| ↳ `paging` | object | Pagination information | | ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
| ↳ `nextRecordsUrl` | string | URL for next page of results | | ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
| ↳ `totalSize` | number | Total number of records | | ↳ `metadata` | object | Response metadata |
| ↳ `done` | boolean | Whether all records returned | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `metadata` | object | Response metadata | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `totalReturned` | number | Number of opportunities returned | | ↳ `opportunity` | object | Single opportunity object \(when opportunityId provided\) |
| ↳ `hasMore` | boolean | Whether more records exist | | ↳ `opportunities` | array | Array of opportunity objects \(when listing\) |
| ↳ `success` | boolean | Operation success status | | ↳ `success` | boolean | Operation success status |
### `salesforce_create_opportunity` ### `salesforce_create_opportunity`
@@ -444,9 +444,9 @@ Create a new opportunity
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created opportunity data | | `output` | object | Created opportunity data |
| ↳ `id` | string | Created opportunity ID | | ↳ `id` | string | The Salesforce ID of the newly created record |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Whether the create operation was successful |
| ↳ `created` | boolean | Whether opportunity was created | | ↳ `created` | boolean | Whether the record was created \(always true on success\) |
### `salesforce_update_opportunity` ### `salesforce_update_opportunity`
@@ -473,8 +473,8 @@ Update an existing opportunity
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated opportunity data | | `output` | object | Updated opportunity data |
| ↳ `id` | string | Updated opportunity ID | | ↳ `id` | string | The Salesforce ID of the updated record |
| ↳ `updated` | boolean | Whether opportunity was updated | | ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |
### `salesforce_delete_opportunity` ### `salesforce_delete_opportunity`
@@ -494,8 +494,8 @@ Delete an opportunity
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Deleted opportunity data | | `output` | object | Deleted opportunity data |
| ↳ `id` | string | Deleted opportunity ID | | ↳ `id` | string | The Salesforce ID of the deleted record |
| ↳ `deleted` | boolean | Whether opportunity was deleted | | ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |
### `salesforce_get_cases` ### `salesforce_get_cases`
@@ -518,16 +518,16 @@ Get case(s) from Salesforce
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Case data | | `output` | object | Case data |
| ↳ `case` | object | Single case object \(when caseId provided\) | | ↳ `paging` | object | Pagination information from Salesforce API |
| ↳ `cases` | array | Array of case objects \(when listing\) | | ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
| ↳ `paging` | object | Pagination information | | ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
| ↳ `nextRecordsUrl` | string | URL for next page of results | | ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
| ↳ `totalSize` | number | Total number of records | | ↳ `metadata` | object | Response metadata |
| ↳ `done` | boolean | Whether all records returned | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `metadata` | object | Response metadata | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `totalReturned` | number | Number of cases returned | | ↳ `case` | object | Single case object \(when caseId provided\) |
| ↳ `hasMore` | boolean | Whether more records exist | | ↳ `cases` | array | Array of case objects \(when listing\) |
| ↳ `success` | boolean | Operation success status | | ↳ `success` | boolean | Operation success status |
### `salesforce_create_case` ### `salesforce_create_case`
@@ -553,9 +553,9 @@ Create a new case
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created case data | | `output` | object | Created case data |
| ↳ `id` | string | Created case ID | | ↳ `id` | string | The Salesforce ID of the newly created record |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Whether the create operation was successful |
| ↳ `created` | boolean | Whether case was created | | ↳ `created` | boolean | Whether the record was created \(always true on success\) |
### `salesforce_update_case` ### `salesforce_update_case`
@@ -579,8 +579,8 @@ Update an existing case
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated case data | | `output` | object | Updated case data |
| ↳ `id` | string | Updated case ID | | ↳ `id` | string | The Salesforce ID of the updated record |
| ↳ `updated` | boolean | Whether case was updated | | ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |
### `salesforce_delete_case` ### `salesforce_delete_case`
@@ -600,8 +600,8 @@ Delete a case
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Deleted case data | | `output` | object | Deleted case data |
| ↳ `id` | string | Deleted case ID | | ↳ `id` | string | The Salesforce ID of the deleted record |
| ↳ `deleted` | boolean | Whether case was deleted | | ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |
### `salesforce_get_tasks` ### `salesforce_get_tasks`
@@ -624,16 +624,16 @@ Get task(s) from Salesforce
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Task data | | `output` | object | Task data |
| ↳ `task` | object | Single task object \(when taskId provided\) | | ↳ `paging` | object | Pagination information from Salesforce API |
| ↳ `tasks` | array | Array of task objects \(when listing\) | | ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
| ↳ `paging` | object | Pagination information | | ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
| ↳ `nextRecordsUrl` | string | URL for next page of results | | ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
| ↳ `totalSize` | number | Total number of records | | ↳ `metadata` | object | Response metadata |
| ↳ `done` | boolean | Whether all records returned | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `metadata` | object | Response metadata | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `totalReturned` | number | Number of tasks returned | | ↳ `task` | object | Single task object \(when taskId provided\) |
| ↳ `hasMore` | boolean | Whether more records exist | | ↳ `tasks` | array | Array of task objects \(when listing\) |
| ↳ `success` | boolean | Operation success status | | ↳ `success` | boolean | Operation success status |
### `salesforce_create_task` ### `salesforce_create_task`
@@ -659,9 +659,9 @@ Create a new task
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created task data | | `output` | object | Created task data |
| ↳ `id` | string | Created task ID | | ↳ `id` | string | The Salesforce ID of the newly created record |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Whether the create operation was successful |
| ↳ `created` | boolean | Whether task was created | | ↳ `created` | boolean | Whether the record was created \(always true on success\) |
### `salesforce_update_task` ### `salesforce_update_task`
@@ -686,8 +686,8 @@ Update an existing task
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Updated task data | | `output` | object | Updated task data |
| ↳ `id` | string | Updated task ID | | ↳ `id` | string | The Salesforce ID of the updated record |
| ↳ `updated` | boolean | Whether task was updated | | ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |
### `salesforce_delete_task` ### `salesforce_delete_task`
@@ -707,8 +707,8 @@ Delete a task
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Deleted task data | | `output` | object | Deleted task data |
| ↳ `id` | string | Deleted task ID | | ↳ `id` | string | The Salesforce ID of the deleted record |
| ↳ `deleted` | boolean | Whether task was deleted | | ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |
### `salesforce_list_reports` ### `salesforce_list_reports`
@@ -729,9 +729,9 @@ Get a list of reports accessible by the current user
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Reports data | | `output` | object | Reports data |
| ↳ `reports` | array | Array of report objects | | ↳ `totalReturned` | number | Number of items returned |
| ↳ `totalReturned` | number | Number of reports returned | | ↳ `success` | boolean | Salesforce operation success |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `reports` | array | Array of report objects |
### `salesforce_get_report` ### `salesforce_get_report`
@@ -751,9 +751,9 @@ Get metadata and describe information for a specific report
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Report metadata | | `output` | object | Report metadata |
| ↳ `report` | object | Report metadata object | | ↳ `report` | object | Report metadata object |
| ↳ `reportId` | string | Report ID | | ↳ `reportId` | string | Report ID |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Salesforce operation success |
### `salesforce_run_report` ### `salesforce_run_report`
@@ -775,17 +775,17 @@ Execute a report and retrieve the results
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Report results | | `output` | object | Report results |
| ↳ `reportId` | string | Report ID | | ↳ `reportId` | string | Report ID |
| ↳ `reportMetadata` | object | Report metadata | | ↳ `reportMetadata` | object | Report metadata including name, format, and filter definitions |
| ↳ `reportExtendedMetadata` | object | Extended metadata | | ↳ `reportExtendedMetadata` | object | Extended metadata for aggregate columns and groupings |
| ↳ `factMap` | object | Report data organized by groupings | | ↳ `factMap` | object | Report data organized by groupings with aggregates and row data |
| ↳ `groupingsDown` | object | Row groupings | | ↳ `groupingsDown` | object | Row grouping hierarchy and values |
| ↳ `groupingsAcross` | object | Column groupings | | ↳ `groupingsAcross` | object | Column grouping hierarchy and values |
| ↳ `hasDetailRows` | boolean | Whether report has detail rows | | ↳ `hasDetailRows` | boolean | Whether the report includes detail-level row data |
| ↳ `allData` | boolean | Whether all data is returned | | ↳ `allData` | boolean | Whether all data is returned \(false if truncated due to size limits\) |
| ↳ `reportName` | string | Report name | | ↳ `reportName` | string | Display name of the report |
| ↳ `reportFormat` | string | Report format type | | ↳ `reportFormat` | string | Report format type \(TABULAR, SUMMARY, MATRIX, JOINED\) |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Salesforce operation success |
### `salesforce_list_report_types` ### `salesforce_list_report_types`
@@ -804,9 +804,9 @@ Get a list of available report types
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Report types data | | `output` | object | Report types data |
| ↳ `reportTypes` | array | Array of report type objects | | ↳ `totalReturned` | number | Number of items returned |
| ↳ `totalReturned` | number | Number of report types returned | | ↳ `success` | boolean | Salesforce operation success |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `reportTypes` | array | Array of report type objects |
### `salesforce_list_dashboards` ### `salesforce_list_dashboards`
@@ -826,9 +826,9 @@ Get a list of dashboards accessible by the current user
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Dashboards data | | `output` | object | Dashboards data |
| ↳ `dashboards` | array | Array of dashboard objects | | ↳ `totalReturned` | number | Number of items returned |
| ↳ `totalReturned` | number | Number of dashboards returned | | ↳ `success` | boolean | Salesforce operation success |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `dashboards` | array | Array of dashboard objects |
### `salesforce_get_dashboard` ### `salesforce_get_dashboard`
@@ -848,13 +848,13 @@ Get details and results for a specific dashboard
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Dashboard data | | `output` | object | Dashboard data |
| ↳ `dashboard` | object | Dashboard details | | ↳ `dashboard` | object | Full dashboard details object |
| ↳ `dashboardId` | string | Dashboard ID | | ↳ `dashboardId` | string | Dashboard ID |
| ↳ `components` | array | Dashboard component data | | ↳ `components` | array | Array of dashboard component data with visualizations and filters |
| ↳ `dashboardName` | string | Dashboard name | | ↳ `dashboardName` | string | Display name of the dashboard |
| ↳ `folderId` | string | Folder ID containing the dashboard | | ↳ `folderId` | string | ID of the folder containing the dashboard |
| ↳ `runningUser` | object | Running user information | | ↳ `runningUser` | object | User context under which the dashboard data was retrieved |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Salesforce operation success |
### `salesforce_refresh_dashboard` ### `salesforce_refresh_dashboard`
@@ -874,13 +874,13 @@ Refresh a dashboard to get the latest data
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Refreshed dashboard data | | `output` | object | Refreshed dashboard data |
| ↳ `dashboard` | object | Dashboard details | | ↳ `dashboard` | object | Full dashboard details object |
| ↳ `dashboardId` | string | Dashboard ID | | ↳ `dashboardId` | string | Dashboard ID |
| ↳ `components` | array | Dashboard component data | | ↳ `components` | array | Array of dashboard component data with fresh visualizations |
| ↳ `status` | object | Dashboard status | | ↳ `status` | object | Dashboard refresh status information |
| ↳ `dashboardName` | string | Dashboard name | | ↳ `dashboardName` | string | Display name of the dashboard |
| ↳ `refreshDate` | string | Date when dashboard was refreshed | | ↳ `refreshDate` | string | ISO 8601 timestamp when the dashboard was last refreshed |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `success` | boolean | Salesforce operation success |
### `salesforce_query` ### `salesforce_query`
@@ -900,15 +900,12 @@ Execute a custom SOQL query to retrieve data from Salesforce
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Query results | | `output` | object | Query results |
| ↳ `records` | array | Array of record objects | | ↳ `records` | array | Array of sObject records matching the query |
| ↳ `totalSize` | number | Total number of records matching query | | ↳ `query` | string | The executed SOQL query |
| ↳ `done` | boolean | Whether all records have been returned | | ↳ `metadata` | object | Response metadata |
| ↳ `nextRecordsUrl` | string | URL to fetch next batch of records | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `query` | string | The executed SOQL query | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `metadata` | object | Response metadata | | ↳ `success` | boolean | Salesforce operation success |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records exist |
| ↳ `success` | boolean | Salesforce operation success |
### `salesforce_query_more` ### `salesforce_query_more`
@@ -928,14 +925,11 @@ Retrieve additional query results using the nextRecordsUrl from a previous query
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Query results | | `output` | object | Query results |
| ↳ `records` | array | Array of record objects | | ↳ `records` | array | Array of sObject records matching the query |
| ↳ `totalSize` | number | Total number of records matching query | | ↳ `metadata` | object | Response metadata |
| ↳ `done` | boolean | Whether all records have been returned | | ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `nextRecordsUrl` | string | URL to fetch next batch of records | | ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
| ↳ `metadata` | object | Response metadata | | ↳ `success` | boolean | Salesforce operation success |
| ↳ `totalReturned` | number | Number of records returned in this response |
| ↳ `hasMore` | boolean | Whether more records exist |
| ↳ `success` | boolean | Salesforce operation success |
### `salesforce_describe_object` ### `salesforce_describe_object`
@@ -955,19 +949,42 @@ Get metadata and field information for a Salesforce object
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Object metadata | | `output` | object | Object metadata |
| ↳ `objectName` | string | API name of the object | | ↳ `objectName` | string | API name of the object \(e.g., Account, Contact\) |
| ↳ `label` | string | Display label | | ↳ `label` | string | Human-readable singular label for the object |
| ↳ `labelPlural` | string | Plural display label | | ↳ `labelPlural` | string | Human-readable plural label for the object |
| ↳ `fields` | array | Array of field definitions | | ↳ `fields` | array | Array of field metadata objects |
| ↳ `keyPrefix` | string | ID prefix for this object type | | ↳ `name` | string | API name of the field |
| ↳ `queryable` | boolean | Whether object can be queried | | ↳ `label` | string | Display label of the field |
| ↳ `createable` | boolean | Whether records can be created | | ↳ `type` | string | Field data type \(string, boolean, int, double, date, etc.\) |
| ↳ `updateable` | boolean | Whether records can be updated | | ↳ `length` | number | Maximum length for text fields |
| ↳ `deletable` | boolean | Whether records can be deleted | | ↳ `precision` | number | Precision for numeric fields |
| ↳ `childRelationships` | array | Child relationship definitions | | ↳ `scale` | number | Scale for numeric fields |
| ↳ `recordTypeInfos` | array | Record type information | | ↳ `nillable` | boolean | Whether the field can be null |
| ↳ `fieldCount` | number | Number of fields in the object | | ↳ `unique` | boolean | Whether values must be unique |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `createable` | boolean | Whether field can be set on create |
| ↳ `updateable` | boolean | Whether field can be updated |
| ↳ `defaultedOnCreate` | boolean | Whether field has default value on create |
| ↳ `calculated` | boolean | Whether field is a formula field |
| ↳ `autoNumber` | boolean | Whether field is auto-number |
| ↳ `externalId` | boolean | Whether field is an external ID |
| ↳ `idLookup` | boolean | Whether field can be used in ID lookup |
| ↳ `inlineHelpText` | string | Help text for the field |
| ↳ `picklistValues` | array | Available picklist values for picklist fields |
| ↳ `referenceTo` | array | Objects this field can reference \(for lookup fields\) |
| ↳ `relationshipName` | string | Relationship name for lookup fields |
| ↳ `custom` | boolean | Whether this is a custom field |
| ↳ `filterable` | boolean | Whether field can be used in SOQL filter |
| ↳ `groupable` | boolean | Whether field can be used in GROUP BY |
| ↳ `sortable` | boolean | Whether field can be used in ORDER BY |
| ↳ `keyPrefix` | string | Three-character prefix used in record IDs \(e.g., "001" for Account\) |
| ↳ `queryable` | boolean | Whether the object can be queried via SOQL |
| ↳ `createable` | boolean | Whether records can be created for this object |
| ↳ `updateable` | boolean | Whether records can be updated for this object |
| ↳ `deletable` | boolean | Whether records can be deleted for this object |
| ↳ `childRelationships` | array | Array of child relationship metadata for related objects |
| ↳ `recordTypeInfos` | array | Array of record type information for the object |
| ↳ `fieldCount` | number | Total number of fields on the object |
| ↳ `success` | boolean | Salesforce operation success |
### `salesforce_list_objects` ### `salesforce_list_objects`
@@ -986,10 +1003,26 @@ Get a list of all available Salesforce objects
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Objects list | | `output` | object | Objects list |
| ↳ `objects` | array | Array of available Salesforce objects | | ↳ `objects` | array | Array of sObject metadata |
| ↳ `encoding` | string | Encoding used | | ↳ `name` | string | API name of the object |
| ↳ `maxBatchSize` | number | Maximum batch size | | ↳ `label` | string | Display label of the object |
| ↳ `totalReturned` | number | Number of objects returned | | ↳ `labelPlural` | string | Plural display label |
| ↳ `success` | boolean | Salesforce operation success | | ↳ `keyPrefix` | string | Three-character ID prefix |
| ↳ `custom` | boolean | Whether this is a custom object |
| ↳ `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 |
| ↳ `searchable` | boolean | Whether object is searchable |
| ↳ `triggerable` | boolean | Whether triggers are supported |
| ↳ `layoutable` | boolean | Whether page layouts are supported |
| ↳ `replicateable` | boolean | Whether object can be replicated |
| ↳ `retrieveable` | boolean | Whether records can be retrieved |
| ↳ `undeletable` | boolean | Whether records can be undeleted |
| ↳ `urls` | object | URLs for accessing object resources |
| ↳ `encoding` | string | Character encoding for the organization \(e.g., UTF-8\) |
| ↳ `maxBatchSize` | number | Maximum number of records that can be returned in a single query batch \(typically 200\) |
| ↳ `totalReturned` | number | Number of objects returned |
| ↳ `success` | boolean | Salesforce operation success |

View File

@@ -80,20 +80,20 @@ List issues from Sentry for a specific organization and optionally a specific pr
| ↳ `isPublic` | boolean | Whether the issue is publicly visible | | ↳ `isPublic` | boolean | Whether the issue is publicly visible |
| ↳ `platform` | string | Platform where the issue occurred | | ↳ `platform` | string | Platform where the issue occurred |
| ↳ `project` | object | Project information | | ↳ `project` | object | Project information |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `slug` | string | Project slug | | ↳ `slug` | string | Project slug |
| ↳ `platform` | string | Project platform | | ↳ `platform` | string | Project platform |
| ↳ `type` | string | Issue type | | ↳ `type` | string | Issue type |
| ↳ `metadata` | object | Error metadata | | ↳ `metadata` | object | Error metadata |
| ↳ `type` | string | Type of error \(e.g., TypeError\) | | ↳ `type` | string | Type of error \(e.g., TypeError\) |
| ↳ `value` | string | Error message or value | | ↳ `value` | string | Error message or value |
| ↳ `function` | string | Function where the error occurred | | ↳ `function` | string | Function where the error occurred |
| ↳ `numComments` | number | Number of comments on the issue | | ↳ `numComments` | number | Number of comments on the issue |
| ↳ `assignedTo` | object | User assigned to the issue | | ↳ `assignedTo` | object | User assigned to the issue |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `isBookmarked` | boolean | Whether the issue is bookmarked | | ↳ `isBookmarked` | boolean | Whether the issue is bookmarked |
| ↳ `isSubscribed` | boolean | Whether subscribed to updates | | ↳ `isSubscribed` | boolean | Whether subscribed to updates |
| ↳ `hasSeen` | boolean | Whether the user has seen this issue | | ↳ `hasSeen` | boolean | Whether the user has seen this issue |
@@ -105,8 +105,8 @@ List issues from Sentry for a specific organization and optionally a specific pr
| ↳ `lastSeen` | string | When the issue was last seen \(ISO timestamp\) | | ↳ `lastSeen` | string | When the issue was last seen \(ISO timestamp\) |
| ↳ `stats` | object | Statistical information about the issue | | ↳ `stats` | object | Statistical information about the issue |
| `metadata` | object | Pagination metadata | | `metadata` | object | Pagination metadata |
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) | | ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
| ↳ `hasMore` | boolean | Whether there are more results available | | ↳ `hasMore` | boolean | Whether there are more results available |
### `sentry_issues_get` ### `sentry_issues_get`
@@ -125,42 +125,42 @@ Retrieve detailed information about a specific Sentry issue by its ID. Returns c
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `issue` | object | Detailed information about the Sentry issue | | `issue` | object | Detailed information about the Sentry issue |
| ↳ `id` | string | Unique issue ID | | ↳ `id` | string | Unique issue ID |
| ↳ `shortId` | string | Short issue identifier | | ↳ `shortId` | string | Short issue identifier |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `culprit` | string | Function or location that caused the issue | | ↳ `culprit` | string | Function or location that caused the issue |
| ↳ `permalink` | string | Direct link to the issue in Sentry | | ↳ `permalink` | string | Direct link to the issue in Sentry |
| ↳ `logger` | string | Logger name that reported the issue | | ↳ `logger` | string | Logger name that reported the issue |
| ↳ `level` | string | Severity level \(error, warning, info, etc.\) | | ↳ `level` | string | Severity level \(error, warning, info, etc.\) |
| ↳ `status` | string | Current issue status | | ↳ `status` | string | Current issue status |
| ↳ `statusDetails` | object | Additional details about the status | | ↳ `statusDetails` | object | Additional details about the status |
| ↳ `isPublic` | boolean | Whether the issue is publicly visible | | ↳ `isPublic` | boolean | Whether the issue is publicly visible |
| ↳ `platform` | string | Platform where the issue occurred | | ↳ `platform` | string | Platform where the issue occurred |
| ↳ `project` | object | Project information | | ↳ `project` | object | Project information |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `slug` | string | Project slug | | ↳ `slug` | string | Project slug |
| ↳ `platform` | string | Project platform | | ↳ `platform` | string | Project platform |
| ↳ `type` | string | Issue type | | ↳ `type` | string | Issue type |
| ↳ `metadata` | object | Error metadata | | ↳ `metadata` | object | Error metadata |
| ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) | | ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) |
| ↳ `value` | string | Error message or value | | ↳ `value` | string | Error message or value |
| ↳ `function` | string | Function where the error occurred | | ↳ `function` | string | Function where the error occurred |
| ↳ `numComments` | number | Number of comments on the issue | | ↳ `numComments` | number | Number of comments on the issue |
| ↳ `assignedTo` | object | User assigned to the issue \(if any\) | | ↳ `assignedTo` | object | User assigned to the issue \(if any\) |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `isBookmarked` | boolean | Whether the issue is bookmarked | | ↳ `isBookmarked` | boolean | Whether the issue is bookmarked |
| ↳ `isSubscribed` | boolean | Whether the user is subscribed to updates | | ↳ `isSubscribed` | boolean | Whether the user is subscribed to updates |
| ↳ `hasSeen` | boolean | Whether the user has seen this issue | | ↳ `hasSeen` | boolean | Whether the user has seen this issue |
| ↳ `annotations` | array | Issue annotations | | ↳ `annotations` | array | Issue annotations |
| ↳ `isUnhandled` | boolean | Whether the issue is unhandled | | ↳ `isUnhandled` | boolean | Whether the issue is unhandled |
| ↳ `count` | string | Total number of occurrences | | ↳ `count` | string | Total number of occurrences |
| ↳ `userCount` | number | Number of unique users affected | | ↳ `userCount` | number | Number of unique users affected |
| ↳ `firstSeen` | string | When the issue was first seen \(ISO timestamp\) | | ↳ `firstSeen` | string | When the issue was first seen \(ISO timestamp\) |
| ↳ `lastSeen` | string | When the issue was last seen \(ISO timestamp\) | | ↳ `lastSeen` | string | When the issue was last seen \(ISO timestamp\) |
| ↳ `stats` | object | Statistical information about the issue | | ↳ `stats` | object | Statistical information about the issue |
### `sentry_issues_update` ### `sentry_issues_update`
@@ -184,18 +184,18 @@ Update a Sentry issue by changing its status, assignment, bookmark state, or oth
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `issue` | object | The updated Sentry issue | | `issue` | object | The updated Sentry issue |
| ↳ `id` | string | Unique issue ID | | ↳ `id` | string | Unique issue ID |
| ↳ `shortId` | string | Short issue identifier | | ↳ `shortId` | string | Short issue identifier |
| ↳ `title` | string | Issue title | | ↳ `title` | string | Issue title |
| ↳ `status` | string | Updated issue status | | ↳ `status` | string | Updated issue status |
| ↳ `assignedTo` | object | User assigned to the issue \(if any\) | | ↳ `assignedTo` | object | User assigned to the issue \(if any\) |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `isBookmarked` | boolean | Whether the issue is bookmarked | | ↳ `isBookmarked` | boolean | Whether the issue is bookmarked |
| ↳ `isSubscribed` | boolean | Whether the user is subscribed to updates | | ↳ `isSubscribed` | boolean | Whether the user is subscribed to updates |
| ↳ `isPublic` | boolean | Whether the issue is publicly visible | | ↳ `isPublic` | boolean | Whether the issue is publicly visible |
| ↳ `permalink` | string | Direct link to the issue in Sentry | | ↳ `permalink` | string | Direct link to the issue in Sentry |
### `sentry_projects_list` ### `sentry_projects_list`
@@ -224,18 +224,18 @@ List all projects in a Sentry organization. Returns project details including na
| ↳ `isMember` | boolean | Whether the user is a member of the project | | ↳ `isMember` | boolean | Whether the user is a member of the project |
| ↳ `features` | array | Enabled features for the project | | ↳ `features` | array | Enabled features for the project |
| ↳ `organization` | object | Organization information | | ↳ `organization` | object | Organization information |
| ↳ `id` | string | Organization ID | | ↳ `id` | string | Organization ID |
| ↳ `slug` | string | Organization slug | | ↳ `slug` | string | Organization slug |
| ↳ `name` | string | Organization name | | ↳ `name` | string | Organization name |
| ↳ `teams` | array | Teams associated with the project | | ↳ `teams` | array | Teams associated with the project |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `slug` | string | Team slug | | ↳ `slug` | string | Team slug |
| ↳ `status` | string | Project status | | ↳ `status` | string | Project status |
| ↳ `isPublic` | boolean | Whether the project is publicly visible | | ↳ `isPublic` | boolean | Whether the project is publicly visible |
| `metadata` | object | Pagination metadata | | `metadata` | object | Pagination metadata |
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) | | ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
| ↳ `hasMore` | boolean | Whether there are more results available | | ↳ `hasMore` | boolean | Whether there are more results available |
### `sentry_projects_get` ### `sentry_projects_get`
@@ -254,39 +254,39 @@ Retrieve detailed information about a specific Sentry project by its slug. Retur
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | Detailed information about the Sentry project | | `project` | object | Detailed information about the Sentry project |
| ↳ `id` | string | Unique project ID | | ↳ `id` | string | Unique project ID |
| ↳ `slug` | string | URL-friendly project identifier | | ↳ `slug` | string | URL-friendly project identifier |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `platform` | string | Platform/language \(e.g., javascript, python\) | | ↳ `platform` | string | Platform/language \(e.g., javascript, python\) |
| ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) | | ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) |
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked | | ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
| ↳ `isMember` | boolean | Whether the user is a member of the project | | ↳ `isMember` | boolean | Whether the user is a member of the project |
| ↳ `features` | array | Enabled features for the project | | ↳ `features` | array | Enabled features for the project |
| ↳ `firstEvent` | string | When the first event was received \(ISO timestamp\) | | ↳ `firstEvent` | string | When the first event was received \(ISO timestamp\) |
| ↳ `firstTransactionEvent` | string | When the first transaction event was received | | ↳ `firstTransactionEvent` | string | When the first transaction event was received |
| ↳ `access` | array | Access permissions | | ↳ `access` | array | Access permissions |
| ↳ `organization` | object | Organization information | | ↳ `organization` | object | Organization information |
| ↳ `id` | string | Organization ID | | ↳ `id` | string | Organization ID |
| ↳ `slug` | string | Organization slug | | ↳ `slug` | string | Organization slug |
| ↳ `name` | string | Organization name | | ↳ `name` | string | Organization name |
| ↳ `team` | object | Primary team for the project | | ↳ `team` | object | Primary team for the project |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `slug` | string | Team slug | | ↳ `slug` | string | Team slug |
| ↳ `teams` | array | Teams associated with the project | | ↳ `teams` | array | Teams associated with the project |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `slug` | string | Team slug | | ↳ `slug` | string | Team slug |
| ↳ `status` | string | Project status | | ↳ `status` | string | Project status |
| ↳ `color` | string | Project color code | | ↳ `color` | string | Project color code |
| ↳ `isPublic` | boolean | Whether the project is publicly visible | | ↳ `isPublic` | boolean | Whether the project is publicly visible |
| ↳ `isInternal` | boolean | Whether the project is internal | | ↳ `isInternal` | boolean | Whether the project is internal |
| ↳ `hasAccess` | boolean | Whether the user has access to this project | | ↳ `hasAccess` | boolean | Whether the user has access to this project |
| ↳ `hasMinifiedStackTrace` | boolean | Whether minified stack traces are available | | ↳ `hasMinifiedStackTrace` | boolean | Whether minified stack traces are available |
| ↳ `hasMonitors` | boolean | Whether the project has monitors configured | | ↳ `hasMonitors` | boolean | Whether the project has monitors configured |
| ↳ `hasProfiles` | boolean | Whether the project has profiling enabled | | ↳ `hasProfiles` | boolean | Whether the project has profiling enabled |
| ↳ `hasReplays` | boolean | Whether the project has session replays enabled | | ↳ `hasReplays` | boolean | Whether the project has session replays enabled |
| ↳ `hasSessions` | boolean | Whether the project has sessions enabled | | ↳ `hasSessions` | boolean | Whether the project has sessions enabled |
### `sentry_projects_create` ### `sentry_projects_create`
@@ -309,31 +309,31 @@ Create a new Sentry project in an organization. Requires a team to associate the
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | The newly created Sentry project | | `project` | object | The newly created Sentry project |
| ↳ `id` | string | Unique project ID | | ↳ `id` | string | Unique project ID |
| ↳ `slug` | string | URL-friendly project identifier | | ↳ `slug` | string | URL-friendly project identifier |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `platform` | string | Platform/language | | ↳ `platform` | string | Platform/language |
| ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) | | ↳ `dateCreated` | string | When the project was created \(ISO timestamp\) |
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked | | ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
| ↳ `isMember` | boolean | Whether the user is a member | | ↳ `isMember` | boolean | Whether the user is a member |
| ↳ `hasAccess` | boolean | Whether the user has access | | ↳ `hasAccess` | boolean | Whether the user has access |
| ↳ `features` | array | Enabled features | | ↳ `features` | array | Enabled features |
| ↳ `firstEvent` | string | First event timestamp | | ↳ `firstEvent` | string | First event timestamp |
| ↳ `organization` | object | Organization information | | ↳ `organization` | object | Organization information |
| ↳ `id` | string | Organization ID | | ↳ `id` | string | Organization ID |
| ↳ `slug` | string | Organization slug | | ↳ `slug` | string | Organization slug |
| ↳ `name` | string | Organization name | | ↳ `name` | string | Organization name |
| ↳ `team` | object | Primary team for the project | | ↳ `team` | object | Primary team for the project |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `slug` | string | Team slug | | ↳ `slug` | string | Team slug |
| ↳ `teams` | array | Teams associated with the project | | ↳ `teams` | array | Teams associated with the project |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `slug` | string | Team slug | | ↳ `slug` | string | Team slug |
| ↳ `status` | string | Project status | | ↳ `status` | string | Project status |
| ↳ `color` | string | Project color code | | ↳ `color` | string | Project color code |
| ↳ `isPublic` | boolean | Whether the project is public | | ↳ `isPublic` | boolean | Whether the project is public |
### `sentry_projects_update` ### `sentry_projects_update`
@@ -358,19 +358,19 @@ Update a Sentry project by changing its name, slug, platform, or other settings.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `project` | object | The updated Sentry project | | `project` | object | The updated Sentry project |
| ↳ `id` | string | Unique project ID | | ↳ `id` | string | Unique project ID |
| ↳ `slug` | string | URL-friendly project identifier | | ↳ `slug` | string | URL-friendly project identifier |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `platform` | string | Platform/language | | ↳ `platform` | string | Platform/language |
| ↳ `isBookmarked` | boolean | Whether the project is bookmarked | | ↳ `isBookmarked` | boolean | Whether the project is bookmarked |
| ↳ `organization` | object | Organization information | | ↳ `organization` | object | Organization information |
| ↳ `id` | string | Organization ID | | ↳ `id` | string | Organization ID |
| ↳ `slug` | string | Organization slug | | ↳ `slug` | string | Organization slug |
| ↳ `name` | string | Organization name | | ↳ `name` | string | Organization name |
| ↳ `teams` | array | Teams associated with the project | | ↳ `teams` | array | Teams associated with the project |
| ↳ `id` | string | Team ID | | ↳ `id` | string | Team ID |
| ↳ `name` | string | Team name | | ↳ `name` | string | Team name |
| ↳ `slug` | string | Team slug | | ↳ `slug` | string | Team slug |
### `sentry_events_list` ### `sentry_events_list`
@@ -405,31 +405,31 @@ List events from a Sentry project. Can be filtered by issue ID, query, or time p
| ↳ `dateCreated` | string | When the event was created \(ISO timestamp\) | | ↳ `dateCreated` | string | When the event was created \(ISO timestamp\) |
| ↳ `dateReceived` | string | When Sentry received the event \(ISO timestamp\) | | ↳ `dateReceived` | string | When Sentry received the event \(ISO timestamp\) |
| ↳ `user` | object | User information associated with the event | | ↳ `user` | object | User information associated with the event |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `username` | string | Username | | ↳ `username` | string | Username |
| ↳ `ipAddress` | string | IP address | | ↳ `ipAddress` | string | IP address |
| ↳ `name` | string | User display name | | ↳ `name` | string | User display name |
| ↳ `tags` | array | Tags associated with the event | | ↳ `tags` | array | Tags associated with the event |
| ↳ `key` | string | Tag key | | ↳ `key` | string | Tag key |
| ↳ `value` | string | Tag value | | ↳ `value` | string | Tag value |
| ↳ `contexts` | object | Additional context data \(device, OS, etc.\) | | ↳ `contexts` | object | Additional context data \(device, OS, etc.\) |
| ↳ `platform` | string | Platform where the event occurred | | ↳ `platform` | string | Platform where the event occurred |
| ↳ `type` | string | Event type | | ↳ `type` | string | Event type |
| ↳ `metadata` | object | Error metadata | | ↳ `metadata` | object | Error metadata |
| ↳ `type` | string | Type of error \(e.g., TypeError\) | | ↳ `type` | string | Type of error \(e.g., TypeError\) |
| ↳ `value` | string | Error message or value | | ↳ `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.\) | | ↳ `entries` | array | Event entries \(exception, breadcrumbs, etc.\) |
| ↳ `errors` | array | Processing errors | | ↳ `errors` | array | Processing errors |
| ↳ `dist` | string | Distribution identifier | | ↳ `dist` | string | Distribution identifier |
| ↳ `fingerprints` | array | Fingerprints for grouping | | ↳ `fingerprints` | array | Fingerprints for grouping |
| ↳ `sdk` | object | SDK information | | ↳ `sdk` | object | SDK information |
| ↳ `name` | string | SDK name | | ↳ `name` | string | SDK name |
| ↳ `version` | string | SDK version | | ↳ `version` | string | SDK version |
| `metadata` | object | Pagination metadata | | `metadata` | object | Pagination metadata |
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) | | ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
| ↳ `hasMore` | boolean | Whether there are more results available | | ↳ `hasMore` | boolean | Whether there are more results available |
### `sentry_events_get` ### `sentry_events_get`
@@ -449,39 +449,39 @@ Retrieve detailed information about a specific Sentry event by its ID. Returns c
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `event` | object | Detailed information about the Sentry event | | `event` | object | Detailed information about the Sentry event |
| ↳ `id` | string | Unique event ID | | ↳ `id` | string | Unique event ID |
| ↳ `eventID` | string | Event identifier | | ↳ `eventID` | string | Event identifier |
| ↳ `projectID` | string | Project ID | | ↳ `projectID` | string | Project ID |
| ↳ `groupID` | string | Issue group ID this event belongs to | | ↳ `groupID` | string | Issue group ID this event belongs to |
| ↳ `message` | string | Event message | | ↳ `message` | string | Event message |
| ↳ `title` | string | Event title | | ↳ `title` | string | Event title |
| ↳ `location` | string | Location information | | ↳ `location` | string | Location information |
| ↳ `culprit` | string | Function or location that caused the event | | ↳ `culprit` | string | Function or location that caused the event |
| ↳ `dateCreated` | string | When the event was created \(ISO timestamp\) | | ↳ `dateCreated` | string | When the event was created \(ISO timestamp\) |
| ↳ `dateReceived` | string | When Sentry received the event \(ISO timestamp\) | | ↳ `dateReceived` | string | When Sentry received the event \(ISO timestamp\) |
| ↳ `user` | object | User information associated with the event | | ↳ `user` | object | User information associated with the event |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `username` | string | Username | | ↳ `username` | string | Username |
| ↳ `ipAddress` | string | IP address | | ↳ `ipAddress` | string | IP address |
| ↳ `name` | string | User display name | | ↳ `name` | string | User display name |
| ↳ `tags` | array | Tags associated with the event | | ↳ `tags` | array | Tags associated with the event |
| ↳ `key` | string | Tag key | | ↳ `key` | string | Tag key |
| ↳ `value` | string | Tag value | | ↳ `value` | string | Tag value |
| ↳ `contexts` | object | Additional context data \(device, OS, browser, etc.\) | | ↳ `contexts` | object | Additional context data \(device, OS, browser, etc.\) |
| ↳ `platform` | string | Platform where the event occurred | | ↳ `platform` | string | Platform where the event occurred |
| ↳ `type` | string | Event type \(error, transaction, etc.\) | | ↳ `type` | string | Event type \(error, transaction, etc.\) |
| ↳ `metadata` | object | Error metadata | | ↳ `metadata` | object | Error metadata |
| ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) | | ↳ `type` | string | Type of error \(e.g., TypeError, ValueError\) |
| ↳ `value` | string | Error message or value | | ↳ `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 | | ↳ `entries` | array | Event entries including exception, breadcrumbs, and request data |
| ↳ `errors` | array | Processing errors that occurred | | ↳ `errors` | array | Processing errors that occurred |
| ↳ `dist` | string | Distribution identifier | | ↳ `dist` | string | Distribution identifier |
| ↳ `fingerprints` | array | Fingerprints used for grouping events | | ↳ `fingerprints` | array | Fingerprints used for grouping events |
| ↳ `sdk` | object | SDK information | | ↳ `sdk` | object | SDK information |
| ↳ `name` | string | SDK name | | ↳ `name` | string | SDK name |
| ↳ `version` | string | SDK version | | ↳ `version` | string | SDK version |
### `sentry_releases_list` ### `sentry_releases_list`
@@ -513,39 +513,39 @@ List releases for a Sentry organization or project. Returns release details incl
| ↳ `dateStarted` | string | When the release started \(ISO timestamp\) | | ↳ `dateStarted` | string | When the release started \(ISO timestamp\) |
| ↳ `newGroups` | number | Number of new issues introduced in this release | | ↳ `newGroups` | number | Number of new issues introduced in this release |
| ↳ `owner` | object | Owner of the release | | ↳ `owner` | object | Owner of the release |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `name` | string | User name | | ↳ `name` | string | User name |
| ↳ `email` | string | User email | | ↳ `email` | string | User email |
| ↳ `commitCount` | number | Number of commits in this release | | ↳ `commitCount` | number | Number of commits in this release |
| ↳ `deployCount` | number | Number of deploys for this release | | ↳ `deployCount` | number | Number of deploys for this release |
| ↳ `lastCommit` | object | Last commit in the release | | ↳ `lastCommit` | object | Last commit in the release |
| ↳ `id` | string | Commit SHA | | ↳ `id` | string | Commit SHA |
| ↳ `message` | string | Commit message | | ↳ `message` | string | Commit message |
| ↳ `dateCreated` | string | Commit timestamp | | ↳ `dateCreated` | string | Commit timestamp |
| ↳ `lastDeploy` | object | Last deploy of the release | | ↳ `lastDeploy` | object | Last deploy of the release |
| ↳ `id` | string | Deploy ID | | ↳ `id` | string | Deploy ID |
| ↳ `environment` | string | Deploy environment | | ↳ `environment` | string | Deploy environment |
| ↳ `dateStarted` | string | Deploy start timestamp | | ↳ `dateStarted` | string | Deploy start timestamp |
| ↳ `dateFinished` | string | Deploy finish timestamp | | ↳ `dateFinished` | string | Deploy finish timestamp |
| ↳ `authors` | array | Authors of commits in the release | | ↳ `authors` | array | Authors of commits in the release |
| ↳ `id` | string | Author ID | | ↳ `id` | string | Author ID |
| ↳ `name` | string | Author name | | ↳ `name` | string | Author name |
| ↳ `email` | string | Author email | | ↳ `email` | string | Author email |
| ↳ `projects` | array | Projects associated with this release | | ↳ `projects` | array | Projects associated with this release |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `slug` | string | Project slug | | ↳ `slug` | string | Project slug |
| ↳ `platform` | string | Project platform | | ↳ `platform` | string | Project platform |
| ↳ `firstEvent` | string | First event timestamp | | ↳ `firstEvent` | string | First event timestamp |
| ↳ `lastEvent` | string | Last event timestamp | | ↳ `lastEvent` | string | Last event timestamp |
| ↳ `versionInfo` | object | Version metadata | | ↳ `versionInfo` | object | Version metadata |
| ↳ `buildHash` | string | Build hash | | ↳ `buildHash` | string | Build hash |
| ↳ `version` | object | Version details | | ↳ `version` | object | Version details |
| ↳ `raw` | string | Raw version string | | ↳ `raw` | string | Raw version string |
| ↳ `package` | string | Package name | | ↳ `package` | string | Package name |
| `metadata` | object | Pagination metadata | | `metadata` | object | Pagination metadata |
| ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) | | ↳ `nextCursor` | string | Cursor for the next page of results \(if available\) |
| ↳ `hasMore` | boolean | Whether there are more results available | | ↳ `hasMore` | boolean | Whether there are more results available |
### `sentry_releases_create` ### `sentry_releases_create`
@@ -569,46 +569,46 @@ Create a new release in Sentry. A release is a version of your code deployed to
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `release` | object | The newly created Sentry release | | `release` | object | The newly created Sentry release |
| ↳ `id` | string | Unique release ID | | ↳ `id` | string | Unique release ID |
| ↳ `version` | string | Release version identifier | | ↳ `version` | string | Release version identifier |
| ↳ `shortVersion` | string | Shortened version identifier | | ↳ `shortVersion` | string | Shortened version identifier |
| ↳ `ref` | string | Git reference \(commit SHA, tag, or branch\) | | ↳ `ref` | string | Git reference \(commit SHA, tag, or branch\) |
| ↳ `url` | string | URL to the release | | ↳ `url` | string | URL to the release |
| ↳ `dateReleased` | string | When the release was deployed \(ISO timestamp\) | | ↳ `dateReleased` | string | When the release was deployed \(ISO timestamp\) |
| ↳ `dateCreated` | string | When the release was created \(ISO timestamp\) | | ↳ `dateCreated` | string | When the release was created \(ISO timestamp\) |
| ↳ `dateStarted` | string | When the release started \(ISO timestamp\) | | ↳ `dateStarted` | string | When the release started \(ISO timestamp\) |
| ↳ `newGroups` | number | Number of new issues introduced | | ↳ `newGroups` | number | Number of new issues introduced |
| ↳ `commitCount` | number | Number of commits in this release | | ↳ `commitCount` | number | Number of commits in this release |
| ↳ `deployCount` | number | Number of deploys for this release | | ↳ `deployCount` | number | Number of deploys for this release |
| ↳ `owner` | object | Release owner | | ↳ `owner` | object | Release owner |
| ↳ `id` | string | Owner ID | | ↳ `id` | string | Owner ID |
| ↳ `name` | string | Owner name | | ↳ `name` | string | Owner name |
| ↳ `email` | string | Owner email | | ↳ `email` | string | Owner email |
| ↳ `lastCommit` | object | Last commit in the release | | ↳ `lastCommit` | object | Last commit in the release |
| ↳ `id` | string | Commit SHA | | ↳ `id` | string | Commit SHA |
| ↳ `message` | string | Commit message | | ↳ `message` | string | Commit message |
| ↳ `dateCreated` | string | Commit timestamp | | ↳ `dateCreated` | string | Commit timestamp |
| ↳ `lastDeploy` | object | Last deploy of the release | | ↳ `lastDeploy` | object | Last deploy of the release |
| ↳ `id` | string | Deploy ID | | ↳ `id` | string | Deploy ID |
| ↳ `environment` | string | Deploy environment | | ↳ `environment` | string | Deploy environment |
| ↳ `dateStarted` | string | Deploy start timestamp | | ↳ `dateStarted` | string | Deploy start timestamp |
| ↳ `dateFinished` | string | Deploy finish timestamp | | ↳ `dateFinished` | string | Deploy finish timestamp |
| ↳ `authors` | array | Authors of commits in the release | | ↳ `authors` | array | Authors of commits in the release |
| ↳ `id` | string | Author ID | | ↳ `id` | string | Author ID |
| ↳ `name` | string | Author name | | ↳ `name` | string | Author name |
| ↳ `email` | string | Author email | | ↳ `email` | string | Author email |
| ↳ `projects` | array | Projects associated with this release | | ↳ `projects` | array | Projects associated with this release |
| ↳ `id` | string | Project ID | | ↳ `id` | string | Project ID |
| ↳ `name` | string | Project name | | ↳ `name` | string | Project name |
| ↳ `slug` | string | Project slug | | ↳ `slug` | string | Project slug |
| ↳ `platform` | string | Project platform | | ↳ `platform` | string | Project platform |
| ↳ `firstEvent` | string | First event timestamp | | ↳ `firstEvent` | string | First event timestamp |
| ↳ `lastEvent` | string | Last event timestamp | | ↳ `lastEvent` | string | Last event timestamp |
| ↳ `versionInfo` | object | Version metadata | | ↳ `versionInfo` | object | Version metadata |
| ↳ `buildHash` | string | Build hash | | ↳ `buildHash` | string | Build hash |
| ↳ `version` | object | Version details | | ↳ `version` | object | Version details |
| ↳ `raw` | string | Raw version string | | ↳ `raw` | string | Raw version string |
| ↳ `package` | string | Package name | | ↳ `package` | string | Package name |
### `sentry_releases_deploy` ### `sentry_releases_deploy`
@@ -632,11 +632,11 @@ Create a deploy record for a Sentry release in a specific environment. Deploys t
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deploy` | object | The newly created deploy record | | `deploy` | object | The newly created deploy record |
| ↳ `id` | string | Unique deploy ID | | ↳ `id` | string | Unique deploy ID |
| ↳ `environment` | string | Environment name where the release was deployed | | ↳ `environment` | string | Environment name where the release was deployed |
| ↳ `name` | string | Name of the deploy | | ↳ `name` | string | Name of the deploy |
| ↳ `url` | string | URL pointing to the deploy | | ↳ `url` | string | URL pointing to the deploy |
| ↳ `dateStarted` | string | When the deploy started \(ISO timestamp\) | | ↳ `dateStarted` | string | When the deploy started \(ISO timestamp\) |
| ↳ `dateFinished` | string | When the deploy finished \(ISO timestamp\) | | ↳ `dateFinished` | string | When the deploy finished \(ISO timestamp\) |

View File

@@ -35,7 +35,7 @@ Integrate Serper into the workflow. Can search the web.
### `serper_search` ### `serper_search`
A powerful web search tool that provides access to Google search results through Serper.dev API. Supports different types of searches including regular web search, news, places, and images, with each result containing relevant metadata like titles, URLs, snippets, and type-specific information. A powerful web search tool that provides access to Google search results through Serper.dev API. Supports different types of searches including regular web search, news, places, images, videos, and shopping. Returns comprehensive results including organic results, knowledge graph, answer box, people also ask, related searches, and top stories.
#### Input #### Input
@@ -53,5 +53,17 @@ A powerful web search tool that provides access to Google search results through
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `searchResults` | array | Search results with titles, links, snippets, and type-specific metadata \(date for news, rating for places, imageUrl for images\) | | `searchResults` | array | Search results with titles, links, snippets, and type-specific metadata \(date for news, rating for places, imageUrl for images\) |
| ↳ `title` | string | Result title |
| ↳ `link` | string | Result URL |
| ↳ `snippet` | string | Result description/snippet |
| ↳ `position` | number | Position in search results |
| ↳ `date` | string | Publication date \(news/videos\) |
| ↳ `imageUrl` | string | Image URL \(images/news/shopping\) |
| ↳ `source` | string | Source name \(news/videos/shopping\) |
| ↳ `rating` | number | Rating \(places\) |
| ↳ `ratingCount` | number | Number of reviews \(places\) |
| ↳ `address` | string | Address \(places\) |
| ↳ `price` | string | Price \(shopping\) |
| ↳ `duration` | string | Duration \(videos\) |

View File

@@ -52,13 +52,13 @@ Create a new page in a SharePoint site
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `page` | object | Created SharePoint page information | | `page` | object | Created SharePoint page information |
| ↳ `id` | string | The unique ID of the created page | | ↳ `id` | string | The unique ID of the created page |
| ↳ `name` | string | The name of the created page | | ↳ `name` | string | The name of the created page |
| ↳ `title` | string | The title of the created page | | ↳ `title` | string | The title of the created page |
| ↳ `webUrl` | string | The URL to access the page | | ↳ `webUrl` | string | The URL to access the page |
| ↳ `pageLayout` | string | The layout type of the page | | ↳ `pageLayout` | string | The layout type of the page |
| ↳ `createdDateTime` | string | When the page was created | | ↳ `createdDateTime` | string | When the page was created |
| ↳ `lastModifiedDateTime` | string | When the page was last modified | | ↳ `lastModifiedDateTime` | string | When the page was last modified |
### `sharepoint_read_page` ### `sharepoint_read_page`
@@ -79,15 +79,6 @@ Read a specific page from a SharePoint site
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `page` | object | Information about the SharePoint page | | `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 | | ↳ `id` | string | The unique ID of the page |
| ↳ `name` | string | The name of the page | | ↳ `name` | string | The name of the page |
| ↳ `title` | string | The title of the page | | ↳ `title` | string | The title of the page |
@@ -95,12 +86,21 @@ Read a specific page from a SharePoint site
| ↳ `pageLayout` | string | The layout type of the page | | ↳ `pageLayout` | string | The layout type of the page |
| ↳ `createdDateTime` | string | When the page was created | | ↳ `createdDateTime` | string | When the page was created |
| ↳ `lastModifiedDateTime` | string | When the page was last modified | | ↳ `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 |
| ↳ `content` | object | Extracted text content from the page | | ↳ `content` | object | Extracted text content from the page |
| ↳ `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 | | ↳ `content` | string | Extracted text content from the page |
| ↳ `canvasLayout` | object | Raw SharePoint canvas layout structure | | ↳ `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 | | `totalPages` | number | Total number of pages found |
### `sharepoint_list_sites` ### `sharepoint_list_sites`
@@ -119,18 +119,18 @@ List details of all SharePoint sites
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `site` | object | Information about the current SharePoint site | | `site` | object | Information about the current SharePoint site |
| ↳ `id` | string | The unique ID of the site | | ↳ `id` | string | The unique ID of the site |
| ↳ `name` | string | The name of the site | | ↳ `name` | string | The name of the site |
| ↳ `displayName` | string | The display name of the site | | ↳ `displayName` | string | The display name of the site |
| ↳ `webUrl` | string | The URL to access the site | | ↳ `webUrl` | string | The URL to access the site |
| ↳ `description` | string | The description of the site | | ↳ `description` | string | The description of the site |
| ↳ `createdDateTime` | string | When the site was created | | ↳ `createdDateTime` | string | When the site was created |
| ↳ `lastModifiedDateTime` | string | When the site was last modified | | ↳ `lastModifiedDateTime` | string | When the site was last modified |
| ↳ `isPersonalSite` | boolean | Whether this is a personal site | | ↳ `isPersonalSite` | boolean | Whether this is a personal site |
| ↳ `root` | object | Server relative URL | | ↳ `root` | object | Server relative URL |
| ↳ `serverRelativeUrl` | string | Server relative URL | | ↳ `serverRelativeUrl` | string | Server relative URL |
| ↳ `siteCollection` | object | Site collection hostname | | ↳ `siteCollection` | object | Site collection hostname |
| ↳ `hostname` | string | Site collection hostname | | ↳ `hostname` | string | Site collection hostname |
| `sites` | array | List of all accessible SharePoint sites | | `sites` | array | List of all accessible SharePoint sites |
| ↳ `id` | string | The unique ID of the site | | ↳ `id` | string | The unique ID of the site |
| ↳ `name` | string | The name of the site | | ↳ `name` | string | The name of the site |
@@ -160,13 +160,13 @@ Create a new list in a SharePoint site
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `list` | object | Created SharePoint list information | | `list` | object | Created SharePoint list information |
| ↳ `id` | string | The unique ID of the list | | ↳ `id` | string | The unique ID of the list |
| ↳ `displayName` | string | The display name of the list | | ↳ `displayName` | string | The display name of the list |
| ↳ `name` | string | The internal name of the list | | ↳ `name` | string | The internal name of the list |
| ↳ `webUrl` | string | The web URL of the list | | ↳ `webUrl` | string | The web URL of the list |
| ↳ `createdDateTime` | string | When the list was created | | ↳ `createdDateTime` | string | When the list was created |
| ↳ `lastModifiedDateTime` | string | When the list was last modified | | ↳ `lastModifiedDateTime` | string | When the list was last modified |
| ↳ `list` | object | List properties \(e.g., template\) | | ↳ `list` | object | List properties \(e.g., template\) |
### `sharepoint_get_list` ### `sharepoint_get_list`
@@ -185,14 +185,14 @@ Get metadata (and optionally columns/items) for a SharePoint list
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `list` | object | Information about the SharePoint list | | `list` | object | Information about the SharePoint list |
| ↳ `id` | string | The unique ID of the list | | ↳ `id` | string | The unique ID of the list |
| ↳ `displayName` | string | The display name of the list | | ↳ `displayName` | string | The display name of the list |
| ↳ `name` | string | The internal name of the list | | ↳ `name` | string | The internal name of the list |
| ↳ `webUrl` | string | The web URL of the list | | ↳ `webUrl` | string | The web URL of the list |
| ↳ `createdDateTime` | string | When the list was created | | ↳ `createdDateTime` | string | When the list was created |
| ↳ `lastModifiedDateTime` | string | When the list was last modified | | ↳ `lastModifiedDateTime` | string | When the list was last modified |
| ↳ `list` | object | List properties \(e.g., template\) | | ↳ `list` | object | List properties \(e.g., template\) |
| ↳ `columns` | array | List column definitions | | ↳ `columns` | array | List column definitions |
| `lists` | array | All lists in the site when no listId/title provided | | `lists` | array | All lists in the site when no listId/title provided |
### `sharepoint_update_list` ### `sharepoint_update_list`
@@ -214,8 +214,8 @@ Update the properties (fields) on a SharePoint list item
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `item` | object | Updated SharePoint list item | | `item` | object | Updated SharePoint list item |
| ↳ `id` | string | Item ID | | ↳ `id` | string | Item ID |
| ↳ `fields` | object | Updated field values | | ↳ `fields` | object | Updated field values |
### `sharepoint_add_list_items` ### `sharepoint_add_list_items`
@@ -235,8 +235,8 @@ Add a new item to a SharePoint list
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `item` | object | Created SharePoint list item | | `item` | object | Created SharePoint list item |
| ↳ `id` | string | Item ID | | ↳ `id` | string | Item ID |
| ↳ `fields` | object | Field values for the new item | | ↳ `fields` | object | Field values for the new item |
### `sharepoint_upload_file` ### `sharepoint_upload_file`

View File

@@ -53,6 +53,18 @@ Create a new product in your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `product` | object | The created product | | `product` | object | The created product |
| ↳ `id` | string | Unique product identifier \(GID\) |
| ↳ `title` | string | Product title |
| ↳ `handle` | string | URL-friendly product identifier |
| ↳ `descriptionHtml` | string | Product description in HTML format |
| ↳ `vendor` | string | Product vendor or manufacturer |
| ↳ `productType` | string | Product type classification |
| ↳ `tags` | array | Product tags for categorization |
| ↳ `status` | string | Product status \(ACTIVE, DRAFT, ARCHIVED\) |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `variants` | object | Product variants with edges/nodes structure |
| ↳ `images` | object | Product images with edges/nodes structure |
### `shopify_get_product` ### `shopify_get_product`
@@ -70,6 +82,18 @@ Get a single product by ID from your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `product` | object | The product details | | `product` | object | The product details |
| ↳ `id` | string | Unique product identifier \(GID\) |
| ↳ `title` | string | Product title |
| ↳ `handle` | string | URL-friendly product identifier |
| ↳ `descriptionHtml` | string | Product description in HTML format |
| ↳ `vendor` | string | Product vendor or manufacturer |
| ↳ `productType` | string | Product type classification |
| ↳ `tags` | array | Product tags for categorization |
| ↳ `status` | string | Product status \(ACTIVE, DRAFT, ARCHIVED\) |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `variants` | object | Product variants with edges/nodes structure |
| ↳ `images` | object | Product images with edges/nodes structure |
### `shopify_list_products` ### `shopify_list_products`
@@ -88,7 +112,21 @@ List products from your Shopify store with optional filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `products` | array | List of products | | `products` | array | List of products |
| ↳ `id` | string | Unique product identifier \(GID\) |
| ↳ `title` | string | Product title |
| ↳ `handle` | string | URL-friendly product identifier |
| ↳ `descriptionHtml` | string | Product description in HTML format |
| ↳ `vendor` | string | Product vendor or manufacturer |
| ↳ `productType` | string | Product type classification |
| ↳ `tags` | array | Product tags for categorization |
| ↳ `status` | string | Product status \(ACTIVE, DRAFT, ARCHIVED\) |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `variants` | object | Product variants with edges/nodes structure |
| ↳ `images` | object | Product images with edges/nodes structure |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results after this page |
| ↳ `hasPreviousPage` | boolean | Whether there are results before this page |
### `shopify_update_product` ### `shopify_update_product`
@@ -112,6 +150,18 @@ Update an existing product in your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `product` | object | The updated product | | `product` | object | The updated product |
| ↳ `id` | string | Unique product identifier \(GID\) |
| ↳ `title` | string | Product title |
| ↳ `handle` | string | URL-friendly product identifier |
| ↳ `descriptionHtml` | string | Product description in HTML format |
| ↳ `vendor` | string | Product vendor or manufacturer |
| ↳ `productType` | string | Product type classification |
| ↳ `tags` | array | Product tags for categorization |
| ↳ `status` | string | Product status \(ACTIVE, DRAFT, ARCHIVED\) |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `variants` | object | Product variants with edges/nodes structure |
| ↳ `images` | object | Product images with edges/nodes structure |
### `shopify_delete_product` ### `shopify_delete_product`
@@ -146,6 +196,27 @@ Get a single order by ID from your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | The order details | | `order` | object | The order details |
| ↳ `id` | string | Unique order identifier \(GID\) |
| ↳ `name` | string | Order name \(e.g., #1001\) |
| ↳ `email` | string | Customer email for the order |
| ↳ `phone` | string | Customer phone for the order |
| ↳ `createdAt` | string | Order creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `cancelledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `closedAt` | string | Closure timestamp \(ISO 8601\) |
| ↳ `displayFinancialStatus` | string | Financial status \(PENDING, AUTHORIZED, PARTIALLY_PAID, PAID, PARTIALLY_REFUNDED, REFUNDED, VOIDED\) |
| ↳ `displayFulfillmentStatus` | string | Fulfillment status \(UNFULFILLED, PARTIALLY_FULFILLED, FULFILLED, RESTOCKED, PENDING_FULFILLMENT, OPEN, IN_PROGRESS, ON_HOLD, SCHEDULED\) |
| ↳ `totalPriceSet` | object | Total order price |
| ↳ `subtotalPriceSet` | object | Order subtotal \(before shipping and taxes\) |
| ↳ `totalTaxSet` | object | Total tax amount |
| ↳ `totalShippingPriceSet` | object | Total shipping price |
| ↳ `note` | string | Order note |
| ↳ `tags` | array | Order tags |
| ↳ `customer` | object | Customer who placed the order |
| ↳ `lineItems` | object | Order line items with edges/nodes structure |
| ↳ `shippingAddress` | object | Shipping address |
| ↳ `billingAddress` | object | Billing address |
| ↳ `fulfillments` | array | Order fulfillments |
### `shopify_list_orders` ### `shopify_list_orders`
@@ -165,7 +236,30 @@ List orders from your Shopify store with optional filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `orders` | array | List of orders | | `orders` | array | List of orders |
| ↳ `id` | string | Unique order identifier \(GID\) |
| ↳ `name` | string | Order name \(e.g., #1001\) |
| ↳ `email` | string | Customer email for the order |
| ↳ `phone` | string | Customer phone for the order |
| ↳ `createdAt` | string | Order creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `cancelledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `closedAt` | string | Closure timestamp \(ISO 8601\) |
| ↳ `displayFinancialStatus` | string | Financial status \(PENDING, AUTHORIZED, PARTIALLY_PAID, PAID, PARTIALLY_REFUNDED, REFUNDED, VOIDED\) |
| ↳ `displayFulfillmentStatus` | string | Fulfillment status \(UNFULFILLED, PARTIALLY_FULFILLED, FULFILLED, RESTOCKED, PENDING_FULFILLMENT, OPEN, IN_PROGRESS, ON_HOLD, SCHEDULED\) |
| ↳ `totalPriceSet` | object | Total order price |
| ↳ `subtotalPriceSet` | object | Order subtotal \(before shipping and taxes\) |
| ↳ `totalTaxSet` | object | Total tax amount |
| ↳ `totalShippingPriceSet` | object | Total shipping price |
| ↳ `note` | string | Order note |
| ↳ `tags` | array | Order tags |
| ↳ `customer` | object | Customer who placed the order |
| ↳ `lineItems` | object | Order line items with edges/nodes structure |
| ↳ `shippingAddress` | object | Shipping address |
| ↳ `billingAddress` | object | Billing address |
| ↳ `fulfillments` | array | Order fulfillments |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results after this page |
| ↳ `hasPreviousPage` | boolean | Whether there are results before this page |
### `shopify_update_order` ### `shopify_update_order`
@@ -186,6 +280,27 @@ Update an existing order in your Shopify store (note, tags, email)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | The updated order | | `order` | object | The updated order |
| ↳ `id` | string | Unique order identifier \(GID\) |
| ↳ `name` | string | Order name \(e.g., #1001\) |
| ↳ `email` | string | Customer email for the order |
| ↳ `phone` | string | Customer phone for the order |
| ↳ `createdAt` | string | Order creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `cancelledAt` | string | Cancellation timestamp \(ISO 8601\) |
| ↳ `closedAt` | string | Closure timestamp \(ISO 8601\) |
| ↳ `displayFinancialStatus` | string | Financial status \(PENDING, AUTHORIZED, PARTIALLY_PAID, PAID, PARTIALLY_REFUNDED, REFUNDED, VOIDED\) |
| ↳ `displayFulfillmentStatus` | string | Fulfillment status \(UNFULFILLED, PARTIALLY_FULFILLED, FULFILLED, RESTOCKED, PENDING_FULFILLMENT, OPEN, IN_PROGRESS, ON_HOLD, SCHEDULED\) |
| ↳ `totalPriceSet` | object | Total order price |
| ↳ `subtotalPriceSet` | object | Order subtotal \(before shipping and taxes\) |
| ↳ `totalTaxSet` | object | Total tax amount |
| ↳ `totalShippingPriceSet` | object | Total shipping price |
| ↳ `note` | string | Order note |
| ↳ `tags` | array | Order tags |
| ↳ `customer` | object | Customer who placed the order |
| ↳ `lineItems` | object | Order line items with edges/nodes structure |
| ↳ `shippingAddress` | object | Shipping address |
| ↳ `billingAddress` | object | Billing address |
| ↳ `fulfillments` | array | Order fulfillments |
### `shopify_cancel_order` ### `shopify_cancel_order`
@@ -208,6 +323,9 @@ Cancel an order in your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | The cancellation result | | `order` | object | The cancellation result |
| ↳ `id` | string | Job identifier for the cancellation |
| ↳ `cancelled` | boolean | Whether the cancellation completed |
| ↳ `message` | string | Status message |
### `shopify_create_customer` ### `shopify_create_customer`
@@ -231,6 +349,18 @@ Create a new customer in your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customer` | object | The created customer | | `customer` | object | The created customer |
| ↳ `id` | string | Unique customer identifier \(GID\) |
| ↳ `email` | string | Customer email address |
| ↳ `firstName` | string | Customer first name |
| ↳ `lastName` | string | Customer last name |
| ↳ `phone` | string | Customer phone number |
| ↳ `createdAt` | string | Account creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `note` | string | Internal notes about the customer |
| ↳ `tags` | array | Customer tags for categorization |
| ↳ `amountSpent` | object | Total amount spent by customer |
| ↳ `addresses` | array | Customer addresses |
| ↳ `defaultAddress` | object | Customer default address |
### `shopify_get_customer` ### `shopify_get_customer`
@@ -248,6 +378,18 @@ Get a single customer by ID from your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customer` | object | The customer details | | `customer` | object | The customer details |
| ↳ `id` | string | Unique customer identifier \(GID\) |
| ↳ `email` | string | Customer email address |
| ↳ `firstName` | string | Customer first name |
| ↳ `lastName` | string | Customer last name |
| ↳ `phone` | string | Customer phone number |
| ↳ `createdAt` | string | Account creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `note` | string | Internal notes about the customer |
| ↳ `tags` | array | Customer tags for categorization |
| ↳ `amountSpent` | object | Total amount spent by customer |
| ↳ `addresses` | array | Customer addresses |
| ↳ `defaultAddress` | object | Customer default address |
### `shopify_list_customers` ### `shopify_list_customers`
@@ -266,7 +408,21 @@ List customers from your Shopify store with optional filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customers` | array | List of customers | | `customers` | array | List of customers |
| ↳ `id` | string | Unique customer identifier \(GID\) |
| ↳ `email` | string | Customer email address |
| ↳ `firstName` | string | Customer first name |
| ↳ `lastName` | string | Customer last name |
| ↳ `phone` | string | Customer phone number |
| ↳ `createdAt` | string | Account creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `note` | string | Internal notes about the customer |
| ↳ `tags` | array | Customer tags for categorization |
| ↳ `amountSpent` | object | Total amount spent by customer |
| ↳ `addresses` | array | Customer addresses |
| ↳ `defaultAddress` | object | Customer default address |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results after this page |
| ↳ `hasPreviousPage` | boolean | Whether there are results before this page |
### `shopify_update_customer` ### `shopify_update_customer`
@@ -290,6 +446,18 @@ Update an existing customer in your Shopify store
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `customer` | object | The updated customer | | `customer` | object | The updated customer |
| ↳ `id` | string | Unique customer identifier \(GID\) |
| ↳ `email` | string | Customer email address |
| ↳ `firstName` | string | Customer first name |
| ↳ `lastName` | string | Customer last name |
| ↳ `phone` | string | Customer phone number |
| ↳ `createdAt` | string | Account creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `note` | string | Internal notes about the customer |
| ↳ `tags` | array | Customer tags for categorization |
| ↳ `amountSpent` | object | Total amount spent by customer |
| ↳ `addresses` | array | Customer addresses |
| ↳ `defaultAddress` | object | Customer default address |
### `shopify_delete_customer` ### `shopify_delete_customer`
@@ -325,7 +493,26 @@ List inventory items from your Shopify store. Use this to find inventory item ID
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `inventoryItems` | array | List of inventory items with their IDs, SKUs, and stock levels | | `inventoryItems` | array | List of inventory items with their IDs, SKUs, and stock levels |
| ↳ `id` | string | Unique inventory item identifier \(GID\) |
| ↳ `sku` | string | Stock keeping unit |
| ↳ `tracked` | boolean | Whether inventory is tracked |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `variant` | object | Associated product variant |
| ↳ `id` | string | Variant identifier \(GID\) |
| ↳ `title` | string | Variant title |
| ↳ `product` | object | Associated product |
| ↳ `id` | string | Product identifier \(GID\) |
| ↳ `title` | string | Product title |
| ↳ `inventoryLevels` | array | Inventory levels at different locations |
| ↳ `id` | string | Inventory level identifier \(GID\) |
| ↳ `available` | number | Available quantity |
| ↳ `location` | object | Location for this inventory level |
| ↳ `id` | string | Location identifier \(GID\) |
| ↳ `name` | string | Location name |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results after this page |
| ↳ `hasPreviousPage` | boolean | Whether there are results before this page |
### `shopify_get_inventory_level` ### `shopify_get_inventory_level`
@@ -344,6 +531,19 @@ Get inventory level for a product variant at a specific location
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `inventoryLevel` | object | The inventory level details | | `inventoryLevel` | object | The inventory level details |
| ↳ `id` | string | Inventory item identifier \(GID\) |
| ↳ `sku` | string | Stock keeping unit |
| ↳ `tracked` | boolean | Whether inventory is tracked |
| ↳ `levels` | array | Inventory levels at different locations |
| ↳ `id` | string | Inventory level identifier \(GID\) |
| ↳ `available` | number | Available quantity |
| ↳ `onHand` | number | On-hand quantity |
| ↳ `committed` | number | Committed quantity |
| ↳ `incoming` | number | Incoming quantity |
| ↳ `reserved` | number | Reserved quantity |
| ↳ `location` | object | Location for this inventory level |
| ↳ `id` | string | Location identifier \(GID\) |
| ↳ `name` | string | Location name |
### `shopify_adjust_inventory` ### `shopify_adjust_inventory`
@@ -363,6 +563,19 @@ Adjust inventory quantity for a product variant at a specific location
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `inventoryLevel` | object | The inventory adjustment result | | `inventoryLevel` | object | The inventory adjustment result |
| ↳ `adjustmentGroup` | object | Inventory adjustment group details |
| ↳ `createdAt` | string | Adjustment timestamp \(ISO 8601\) |
| ↳ `reason` | string | Adjustment reason |
| ↳ `changes` | array | Inventory changes applied |
| ↳ `name` | string | Quantity name \(e.g., available\) |
| ↳ `delta` | number | Quantity change amount |
| ↳ `quantityAfterChange` | number | Quantity after adjustment |
| ↳ `item` | object | Inventory item |
| ↳ `id` | string | Inventory item identifier \(GID\) |
| ↳ `sku` | string | Stock keeping unit |
| ↳ `location` | object | Location of the adjustment |
| ↳ `id` | string | Location identifier \(GID\) |
| ↳ `name` | string | Location name |
### `shopify_list_locations` ### `shopify_list_locations`
@@ -381,7 +594,14 @@ List inventory locations from your Shopify store. Use this to find location IDs
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `locations` | array | List of locations with their IDs, names, and addresses | | `locations` | array | List of locations with their IDs, names, and addresses |
| ↳ `id` | string | Unique location identifier \(GID\) |
| ↳ `name` | string | Location name |
| ↳ `isActive` | boolean | Whether the location is active |
| ↳ `fulfillsOnlineOrders` | boolean | Whether the location fulfills online orders |
| ↳ `address` | object | Location address |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results after this page |
| ↳ `hasPreviousPage` | boolean | Whether there are results before this page |
### `shopify_create_fulfillment` ### `shopify_create_fulfillment`
@@ -403,6 +623,16 @@ Create a fulfillment to mark order items as shipped. Requires a fulfillment orde
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `fulfillment` | object | The created fulfillment with tracking info and fulfilled items | | `fulfillment` | object | The created fulfillment with tracking info and fulfilled items |
| ↳ `id` | string | Unique fulfillment identifier \(GID\) |
| ↳ `status` | string | Fulfillment status \(pending, open, success, cancelled, error, failure\) |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `trackingInfo` | array | Tracking information for shipments |
| ↳ `fulfillmentLineItems` | array | Fulfilled line items |
| ↳ `id` | string | Fulfillment line item identifier \(GID\) |
| ↳ `quantity` | number | Quantity fulfilled |
| ↳ `lineItem` | object | Associated order line item |
| ↳ `title` | string | Product title |
### `shopify_list_collections` ### `shopify_list_collections`
@@ -421,7 +651,18 @@ List product collections from your Shopify store. Filter by title, type (custom/
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `collections` | array | List of collections with their IDs, titles, and product counts | | `collections` | array | List of collections with their IDs, titles, and product counts |
| ↳ `id` | string | Unique collection identifier \(GID\) |
| ↳ `title` | string | Collection title |
| ↳ `handle` | string | URL-friendly collection identifier |
| ↳ `description` | string | Plain text description |
| ↳ `descriptionHtml` | string | HTML-formatted description |
| ↳ `productsCount` | number | Number of products in the collection |
| ↳ `sortOrder` | string | Product sort order in the collection |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `image` | object | Collection image |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `hasNextPage` | boolean | Whether there are more results after this page |
| ↳ `hasPreviousPage` | boolean | Whether there are results before this page |
### `shopify_get_collection` ### `shopify_get_collection`
@@ -440,5 +681,15 @@ Get a specific collection by ID, including its products. Use this to retrieve pr
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `collection` | object | The collection details including its products | | `collection` | object | The collection details including its products |
| ↳ `id` | string | Unique collection identifier \(GID\) |
| ↳ `title` | string | Collection title |
| ↳ `handle` | string | URL-friendly collection identifier |
| ↳ `description` | string | Plain text description |
| ↳ `descriptionHtml` | string | HTML-formatted description |
| ↳ `productsCount` | number | Number of products in the collection |
| ↳ `sortOrder` | string | Product sort order in the collection |
| ↳ `updatedAt` | string | Last modification timestamp \(ISO 8601\) |
| ↳ `image` | object | Collection image |
| ↳ `products` | array | Products in the collection |

View File

@@ -0,0 +1,183 @@
---
title: Similarweb
description: Website traffic and analytics data
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="similarweb"
color="#000922"
/>
{/* MANUAL-CONTENT-START:intro */}
[Similarweb](https://www.similarweb.com/) is a leading platform for web analytics that provides in-depth traffic and engagement data for millions of websites. Similarweb gives you insights into website visits, traffic sources, audience behavior, and competitive benchmarks.
With Similarweb in Sim, your agents can:
- **Analyze website traffic**: Retrieve key metrics such as monthly visits, average duration, bounce rates, and top countries.
- **Understand audience engagement**: Gain insights into how users interact with websites, including pages per visit and engagement duration.
- **Track rankings and performance**: Access global, country, and category ranks to benchmark sites against competitors.
- **Discover traffic sources**: Break down traffic by channels like direct, search, social, referrals, and more.
Use Sim's Similarweb integration to automate the monitoring of competitors, track your sites performance, or surface actionable market research—all integrated directly into your workflows and automations. Empower your agents to access and utilize reliable web analytics data easily and programmatically.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Access comprehensive website analytics including traffic estimates, engagement metrics, rankings, and traffic sources using the Similarweb API.
## Tools
### `similarweb_website_overview`
Get comprehensive website analytics including traffic, rankings, engagement, and traffic sources
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | SimilarWeb API key |
| `domain` | string | Yes | Website domain to analyze \(without www or protocol\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `siteName` | string | Website name |
| `description` | string | Website description |
| `globalRank` | number | Global traffic rank |
| `countryRank` | number | Country traffic rank |
| `categoryRank` | number | Category traffic rank |
| `category` | string | Website category |
| `monthlyVisits` | number | Estimated monthly visits |
| `engagementVisitDuration` | number | Average visit duration in seconds |
| `engagementPagesPerVisit` | number | Average pages per visit |
| `engagementBounceRate` | number | Bounce rate \(0-1\) |
| `topCountries` | array | Top countries by traffic share |
| ↳ `country` | string | Country code |
| ↳ `share` | number | Traffic share \(0-1\) |
| `trafficSources` | json | Traffic source breakdown |
| ↳ `direct` | number | Direct traffic share |
| ↳ `referrals` | number | Referral traffic share |
| ↳ `search` | number | Search traffic share |
| ↳ `social` | number | Social traffic share |
| ↳ `mail` | number | Email traffic share |
| ↳ `paidReferrals` | number | Paid referral traffic share |
### `similarweb_traffic_visits`
Get total website visits over time (desktop and mobile combined)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | SimilarWeb API key |
| `domain` | string | Yes | Website domain to analyze \(without www or protocol\) |
| `country` | string | Yes | 2-letter ISO country code or "world" for worldwide data |
| `granularity` | string | Yes | Data granularity: daily, weekly, or monthly |
| `startDate` | string | No | Start date in YYYY-MM format |
| `endDate` | string | No | End date in YYYY-MM format |
| `mainDomainOnly` | boolean | No | Exclude subdomains from results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `domain` | string | Analyzed domain |
| `country` | string | Country filter applied |
| `granularity` | string | Data granularity |
| `lastUpdated` | string | Data last updated timestamp |
| `visits` | array | Visit data over time |
| ↳ `date` | string | Date \(YYYY-MM-DD\) |
| ↳ `visits` | number | Number of visits |
### `similarweb_bounce_rate`
Get website bounce rate over time (desktop and mobile combined)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | SimilarWeb API key |
| `domain` | string | Yes | Website domain to analyze \(without www or protocol\) |
| `country` | string | Yes | 2-letter ISO country code or "world" for worldwide data |
| `granularity` | string | Yes | Data granularity: daily, weekly, or monthly |
| `startDate` | string | No | Start date in YYYY-MM format |
| `endDate` | string | No | End date in YYYY-MM format |
| `mainDomainOnly` | boolean | No | Exclude subdomains from results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `domain` | string | Analyzed domain |
| `country` | string | Country filter applied |
| `granularity` | string | Data granularity |
| `lastUpdated` | string | Data last updated timestamp |
| `bounceRate` | array | Bounce rate data over time |
| ↳ `date` | string | Date \(YYYY-MM-DD\) |
| ↳ `bounceRate` | number | Bounce rate \(0-1\) |
### `similarweb_pages_per_visit`
Get average pages per visit over time (desktop and mobile combined)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | SimilarWeb API key |
| `domain` | string | Yes | Website domain to analyze \(without www or protocol\) |
| `country` | string | Yes | 2-letter ISO country code or "world" for worldwide data |
| `granularity` | string | Yes | Data granularity: daily, weekly, or monthly |
| `startDate` | string | No | Start date in YYYY-MM format |
| `endDate` | string | No | End date in YYYY-MM format |
| `mainDomainOnly` | boolean | No | Exclude subdomains from results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `domain` | string | Analyzed domain |
| `country` | string | Country filter applied |
| `granularity` | string | Data granularity |
| `lastUpdated` | string | Data last updated timestamp |
| `pagesPerVisit` | array | Pages per visit data over time |
| ↳ `date` | string | Date \(YYYY-MM-DD\) |
| ↳ `pagesPerVisit` | number | Average pages per visit |
### `similarweb_visit_duration`
Get average desktop visit duration over time (in seconds)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | SimilarWeb API key |
| `domain` | string | Yes | Website domain to analyze \(without www or protocol\) |
| `country` | string | Yes | 2-letter ISO country code or "world" for worldwide data |
| `granularity` | string | Yes | Data granularity: daily, weekly, or monthly |
| `startDate` | string | No | Start date in YYYY-MM format |
| `endDate` | string | No | End date in YYYY-MM format |
| `mainDomainOnly` | boolean | No | Exclude subdomains from results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `domain` | string | Analyzed domain |
| `country` | string | Country filter applied |
| `granularity` | string | Data granularity |
| `lastUpdated` | string | Data last updated timestamp |
| `averageVisitDuration` | array | Desktop visit duration data over time |
| ↳ `date` | string | Date \(YYYY-MM-DD\) |
| ↳ `durationSeconds` | number | Average visit duration in seconds |

View File

@@ -97,6 +97,60 @@ Send messages to Slack channels or direct messages. Supports Slack mrkdwn format
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | object | Complete message object with all properties returned by Slack | | `message` | object | Complete message object with all properties returned by Slack |
| ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `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 |
| ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `last_read` | string | Timestamp of last read message |
| ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `permalink` | string | Permanent URL to the message |
| ↳ `reactions` | array | Reactions on this message |
| ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `count` | number | Number of times this reaction was added |
| ↳ `users` | array | Array of user IDs who reacted |
| ↳ `files` | array | Files attached to the message |
| ↳ `id` | string | Unique file identifier |
| ↳ `name` | string | File name |
| ↳ `mimetype` | string | MIME type of the file |
| ↳ `size` | number | File size in bytes |
| ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `permalink` | string | Permanent link to the file |
| ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Timestamp of the edit |
| `ts` | string | Message timestamp | | `ts` | string | Message timestamp |
| `channel` | string | Channel ID where message was sent | | `channel` | string | Channel ID where message was sent |
| `fileCount` | number | Number of files uploaded \(when files are attached\) | | `fileCount` | number | Number of files uploaded \(when files are attached\) |
@@ -120,9 +174,9 @@ Create and share Slack canvases in channels. Canvases are collaborative document
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `canvas_id` | string | ID of the created canvas | | `canvas_id` | string | Unique canvas identifier |
| `channel` | string | Channel where canvas was created | | `channel` | string | Channel where canvas was created |
| `title` | string | Title of the canvas | | `title` | string | Canvas title |
### `slack_message_reader` ### `slack_message_reader`
@@ -146,43 +200,60 @@ Read the latest messages from Slack channels. Retrieve conversation history with
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `messages` | array | Array of message objects from the channel | | `messages` | array | Array of message objects from the channel |
| ↳ `type` | string | Message type | | ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp | | ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `text` | string | Message text content | | ↳ `text` | string | Message text content |
| ↳ `user` | string | User ID who sent the message | | ↳ `user` | string | User ID who sent the message |
| ↳ `bot_id` | string | Bot ID if sent by a bot | | ↳ `bot_id` | string | Bot ID if sent by a bot |
| ↳ `username` | string | Display username | | ↳ `username` | string | Display username |
| ↳ `channel` | string | Channel ID | | ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team ID | | ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Thread parent message timestamp | | ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent | | ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Number of thread replies | | ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of users who replied | | ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of latest reply | | ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subscribed` | boolean | Whether user is subscribed to thread | | ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `last_read` | string | Last read timestamp | | ↳ `last_read` | string | Timestamp of last read message |
| ↳ `unread_count` | number | Number of unread messages | | ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `subtype` | string | Message subtype | | ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `reactions` | array | Array of reactions on this message | | ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `name` | string | Emoji name | | ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `count` | number | Number of reactions | | ↳ `permalink` | string | Permanent URL to the message |
| ↳ `users` | array | Array of user IDs who reacted | | ↳ `reactions` | array | Reactions on this message |
| ↳ `is_starred` | boolean | Whether message is starred | | ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `pinned_to` | array | Array of channel IDs where message is pinned | | ↳ `count` | number | Number of times this reaction was added |
| ↳ `files` | array | Array of files attached to message | | ↳ `users` | array | Array of user IDs who reacted |
| ↳ `id` | string | File ID | | ↳ `files` | array | Files attached to the message |
| ↳ `name` | string | File name | | ↳ `id` | string | Unique file identifier |
| ↳ `mimetype` | string | MIME type | | ↳ `name` | string | File name |
| ↳ `size` | number | File size in bytes | | ↳ `mimetype` | string | MIME type of the file |
| ↳ `url_private` | string | Private download URL | | ↳ `size` | number | File size in bytes |
| ↳ `permalink` | string | Permanent link to file | | ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `mode` | string | File mode | | ↳ `permalink` | string | Permanent link to the file |
| ↳ `attachments` | array | Array of legacy attachments | | ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `blocks` | array | Array of Block Kit blocks | | ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited | | ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited | | ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Edit timestamp | | ↳ `ts` | string | Timestamp of the edit |
| ↳ `permalink` | string | Permanent link to message |
### `slack_get_message` ### `slack_get_message`
@@ -202,39 +273,60 @@ Retrieve a specific message by its timestamp. Useful for getting a thread parent
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | object | The retrieved message object | | `message` | object | The retrieved message object |
| ↳ `type` | string | Message type | | ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp | | ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `text` | string | Message text content | | ↳ `text` | string | Message text content |
| ↳ `user` | string | User ID who sent the message | | ↳ `user` | string | User ID who sent the message |
| ↳ `bot_id` | string | Bot ID if sent by a bot | | ↳ `bot_id` | string | Bot ID if sent by a bot |
| ↳ `username` | string | Display username | | ↳ `username` | string | Display username |
| ↳ `channel` | string | Channel ID | | ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team ID | | ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Thread parent timestamp | | ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent | | ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Number of thread replies | | ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of users who replied | | ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of latest reply | | ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subtype` | string | Message subtype | | ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `reactions` | array | Array of reactions on this message | | ↳ `last_read` | string | Timestamp of last read message |
| ↳ `name` | string | Emoji name | | ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `count` | number | Number of reactions | | ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `users` | array | User IDs who reacted | | ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `is_starred` | boolean | Whether message is starred | | ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `pinned_to` | array | Channel IDs where message is pinned | | ↳ `permalink` | string | Permanent URL to the message |
| ↳ `files` | array | Files attached to message | | ↳ `reactions` | array | Reactions on this message |
| ↳ `id` | string | File ID | | ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `name` | string | File name | | ↳ `count` | number | Number of times this reaction was added |
| ↳ `mimetype` | string | MIME type | | ↳ `users` | array | Array of user IDs who reacted |
| ↳ `size` | number | File size in bytes | | ↳ `files` | array | Files attached to the message |
| ↳ `url_private` | string | Private download URL | | ↳ `id` | string | Unique file identifier |
| ↳ `permalink` | string | Permanent link to file | | ↳ `name` | string | File name |
| ↳ `attachments` | array | Legacy attachments | | ↳ `mimetype` | string | MIME type of the file |
| ↳ `blocks` | array | Block Kit blocks | | ↳ `size` | number | File size in bytes |
| ↳ `edited` | object | Edit information if message was edited | | ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `user` | string | User ID who edited | | ↳ `permalink` | string | Permanent link to the file |
| ↳ `ts` | string | Edit timestamp | | ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `permalink` | string | Permanent link to message | | ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Timestamp of the edit |
### `slack_get_thread` ### `slack_get_thread`
@@ -255,31 +347,170 @@ Retrieve an entire thread including the parent message and all replies. Useful f
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `parentMessage` | object | The thread parent message | | `parentMessage` | object | The thread parent message |
| ↳ `type` | string | Message type | | ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp | | ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `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 |
| ↳ `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 |
| `replies` | array | Array of reply messages in the thread \(excluding the parent\) |
| ↳ `ts` | string | Message timestamp |
| ↳ `text` | string | Message text content | | ↳ `text` | string | Message text content |
| ↳ `user` | string | User ID who sent the reply | | ↳ `user` | string | User ID who sent the message |
| ↳ `reactions` | array | Reactions on the reply | | ↳ `bot_id` | string | Bot ID if sent by a bot |
| ↳ `files` | array | Files attached to the reply | | ↳ `username` | string | Display username |
| ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `last_read` | string | Timestamp of last read message |
| ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `permalink` | string | Permanent URL to the message |
| ↳ `reactions` | array | Reactions on this message |
| ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `count` | number | Number of times this reaction was added |
| ↳ `users` | array | Array of user IDs who reacted |
| ↳ `files` | array | Files attached to the message |
| ↳ `id` | string | Unique file identifier |
| ↳ `name` | string | File name |
| ↳ `mimetype` | string | MIME type of the file |
| ↳ `size` | number | File size in bytes |
| ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `permalink` | string | Permanent link to the file |
| ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Timestamp of the edit |
| `replies` | array | Array of reply messages in the thread \(excluding the parent\) |
| ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `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 |
| ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `last_read` | string | Timestamp of last read message |
| ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `permalink` | string | Permanent URL to the message |
| ↳ `reactions` | array | Reactions on this message |
| ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `count` | number | Number of times this reaction was added |
| ↳ `users` | array | Array of user IDs who reacted |
| ↳ `files` | array | Files attached to the message |
| ↳ `id` | string | Unique file identifier |
| ↳ `name` | string | File name |
| ↳ `mimetype` | string | MIME type of the file |
| ↳ `size` | number | File size in bytes |
| ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `permalink` | string | Permanent link to the file |
| ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Timestamp of the edit |
| `messages` | array | All messages in the thread \(parent + replies\) in chronological order | | `messages` | array | All messages in the thread \(parent + replies\) in chronological order |
| ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `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 |
| ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `last_read` | string | Timestamp of last read message |
| ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `permalink` | string | Permanent URL to the message |
| ↳ `reactions` | array | Reactions on this message |
| ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `count` | number | Number of times this reaction was added |
| ↳ `users` | array | Array of user IDs who reacted |
| ↳ `files` | array | Files attached to the message |
| ↳ `id` | string | Unique file identifier |
| ↳ `name` | string | File name |
| ↳ `mimetype` | string | MIME type of the file |
| ↳ `size` | number | File size in bytes |
| ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `permalink` | string | Permanent link to the file |
| ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Timestamp of the edit |
| `replyCount` | number | Number of replies returned in this response | | `replyCount` | number | Number of replies returned in this response |
| `hasMore` | boolean | Whether there are more messages in the thread \(pagination needed\) | | `hasMore` | boolean | Whether there are more messages in the thread \(pagination needed\) |
@@ -304,14 +535,20 @@ List all channels in a Slack workspace. Returns public and private channels the
| `channels` | array | Array of channel objects from the workspace | | `channels` | array | Array of channel objects from the workspace |
| ↳ `id` | string | Channel ID \(e.g., C1234567890\) | | ↳ `id` | string | Channel ID \(e.g., C1234567890\) |
| ↳ `name` | string | Channel name without # prefix | | ↳ `name` | string | Channel name without # prefix |
| ↳ `is_private` | boolean | Whether the channel is private | | ↳ `is_channel` | boolean | Whether this is a channel |
| ↳ `is_archived` | boolean | Whether the channel is archived | | ↳ `is_private` | boolean | Whether channel is private |
| ↳ `is_member` | boolean | Whether the bot is a member of the channel | | ↳ `is_archived` | boolean | Whether channel is archived |
| ↳ `is_general` | boolean | Whether this is the general channel |
| ↳ `is_member` | boolean | Whether the bot/user is a member |
| ↳ `is_shared` | boolean | Whether channel is shared across workspaces |
| ↳ `is_ext_shared` | boolean | Whether channel is externally shared |
| ↳ `is_org_shared` | boolean | Whether channel is org-wide shared |
| ↳ `num_members` | number | Number of members in the channel | | ↳ `num_members` | number | Number of members in the channel |
| ↳ `topic` | string | Channel topic | | ↳ `topic` | string | Channel topic |
| ↳ `purpose` | string | Channel purpose/description | | ↳ `purpose` | string | Channel purpose/description |
| ↳ `created` | number | Unix timestamp when channel was created | | ↳ `created` | number | Unix timestamp when channel was created |
| ↳ `creator` | string | User ID of channel creator | | ↳ `creator` | string | User ID of channel creator |
| ↳ `updated` | number | Unix timestamp of last update |
| `ids` | array | Array of channel IDs for easy access | | `ids` | array | Array of channel IDs for easy access |
| `names` | array | Array of channel names for easy access | | `names` | array | Array of channel names for easy access |
| `count` | number | Total number of channels returned | | `count` | number | Total number of channels returned |
@@ -387,34 +624,40 @@ Get detailed information about a specific Slack user by their user ID.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | Detailed user information | | `user` | object | Detailed user information |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID \(e.g., U1234567890\) |
| ↳ `name` | string | Username \(handle\) | | ↳ `team_id` | string | Workspace/team ID |
| ↳ `real_name` | string | Full real name | | ↳ `name` | string | Username \(handle\) |
| ↳ `display_name` | string | Display name shown in Slack | | ↳ `real_name` | string | Full real name |
| ↳ `first_name` | string | First name | | ↳ `display_name` | string | Display name shown in Slack |
| ↳ `last_name` | string | Last name | | ↳ `first_name` | string | First name |
| ↳ `title` | string | Job title | | ↳ `last_name` | string | Last name |
| ↳ `phone` | string | Phone number | | ↳ `title` | string | Job title |
| ↳ `skype` | string | Skype handle | | ↳ `phone` | string | Phone number |
| ↳ `is_bot` | boolean | Whether the user is a bot | | ↳ `skype` | string | Skype handle |
| ↳ `is_admin` | boolean | Whether the user is a workspace admin | | ↳ `is_bot` | boolean | Whether the user is a bot |
| ↳ `is_owner` | boolean | Whether the user is the workspace owner | | ↳ `is_admin` | boolean | Whether the user is a workspace admin |
| ↳ `is_primary_owner` | boolean | Whether the user is the primary owner | | ↳ `is_owner` | boolean | Whether the user is the workspace owner |
| ↳ `is_restricted` | boolean | Whether the user is a guest \(restricted\) | | ↳ `is_primary_owner` | boolean | Whether the user is the primary owner |
| ↳ `is_ultra_restricted` | boolean | Whether the user is a single-channel guest | | ↳ `is_restricted` | boolean | Whether the user is a guest \(restricted\) |
| ↳ `deleted` | boolean | Whether the user is deactivated | | ↳ `is_ultra_restricted` | boolean | Whether the user is a single-channel guest |
| ↳ `timezone` | string | Timezone identifier \(e.g., America/Los_Angeles\) | | ↳ `is_app_user` | boolean | Whether user is an app user |
| ↳ `timezone_label` | string | Human-readable timezone label | | ↳ `is_stranger` | boolean | Whether user is from different workspace |
| ↳ `timezone_offset` | number | Timezone offset in seconds from UTC | | ↳ `deleted` | boolean | Whether the user is deactivated |
| ↳ `avatar_24` | string | URL to 24px avatar | | ↳ `color` | string | User color for display |
| ↳ `avatar_48` | string | URL to 48px avatar | | ↳ `timezone` | string | Timezone identifier \(e.g., America/Los_Angeles\) |
| ↳ `avatar_72` | string | URL to 72px avatar | | ↳ `timezone_label` | string | Human-readable timezone label |
| ↳ `avatar_192` | string | URL to 192px avatar | | ↳ `timezone_offset` | number | Timezone offset in seconds from UTC |
| ↳ `avatar_512` | string | URL to 512px avatar | | ↳ `avatar` | string | URL to user avatar image |
| ↳ `status_text` | string | Custom status text | | ↳ `avatar_24` | string | URL to 24px avatar |
| ↳ `status_emoji` | string | Custom status emoji | | ↳ `avatar_48` | string | URL to 48px avatar |
| ↳ `status_expiration` | number | Unix timestamp when status expires | | ↳ `avatar_72` | string | URL to 72px avatar |
| ↳ `updated` | number | Unix timestamp of last profile update | | ↳ `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 |
| ↳ `has_2fa` | boolean | Whether two-factor auth is enabled |
### `slack_download` ### `slack_download`
@@ -454,11 +697,65 @@ Update a message previously sent by the bot in Slack
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | object | Complete updated message object with all properties returned by Slack | | `message` | object | Complete updated message object with all properties returned by Slack |
| ↳ `type` | string | Message type \(usually "message"\) |
| ↳ `ts` | string | Message timestamp \(unique identifier\) |
| ↳ `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 |
| ↳ `channel` | string | Channel ID |
| ↳ `team` | string | Team/workspace ID |
| ↳ `thread_ts` | string | Parent message timestamp \(for threaded replies\) |
| ↳ `parent_user_id` | string | User ID of thread parent message author |
| ↳ `reply_count` | number | Total number of replies in thread |
| ↳ `reply_users_count` | number | Number of unique users who replied |
| ↳ `latest_reply` | string | Timestamp of most recent reply |
| ↳ `subscribed` | boolean | Whether user is subscribed to thread |
| ↳ `last_read` | string | Timestamp of last read message |
| ↳ `unread_count` | number | Number of unread messages in thread |
| ↳ `subtype` | string | Message subtype \(bot_message, file_share, etc.\) |
| ↳ `is_starred` | boolean | Whether message is starred by user |
| ↳ `pinned_to` | array | Channel IDs where message is pinned |
| ↳ `permalink` | string | Permanent URL to the message |
| ↳ `reactions` | array | Reactions on this message |
| ↳ `name` | string | Emoji name \(without colons\) |
| ↳ `count` | number | Number of times this reaction was added |
| ↳ `users` | array | Array of user IDs who reacted |
| ↳ `files` | array | Files attached to the message |
| ↳ `id` | string | Unique file identifier |
| ↳ `name` | string | File name |
| ↳ `mimetype` | string | MIME type of the file |
| ↳ `size` | number | File size in bytes |
| ↳ `url_private` | string | Private download URL \(requires auth\) |
| ↳ `permalink` | string | Permanent link to the file |
| ↳ `mode` | string | File mode \(hosted, external, etc.\) |
| ↳ `attachments` | array | Legacy attachments on the message |
| ↳ `id` | number | Attachment ID |
| ↳ `fallback` | string | Plain text summary |
| ↳ `text` | string | Main attachment text |
| ↳ `pretext` | string | Text shown before attachment |
| ↳ `color` | string | Color bar hex code or preset |
| ↳ `author_name` | string | Author display name |
| ↳ `author_link` | string | Author link URL |
| ↳ `author_icon` | string | Author icon URL |
| ↳ `title` | string | Attachment title |
| ↳ `title_link` | string | Title link URL |
| ↳ `image_url` | string | Image URL |
| ↳ `thumb_url` | string | Thumbnail URL |
| ↳ `footer` | string | Footer text |
| ↳ `footer_icon` | string | Footer icon URL |
| ↳ `ts` | string | Timestamp shown in footer |
| ↳ `blocks` | array | Block Kit blocks in the message |
| ↳ `type` | string | Block type \(section, divider, image, actions, etc.\) |
| ↳ `block_id` | string | Unique block identifier |
| ↳ `edited` | object | Edit information if message was edited |
| ↳ `user` | string | User ID who edited the message |
| ↳ `ts` | string | Timestamp of the edit |
| `content` | string | Success message | | `content` | string | Success message |
| `metadata` | object | Updated message metadata | | `metadata` | object | Updated message metadata |
| ↳ `channel` | string | Channel ID | | ↳ `channel` | string | Channel ID |
| ↳ `timestamp` | string | Message timestamp | | ↳ `timestamp` | string | Message timestamp |
| ↳ `text` | string | Updated message text | | ↳ `text` | string | Updated message text |
### `slack_delete_message` ### `slack_delete_message`
@@ -479,8 +776,8 @@ Delete a message previously sent by the bot in Slack
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `content` | string | Success message | | `content` | string | Success message |
| `metadata` | object | Deleted message metadata | | `metadata` | object | Deleted message metadata |
| ↳ `channel` | string | Channel ID | | ↳ `channel` | string | Channel ID |
| ↳ `timestamp` | string | Message timestamp | | ↳ `timestamp` | string | Message timestamp |
### `slack_add_reaction` ### `slack_add_reaction`
@@ -502,8 +799,8 @@ Add an emoji reaction to a Slack message
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `content` | string | Success message | | `content` | string | Success message |
| `metadata` | object | Reaction metadata | | `metadata` | object | Reaction metadata |
| ↳ `channel` | string | Channel ID | | ↳ `channel` | string | Channel ID |
| ↳ `timestamp` | string | Message timestamp | | ↳ `timestamp` | string | Message timestamp |
| ↳ `reaction` | string | Emoji reaction name | | ↳ `reaction` | string | Emoji reaction name |

View File

@@ -79,13 +79,19 @@ Run an autonomous web agent to complete tasks and extract structured data
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `agentResult` | object | Result from the Stagehand agent execution | | `agentResult` | object | Result from the Stagehand agent execution |
| ↳ `success` | boolean | Whether the agent task completed successfully | | ↳ `success` | boolean | Whether the agent task completed successfully without errors |
| ↳ `completed` | boolean | Whether the task was fully completed | | ↳ `completed` | boolean | Whether the agent finished executing \(may be false if max steps reached\) |
| ↳ `message` | string | Status message or final result | | ↳ `message` | string | Final status message or result summary from the agent |
| ↳ `actions` | array | Type of action performed | | ↳ `actions` | array | List of all actions performed by the agent during task execution |
| ↳ `type` | string | Type of action performed | | ↳ `type` | string | Type of action performed \(e.g., "act", "observe", "ariaTree", "close", "wait", "navigate"\) |
| ↳ `params` | object | Parameters used for the action | | ↳ `reasoning` | string | AI reasoning for why this action was taken |
| ↳ `result` | object | Result of the action | | ↳ `taskCompleted` | boolean | Whether the task was completed after this action |
| ↳ `action` | string | Description of the action taken \(e.g., "click the submit button"\) |
| ↳ `instruction` | string | Instruction that triggered this action |
| ↳ `pageUrl` | string | URL of the page when this action was performed |
| ↳ `pageText` | string | Page text content \(for ariaTree actions\) |
| ↳ `timestamp` | number | Unix timestamp when the action was performed |
| ↳ `timeMs` | number | Time in milliseconds \(for wait actions\) |
| `structuredOutput` | object | Extracted data matching the provided output schema | | `structuredOutput` | object | Extracted data matching the provided output schema |

File diff suppressed because it is too large Load Diff

View File

@@ -74,6 +74,11 @@ Transcribe audio to text using OpenAI Whisper
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `transcript` | string | Full transcribed text | | `transcript` | string | Full transcribed text |
| `segments` | array | Timestamped segments | | `segments` | array | Timestamped segments |
| ↳ `text` | string | Transcribed text for this segment |
| ↳ `start` | number | Start time in seconds |
| ↳ `end` | number | End time in seconds |
| ↳ `speaker` | string | Speaker identifier \(if diarization enabled\) |
| ↳ `confidence` | number | Confidence score \(0-1\) |
| `language` | string | Detected or specified language | | `language` | string | Detected or specified language |
| `duration` | number | Audio duration in seconds | | `duration` | number | Audio duration in seconds |
@@ -101,6 +106,11 @@ Transcribe audio to text using Deepgram
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `transcript` | string | Full transcribed text | | `transcript` | string | Full transcribed text |
| `segments` | array | Timestamped segments with speaker labels | | `segments` | array | Timestamped segments with speaker labels |
| ↳ `text` | string | Transcribed text for this segment |
| ↳ `start` | number | Start time in seconds |
| ↳ `end` | number | End time in seconds |
| ↳ `speaker` | string | Speaker identifier \(if diarization enabled\) |
| ↳ `confidence` | number | Confidence score \(0-1\) |
| `language` | string | Detected or specified language | | `language` | string | Detected or specified language |
| `duration` | number | Audio duration in seconds | | `duration` | number | Audio duration in seconds |
| `confidence` | number | Overall confidence score | | `confidence` | number | Overall confidence score |
@@ -160,11 +170,25 @@ Transcribe audio to text using AssemblyAI with advanced NLP features
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `transcript` | string | Full transcribed text | | `transcript` | string | Full transcribed text |
| `segments` | array | Timestamped segments with speaker labels | | `segments` | array | Timestamped segments with speaker labels |
| ↳ `text` | string | Transcribed text for this segment |
| ↳ `start` | number | Start time in seconds |
| ↳ `end` | number | End time in seconds |
| ↳ `speaker` | string | Speaker identifier \(if diarization enabled\) |
| ↳ `confidence` | number | Confidence score \(0-1\) |
| `language` | string | Detected or specified language | | `language` | string | Detected or specified language |
| `duration` | number | Audio duration in seconds | | `duration` | number | Audio duration in seconds |
| `confidence` | number | Overall confidence score | | `confidence` | number | Overall confidence score |
| `sentiment` | array | Sentiment analysis results | | `sentiment` | array | Sentiment analysis results |
| ↳ `text` | string | Text that was analyzed |
| ↳ `sentiment` | string | Sentiment \(POSITIVE, NEGATIVE, NEUTRAL\) |
| ↳ `confidence` | number | Confidence score |
| ↳ `start` | number | Start time in milliseconds |
| ↳ `end` | number | End time in milliseconds |
| `entities` | array | Detected entities | | `entities` | array | Detected entities |
| ↳ `entity_type` | string | Entity type \(e.g., person_name, location, organization\) |
| ↳ `text` | string | Entity text |
| ↳ `start` | number | Start time in milliseconds |
| ↳ `end` | number | End time in milliseconds |
| `summary` | string | Auto-generated summary | | `summary` | string | Auto-generated summary |
### `stt_gemini` ### `stt_gemini`

View File

@@ -282,9 +282,24 @@ Introspect Supabase database schema to get table structures, columns, and relati
| ↳ `name` | string | Table name | | ↳ `name` | string | Table name |
| ↳ `schema` | string | Database schema name | | ↳ `schema` | string | Database schema name |
| ↳ `columns` | array | Array of column definitions | | ↳ `columns` | array | Array of column definitions |
| ↳ `name` | string | Column name |
| ↳ `type` | string | Column data type |
| ↳ `nullable` | boolean | Whether the column allows null values |
| ↳ `default` | string | Default value for the column |
| ↳ `isPrimaryKey` | boolean | Whether the column is a primary key |
| ↳ `isForeignKey` | boolean | Whether the column is a foreign key |
| ↳ `references` | object | Foreign key reference details |
| ↳ `table` | string | Referenced table name |
| ↳ `column` | string | Referenced column name |
| ↳ `primaryKey` | array | Array of primary key column names | | ↳ `primaryKey` | array | Array of primary key column names |
| ↳ `foreignKeys` | array | Array of foreign key relationships | | ↳ `foreignKeys` | array | Array of foreign key relationships |
| ↳ `column` | string | Local column name |
| ↳ `referencesTable` | string | Referenced table name |
| ↳ `referencesColumn` | string | Referenced column name |
| ↳ `indexes` | array | Array of index definitions | | ↳ `indexes` | array | Array of index definitions |
| ↳ `name` | string | Index name |
| ↳ `columns` | array | Columns included in the index |
| ↳ `unique` | boolean | Whether the index enforces uniqueness |
| `schemas` | array | List of schemas found in the database | | `schemas` | array | List of schemas found in the database |
### `supabase_storage_upload` ### `supabase_storage_upload`
@@ -310,6 +325,9 @@ Upload a file to a Supabase storage bucket
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | object | Upload result including file path, bucket, and public URL | | `results` | object | Upload result including file path, bucket, and public URL |
| ↳ `id` | string | Unique identifier for the uploaded file |
| ↳ `path` | string | Path to the uploaded file within the bucket |
| ↳ `fullPath` | string | Full path including bucket name |
### `supabase_storage_download` ### `supabase_storage_download`
@@ -355,6 +373,19 @@ List files in a Supabase storage bucket
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | array | Array of file objects with metadata | | `results` | array | Array of file objects with metadata |
| ↳ `id` | string | Unique file identifier |
| ↳ `name` | string | File name |
| ↳ `bucket_id` | string | Bucket identifier the file belongs to |
| ↳ `owner` | string | Owner identifier |
| ↳ `created_at` | string | File creation timestamp |
| ↳ `updated_at` | string | Last update timestamp |
| ↳ `last_accessed_at` | string | Last access timestamp |
| ↳ `metadata` | object | File metadata including size and MIME type |
| ↳ `size` | number | File size in bytes |
| ↳ `mimetype` | string | MIME type of the file |
| ↳ `cacheControl` | string | Cache control header value |
| ↳ `lastModified` | string | Last modified timestamp |
| ↳ `eTag` | string | Entity tag for caching |
### `supabase_storage_delete` ### `supabase_storage_delete`
@@ -375,6 +406,13 @@ Delete files from a Supabase storage bucket
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | array | Array of deleted file objects | | `results` | array | Array of deleted file objects |
| ↳ `name` | string | Name of the deleted file |
| ↳ `bucket_id` | string | Bucket identifier |
| ↳ `owner` | string | Owner identifier |
| ↳ `id` | string | Unique file identifier |
| ↳ `updated_at` | string | Last update timestamp |
| ↳ `created_at` | string | File creation timestamp |
| ↳ `last_accessed_at` | string | Last access timestamp |
### `supabase_storage_move` ### `supabase_storage_move`
@@ -396,6 +434,7 @@ Move a file within a Supabase storage bucket
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | object | Move operation result | | `results` | object | Move operation result |
| ↳ `message` | string | Operation status message |
### `supabase_storage_copy` ### `supabase_storage_copy`
@@ -417,6 +456,7 @@ Copy a file within a Supabase storage bucket
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | object | Copy operation result | | `results` | object | Copy operation result |
| ↳ `message` | string | Operation status message |
### `supabase_storage_create_bucket` ### `supabase_storage_create_bucket`
@@ -439,6 +479,7 @@ Create a new storage bucket in Supabase
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | object | Created bucket information | | `results` | object | Created bucket information |
| ↳ `name` | string | Created bucket name |
### `supabase_storage_list_buckets` ### `supabase_storage_list_buckets`
@@ -457,6 +498,14 @@ List all storage buckets in Supabase
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | array | Array of bucket objects | | `results` | array | Array of bucket objects |
| ↳ `id` | string | Unique bucket identifier |
| ↳ `name` | string | Bucket name |
| ↳ `owner` | string | Owner identifier |
| ↳ `public` | boolean | Whether the bucket is publicly accessible |
| ↳ `created_at` | string | Bucket creation timestamp |
| ↳ `updated_at` | string | Last update timestamp |
| ↳ `file_size_limit` | number | Maximum file size allowed in bytes |
| ↳ `allowed_mime_types` | array | List of allowed MIME types for uploads |
### `supabase_storage_delete_bucket` ### `supabase_storage_delete_bucket`
@@ -476,6 +525,7 @@ Delete a storage bucket in Supabase
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Operation status message | | `message` | string | Operation status message |
| `results` | object | Delete operation result | | `results` | object | Delete operation result |
| ↳ `message` | string | Operation status message |
### `supabase_storage_get_public_url` ### `supabase_storage_get_public_url`

View File

@@ -65,9 +65,17 @@ Perform AI-powered web searches using Tavily
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `query` | string | The search query that was executed | | `query` | string | The search query that was executed |
| `results` | array | Search results with titles, URLs, content snippets, and optional metadata | | `results` | array | Ranked search results with titles, URLs, content snippets, and optional metadata |
| ↳ `title` | string | Result title |
| ↳ `url` | string | Result URL |
| ↳ `content` | string | Brief description or content snippet |
| ↳ `score` | number | Relevance score |
| ↳ `raw_content` | string | Full parsed HTML content \(if requested\) |
| ↳ `favicon` | string | Favicon URL for the domain |
| `answer` | string | LLM-generated answer to the query \(if requested\) | | `answer` | string | LLM-generated answer to the query \(if requested\) |
| `images` | array | Query-related images \(if requested\) | | `images` | array | Query-related images \(if requested\) |
| ↳ `url` | string | Image URL |
| ↳ `description` | string | Image description |
| `auto_parameters` | object | Automatically selected parameters based on query intent \(if enabled\) | | `auto_parameters` | object | Automatically selected parameters based on query intent \(if enabled\) |
| `response_time` | number | Time taken for the search request in seconds | | `response_time` | number | Time taken for the search request in seconds |
@@ -90,13 +98,14 @@ Extract raw content from multiple web pages simultaneously using Tavily
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | The URL that was extracted | | `results` | array | Successfully extracted content from URLs |
| ↳ `url` | string | The URL that was extracted | | ↳ `url` | string | The source URL |
| ↳ `raw_content` | string | The raw text content from the webpage | | ↳ `raw_content` | string | Full extracted content from the page |
| ↳ `favicon` | string | Favicon URL \(if requested\) | | ↳ `images` | array | Image URLs \(when include_images is true\) |
| `failed_results` | array | The URL that failed extraction | | ↳ `favicon` | string | Favicon URL for the result |
| `failed_results` | array | URLs that failed to extract content |
| ↳ `url` | string | The URL that failed extraction | | ↳ `url` | string | The URL that failed extraction |
| ↳ `error` | string | Error message for the failed extraction | | ↳ `error` | string | Error message describing why extraction failed |
| `response_time` | number | Time taken for the extraction request in seconds | | `response_time` | number | Time taken for the extraction request in seconds |
### `tavily_crawl` ### `tavily_crawl`
@@ -128,10 +137,10 @@ Systematically crawl and extract content from websites using Tavily
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `base_url` | string | The base URL that was crawled | | `base_url` | string | The base URL that was crawled |
| `results` | array | The crawled page URL | | `results` | array | Array of crawled pages with extracted content |
| ↳ `url` | string | The crawled page URL | | ↳ `url` | string | The crawled page URL |
| ↳ `raw_content` | string | Extracted content from the page | | ↳ `raw_content` | string | Full extracted page content |
| ↳ `favicon` | string | Favicon URL \(if requested\) | | ↳ `favicon` | string | Favicon URL for the result |
| `response_time` | number | Time taken for the crawl request in seconds | | `response_time` | number | Time taken for the crawl request in seconds |
| `request_id` | string | Unique identifier for support reference | | `request_id` | string | Unique identifier for support reference |
@@ -160,7 +169,7 @@ Discover and visualize website structure using Tavily
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `base_url` | string | The base URL that was mapped | | `base_url` | string | The base URL that was mapped |
| `results` | array | Discovered URL | | `results` | array | Array of discovered URLs during mapping |
| ↳ `url` | string | Discovered URL | | ↳ `url` | string | Discovered URL |
| `response_time` | number | Time taken for the map request in seconds | | `response_time` | number | Time taken for the map request in seconds |
| `request_id` | string | Unique identifier for support reference | | `request_id` | string | Unique identifier for support reference |

View File

@@ -76,19 +76,19 @@ Send messages to Telegram channels or users through the Telegram Bot API. Enable
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Telegram message data | | `data` | object | Telegram message data |
| ↳ `message_id` | number | Unique Telegram message identifier | | ↳ `message_id` | number | Unique Telegram message identifier |
| ↳ `from` | object | Chat information | | ↳ `from` | object | Chat information |
| ↳ `id` | number | Chat ID | | ↳ `id` | number | Chat ID |
| ↳ `is_bot` | boolean | Whether the chat is a bot or not | | ↳ `is_bot` | boolean | Whether the chat is a bot or not |
| ↳ `first_name` | string | Chat username \(if available\) | | ↳ `first_name` | string | Chat username \(if available\) |
| ↳ `username` | string | Chat title \(for groups and channels\) | | ↳ `username` | string | Chat title \(for groups and channels\) |
| ↳ `chat` | object | Information about the bot that sent the message | | ↳ `chat` | object | Information about the bot that sent the message |
| ↳ `id` | number | Bot user ID | | ↳ `id` | number | Bot user ID |
| ↳ `first_name` | string | Bot first name | | ↳ `first_name` | string | Bot first name |
| ↳ `username` | string | Bot username | | ↳ `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 | | ↳ `date` | number | Unix timestamp when message was sent |
| ↳ `text` | string | Text content of the sent message | | ↳ `text` | string | Text content of the sent message |
### `telegram_delete_message` ### `telegram_delete_message`
@@ -108,8 +108,8 @@ Delete messages in Telegram channels or chats through the Telegram Bot API. Requ
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Delete operation result | | `data` | object | Delete operation result |
| ↳ `ok` | boolean | API response success status | | ↳ `ok` | boolean | API response success status |
| ↳ `deleted` | boolean | Whether the message was successfully deleted | | ↳ `deleted` | boolean | Whether the message was successfully deleted |
### `telegram_send_photo` ### `telegram_send_photo`
@@ -130,25 +130,25 @@ Send photos to Telegram channels or users through the Telegram Bot API.
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Telegram message data including optional photo\(s\) | | `data` | object | Telegram message data including optional photo\(s\) |
| ↳ `message_id` | number | Unique Telegram message identifier | | ↳ `message_id` | number | Unique Telegram message identifier |
| ↳ `from` | object | Chat information | | ↳ `from` | object | Chat information |
| ↳ `id` | number | Chat ID | | ↳ `id` | number | Chat ID |
| ↳ `is_bot` | boolean | Whether the chat is a bot or not | | ↳ `is_bot` | boolean | Whether the chat is a bot or not |
| ↳ `first_name` | string | Chat username \(if available\) | | ↳ `first_name` | string | Chat username \(if available\) |
| ↳ `username` | string | Chat title \(for groups and channels\) | | ↳ `username` | string | Chat title \(for groups and channels\) |
| ↳ `chat` | object | Information about the bot that sent the message | | ↳ `chat` | object | Information about the bot that sent the message |
| ↳ `id` | number | Bot user ID | | ↳ `id` | number | Bot user ID |
| ↳ `first_name` | string | Bot first name | | ↳ `first_name` | string | Bot first name |
| ↳ `username` | string | Bot username | | ↳ `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 | | ↳ `date` | number | Unix timestamp when message was sent |
| ↳ `text` | string | Text content of the sent message \(if applicable\) | | ↳ `text` | string | Text content of the sent message \(if applicable\) |
| ↳ `photo` | array | List of photos included in the message | | ↳ `photo` | array | List of photos included in the message |
| ↳ `file_id` | string | Unique file ID of the photo | | ↳ `file_id` | string | Unique file ID of the photo |
| ↳ `file_unique_id` | string | Unique identifier for this file across different bots | | ↳ `file_unique_id` | string | Unique identifier for this file across different bots |
| ↳ `file_size` | number | Size of the photo file in bytes | | ↳ `file_size` | number | Size of the photo file in bytes |
| ↳ `width` | number | Photo width in pixels | | ↳ `width` | number | Photo width in pixels |
| ↳ `height` | number | Photo height in pixels | | ↳ `height` | number | Photo height in pixels |
### `telegram_send_video` ### `telegram_send_video`
@@ -169,58 +169,58 @@ Send videos to Telegram channels or users through the Telegram Bot API.
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Telegram message data including optional media | | `data` | object | Telegram message data including optional media |
| ↳ `message_id` | number | Unique Telegram message identifier | | ↳ `message_id` | number | Unique Telegram message identifier |
| ↳ `from` | object | Information about the sender | | ↳ `from` | object | Information about the sender |
| ↳ `id` | number | Sender ID | | ↳ `id` | number | Sender ID |
| ↳ `is_bot` | boolean | Whether the chat is a bot or not | | ↳ `is_bot` | boolean | Whether the chat is a bot or not |
| ↳ `first_name` | string | Sender | | ↳ `first_name` | string | Sender's first name \(if available\) |
| ↳ `username` | string | Sender | | ↳ `username` | string | Sender's username \(if available\) |
| ↳ `chat` | object | Information about the chat where message was sent | | ↳ `chat` | object | Information about the chat where message was sent |
| ↳ `id` | number | Chat ID | | ↳ `id` | number | Chat ID |
| ↳ `first_name` | string | Chat first name \(if private chat\) | | ↳ `first_name` | string | Chat first name \(if private chat\) |
| ↳ `username` | string | Chat username \(for private or channels\) | | ↳ `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 | | ↳ `date` | number | Unix timestamp when the message was sent |
| ↳ `text` | string | Text content of the sent message \(if applicable\) | | ↳ `text` | string | Text content of the sent message \(if applicable\) |
| ↳ `format` | object | Media format information \(for videos, GIFs, etc.\) | | ↳ `format` | object | Media format information \(for videos, GIFs, etc.\) |
| ↳ `file_name` | string | Media file name | | ↳ `file_name` | string | Media file name |
| ↳ `mime_type` | string | Media MIME type | | ↳ `mime_type` | string | Media MIME type |
| ↳ `duration` | number | Duration of media in seconds | | ↳ `duration` | number | Duration of media in seconds |
| ↳ `width` | number | Media width in pixels | | ↳ `width` | number | Media width in pixels |
| ↳ `height` | number | Media height in pixels | | ↳ `height` | number | Media height in pixels |
| ↳ `thumbnail` | object | Thumbnail image details | | ↳ `thumbnail` | object | Thumbnail image details |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `thumb` | object | Secondary thumbnail details \(duplicate of thumbnail\) | | ↳ `thumb` | object | Secondary thumbnail details \(duplicate of thumbnail\) |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `file_id` | string | Media file ID | | ↳ `file_id` | string | Media file ID |
| ↳ `file_unique_id` | string | Unique media file identifier | | ↳ `file_unique_id` | string | Unique media file identifier |
| ↳ `file_size` | number | Size of media file in bytes | | ↳ `file_size` | number | Size of media file in bytes |
| ↳ `document` | object | Document file details if the message contains a document | | ↳ `document` | object | Document file details if the message contains a document |
| ↳ `file_name` | string | Document file name | | ↳ `file_name` | string | Document file name |
| ↳ `mime_type` | string | Document MIME type | | ↳ `mime_type` | string | Document MIME type |
| ↳ `thumbnail` | object | Document thumbnail information | | ↳ `thumbnail` | object | Document thumbnail information |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) | | ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `file_id` | string | Document file ID | | ↳ `file_id` | string | Document file ID |
| ↳ `file_unique_id` | string | Unique document file identifier | | ↳ `file_unique_id` | string | Unique document file identifier |
| ↳ `file_size` | number | Size of document file in bytes | | ↳ `file_size` | number | Size of document file in bytes |
### `telegram_send_audio` ### `telegram_send_audio`
@@ -241,28 +241,28 @@ Send audio files to Telegram channels or users through the Telegram Bot API.
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Telegram message data including voice/audio information | | `data` | object | Telegram message data including voice/audio information |
| ↳ `message_id` | number | Unique Telegram message identifier | | ↳ `message_id` | number | Unique Telegram message identifier |
| ↳ `from` | object | Information about the sender | | ↳ `from` | object | Information about the sender |
| ↳ `id` | number | Sender ID | | ↳ `id` | number | Sender ID |
| ↳ `is_bot` | boolean | Whether the chat is a bot or not | | ↳ `is_bot` | boolean | Whether the chat is a bot or not |
| ↳ `first_name` | string | Sender | | ↳ `first_name` | string | Sender's first name \(if available\) |
| ↳ `username` | string | Sender | | ↳ `username` | string | Sender's username \(if available\) |
| ↳ `chat` | object | Information about the chat where the message was sent | | ↳ `chat` | object | Information about the chat where the message was sent |
| ↳ `id` | number | Chat ID | | ↳ `id` | number | Chat ID |
| ↳ `first_name` | string | Chat first name \(if private chat\) | | ↳ `first_name` | string | Chat first name \(if private chat\) |
| ↳ `username` | string | Chat username \(for private or channels\) | | ↳ `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 | | ↳ `date` | number | Unix timestamp when the message was sent |
| ↳ `text` | string | Text content of the sent message \(if applicable\) | | ↳ `text` | string | Text content of the sent message \(if applicable\) |
| ↳ `audio` | object | Audio file details | | ↳ `audio` | object | Audio file details |
| ↳ `duration` | number | Duration of the audio in seconds | | ↳ `duration` | number | Duration of the audio in seconds |
| ↳ `performer` | string | Performer of the audio | | ↳ `performer` | string | Performer of the audio |
| ↳ `title` | string | Title of the audio | | ↳ `title` | string | Title of the audio |
| ↳ `file_name` | string | Original filename of the audio | | ↳ `file_name` | string | Original filename of the audio |
| ↳ `mime_type` | string | MIME type of the audio file | | ↳ `mime_type` | string | MIME type of the audio file |
| ↳ `file_id` | string | Unique file identifier for this audio | | ↳ `file_id` | string | Unique file identifier for this audio |
| ↳ `file_unique_id` | string | Unique identifier across different bots for this file | | ↳ `file_unique_id` | string | Unique identifier across different bots for this file |
| ↳ `file_size` | number | Size of the audio file in bytes | | ↳ `file_size` | number | Size of the audio file in bytes |
### `telegram_send_animation` ### `telegram_send_animation`
@@ -283,58 +283,58 @@ Send animations (GIFs) to Telegram channels or users through the Telegram Bot AP
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Telegram message data including optional media | | `data` | object | Telegram message data including optional media |
| ↳ `message_id` | number | Unique Telegram message identifier | | ↳ `message_id` | number | Unique Telegram message identifier |
| ↳ `from` | object | Information about the sender | | ↳ `from` | object | Information about the sender |
| ↳ `id` | number | Sender ID | | ↳ `id` | number | Sender ID |
| ↳ `is_bot` | boolean | Whether the chat is a bot or not | | ↳ `is_bot` | boolean | Whether the chat is a bot or not |
| ↳ `first_name` | string | Sender | | ↳ `first_name` | string | Sender's first name \(if available\) |
| ↳ `username` | string | Sender | | ↳ `username` | string | Sender's username \(if available\) |
| ↳ `chat` | object | Information about the chat where message was sent | | ↳ `chat` | object | Information about the chat where message was sent |
| ↳ `id` | number | Chat ID | | ↳ `id` | number | Chat ID |
| ↳ `first_name` | string | Chat first name \(if private chat\) | | ↳ `first_name` | string | Chat first name \(if private chat\) |
| ↳ `username` | string | Chat username \(for private or channels\) | | ↳ `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 | | ↳ `date` | number | Unix timestamp when the message was sent |
| ↳ `text` | string | Text content of the sent message \(if applicable\) | | ↳ `text` | string | Text content of the sent message \(if applicable\) |
| ↳ `format` | object | Media format information \(for videos, GIFs, etc.\) | | ↳ `format` | object | Media format information \(for videos, GIFs, etc.\) |
| ↳ `file_name` | string | Media file name | | ↳ `file_name` | string | Media file name |
| ↳ `mime_type` | string | Media MIME type | | ↳ `mime_type` | string | Media MIME type |
| ↳ `duration` | number | Duration of media in seconds | | ↳ `duration` | number | Duration of media in seconds |
| ↳ `width` | number | Media width in pixels | | ↳ `width` | number | Media width in pixels |
| ↳ `height` | number | Media height in pixels | | ↳ `height` | number | Media height in pixels |
| ↳ `thumbnail` | object | Thumbnail image details | | ↳ `thumbnail` | object | Thumbnail image details |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `thumb` | object | Secondary thumbnail details \(duplicate of thumbnail\) | | ↳ `thumb` | object | Secondary thumbnail details \(duplicate of thumbnail\) |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `file_id` | string | Media file ID | | ↳ `file_id` | string | Media file ID |
| ↳ `file_unique_id` | string | Unique media file identifier | | ↳ `file_unique_id` | string | Unique media file identifier |
| ↳ `file_size` | number | Size of media file in bytes | | ↳ `file_size` | number | Size of media file in bytes |
| ↳ `document` | object | Document file details if the message contains a document | | ↳ `document` | object | Document file details if the message contains a document |
| ↳ `file_name` | string | Document file name | | ↳ `file_name` | string | Document file name |
| ↳ `mime_type` | string | Document MIME type | | ↳ `mime_type` | string | Document MIME type |
| ↳ `thumbnail` | object | Document thumbnail information | | ↳ `thumbnail` | object | Document thumbnail information |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) | | ↳ `thumb` | object | Duplicate thumbnail info \(used for compatibility\) |
| ↳ `file_id` | string | Thumbnail file ID | | ↳ `file_id` | string | Thumbnail file ID |
| ↳ `file_unique_id` | string | Unique thumbnail file identifier | | ↳ `file_unique_id` | string | Unique thumbnail file identifier |
| ↳ `file_size` | number | Thumbnail file size in bytes | | ↳ `file_size` | number | Thumbnail file size in bytes |
| ↳ `width` | number | Thumbnail width in pixels | | ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels | | ↳ `height` | number | Thumbnail height in pixels |
| ↳ `file_id` | string | Document file ID | | ↳ `file_id` | string | Document file ID |
| ↳ `file_unique_id` | string | Unique document file identifier | | ↳ `file_unique_id` | string | Unique document file identifier |
| ↳ `file_size` | number | Size of document file in bytes | | ↳ `file_size` | number | Size of document file in bytes |
### `telegram_send_document` ### `telegram_send_document`
@@ -355,23 +355,23 @@ Send documents (PDF, ZIP, DOC, etc.) to Telegram channels or users through the T
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Success or error message | | `message` | string | Success or error message |
| `data` | object | Telegram message data including document | | `data` | object | Telegram message data including document |
| ↳ `message_id` | number | Unique Telegram message identifier | | ↳ `message_id` | number | Unique Telegram message identifier |
| ↳ `from` | object | Information about the sender | | ↳ `from` | object | Information about the sender |
| ↳ `id` | number | Sender ID | | ↳ `id` | number | Sender ID |
| ↳ `is_bot` | boolean | Whether the chat is a bot or not | | ↳ `is_bot` | boolean | Whether the chat is a bot or not |
| ↳ `first_name` | string | Sender | | ↳ `first_name` | string | Sender's first name \(if available\) |
| ↳ `username` | string | Sender | | ↳ `username` | string | Sender's username \(if available\) |
| ↳ `chat` | object | Information about the chat where message was sent | | ↳ `chat` | object | Information about the chat where message was sent |
| ↳ `id` | number | Chat ID | | ↳ `id` | number | Chat ID |
| ↳ `first_name` | string | Chat first name \(if private chat\) | | ↳ `first_name` | string | Chat first name \(if private chat\) |
| ↳ `username` | string | Chat username \(for private or channels\) | | ↳ `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 | | ↳ `date` | number | Unix timestamp when the message was sent |
| ↳ `document` | object | Document file details | | ↳ `document` | object | Document file details |
| ↳ `file_name` | string | Document file name | | ↳ `file_name` | string | Document file name |
| ↳ `mime_type` | string | Document MIME type | | ↳ `mime_type` | string | Document MIME type |
| ↳ `file_id` | string | Document file ID | | ↳ `file_id` | string | Document file ID |
| ↳ `file_unique_id` | string | Unique document file identifier | | ↳ `file_unique_id` | string | Unique document file identifier |
| ↳ `file_size` | number | Size of document file in bytes | | ↳ `file_size` | number | Size of document file in bytes |

View File

@@ -68,17 +68,17 @@ Parse documents using AWS Textract OCR and document analysis
| ↳ `Confidence` | number | Confidence score \(0-100\) | | ↳ `Confidence` | number | Confidence score \(0-100\) |
| ↳ `Page` | number | Page number | | ↳ `Page` | number | Page number |
| ↳ `Geometry` | object | Location and bounding box information | | ↳ `Geometry` | object | Location and bounding box information |
| ↳ `BoundingBox` | object | Height as ratio of document height | | ↳ `BoundingBox` | object | Height as ratio of document height |
| ↳ `Height` | number | Height as ratio of document height | | ↳ `Height` | number | Height as ratio of document height |
| ↳ `Left` | number | Left position as ratio of document width | | ↳ `Left` | number | Left position as ratio of document width |
| ↳ `Top` | number | Top position as ratio of document height | | ↳ `Top` | number | Top position as ratio of document height |
| ↳ `Width` | number | Width as ratio of document width | | ↳ `Width` | number | Width as ratio of document width |
| ↳ `Polygon` | array | Polygon coordinates | | ↳ `Polygon` | array | Polygon coordinates |
| ↳ `X` | number | X coordinate | | ↳ `X` | number | X coordinate |
| ↳ `Y` | number | Y coordinate | | ↳ `Y` | number | Y coordinate |
| ↳ `Relationships` | array | Relationships to other blocks | | ↳ `Relationships` | array | Relationships to other blocks |
| ↳ `Type` | string | Relationship type \(CHILD, VALUE, ANSWER, etc.\) | | ↳ `Type` | string | Relationship type \(CHILD, VALUE, ANSWER, etc.\) |
| ↳ `Ids` | array | IDs of related blocks | | ↳ `Ids` | array | IDs of related blocks |
| ↳ `EntityTypes` | array | Entity types for KEY_VALUE_SET \(KEY or VALUE\) | | ↳ `EntityTypes` | array | Entity types for KEY_VALUE_SET \(KEY or VALUE\) |
| ↳ `SelectionStatus` | string | For checkboxes: SELECTED or NOT_SELECTED | | ↳ `SelectionStatus` | string | For checkboxes: SELECTED or NOT_SELECTED |
| ↳ `RowIndex` | number | Row index for table cells | | ↳ `RowIndex` | number | Row index for table cells |
@@ -86,11 +86,11 @@ Parse documents using AWS Textract OCR and document analysis
| ↳ `RowSpan` | number | Row span for merged cells | | ↳ `RowSpan` | number | Row span for merged cells |
| ↳ `ColumnSpan` | number | Column span for merged cells | | ↳ `ColumnSpan` | number | Column span for merged cells |
| ↳ `Query` | object | Query information for QUERY blocks | | ↳ `Query` | object | Query information for QUERY blocks |
| ↳ `Text` | string | Query text | | ↳ `Text` | string | Query text |
| ↳ `Alias` | string | Query alias | | ↳ `Alias` | string | Query alias |
| ↳ `Pages` | array | Pages to search | | ↳ `Pages` | array | Pages to search |
| `documentMetadata` | object | Metadata about the analyzed document | | `documentMetadata` | object | Metadata about the analyzed document |
| ↳ `pages` | number | Number of pages in the document | | ↳ `pages` | number | Number of pages in the document |
| `modelVersion` | string | Version of the Textract model used for processing | | `modelVersion` | string | Version of the Textract model used for processing |

View File

@@ -102,19 +102,19 @@ Retrieve insights and analytics for Typeform forms
| ↳ `type` | string | Field type \(e.g., short_text, multiple_choice\) | | ↳ `type` | string | Field type \(e.g., short_text, multiple_choice\) |
| ↳ `views` | number | Number of times this field was viewed | | ↳ `views` | number | Number of times this field was viewed |
| `form` | object | Average completion time for this platform | | `form` | object | Average completion time for this platform |
| ↳ `platforms` | array | Average completion time for this platform | | ↳ `platforms` | array | Average completion time for this platform |
| ↳ `average_time` | number | Average completion time for this platform | | ↳ `average_time` | number | Average completion time for this platform |
| ↳ `completion_rate` | number | Completion rate for this platform | | ↳ `completion_rate` | number | Completion rate for this platform |
| ↳ `platform` | string | Platform name \(e.g., desktop, mobile\) | | ↳ `platform` | string | Platform name \(e.g., desktop, mobile\) |
| ↳ `responses_count` | number | Number of responses from this platform | | ↳ `responses_count` | number | Number of responses from this platform |
| ↳ `total_visits` | number | Total visits from this platform | | ↳ `total_visits` | number | Total visits from this platform |
| ↳ `unique_visits` | number | Unique visits from this platform | | ↳ `unique_visits` | number | Unique visits from this platform |
| ↳ `summary` | object | Overall average completion time | | ↳ `summary` | object | Overall average completion time |
| ↳ `average_time` | number | Overall average completion time | | ↳ `average_time` | number | Overall average completion time |
| ↳ `completion_rate` | number | Overall completion rate | | ↳ `completion_rate` | number | Overall completion rate |
| ↳ `responses_count` | number | Total number of responses | | ↳ `responses_count` | number | Total number of responses |
| ↳ `total_visits` | number | Total number of visits | | ↳ `total_visits` | number | Total number of visits |
| ↳ `unique_visits` | number | Total number of unique visits | | ↳ `unique_visits` | number | Total number of unique visits |
### `typeform_list_forms` ### `typeform_list_forms`

View File

@@ -55,8 +55,8 @@ Process and analyze images using advanced vision models. Capable of understandin
| `model` | string | The vision model that was used for analysis | | `model` | string | The vision model that was used for analysis |
| `tokens` | number | Total tokens used for the analysis | | `tokens` | number | Total tokens used for the analysis |
| `usage` | object | Detailed token usage breakdown | | `usage` | object | Detailed token usage breakdown |
| ↳ `input_tokens` | number | Tokens used for input processing | | ↳ `input_tokens` | number | Tokens used for input processing |
| ↳ `output_tokens` | number | Tokens used for response generation | | ↳ `output_tokens` | number | Tokens used for response generation |
| ↳ `total_tokens` | number | Total tokens consumed | | ↳ `total_tokens` | number | Total tokens consumed |

View File

@@ -50,12 +50,12 @@ Read content from a Wealthbox note
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Note data and metadata | | `output` | object | Note data and metadata |
| ↳ `content` | string | Formatted note information | | ↳ `content` | string | Formatted note information |
| ↳ `note` | object | Raw note data from Wealthbox | | ↳ `note` | object | Raw note data from Wealthbox |
| ↳ `metadata` | object | Operation metadata | | ↳ `metadata` | object | Operation metadata |
| ↳ `itemId` | string | ID of the note | | ↳ `itemId` | string | ID of the note |
| ↳ `noteId` | string | ID of the note | | ↳ `noteId` | string | ID of the note |
| ↳ `itemType` | string | Type of item \(note\) | | ↳ `itemType` | string | Type of item \(note\) |
### `wealthbox_write_note` ### `wealthbox_write_note`
@@ -74,12 +74,12 @@ Create or update a Wealthbox note
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created or updated note data and metadata | | `output` | object | Created or updated note data and metadata |
| ↳ `note` | object | Raw note data from Wealthbox | | ↳ `note` | object | Raw note data from Wealthbox |
| ↳ `success` | boolean | Operation success indicator | | ↳ `success` | boolean | Operation success indicator |
| ↳ `metadata` | object | Operation metadata | | ↳ `metadata` | object | Operation metadata |
| ↳ `itemId` | string | ID of the created/updated note | | ↳ `itemId` | string | ID of the created/updated note |
| ↳ `noteId` | string | ID of the created/updated note | | ↳ `noteId` | string | ID of the created/updated note |
| ↳ `itemType` | string | Type of item \(note\) | | ↳ `itemType` | string | Type of item \(note\) |
### `wealthbox_read_contact` ### `wealthbox_read_contact`
@@ -97,12 +97,12 @@ Read content from a Wealthbox contact
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Contact data and metadata | | `output` | object | Contact data and metadata |
| ↳ `content` | string | Formatted contact information | | ↳ `content` | string | Formatted contact information |
| ↳ `contact` | object | Raw contact data from Wealthbox | | ↳ `contact` | object | Raw contact data from Wealthbox |
| ↳ `metadata` | object | Operation metadata | | ↳ `metadata` | object | Operation metadata |
| ↳ `itemId` | string | ID of the contact | | ↳ `itemId` | string | ID of the contact |
| ↳ `contactId` | string | ID of the contact | | ↳ `contactId` | string | ID of the contact |
| ↳ `itemType` | string | Type of item \(contact\) | | ↳ `itemType` | string | Type of item \(contact\) |
### `wealthbox_write_contact` ### `wealthbox_write_contact`
@@ -123,12 +123,12 @@ Create a new Wealthbox contact
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created or updated contact data and metadata | | `output` | object | Created or updated contact data and metadata |
| ↳ `contact` | object | Raw contact data from Wealthbox | | ↳ `contact` | object | Raw contact data from Wealthbox |
| ↳ `success` | boolean | Operation success indicator | | ↳ `success` | boolean | Operation success indicator |
| ↳ `metadata` | object | Operation metadata | | ↳ `metadata` | object | Operation metadata |
| ↳ `itemId` | string | ID of the created/updated contact | | ↳ `itemId` | string | ID of the created/updated contact |
| ↳ `contactId` | string | ID of the created/updated contact | | ↳ `contactId` | string | ID of the created/updated contact |
| ↳ `itemType` | string | Type of item \(contact\) | | ↳ `itemType` | string | Type of item \(contact\) |
### `wealthbox_read_task` ### `wealthbox_read_task`
@@ -146,12 +146,12 @@ Read content from a Wealthbox task
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Task data and metadata | | `output` | object | Task data and metadata |
| ↳ `content` | string | Formatted task information | | ↳ `content` | string | Formatted task information |
| ↳ `task` | object | Raw task data from Wealthbox | | ↳ `task` | object | Raw task data from Wealthbox |
| ↳ `metadata` | object | Operation metadata | | ↳ `metadata` | object | Operation metadata |
| ↳ `itemId` | string | ID of the task | | ↳ `itemId` | string | ID of the task |
| ↳ `taskId` | string | ID of the task | | ↳ `taskId` | string | ID of the task |
| ↳ `itemType` | string | Type of item \(task\) | | ↳ `itemType` | string | Type of item \(task\) |
### `wealthbox_write_task` ### `wealthbox_write_task`
@@ -172,11 +172,11 @@ Create or update a Wealthbox task
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Created or updated task data and metadata | | `output` | object | Created or updated task data and metadata |
| ↳ `task` | object | Raw task data from Wealthbox | | ↳ `task` | object | Raw task data from Wealthbox |
| ↳ `success` | boolean | Operation success indicator | | ↳ `success` | boolean | Operation success indicator |
| ↳ `metadata` | object | Operation metadata | | ↳ `metadata` | object | Operation metadata |
| ↳ `itemId` | string | ID of the created/updated task | | ↳ `itemId` | string | ID of the created/updated task |
| ↳ `taskId` | string | ID of the created/updated task | | ↳ `taskId` | string | ID of the created/updated task |
| ↳ `itemType` | string | Type of item \(task\) | | ↳ `itemType` | string | Type of item \(task\) |

View File

@@ -51,8 +51,19 @@ List all items from a Webflow CMS collection
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `items` | json | Array of collection items | | `items` | array | Array of collection items |
| `metadata` | json | Metadata about the query | | ↳ `id` | string | Unique item ID |
| ↳ `cmsLocaleId` | string | CMS locale ID |
| ↳ `lastPublished` | string | Last published date \(ISO 8601\) |
| ↳ `lastUpdated` | string | Last updated date \(ISO 8601\) |
| ↳ `createdOn` | string | Creation date \(ISO 8601\) |
| ↳ `isArchived` | boolean | Whether the item is archived |
| ↳ `isDraft` | boolean | Whether the item is a draft |
| ↳ `fieldData` | object | Collection-specific field data \(varies by collection schema\) |
| `metadata` | object | Metadata about the query |
| ↳ `itemCount` | number | Number of items returned |
| ↳ `offset` | number | Pagination offset |
| ↳ `limit` | number | Maximum items per page |
### `webflow_get_item` ### `webflow_get_item`

View File

@@ -47,12 +47,39 @@ Get a summary and metadata for a specific Wikipedia page.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `summary` | object | Wikipedia page summary and metadata | | `summary` | object | Wikipedia page summary and metadata |
| ↳ `title` | string | Page title | | ↳ `type` | string | Page type \(standard, disambiguation, etc.\) |
| ↳ `extract` | string | Page extract/summary text | | ↳ `title` | string | Page title |
| ↳ `description` | string | Short page description | | ↳ `displaytitle` | string | Display title with formatting |
| ↳ `thumbnail` | object | Thumbnail image data | | ↳ `description` | string | Short page description |
| ↳ `content_urls` | object | URLs to access the page | | ↳ `extract` | string | Page extract/summary text |
| ↳ `pageid` | number | Wikipedia page ID | | ↳ `extract_html` | string | Extract in HTML format |
| ↳ `thumbnail` | object | Thumbnail image data |
| ↳ `source` | string | Thumbnail image URL |
| ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels |
| ↳ `originalimage` | object | Original image data |
| ↳ `source` | string | Thumbnail image URL |
| ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels |
| ↳ `content_urls` | object | URLs to access the page |
| ↳ `desktop` | object | Desktop URLs |
| ↳ `page` | string | Page URL |
| ↳ `revisions` | string | Revisions URL |
| ↳ `edit` | string | Edit URL |
| ↳ `talk` | string | Talk page URL |
| ↳ `mobile` | object | Mobile URLs |
| ↳ `page` | string | Page URL |
| ↳ `revisions` | string | Revisions URL |
| ↳ `edit` | string | Edit URL |
| ↳ `talk` | string | Talk page URL |
| ↳ `lang` | string | Page language code |
| ↳ `dir` | string | Text direction \(ltr or rtl\) |
| ↳ `timestamp` | string | Last modification timestamp |
| ↳ `pageid` | number | Wikipedia page ID |
| ↳ `wikibase_item` | string | Wikidata item ID |
| ↳ `coordinates` | object | Geographic coordinates |
| ↳ `lat` | number | Latitude |
| ↳ `lon` | number | Longitude |
### `wikipedia_search` ### `wikipedia_search`
@@ -70,6 +97,20 @@ Search for Wikipedia pages by title or content.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `searchResults` | array | Array of matching Wikipedia pages | | `searchResults` | array | Array of matching Wikipedia pages |
| ↳ `id` | number | Result index |
| ↳ `key` | string | URL-friendly page key |
| ↳ `title` | string | Page title |
| ↳ `excerpt` | string | Search result excerpt |
| ↳ `matched_title` | string | Matched title variant |
| ↳ `description` | string | Page description |
| ↳ `thumbnail` | object | Thumbnail data |
| ↳ `mimetype` | string | Image MIME type |
| ↳ `size` | number | File size in bytes |
| ↳ `width` | number | Width in pixels |
| ↳ `height` | number | Height in pixels |
| ↳ `duration` | number | Duration for video |
| ↳ `url` | string | Thumbnail URL |
| ↳ `url` | string | Page URL |
| `totalHits` | number | Total number of search results found | | `totalHits` | number | Total number of search results found |
| `query` | string | The search query that was executed | | `query` | string | The search query that was executed |
@@ -88,11 +129,14 @@ Get the full HTML content of a Wikipedia page.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `content` | object | Full HTML content and metadata of the Wikipedia page | | `content` | object | Full HTML content and metadata of the Wikipedia page |
| ↳ `title` | string | Page title | | ↳ `title` | string | Page title |
| ↳ `pageid` | number | Wikipedia page ID | | ↳ `pageid` | number | Wikipedia page ID |
| ↳ `html` | string | Full HTML content of the page | | ↳ `html` | string | Full HTML content of the page |
| ↳ `revision` | number | Page revision number | | ↳ `revision` | number | Page revision number |
| ↳ `timestamp` | string | Last modified timestamp | | ↳ `tid` | string | Transaction ID \(ETag\) |
| ↳ `timestamp` | string | Last modified timestamp |
| ↳ `content_model` | string | Content model \(wikitext\) |
| ↳ `content_format` | string | Content format \(text/html\) |
### `wikipedia_random` ### `wikipedia_random`
@@ -108,10 +152,22 @@ Get a random Wikipedia page.
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `randomPage` | object | Random Wikipedia page data | | `randomPage` | object | Random Wikipedia page data |
| ↳ `title` | string | Page title | | ↳ `type` | string | Page type |
| ↳ `extract` | string | Page extract/summary | | ↳ `title` | string | Page title |
| ↳ `description` | string | Page description | | ↳ `displaytitle` | string | Display title |
| ↳ `thumbnail` | object | Thumbnail image data | | ↳ `description` | string | Page description |
| ↳ `content_urls` | object | URLs to access the page | | ↳ `extract` | string | Page extract/summary |
| ↳ `thumbnail` | object | Thumbnail image data |
| ↳ `source` | string | Thumbnail image URL |
| ↳ `width` | number | Thumbnail width in pixels |
| ↳ `height` | number | Thumbnail height in pixels |
| ↳ `content_urls` | object | URLs to access the page |
| ↳ `desktop` | object | Desktop URL |
| ↳ `page` | string | Page URL |
| ↳ `mobile` | object | Mobile URL |
| ↳ `page` | string | Page URL |
| ↳ `lang` | string | Language code |
| ↳ `timestamp` | string | Timestamp |
| ↳ `pageid` | number | Page ID |

View File

@@ -50,20 +50,20 @@ Create a new blog post in WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `post` | object | The created post | | `post` | object | The created post |
| ↳ `id` | number | Post ID | | ↳ `id` | number | Post ID |
| ↳ `date` | string | Post creation date | | ↳ `date` | string | Post creation date |
| ↳ `modified` | string | Post modification date | | ↳ `modified` | string | Post modification date |
| ↳ `slug` | string | Post slug | | ↳ `slug` | string | Post slug |
| ↳ `status` | string | Post status | | ↳ `status` | string | Post status |
| ↳ `type` | string | Post type | | ↳ `type` | string | Post type |
| ↳ `link` | string | Post URL | | ↳ `link` | string | Post URL |
| ↳ `title` | object | Post title object | | ↳ `title` | object | Post title object |
| ↳ `content` | object | Post content object | | ↳ `content` | object | Post content object |
| ↳ `excerpt` | object | Post excerpt object | | ↳ `excerpt` | object | Post excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `categories` | array | Category IDs | | ↳ `categories` | array | Category IDs |
| ↳ `tags` | array | Tag IDs | | ↳ `tags` | array | Tag IDs |
### `wordpress_update_post` ### `wordpress_update_post`
@@ -89,20 +89,20 @@ Update an existing blog post in WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `post` | object | The updated post | | `post` | object | The updated post |
| ↳ `id` | number | Post ID | | ↳ `id` | number | Post ID |
| ↳ `date` | string | Post creation date | | ↳ `date` | string | Post creation date |
| ↳ `modified` | string | Post modification date | | ↳ `modified` | string | Post modification date |
| ↳ `slug` | string | Post slug | | ↳ `slug` | string | Post slug |
| ↳ `status` | string | Post status | | ↳ `status` | string | Post status |
| ↳ `type` | string | Post type | | ↳ `type` | string | Post type |
| ↳ `link` | string | Post URL | | ↳ `link` | string | Post URL |
| ↳ `title` | object | Post title object | | ↳ `title` | object | Post title object |
| ↳ `content` | object | Post content object | | ↳ `content` | object | Post content object |
| ↳ `excerpt` | object | Post excerpt object | | ↳ `excerpt` | object | Post excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `categories` | array | Category IDs | | ↳ `categories` | array | Category IDs |
| ↳ `tags` | array | Tag IDs | | ↳ `tags` | array | Tag IDs |
### `wordpress_delete_post` ### `wordpress_delete_post`
@@ -122,20 +122,20 @@ Delete a blog post from WordPress.com
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deleted` | boolean | Whether the post was deleted | | `deleted` | boolean | Whether the post was deleted |
| `post` | object | The deleted post | | `post` | object | The deleted post |
| ↳ `id` | number | Post ID | | ↳ `id` | number | Post ID |
| ↳ `date` | string | Post creation date | | ↳ `date` | string | Post creation date |
| ↳ `modified` | string | Post modification date | | ↳ `modified` | string | Post modification date |
| ↳ `slug` | string | Post slug | | ↳ `slug` | string | Post slug |
| ↳ `status` | string | Post status | | ↳ `status` | string | Post status |
| ↳ `type` | string | Post type | | ↳ `type` | string | Post type |
| ↳ `link` | string | Post URL | | ↳ `link` | string | Post URL |
| ↳ `title` | object | Post title object | | ↳ `title` | object | Post title object |
| ↳ `content` | object | Post content object | | ↳ `content` | object | Post content object |
| ↳ `excerpt` | object | Post excerpt object | | ↳ `excerpt` | object | Post excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `categories` | array | Category IDs | | ↳ `categories` | array | Category IDs |
| ↳ `tags` | array | Tag IDs | | ↳ `tags` | array | Tag IDs |
### `wordpress_get_post` ### `wordpress_get_post`
@@ -153,20 +153,20 @@ Get a single blog post from WordPress.com by ID
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `post` | object | The retrieved post | | `post` | object | The retrieved post |
| ↳ `id` | number | Post ID | | ↳ `id` | number | Post ID |
| ↳ `date` | string | Post creation date | | ↳ `date` | string | Post creation date |
| ↳ `modified` | string | Post modification date | | ↳ `modified` | string | Post modification date |
| ↳ `slug` | string | Post slug | | ↳ `slug` | string | Post slug |
| ↳ `status` | string | Post status | | ↳ `status` | string | Post status |
| ↳ `type` | string | Post type | | ↳ `type` | string | Post type |
| ↳ `link` | string | Post URL | | ↳ `link` | string | Post URL |
| ↳ `title` | object | Post title object | | ↳ `title` | object | Post title object |
| ↳ `content` | object | Post content object | | ↳ `content` | object | Post content object |
| ↳ `excerpt` | object | Post excerpt object | | ↳ `excerpt` | object | Post excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `categories` | array | Category IDs | | ↳ `categories` | array | Category IDs |
| ↳ `tags` | array | Tag IDs | | ↳ `tags` | array | Tag IDs |
### `wordpress_list_posts` ### `wordpress_list_posts`
@@ -232,20 +232,20 @@ Create a new page in WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `page` | object | The created page | | `page` | object | The created page |
| ↳ `id` | number | Page ID | | ↳ `id` | number | Page ID |
| ↳ `date` | string | Page creation date | | ↳ `date` | string | Page creation date |
| ↳ `modified` | string | Page modification date | | ↳ `modified` | string | Page modification date |
| ↳ `slug` | string | Page slug | | ↳ `slug` | string | Page slug |
| ↳ `status` | string | Page status | | ↳ `status` | string | Page status |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Page URL | | ↳ `link` | string | Page URL |
| ↳ `title` | object | Page title object | | ↳ `title` | object | Page title object |
| ↳ `content` | object | Page content object | | ↳ `content` | object | Page content object |
| ↳ `excerpt` | object | Page excerpt object | | ↳ `excerpt` | object | Page excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `parent` | number | Parent page ID | | ↳ `parent` | number | Parent page ID |
| ↳ `menu_order` | number | Menu order | | ↳ `menu_order` | number | Menu order |
### `wordpress_update_page` ### `wordpress_update_page`
@@ -271,20 +271,20 @@ Update an existing page in WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `page` | object | The updated page | | `page` | object | The updated page |
| ↳ `id` | number | Page ID | | ↳ `id` | number | Page ID |
| ↳ `date` | string | Page creation date | | ↳ `date` | string | Page creation date |
| ↳ `modified` | string | Page modification date | | ↳ `modified` | string | Page modification date |
| ↳ `slug` | string | Page slug | | ↳ `slug` | string | Page slug |
| ↳ `status` | string | Page status | | ↳ `status` | string | Page status |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Page URL | | ↳ `link` | string | Page URL |
| ↳ `title` | object | Page title object | | ↳ `title` | object | Page title object |
| ↳ `content` | object | Page content object | | ↳ `content` | object | Page content object |
| ↳ `excerpt` | object | Page excerpt object | | ↳ `excerpt` | object | Page excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `parent` | number | Parent page ID | | ↳ `parent` | number | Parent page ID |
| ↳ `menu_order` | number | Menu order | | ↳ `menu_order` | number | Menu order |
### `wordpress_delete_page` ### `wordpress_delete_page`
@@ -304,20 +304,20 @@ Delete a page from WordPress.com
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deleted` | boolean | Whether the page was deleted | | `deleted` | boolean | Whether the page was deleted |
| `page` | object | The deleted page | | `page` | object | The deleted page |
| ↳ `id` | number | Page ID | | ↳ `id` | number | Page ID |
| ↳ `date` | string | Page creation date | | ↳ `date` | string | Page creation date |
| ↳ `modified` | string | Page modification date | | ↳ `modified` | string | Page modification date |
| ↳ `slug` | string | Page slug | | ↳ `slug` | string | Page slug |
| ↳ `status` | string | Page status | | ↳ `status` | string | Page status |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Page URL | | ↳ `link` | string | Page URL |
| ↳ `title` | object | Page title object | | ↳ `title` | object | Page title object |
| ↳ `content` | object | Page content object | | ↳ `content` | object | Page content object |
| ↳ `excerpt` | object | Page excerpt object | | ↳ `excerpt` | object | Page excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `parent` | number | Parent page ID | | ↳ `parent` | number | Parent page ID |
| ↳ `menu_order` | number | Menu order | | ↳ `menu_order` | number | Menu order |
### `wordpress_get_page` ### `wordpress_get_page`
@@ -335,20 +335,20 @@ Get a single page from WordPress.com by ID
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `page` | object | The retrieved page | | `page` | object | The retrieved page |
| ↳ `id` | number | Page ID | | ↳ `id` | number | Page ID |
| ↳ `date` | string | Page creation date | | ↳ `date` | string | Page creation date |
| ↳ `modified` | string | Page modification date | | ↳ `modified` | string | Page modification date |
| ↳ `slug` | string | Page slug | | ↳ `slug` | string | Page slug |
| ↳ `status` | string | Page status | | ↳ `status` | string | Page status |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Page URL | | ↳ `link` | string | Page URL |
| ↳ `title` | object | Page title object | | ↳ `title` | object | Page title object |
| ↳ `content` | object | Page content object | | ↳ `content` | object | Page content object |
| ↳ `excerpt` | object | Page excerpt object | | ↳ `excerpt` | object | Page excerpt object |
| ↳ `author` | number | Author ID | | ↳ `author` | number | Author ID |
| ↳ `featured_media` | number | Featured media ID | | ↳ `featured_media` | number | Featured media ID |
| ↳ `parent` | number | Parent page ID | | ↳ `parent` | number | Parent page ID |
| ↳ `menu_order` | number | Menu order | | ↳ `menu_order` | number | Menu order |
### `wordpress_list_pages` ### `wordpress_list_pages`
@@ -410,18 +410,18 @@ Upload a media file (image, video, document) to WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `media` | object | The uploaded media item | | `media` | object | The uploaded media item |
| ↳ `id` | number | Media ID | | ↳ `id` | number | Media ID |
| ↳ `date` | string | Upload date | | ↳ `date` | string | Upload date |
| ↳ `slug` | string | Media slug | | ↳ `slug` | string | Media slug |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Media page URL | | ↳ `link` | string | Media page URL |
| ↳ `title` | object | Media title object | | ↳ `title` | object | Media title object |
| ↳ `caption` | object | Media caption object | | ↳ `caption` | object | Media caption object |
| ↳ `alt_text` | string | Alt text | | ↳ `alt_text` | string | Alt text |
| ↳ `media_type` | string | Media type \(image, video, etc.\) | | ↳ `media_type` | string | Media type \(image, video, etc.\) |
| ↳ `mime_type` | string | MIME type | | ↳ `mime_type` | string | MIME type |
| ↳ `source_url` | string | Direct URL to the media file | | ↳ `source_url` | string | Direct URL to the media file |
| ↳ `media_details` | object | Media details \(dimensions, etc.\) | | ↳ `media_details` | object | Media details \(dimensions, etc.\) |
### `wordpress_get_media` ### `wordpress_get_media`
@@ -439,18 +439,18 @@ Get a single media item from WordPress.com by ID
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `media` | object | The retrieved media item | | `media` | object | The retrieved media item |
| ↳ `id` | number | Media ID | | ↳ `id` | number | Media ID |
| ↳ `date` | string | Upload date | | ↳ `date` | string | Upload date |
| ↳ `slug` | string | Media slug | | ↳ `slug` | string | Media slug |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Media page URL | | ↳ `link` | string | Media page URL |
| ↳ `title` | object | Media title object | | ↳ `title` | object | Media title object |
| ↳ `caption` | object | Media caption object | | ↳ `caption` | object | Media caption object |
| ↳ `alt_text` | string | Alt text | | ↳ `alt_text` | string | Alt text |
| ↳ `media_type` | string | Media type \(image, video, etc.\) | | ↳ `media_type` | string | Media type \(image, video, etc.\) |
| ↳ `mime_type` | string | MIME type | | ↳ `mime_type` | string | MIME type |
| ↳ `source_url` | string | Direct URL to the media file | | ↳ `source_url` | string | Direct URL to the media file |
| ↳ `media_details` | object | Media details \(dimensions, etc.\) | | ↳ `media_details` | object | Media details \(dimensions, etc.\) |
### `wordpress_list_media` ### `wordpress_list_media`
@@ -507,18 +507,18 @@ Delete a media item from WordPress.com
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deleted` | boolean | Whether the media was deleted | | `deleted` | boolean | Whether the media was deleted |
| `media` | object | The deleted media item | | `media` | object | The deleted media item |
| ↳ `id` | number | Media ID | | ↳ `id` | number | Media ID |
| ↳ `date` | string | Upload date | | ↳ `date` | string | Upload date |
| ↳ `slug` | string | Media slug | | ↳ `slug` | string | Media slug |
| ↳ `type` | string | Content type | | ↳ `type` | string | Content type |
| ↳ `link` | string | Media page URL | | ↳ `link` | string | Media page URL |
| ↳ `title` | object | Media title object | | ↳ `title` | object | Media title object |
| ↳ `caption` | object | Media caption object | | ↳ `caption` | object | Media caption object |
| ↳ `alt_text` | string | Alt text | | ↳ `alt_text` | string | Alt text |
| ↳ `media_type` | string | Media type \(image, video, etc.\) | | ↳ `media_type` | string | Media type \(image, video, etc.\) |
| ↳ `mime_type` | string | MIME type | | ↳ `mime_type` | string | MIME type |
| ↳ `source_url` | string | Direct URL to the media file | | ↳ `source_url` | string | Direct URL to the media file |
| ↳ `media_details` | object | Media details \(dimensions, etc.\) | | ↳ `media_details` | object | Media details \(dimensions, etc.\) |
### `wordpress_create_comment` ### `wordpress_create_comment`
@@ -541,17 +541,17 @@ Create a new comment on a WordPress.com post
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `comment` | object | The created comment | | `comment` | object | The created comment |
| ↳ `id` | number | Comment ID | | ↳ `id` | number | Comment ID |
| ↳ `post` | number | Post ID | | ↳ `post` | number | Post ID |
| ↳ `parent` | number | Parent comment ID | | ↳ `parent` | number | Parent comment ID |
| ↳ `author` | number | Author user ID | | ↳ `author` | number | Author user ID |
| ↳ `author_name` | string | Author display name | | ↳ `author_name` | string | Author display name |
| ↳ `author_email` | string | Author email | | ↳ `author_email` | string | Author email |
| ↳ `author_url` | string | Author URL | | ↳ `author_url` | string | Author URL |
| ↳ `date` | string | Comment date | | ↳ `date` | string | Comment date |
| ↳ `content` | object | Comment content object | | ↳ `content` | object | Comment content object |
| ↳ `link` | string | Comment permalink | | ↳ `link` | string | Comment permalink |
| ↳ `status` | string | Comment status | | ↳ `status` | string | Comment status |
### `wordpress_list_comments` ### `wordpress_list_comments`
@@ -607,17 +607,17 @@ Update a comment in WordPress.com (content or status)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `comment` | object | The updated comment | | `comment` | object | The updated comment |
| ↳ `id` | number | Comment ID | | ↳ `id` | number | Comment ID |
| ↳ `post` | number | Post ID | | ↳ `post` | number | Post ID |
| ↳ `parent` | number | Parent comment ID | | ↳ `parent` | number | Parent comment ID |
| ↳ `author` | number | Author user ID | | ↳ `author` | number | Author user ID |
| ↳ `author_name` | string | Author display name | | ↳ `author_name` | string | Author display name |
| ↳ `author_email` | string | Author email | | ↳ `author_email` | string | Author email |
| ↳ `author_url` | string | Author URL | | ↳ `author_url` | string | Author URL |
| ↳ `date` | string | Comment date | | ↳ `date` | string | Comment date |
| ↳ `content` | object | Comment content object | | ↳ `content` | object | Comment content object |
| ↳ `link` | string | Comment permalink | | ↳ `link` | string | Comment permalink |
| ↳ `status` | string | Comment status | | ↳ `status` | string | Comment status |
### `wordpress_delete_comment` ### `wordpress_delete_comment`
@@ -637,17 +637,17 @@ Delete a comment from WordPress.com
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `deleted` | boolean | Whether the comment was deleted | | `deleted` | boolean | Whether the comment was deleted |
| `comment` | object | The deleted comment | | `comment` | object | The deleted comment |
| ↳ `id` | number | Comment ID | | ↳ `id` | number | Comment ID |
| ↳ `post` | number | Post ID | | ↳ `post` | number | Post ID |
| ↳ `parent` | number | Parent comment ID | | ↳ `parent` | number | Parent comment ID |
| ↳ `author` | number | Author user ID | | ↳ `author` | number | Author user ID |
| ↳ `author_name` | string | Author display name | | ↳ `author_name` | string | Author display name |
| ↳ `author_email` | string | Author email | | ↳ `author_email` | string | Author email |
| ↳ `author_url` | string | Author URL | | ↳ `author_url` | string | Author URL |
| ↳ `date` | string | Comment date | | ↳ `date` | string | Comment date |
| ↳ `content` | object | Comment content object | | ↳ `content` | object | Comment content object |
| ↳ `link` | string | Comment permalink | | ↳ `link` | string | Comment permalink |
| ↳ `status` | string | Comment status | | ↳ `status` | string | Comment status |
### `wordpress_create_category` ### `wordpress_create_category`
@@ -668,14 +668,14 @@ Create a new category in WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `category` | object | The created category | | `category` | object | The created category |
| ↳ `id` | number | Category ID | | ↳ `id` | number | Category ID |
| ↳ `count` | number | Number of posts in this category | | ↳ `count` | number | Number of posts in this category |
| ↳ `description` | string | Category description | | ↳ `description` | string | Category description |
| ↳ `link` | string | Category archive URL | | ↳ `link` | string | Category archive URL |
| ↳ `name` | string | Category name | | ↳ `name` | string | Category name |
| ↳ `slug` | string | Category slug | | ↳ `slug` | string | Category slug |
| ↳ `taxonomy` | string | Taxonomy name | | ↳ `taxonomy` | string | Taxonomy name |
| ↳ `parent` | number | Parent category ID | | ↳ `parent` | number | Parent category ID |
### `wordpress_list_categories` ### `wordpress_list_categories`
@@ -725,13 +725,13 @@ Create a new tag in WordPress.com
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `tag` | object | The created tag | | `tag` | object | The created tag |
| ↳ `id` | number | Tag ID | | ↳ `id` | number | Tag ID |
| ↳ `count` | number | Number of posts with this tag | | ↳ `count` | number | Number of posts with this tag |
| ↳ `description` | string | Tag description | | ↳ `description` | string | Tag description |
| ↳ `link` | string | Tag archive URL | | ↳ `link` | string | Tag archive URL |
| ↳ `name` | string | Tag name | | ↳ `name` | string | Tag name |
| ↳ `slug` | string | Tag slug | | ↳ `slug` | string | Tag slug |
| ↳ `taxonomy` | string | Taxonomy name | | ↳ `taxonomy` | string | Taxonomy name |
### `wordpress_list_tags` ### `wordpress_list_tags`
@@ -777,18 +777,18 @@ Get information about the currently authenticated WordPress.com user
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | The current user | | `user` | object | The current user |
| ↳ `id` | number | User ID | | ↳ `id` | number | User ID |
| ↳ `username` | string | Username | | ↳ `username` | string | Username |
| ↳ `name` | string | Display name | | ↳ `name` | string | Display name |
| ↳ `first_name` | string | First name | | ↳ `first_name` | string | First name |
| ↳ `last_name` | string | Last name | | ↳ `last_name` | string | Last name |
| ↳ `email` | string | Email address | | ↳ `email` | string | Email address |
| ↳ `url` | string | User website URL | | ↳ `url` | string | User website URL |
| ↳ `description` | string | User bio | | ↳ `description` | string | User bio |
| ↳ `link` | string | Author archive URL | | ↳ `link` | string | Author archive URL |
| ↳ `slug` | string | User slug | | ↳ `slug` | string | User slug |
| ↳ `roles` | array | User roles | | ↳ `roles` | array | User roles |
| ↳ `avatar_urls` | object | Avatar URLs at different sizes | | ↳ `avatar_urls` | object | Avatar URLs at different sizes |
### `wordpress_list_users` ### `wordpress_list_users`
@@ -841,18 +841,18 @@ Get a specific user from WordPress.com by ID
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | The retrieved user | | `user` | object | The retrieved user |
| ↳ `id` | number | User ID | | ↳ `id` | number | User ID |
| ↳ `username` | string | Username | | ↳ `username` | string | Username |
| ↳ `name` | string | Display name | | ↳ `name` | string | Display name |
| ↳ `first_name` | string | First name | | ↳ `first_name` | string | First name |
| ↳ `last_name` | string | Last name | | ↳ `last_name` | string | Last name |
| ↳ `email` | string | Email address | | ↳ `email` | string | Email address |
| ↳ `url` | string | User website URL | | ↳ `url` | string | User website URL |
| ↳ `description` | string | User bio | | ↳ `description` | string | User bio |
| ↳ `link` | string | Author archive URL | | ↳ `link` | string | Author archive URL |
| ↳ `slug` | string | User slug | | ↳ `slug` | string | User slug |
| ↳ `roles` | array | User roles | | ↳ `roles` | array | User roles |
| ↳ `avatar_urls` | object | Avatar URLs at different sizes | | ↳ `avatar_urls` | object | Avatar URLs at different sizes |
### `wordpress_search_content` ### `wordpress_search_content`

View File

@@ -53,14 +53,14 @@ Post new tweets, reply to tweets, or create polls on X (Twitter)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `tweet` | object | The newly created tweet data | | `tweet` | object | The newly created tweet data |
| ↳ `id` | string | Tweet ID | | ↳ `id` | string | Tweet ID |
| ↳ `text` | string | Tweet content text | | ↳ `text` | string | Tweet content text |
| ↳ `createdAt` | string | Tweet creation timestamp | | ↳ `createdAt` | string | Tweet creation timestamp |
| ↳ `authorId` | string | ID of the tweet author | | ↳ `authorId` | string | ID of the tweet author |
| ↳ `conversationId` | string | Conversation thread ID | | ↳ `conversationId` | string | Conversation thread ID |
| ↳ `attachments` | object | Media or poll attachments | | ↳ `attachments` | object | Media or poll attachments |
| ↳ `mediaKeys` | array | Media attachment keys | | ↳ `mediaKeys` | array | Media attachment keys |
| ↳ `pollId` | string | Poll ID if poll attached | | ↳ `pollId` | string | Poll ID if poll attached |
### `x_read` ### `x_read`
@@ -78,10 +78,10 @@ Read tweet details, including replies and conversation context
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `tweet` | object | The main tweet data | | `tweet` | object | The main tweet data |
| ↳ `id` | string | Tweet ID | | ↳ `id` | string | Tweet ID |
| ↳ `text` | string | Tweet content text | | ↳ `text` | string | Tweet content text |
| ↳ `createdAt` | string | Tweet creation timestamp | | ↳ `createdAt` | string | Tweet creation timestamp |
| ↳ `authorId` | string | ID of the tweet author | | ↳ `authorId` | string | ID of the tweet author |
| `context` | object | Conversation context including parent and root tweets | | `context` | object | Conversation context including parent and root tweets |
### `x_search` ### `x_search`
@@ -109,9 +109,9 @@ Search for tweets using keywords, hashtags, or advanced queries
| ↳ `authorId` | string | Author user ID | | ↳ `authorId` | string | Author user ID |
| `includes` | object | Additional data including user profiles and media | | `includes` | object | Additional data including user profiles and media |
| `meta` | object | Search metadata including result count and pagination tokens | | `meta` | object | Search metadata including result count and pagination tokens |
| ↳ `resultCount` | number | Number of results returned | | ↳ `resultCount` | number | Number of results returned |
| ↳ `newestId` | string | ID of the newest tweet | | ↳ `newestId` | string | ID of the newest tweet |
| ↳ `oldestId` | string | ID of the oldest tweet | | ↳ `oldestId` | string | ID of the oldest tweet |
### `x_user` ### `x_user`
@@ -128,14 +128,14 @@ Get user profile information
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | X user profile information | | `user` | object | X user profile information |
| ↳ `id` | string | User ID | | ↳ `id` | string | User ID |
| ↳ `username` | string | Username without @ symbol | | ↳ `username` | string | Username without @ symbol |
| ↳ `name` | string | Display name | | ↳ `name` | string | Display name |
| ↳ `description` | string | User bio/description | | ↳ `description` | string | User bio/description |
| ↳ `verified` | boolean | Whether the user is verified | | ↳ `verified` | boolean | Whether the user is verified |
| ↳ `metrics` | object | User statistics | | ↳ `metrics` | object | User statistics |
| ↳ `followersCount` | number | Number of followers | | ↳ `followersCount` | number | Number of followers |
| ↳ `followingCount` | number | Number of users following | | ↳ `followingCount` | number | Number of users following |
| ↳ `tweetCount` | number | Total number of tweets | | ↳ `tweetCount` | number | Total number of tweets |

View File

@@ -26,38 +26,12 @@ In Sim, the YouTube integration enables your agents to programmatically search a
## Usage Instructions ## Usage Instructions
Integrate YouTube into the workflow. Can search for videos, get trending videos, get video details, get video captions, get video categories, get channel information, get all videos from a channel, get channel playlists, get playlist items, and get video comments. Integrate YouTube into the workflow. Can search for videos, get trending videos, get video details, get video categories, get channel information, get all videos from a channel, get channel playlists, get playlist items, and get video comments.
## Tools ## Tools
### `youtube_captions`
List available caption tracks (subtitles/transcripts) for a YouTube video. Returns information about each caption including language, type, and whether it is auto-generated.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `videoId` | string | Yes | YouTube video ID to get captions for |
| `apiKey` | string | Yes | YouTube API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `items` | array | Array of available caption tracks for the video |
| ↳ `captionId` | string | Caption track ID |
| ↳ `language` | string | Language code of the caption \(e.g., |
| ↳ `name` | string | Name/label of the caption track |
| ↳ `trackKind` | string | Type of caption track: |
| ↳ `lastUpdated` | string | When the caption was last updated |
| ↳ `isCC` | boolean | Whether this is a closed caption track |
| ↳ `isAutoSynced` | boolean | Whether the caption timing was automatically synced |
| ↳ `audioTrackType` | string | Type of audio track this caption is for |
| `totalResults` | number | Total number of caption tracks available |
### `youtube_channel_info` ### `youtube_channel_info`
Get detailed information about a YouTube channel including statistics, branding, and content details. Get detailed information about a YouTube channel including statistics, branding, and content details.

View File

@@ -77,13 +77,65 @@ Retrieve a list of tickets from Zendesk with optional filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `tickets` | array | Array of ticket objects | | `tickets` | array | Array of ticket objects |
| ↳ `id` | number | Automatically assigned ticket ID |
| ↳ `url` | string | API URL of the ticket |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `via` | object | How the ticket was created |
| ↳ `channel` | string | Channel through which the ticket was created \(e.g., email, web, api\) |
| ↳ `source` | object | Source details for the channel |
| ↳ `from` | object | Information about the source sender |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the sender |
| ↳ `to` | object | Information about the recipient |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the recipient |
| ↳ `rel` | string | Relationship type |
| ↳ `created_at` | string | When the ticket was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the ticket was last updated \(ISO 8601 format\) |
| ↳ `type` | string | Ticket type \(problem, incident, question, task\) |
| ↳ `subject` | string | Subject of the ticket |
| ↳ `raw_subject` | string | Subject of the ticket as entered by the requester |
| ↳ `description` | string | Read-only first comment on the ticket |
| ↳ `priority` | string | Priority level \(low, normal, high, urgent\) |
| ↳ `status` | string | Ticket status \(new, open, pending, hold, solved, closed\) |
| ↳ `recipient` | string | Original recipient email address |
| ↳ `requester_id` | number | User ID of the ticket requester |
| ↳ `submitter_id` | number | User ID of the ticket submitter |
| ↳ `assignee_id` | number | User ID of the agent assigned to the ticket |
| ↳ `organization_id` | number | Organization ID of the requester |
| ↳ `group_id` | number | Group ID assigned to the ticket |
| ↳ `collaborator_ids` | array | User IDs of collaborators \(CC\) |
| ↳ `follower_ids` | array | User IDs of followers |
| ↳ `email_cc_ids` | array | User IDs of email CCs |
| ↳ `forum_topic_id` | number | Topic ID in the community forum |
| ↳ `problem_id` | number | For incident tickets, the ID of the associated problem ticket |
| ↳ `has_incidents` | boolean | Whether the ticket has incident tickets linked |
| ↳ `is_public` | boolean | Whether the first comment is public |
| ↳ `due_at` | string | Due date for task tickets \(ISO 8601 format\) |
| ↳ `tags` | array | Tags associated with the ticket |
| ↳ `custom_fields` | array | Custom ticket fields |
| ↳ `id` | number | Custom field ID |
| ↳ `value` | string | Custom field value |
| ↳ `custom_status_id` | number | Custom status ID |
| ↳ `satisfaction_rating` | object | Customer satisfaction rating |
| ↳ `id` | number | Satisfaction rating ID |
| ↳ `score` | string | Rating score \(e.g., good, bad, offered, unoffered\) |
| ↳ `comment` | string | Comment left with the rating |
| ↳ `sharing_agreement_ids` | array | Sharing agreement IDs |
| ↳ `followup_ids` | array | IDs of follow-up tickets |
| ↳ `brand_id` | number | Brand ID the ticket belongs to |
| ↳ `allow_attachments` | boolean | Whether attachments are allowed |
| ↳ `allow_channelback` | boolean | Whether channelback is enabled |
| ↳ `from_messaging_channel` | boolean | Whether the ticket originated from a messaging channel |
| ↳ `ticket_form_id` | number | Ticket form ID |
| ↳ `generated_timestamp` | number | Unix timestamp of the ticket generation |
| `paging` | object | Pagination information | | `paging` | object | Pagination information |
| ↳ `next_page` | string | URL for next page of results | | ↳ `next_page` | string | URL for next page of results |
| ↳ `previous_page` | string | URL for previous page of results | | ↳ `previous_page` | string | URL for previous page of results |
| ↳ `count` | number | Total count of tickets | | ↳ `count` | number | Total count of items |
| `metadata` | object | Response metadata | | `metadata` | object | Response metadata |
| ↳ `total_returned` | number | Number of tickets returned in this response | | ↳ `total_returned` | number | Number of items returned in this response |
| ↳ `has_more` | boolean | Whether more tickets are available | | ↳ `has_more` | boolean | Whether more items are available |
### `zendesk_get_ticket` ### `zendesk_get_ticket`
@@ -103,6 +155,58 @@ Get a single ticket by ID from Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ticket` | object | Ticket object | | `ticket` | object | Ticket object |
| ↳ `id` | number | Automatically assigned ticket ID |
| ↳ `url` | string | API URL of the ticket |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `via` | object | How the ticket was created |
| ↳ `channel` | string | Channel through which the ticket was created \(e.g., email, web, api\) |
| ↳ `source` | object | Source details for the channel |
| ↳ `from` | object | Information about the source sender |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the sender |
| ↳ `to` | object | Information about the recipient |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the recipient |
| ↳ `rel` | string | Relationship type |
| ↳ `created_at` | string | When the ticket was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the ticket was last updated \(ISO 8601 format\) |
| ↳ `type` | string | Ticket type \(problem, incident, question, task\) |
| ↳ `subject` | string | Subject of the ticket |
| ↳ `raw_subject` | string | Subject of the ticket as entered by the requester |
| ↳ `description` | string | Read-only first comment on the ticket |
| ↳ `priority` | string | Priority level \(low, normal, high, urgent\) |
| ↳ `status` | string | Ticket status \(new, open, pending, hold, solved, closed\) |
| ↳ `recipient` | string | Original recipient email address |
| ↳ `requester_id` | number | User ID of the ticket requester |
| ↳ `submitter_id` | number | User ID of the ticket submitter |
| ↳ `assignee_id` | number | User ID of the agent assigned to the ticket |
| ↳ `organization_id` | number | Organization ID of the requester |
| ↳ `group_id` | number | Group ID assigned to the ticket |
| ↳ `collaborator_ids` | array | User IDs of collaborators \(CC\) |
| ↳ `follower_ids` | array | User IDs of followers |
| ↳ `email_cc_ids` | array | User IDs of email CCs |
| ↳ `forum_topic_id` | number | Topic ID in the community forum |
| ↳ `problem_id` | number | For incident tickets, the ID of the associated problem ticket |
| ↳ `has_incidents` | boolean | Whether the ticket has incident tickets linked |
| ↳ `is_public` | boolean | Whether the first comment is public |
| ↳ `due_at` | string | Due date for task tickets \(ISO 8601 format\) |
| ↳ `tags` | array | Tags associated with the ticket |
| ↳ `custom_fields` | array | Custom ticket fields |
| ↳ `id` | number | Custom field ID |
| ↳ `value` | string | Custom field value |
| ↳ `custom_status_id` | number | Custom status ID |
| ↳ `satisfaction_rating` | object | Customer satisfaction rating |
| ↳ `id` | number | Satisfaction rating ID |
| ↳ `score` | string | Rating score \(e.g., good, bad, offered, unoffered\) |
| ↳ `comment` | string | Comment left with the rating |
| ↳ `sharing_agreement_ids` | array | Sharing agreement IDs |
| ↳ `followup_ids` | array | IDs of follow-up tickets |
| ↳ `brand_id` | number | Brand ID the ticket belongs to |
| ↳ `allow_attachments` | boolean | Whether attachments are allowed |
| ↳ `allow_channelback` | boolean | Whether channelback is enabled |
| ↳ `from_messaging_channel` | boolean | Whether the ticket originated from a messaging channel |
| ↳ `ticket_form_id` | number | Ticket form ID |
| ↳ `generated_timestamp` | number | Unix timestamp of the ticket generation |
| `ticket_id` | number | The ticket ID | | `ticket_id` | number | The ticket ID |
### `zendesk_create_ticket` ### `zendesk_create_ticket`
@@ -132,6 +236,58 @@ Create a new ticket in Zendesk with support for custom fields
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ticket` | object | Created ticket object | | `ticket` | object | Created ticket object |
| ↳ `id` | number | Automatically assigned ticket ID |
| ↳ `url` | string | API URL of the ticket |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `via` | object | How the ticket was created |
| ↳ `channel` | string | Channel through which the ticket was created \(e.g., email, web, api\) |
| ↳ `source` | object | Source details for the channel |
| ↳ `from` | object | Information about the source sender |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the sender |
| ↳ `to` | object | Information about the recipient |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the recipient |
| ↳ `rel` | string | Relationship type |
| ↳ `created_at` | string | When the ticket was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the ticket was last updated \(ISO 8601 format\) |
| ↳ `type` | string | Ticket type \(problem, incident, question, task\) |
| ↳ `subject` | string | Subject of the ticket |
| ↳ `raw_subject` | string | Subject of the ticket as entered by the requester |
| ↳ `description` | string | Read-only first comment on the ticket |
| ↳ `priority` | string | Priority level \(low, normal, high, urgent\) |
| ↳ `status` | string | Ticket status \(new, open, pending, hold, solved, closed\) |
| ↳ `recipient` | string | Original recipient email address |
| ↳ `requester_id` | number | User ID of the ticket requester |
| ↳ `submitter_id` | number | User ID of the ticket submitter |
| ↳ `assignee_id` | number | User ID of the agent assigned to the ticket |
| ↳ `organization_id` | number | Organization ID of the requester |
| ↳ `group_id` | number | Group ID assigned to the ticket |
| ↳ `collaborator_ids` | array | User IDs of collaborators \(CC\) |
| ↳ `follower_ids` | array | User IDs of followers |
| ↳ `email_cc_ids` | array | User IDs of email CCs |
| ↳ `forum_topic_id` | number | Topic ID in the community forum |
| ↳ `problem_id` | number | For incident tickets, the ID of the associated problem ticket |
| ↳ `has_incidents` | boolean | Whether the ticket has incident tickets linked |
| ↳ `is_public` | boolean | Whether the first comment is public |
| ↳ `due_at` | string | Due date for task tickets \(ISO 8601 format\) |
| ↳ `tags` | array | Tags associated with the ticket |
| ↳ `custom_fields` | array | Custom ticket fields |
| ↳ `id` | number | Custom field ID |
| ↳ `value` | string | Custom field value |
| ↳ `custom_status_id` | number | Custom status ID |
| ↳ `satisfaction_rating` | object | Customer satisfaction rating |
| ↳ `id` | number | Satisfaction rating ID |
| ↳ `score` | string | Rating score \(e.g., good, bad, offered, unoffered\) |
| ↳ `comment` | string | Comment left with the rating |
| ↳ `sharing_agreement_ids` | array | Sharing agreement IDs |
| ↳ `followup_ids` | array | IDs of follow-up tickets |
| ↳ `brand_id` | number | Brand ID the ticket belongs to |
| ↳ `allow_attachments` | boolean | Whether attachments are allowed |
| ↳ `allow_channelback` | boolean | Whether channelback is enabled |
| ↳ `from_messaging_channel` | boolean | Whether the ticket originated from a messaging channel |
| ↳ `ticket_form_id` | number | Ticket form ID |
| ↳ `generated_timestamp` | number | Unix timestamp of the ticket generation |
| `ticket_id` | number | The created ticket ID | | `ticket_id` | number | The created ticket ID |
### `zendesk_create_tickets_bulk` ### `zendesk_create_tickets_bulk`
@@ -151,7 +307,21 @@ Create multiple tickets in Zendesk at once (max 100)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `job_status` | object | Job status object | | `job_status` | object | Job status object for bulk operations |
| ↳ `id` | string | Automatically assigned job ID |
| ↳ `url` | string | URL to poll for status updates |
| ↳ `status` | string | Current job status \(queued, working, failed, completed\) |
| ↳ `job_type` | string | Category of background task |
| ↳ `total` | number | Total number of tasks in this job |
| ↳ `progress` | number | Number of tasks already completed |
| ↳ `message` | string | Message from the job worker |
| ↳ `results` | array | Array of result objects from the job |
| ↳ `id` | number | ID of the created or updated resource |
| ↳ `index` | number | Position of the result in the batch |
| ↳ `action` | string | Action performed \(e.g., create, update\) |
| ↳ `success` | boolean | Whether the operation succeeded |
| ↳ `status` | string | Status message \(e.g., Updated, Created\) |
| ↳ `error` | string | Error message if operation failed |
| `job_id` | string | The bulk operation job ID | | `job_id` | string | The bulk operation job ID |
### `zendesk_update_ticket` ### `zendesk_update_ticket`
@@ -181,6 +351,58 @@ Update an existing ticket in Zendesk with support for custom fields
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `ticket` | object | Updated ticket object | | `ticket` | object | Updated ticket object |
| ↳ `id` | number | Automatically assigned ticket ID |
| ↳ `url` | string | API URL of the ticket |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `via` | object | How the ticket was created |
| ↳ `channel` | string | Channel through which the ticket was created \(e.g., email, web, api\) |
| ↳ `source` | object | Source details for the channel |
| ↳ `from` | object | Information about the source sender |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the sender |
| ↳ `to` | object | Information about the recipient |
| ↳ `address` | string | Email address or other identifier |
| ↳ `name` | string | Name of the recipient |
| ↳ `rel` | string | Relationship type |
| ↳ `created_at` | string | When the ticket was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the ticket was last updated \(ISO 8601 format\) |
| ↳ `type` | string | Ticket type \(problem, incident, question, task\) |
| ↳ `subject` | string | Subject of the ticket |
| ↳ `raw_subject` | string | Subject of the ticket as entered by the requester |
| ↳ `description` | string | Read-only first comment on the ticket |
| ↳ `priority` | string | Priority level \(low, normal, high, urgent\) |
| ↳ `status` | string | Ticket status \(new, open, pending, hold, solved, closed\) |
| ↳ `recipient` | string | Original recipient email address |
| ↳ `requester_id` | number | User ID of the ticket requester |
| ↳ `submitter_id` | number | User ID of the ticket submitter |
| ↳ `assignee_id` | number | User ID of the agent assigned to the ticket |
| ↳ `organization_id` | number | Organization ID of the requester |
| ↳ `group_id` | number | Group ID assigned to the ticket |
| ↳ `collaborator_ids` | array | User IDs of collaborators \(CC\) |
| ↳ `follower_ids` | array | User IDs of followers |
| ↳ `email_cc_ids` | array | User IDs of email CCs |
| ↳ `forum_topic_id` | number | Topic ID in the community forum |
| ↳ `problem_id` | number | For incident tickets, the ID of the associated problem ticket |
| ↳ `has_incidents` | boolean | Whether the ticket has incident tickets linked |
| ↳ `is_public` | boolean | Whether the first comment is public |
| ↳ `due_at` | string | Due date for task tickets \(ISO 8601 format\) |
| ↳ `tags` | array | Tags associated with the ticket |
| ↳ `custom_fields` | array | Custom ticket fields |
| ↳ `id` | number | Custom field ID |
| ↳ `value` | string | Custom field value |
| ↳ `custom_status_id` | number | Custom status ID |
| ↳ `satisfaction_rating` | object | Customer satisfaction rating |
| ↳ `id` | number | Satisfaction rating ID |
| ↳ `score` | string | Rating score \(e.g., good, bad, offered, unoffered\) |
| ↳ `comment` | string | Comment left with the rating |
| ↳ `sharing_agreement_ids` | array | Sharing agreement IDs |
| ↳ `followup_ids` | array | IDs of follow-up tickets |
| ↳ `brand_id` | number | Brand ID the ticket belongs to |
| ↳ `allow_attachments` | boolean | Whether attachments are allowed |
| ↳ `allow_channelback` | boolean | Whether channelback is enabled |
| ↳ `from_messaging_channel` | boolean | Whether the ticket originated from a messaging channel |
| ↳ `ticket_form_id` | number | Ticket form ID |
| ↳ `generated_timestamp` | number | Unix timestamp of the ticket generation |
| `ticket_id` | number | The updated ticket ID | | `ticket_id` | number | The updated ticket ID |
### `zendesk_update_tickets_bulk` ### `zendesk_update_tickets_bulk`
@@ -205,7 +427,21 @@ Update multiple tickets in Zendesk at once (max 100)
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `job_status` | object | Job status object | | `job_status` | object | Job status object for bulk operations |
| ↳ `id` | string | Automatically assigned job ID |
| ↳ `url` | string | URL to poll for status updates |
| ↳ `status` | string | Current job status \(queued, working, failed, completed\) |
| ↳ `job_type` | string | Category of background task |
| ↳ `total` | number | Total number of tasks in this job |
| ↳ `progress` | number | Number of tasks already completed |
| ↳ `message` | string | Message from the job worker |
| ↳ `results` | array | Array of result objects from the job |
| ↳ `id` | number | ID of the created or updated resource |
| ↳ `index` | number | Position of the result in the batch |
| ↳ `action` | string | Action performed \(e.g., create, update\) |
| ↳ `success` | boolean | Whether the operation succeeded |
| ↳ `status` | string | Status message \(e.g., Updated, Created\) |
| ↳ `error` | string | Error message if operation failed |
| `job_id` | string | The bulk operation job ID | | `job_id` | string | The bulk operation job ID |
### `zendesk_delete_ticket` ### `zendesk_delete_ticket`
@@ -247,7 +483,21 @@ Merge multiple tickets into a target ticket
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `job_status` | object | Job status object | | `job_status` | object | Job status object for bulk operations |
| ↳ `id` | string | Automatically assigned job ID |
| ↳ `url` | string | URL to poll for status updates |
| ↳ `status` | string | Current job status \(queued, working, failed, completed\) |
| ↳ `job_type` | string | Category of background task |
| ↳ `total` | number | Total number of tasks in this job |
| ↳ `progress` | number | Number of tasks already completed |
| ↳ `message` | string | Message from the job worker |
| ↳ `results` | array | Array of result objects from the job |
| ↳ `id` | number | ID of the created or updated resource |
| ↳ `index` | number | Position of the result in the batch |
| ↳ `action` | string | Action performed \(e.g., create, update\) |
| ↳ `success` | boolean | Whether the operation succeeded |
| ↳ `status` | string | Status message \(e.g., Updated, Created\) |
| ↳ `error` | string | Error message if operation failed |
| `job_id` | string | The merge job ID | | `job_id` | string | The merge job ID |
| `target_ticket_id` | string | The target ticket ID that tickets were merged into | | `target_ticket_id` | string | The target ticket ID that tickets were merged into |
@@ -272,13 +522,54 @@ Retrieve a list of users from Zendesk with optional filtering
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `users` | array | Array of user objects | | `users` | array | Array of user objects |
| ↳ `id` | number | Automatically assigned user ID |
| ↳ `url` | string | API URL of the user |
| ↳ `name` | string | User name |
| ↳ `email` | string | Primary email address |
| ↳ `created_at` | string | When the user was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the user was last updated \(ISO 8601 format\) |
| ↳ `time_zone` | string | Time zone \(e.g., Eastern Time \(US & Canada\)\) |
| ↳ `iana_time_zone` | string | IANA time zone \(e.g., America/New_York\) |
| ↳ `phone` | string | Phone number |
| ↳ `shared_phone_number` | boolean | Whether the phone number is shared |
| ↳ `photo` | object | User photo details |
| ↳ `content_url` | string | URL to the photo |
| ↳ `file_name` | string | Photo file name |
| ↳ `size` | number | File size in bytes |
| ↳ `locale` | string | Locale \(e.g., en-US\) |
| ↳ `locale_id` | number | Locale ID |
| ↳ `organization_id` | number | Primary organization ID |
| ↳ `role` | string | User role \(end-user, agent, admin\) |
| ↳ `role_type` | number | Role type identifier |
| ↳ `custom_role_id` | number | Custom role ID |
| ↳ `active` | boolean | Whether the user is active \(false if deleted\) |
| ↳ `verified` | boolean | Whether any user identity has been verified |
| ↳ `alias` | string | Alias displayed to end users |
| ↳ `details` | string | Details about the user |
| ↳ `notes` | string | Notes about the user |
| ↳ `signature` | string | User signature for email replies |
| ↳ `default_group_id` | number | Default group ID for the user |
| ↳ `tags` | array | Tags associated with the user |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `restricted_agent` | boolean | Whether the agent has restrictions |
| ↳ `suspended` | boolean | Whether the user is suspended |
| ↳ `moderator` | boolean | Whether the user has moderator permissions |
| ↳ `chat_only` | boolean | Whether the user is a chat-only agent |
| ↳ `only_private_comments` | boolean | Whether the user can only create private comments |
| ↳ `two_factor_auth_enabled` | boolean | Whether two-factor auth is enabled |
| ↳ `last_login_at` | string | Last login time \(ISO 8601 format\) |
| ↳ `ticket_restriction` | string | Ticket access restriction \(organization, groups, assigned, requested\) |
| ↳ `user_fields` | json | Custom user fields \(dynamic key-value pairs\) |
| ↳ `shared` | boolean | Whether the user is shared from a different Zendesk |
| ↳ `shared_agent` | boolean | Whether the agent is shared from a different Zendesk |
| ↳ `remote_photo_url` | string | URL to a remote photo |
| `paging` | object | Pagination information | | `paging` | object | Pagination information |
| ↳ `next_page` | string | URL for next page of results | | ↳ `next_page` | string | URL for next page of results |
| ↳ `previous_page` | string | URL for previous page of results | | ↳ `previous_page` | string | URL for previous page of results |
| ↳ `count` | number | Total count of users | | ↳ `count` | number | Total count of items |
| `metadata` | object | Response metadata | | `metadata` | object | Response metadata |
| ↳ `total_returned` | number | Number of users returned in this response | | ↳ `total_returned` | number | Number of items returned in this response |
| ↳ `has_more` | boolean | Whether more users are available | | ↳ `has_more` | boolean | Whether more items are available |
### `zendesk_get_user` ### `zendesk_get_user`
@@ -298,6 +589,47 @@ Get a single user by ID from Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | User object | | `user` | object | User object |
| ↳ `id` | number | Automatically assigned user ID |
| ↳ `url` | string | API URL of the user |
| ↳ `name` | string | User name |
| ↳ `email` | string | Primary email address |
| ↳ `created_at` | string | When the user was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the user was last updated \(ISO 8601 format\) |
| ↳ `time_zone` | string | Time zone \(e.g., Eastern Time \(US & Canada\)\) |
| ↳ `iana_time_zone` | string | IANA time zone \(e.g., America/New_York\) |
| ↳ `phone` | string | Phone number |
| ↳ `shared_phone_number` | boolean | Whether the phone number is shared |
| ↳ `photo` | object | User photo details |
| ↳ `content_url` | string | URL to the photo |
| ↳ `file_name` | string | Photo file name |
| ↳ `size` | number | File size in bytes |
| ↳ `locale` | string | Locale \(e.g., en-US\) |
| ↳ `locale_id` | number | Locale ID |
| ↳ `organization_id` | number | Primary organization ID |
| ↳ `role` | string | User role \(end-user, agent, admin\) |
| ↳ `role_type` | number | Role type identifier |
| ↳ `custom_role_id` | number | Custom role ID |
| ↳ `active` | boolean | Whether the user is active \(false if deleted\) |
| ↳ `verified` | boolean | Whether any user identity has been verified |
| ↳ `alias` | string | Alias displayed to end users |
| ↳ `details` | string | Details about the user |
| ↳ `notes` | string | Notes about the user |
| ↳ `signature` | string | User signature for email replies |
| ↳ `default_group_id` | number | Default group ID for the user |
| ↳ `tags` | array | Tags associated with the user |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `restricted_agent` | boolean | Whether the agent has restrictions |
| ↳ `suspended` | boolean | Whether the user is suspended |
| ↳ `moderator` | boolean | Whether the user has moderator permissions |
| ↳ `chat_only` | boolean | Whether the user is a chat-only agent |
| ↳ `only_private_comments` | boolean | Whether the user can only create private comments |
| ↳ `two_factor_auth_enabled` | boolean | Whether two-factor auth is enabled |
| ↳ `last_login_at` | string | Last login time \(ISO 8601 format\) |
| ↳ `ticket_restriction` | string | Ticket access restriction \(organization, groups, assigned, requested\) |
| ↳ `user_fields` | json | Custom user fields \(dynamic key-value pairs\) |
| ↳ `shared` | boolean | Whether the user is shared from a different Zendesk |
| ↳ `shared_agent` | boolean | Whether the agent is shared from a different Zendesk |
| ↳ `remote_photo_url` | string | URL to a remote photo |
| `user_id` | number | The user ID | | `user_id` | number | The user ID |
### `zendesk_get_current_user` ### `zendesk_get_current_user`
@@ -317,6 +649,47 @@ Get the currently authenticated user from Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | Current user object | | `user` | object | Current user object |
| ↳ `id` | number | Automatically assigned user ID |
| ↳ `url` | string | API URL of the user |
| ↳ `name` | string | User name |
| ↳ `email` | string | Primary email address |
| ↳ `created_at` | string | When the user was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the user was last updated \(ISO 8601 format\) |
| ↳ `time_zone` | string | Time zone \(e.g., Eastern Time \(US & Canada\)\) |
| ↳ `iana_time_zone` | string | IANA time zone \(e.g., America/New_York\) |
| ↳ `phone` | string | Phone number |
| ↳ `shared_phone_number` | boolean | Whether the phone number is shared |
| ↳ `photo` | object | User photo details |
| ↳ `content_url` | string | URL to the photo |
| ↳ `file_name` | string | Photo file name |
| ↳ `size` | number | File size in bytes |
| ↳ `locale` | string | Locale \(e.g., en-US\) |
| ↳ `locale_id` | number | Locale ID |
| ↳ `organization_id` | number | Primary organization ID |
| ↳ `role` | string | User role \(end-user, agent, admin\) |
| ↳ `role_type` | number | Role type identifier |
| ↳ `custom_role_id` | number | Custom role ID |
| ↳ `active` | boolean | Whether the user is active \(false if deleted\) |
| ↳ `verified` | boolean | Whether any user identity has been verified |
| ↳ `alias` | string | Alias displayed to end users |
| ↳ `details` | string | Details about the user |
| ↳ `notes` | string | Notes about the user |
| ↳ `signature` | string | User signature for email replies |
| ↳ `default_group_id` | number | Default group ID for the user |
| ↳ `tags` | array | Tags associated with the user |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `restricted_agent` | boolean | Whether the agent has restrictions |
| ↳ `suspended` | boolean | Whether the user is suspended |
| ↳ `moderator` | boolean | Whether the user has moderator permissions |
| ↳ `chat_only` | boolean | Whether the user is a chat-only agent |
| ↳ `only_private_comments` | boolean | Whether the user can only create private comments |
| ↳ `two_factor_auth_enabled` | boolean | Whether two-factor auth is enabled |
| ↳ `last_login_at` | string | Last login time \(ISO 8601 format\) |
| ↳ `ticket_restriction` | string | Ticket access restriction \(organization, groups, assigned, requested\) |
| ↳ `user_fields` | json | Custom user fields \(dynamic key-value pairs\) |
| ↳ `shared` | boolean | Whether the user is shared from a different Zendesk |
| ↳ `shared_agent` | boolean | Whether the agent is shared from a different Zendesk |
| ↳ `remote_photo_url` | string | URL to a remote photo |
| `user_id` | number | The current user ID | | `user_id` | number | The current user ID |
### `zendesk_search_users` ### `zendesk_search_users`
@@ -340,13 +713,54 @@ Search for users in Zendesk using a query string
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `users` | array | Array of user objects | | `users` | array | Array of user objects |
| ↳ `id` | number | Automatically assigned user ID |
| ↳ `url` | string | API URL of the user |
| ↳ `name` | string | User name |
| ↳ `email` | string | Primary email address |
| ↳ `created_at` | string | When the user was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the user was last updated \(ISO 8601 format\) |
| ↳ `time_zone` | string | Time zone \(e.g., Eastern Time \(US & Canada\)\) |
| ↳ `iana_time_zone` | string | IANA time zone \(e.g., America/New_York\) |
| ↳ `phone` | string | Phone number |
| ↳ `shared_phone_number` | boolean | Whether the phone number is shared |
| ↳ `photo` | object | User photo details |
| ↳ `content_url` | string | URL to the photo |
| ↳ `file_name` | string | Photo file name |
| ↳ `size` | number | File size in bytes |
| ↳ `locale` | string | Locale \(e.g., en-US\) |
| ↳ `locale_id` | number | Locale ID |
| ↳ `organization_id` | number | Primary organization ID |
| ↳ `role` | string | User role \(end-user, agent, admin\) |
| ↳ `role_type` | number | Role type identifier |
| ↳ `custom_role_id` | number | Custom role ID |
| ↳ `active` | boolean | Whether the user is active \(false if deleted\) |
| ↳ `verified` | boolean | Whether any user identity has been verified |
| ↳ `alias` | string | Alias displayed to end users |
| ↳ `details` | string | Details about the user |
| ↳ `notes` | string | Notes about the user |
| ↳ `signature` | string | User signature for email replies |
| ↳ `default_group_id` | number | Default group ID for the user |
| ↳ `tags` | array | Tags associated with the user |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `restricted_agent` | boolean | Whether the agent has restrictions |
| ↳ `suspended` | boolean | Whether the user is suspended |
| ↳ `moderator` | boolean | Whether the user has moderator permissions |
| ↳ `chat_only` | boolean | Whether the user is a chat-only agent |
| ↳ `only_private_comments` | boolean | Whether the user can only create private comments |
| ↳ `two_factor_auth_enabled` | boolean | Whether two-factor auth is enabled |
| ↳ `last_login_at` | string | Last login time \(ISO 8601 format\) |
| ↳ `ticket_restriction` | string | Ticket access restriction \(organization, groups, assigned, requested\) |
| ↳ `user_fields` | json | Custom user fields \(dynamic key-value pairs\) |
| ↳ `shared` | boolean | Whether the user is shared from a different Zendesk |
| ↳ `shared_agent` | boolean | Whether the agent is shared from a different Zendesk |
| ↳ `remote_photo_url` | string | URL to a remote photo |
| `paging` | object | Pagination information | | `paging` | object | Pagination information |
| ↳ `next_page` | string | URL for next page of results | | ↳ `next_page` | string | URL for next page of results |
| ↳ `previous_page` | string | URL for previous page of results | | ↳ `previous_page` | string | URL for previous page of results |
| ↳ `count` | number | Total count of users | | ↳ `count` | number | Total count of items |
| `metadata` | object | Response metadata | | `metadata` | object | Response metadata |
| ↳ `total_returned` | number | Number of users returned in this response | | ↳ `total_returned` | number | Number of items returned in this response |
| ↳ `has_more` | boolean | Whether more users are available | | ↳ `has_more` | boolean | Whether more items are available |
### `zendesk_create_user` ### `zendesk_create_user`
@@ -373,6 +787,47 @@ Create a new user in Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | object | Created user object | | `user` | object | Created user object |
| ↳ `id` | number | Automatically assigned user ID |
| ↳ `url` | string | API URL of the user |
| ↳ `name` | string | User name |
| ↳ `email` | string | Primary email address |
| ↳ `created_at` | string | When the user was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the user was last updated \(ISO 8601 format\) |
| ↳ `time_zone` | string | Time zone \(e.g., Eastern Time \(US & Canada\)\) |
| ↳ `iana_time_zone` | string | IANA time zone \(e.g., America/New_York\) |
| ↳ `phone` | string | Phone number |
| ↳ `shared_phone_number` | boolean | Whether the phone number is shared |
| ↳ `photo` | object | User photo details |
| ↳ `content_url` | string | URL to the photo |
| ↳ `file_name` | string | Photo file name |
| ↳ `size` | number | File size in bytes |
| ↳ `locale` | string | Locale \(e.g., en-US\) |
| ↳ `locale_id` | number | Locale ID |
| ↳ `organization_id` | number | Primary organization ID |
| ↳ `role` | string | User role \(end-user, agent, admin\) |
| ↳ `role_type` | number | Role type identifier |
| ↳ `custom_role_id` | number | Custom role ID |
| ↳ `active` | boolean | Whether the user is active \(false if deleted\) |
| ↳ `verified` | boolean | Whether any user identity has been verified |
| ↳ `alias` | string | Alias displayed to end users |
| ↳ `details` | string | Details about the user |
| ↳ `notes` | string | Notes about the user |
| ↳ `signature` | string | User signature for email replies |
| ↳ `default_group_id` | number | Default group ID for the user |
| ↳ `tags` | array | Tags associated with the user |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `restricted_agent` | boolean | Whether the agent has restrictions |
| ↳ `suspended` | boolean | Whether the user is suspended |
| ↳ `moderator` | boolean | Whether the user has moderator permissions |
| ↳ `chat_only` | boolean | Whether the user is a chat-only agent |
| ↳ `only_private_comments` | boolean | Whether the user can only create private comments |
| ↳ `two_factor_auth_enabled` | boolean | Whether two-factor auth is enabled |
| ↳ `last_login_at` | string | Last login time \(ISO 8601 format\) |
| ↳ `ticket_restriction` | string | Ticket access restriction \(organization, groups, assigned, requested\) |
| ↳ `user_fields` | json | Custom user fields \(dynamic key-value pairs\) |
| ↳ `shared` | boolean | Whether the user is shared from a different Zendesk |
| ↳ `shared_agent` | boolean | Whether the agent is shared from a different Zendesk |
| ↳ `remote_photo_url` | string | URL to a remote photo |
| `user_id` | number | The created user ID | | `user_id` | number | The created user ID |
### `zendesk_create_users_bulk` ### `zendesk_create_users_bulk`
@@ -392,7 +847,21 @@ Create multiple users in Zendesk using bulk import
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `job_status` | object | Job status object | | `job_status` | object | Job status object for bulk operations |
| ↳ `id` | string | Automatically assigned job ID |
| ↳ `url` | string | URL to poll for status updates |
| ↳ `status` | string | Current job status \(queued, working, failed, completed\) |
| ↳ `job_type` | string | Category of background task |
| ↳ `total` | number | Total number of tasks in this job |
| ↳ `progress` | number | Number of tasks already completed |
| ↳ `message` | string | Message from the job worker |
| ↳ `results` | array | Array of result objects from the job |
| ↳ `id` | number | ID of the created or updated resource |
| ↳ `index` | number | Position of the result in the batch |
| ↳ `action` | string | Action performed \(e.g., create, update\) |
| ↳ `success` | boolean | Whether the operation succeeded |
| ↳ `status` | string | Status message \(e.g., Updated, Created\) |
| ↳ `error` | string | Error message if operation failed |
| `job_id` | string | The bulk operation job ID | | `job_id` | string | The bulk operation job ID |
### `zendesk_update_user` ### `zendesk_update_user`
@@ -420,7 +889,48 @@ Update an existing user in Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `user` | json | Updated user object | | `user` | object | Updated user object |
| ↳ `id` | number | Automatically assigned user ID |
| ↳ `url` | string | API URL of the user |
| ↳ `name` | string | User name |
| ↳ `email` | string | Primary email address |
| ↳ `created_at` | string | When the user was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the user was last updated \(ISO 8601 format\) |
| ↳ `time_zone` | string | Time zone \(e.g., Eastern Time \(US & Canada\)\) |
| ↳ `iana_time_zone` | string | IANA time zone \(e.g., America/New_York\) |
| ↳ `phone` | string | Phone number |
| ↳ `shared_phone_number` | boolean | Whether the phone number is shared |
| ↳ `photo` | object | User photo details |
| ↳ `content_url` | string | URL to the photo |
| ↳ `file_name` | string | Photo file name |
| ↳ `size` | number | File size in bytes |
| ↳ `locale` | string | Locale \(e.g., en-US\) |
| ↳ `locale_id` | number | Locale ID |
| ↳ `organization_id` | number | Primary organization ID |
| ↳ `role` | string | User role \(end-user, agent, admin\) |
| ↳ `role_type` | number | Role type identifier |
| ↳ `custom_role_id` | number | Custom role ID |
| ↳ `active` | boolean | Whether the user is active \(false if deleted\) |
| ↳ `verified` | boolean | Whether any user identity has been verified |
| ↳ `alias` | string | Alias displayed to end users |
| ↳ `details` | string | Details about the user |
| ↳ `notes` | string | Notes about the user |
| ↳ `signature` | string | User signature for email replies |
| ↳ `default_group_id` | number | Default group ID for the user |
| ↳ `tags` | array | Tags associated with the user |
| ↳ `external_id` | string | External ID for linking to external records |
| ↳ `restricted_agent` | boolean | Whether the agent has restrictions |
| ↳ `suspended` | boolean | Whether the user is suspended |
| ↳ `moderator` | boolean | Whether the user has moderator permissions |
| ↳ `chat_only` | boolean | Whether the user is a chat-only agent |
| ↳ `only_private_comments` | boolean | Whether the user can only create private comments |
| ↳ `two_factor_auth_enabled` | boolean | Whether two-factor auth is enabled |
| ↳ `last_login_at` | string | Last login time \(ISO 8601 format\) |
| ↳ `ticket_restriction` | string | Ticket access restriction \(organization, groups, assigned, requested\) |
| ↳ `user_fields` | json | Custom user fields \(dynamic key-value pairs\) |
| ↳ `shared` | boolean | Whether the user is shared from a different Zendesk |
| ↳ `shared_agent` | boolean | Whether the agent is shared from a different Zendesk |
| ↳ `remote_photo_url` | string | URL to a remote photo |
| `user_id` | number | The updated user ID | | `user_id` | number | The updated user ID |
### `zendesk_update_users_bulk` ### `zendesk_update_users_bulk`
@@ -440,7 +950,21 @@ Update multiple users in Zendesk using bulk update
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `job_status` | object | Job status object | | `job_status` | object | Job status object for bulk operations |
| ↳ `id` | string | Automatically assigned job ID |
| ↳ `url` | string | URL to poll for status updates |
| ↳ `status` | string | Current job status \(queued, working, failed, completed\) |
| ↳ `job_type` | string | Category of background task |
| ↳ `total` | number | Total number of tasks in this job |
| ↳ `progress` | number | Number of tasks already completed |
| ↳ `message` | string | Message from the job worker |
| ↳ `results` | array | Array of result objects from the job |
| ↳ `id` | number | ID of the created or updated resource |
| ↳ `index` | number | Position of the result in the batch |
| ↳ `action` | string | Action performed \(e.g., create, update\) |
| ↳ `success` | boolean | Whether the operation succeeded |
| ↳ `status` | string | Status message \(e.g., Updated, Created\) |
| ↳ `error` | string | Error message if operation failed |
| `job_id` | string | The bulk operation job ID | | `job_id` | string | The bulk operation job ID |
### `zendesk_delete_user` ### `zendesk_delete_user`
@@ -482,13 +1006,27 @@ Retrieve a list of organizations from Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `organizations` | array | Array of organization objects | | `organizations` | array | Array of organization objects |
| ↳ `id` | number | Automatically assigned organization ID |
| ↳ `url` | string | API URL of the organization |
| ↳ `name` | string | Unique organization name |
| ↳ `domain_names` | array | Domain names for automatic user assignment |
| ↳ `details` | string | Details about the organization |
| ↳ `notes` | string | Notes about the organization |
| ↳ `group_id` | number | Group ID for auto-routing new tickets |
| ↳ `shared_tickets` | boolean | Whether end users can see each others tickets |
| ↳ `shared_comments` | boolean | Whether end users can see each others comments |
| ↳ `tags` | array | Tags associated with the organization |
| ↳ `organization_fields` | json | Custom organization fields \(dynamic key-value pairs\) |
| ↳ `created_at` | string | When the organization was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the organization was last updated \(ISO 8601 format\) |
| ↳ `external_id` | string | External ID for linking to external records |
| `paging` | object | Pagination information | | `paging` | object | Pagination information |
| ↳ `next_page` | string | URL for next page of results | | ↳ `next_page` | string | URL for next page of results |
| ↳ `previous_page` | string | URL for previous page of results | | ↳ `previous_page` | string | URL for previous page of results |
| ↳ `count` | number | Total count of organizations | | ↳ `count` | number | Total count of items |
| `metadata` | object | Response metadata | | `metadata` | object | Response metadata |
| ↳ `total_returned` | number | Number of organizations returned in this response | | ↳ `total_returned` | number | Number of items returned in this response |
| ↳ `has_more` | boolean | Whether more organizations are available | | ↳ `has_more` | boolean | Whether more items are available |
### `zendesk_get_organization` ### `zendesk_get_organization`
@@ -507,7 +1045,21 @@ Get a single organization by ID from Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `organization` | json | Organization object | | `organization` | object | Organization object |
| ↳ `id` | number | Automatically assigned organization ID |
| ↳ `url` | string | API URL of the organization |
| ↳ `name` | string | Unique organization name |
| ↳ `domain_names` | array | Domain names for automatic user assignment |
| ↳ `details` | string | Details about the organization |
| ↳ `notes` | string | Notes about the organization |
| ↳ `group_id` | number | Group ID for auto-routing new tickets |
| ↳ `shared_tickets` | boolean | Whether end users can see each others tickets |
| ↳ `shared_comments` | boolean | Whether end users can see each others comments |
| ↳ `tags` | array | Tags associated with the organization |
| ↳ `organization_fields` | json | Custom organization fields \(dynamic key-value pairs\) |
| ↳ `created_at` | string | When the organization was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the organization was last updated \(ISO 8601 format\) |
| ↳ `external_id` | string | External ID for linking to external records |
| `organization_id` | number | The organization ID | | `organization_id` | number | The organization ID |
### `zendesk_autocomplete_organizations` ### `zendesk_autocomplete_organizations`
@@ -530,13 +1082,27 @@ Autocomplete organizations in Zendesk by name prefix (for name matching/autocomp
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `organizations` | array | Array of organization objects | | `organizations` | array | Array of organization objects |
| ↳ `id` | number | Automatically assigned organization ID |
| ↳ `url` | string | API URL of the organization |
| ↳ `name` | string | Unique organization name |
| ↳ `domain_names` | array | Domain names for automatic user assignment |
| ↳ `details` | string | Details about the organization |
| ↳ `notes` | string | Notes about the organization |
| ↳ `group_id` | number | Group ID for auto-routing new tickets |
| ↳ `shared_tickets` | boolean | Whether end users can see each others tickets |
| ↳ `shared_comments` | boolean | Whether end users can see each others comments |
| ↳ `tags` | array | Tags associated with the organization |
| ↳ `organization_fields` | json | Custom organization fields \(dynamic key-value pairs\) |
| ↳ `created_at` | string | When the organization was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the organization was last updated \(ISO 8601 format\) |
| ↳ `external_id` | string | External ID for linking to external records |
| `paging` | object | Pagination information | | `paging` | object | Pagination information |
| ↳ `next_page` | string | URL for next page of results | | ↳ `next_page` | string | URL for next page of results |
| ↳ `previous_page` | string | URL for previous page of results | | ↳ `previous_page` | string | URL for previous page of results |
| ↳ `count` | number | Total count of organizations | | ↳ `count` | number | Total count of items |
| `metadata` | object | Response metadata | | `metadata` | object | Response metadata |
| ↳ `total_returned` | number | Number of organizations returned in this response | | ↳ `total_returned` | number | Number of items returned in this response |
| ↳ `has_more` | boolean | Whether more organizations are available | | ↳ `has_more` | boolean | Whether more items are available |
### `zendesk_create_organization` ### `zendesk_create_organization`
@@ -560,7 +1126,21 @@ Create a new organization in Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `organization` | json | Created organization object | | `organization` | object | Created organization object |
| ↳ `id` | number | Automatically assigned organization ID |
| ↳ `url` | string | API URL of the organization |
| ↳ `name` | string | Unique organization name |
| ↳ `domain_names` | array | Domain names for automatic user assignment |
| ↳ `details` | string | Details about the organization |
| ↳ `notes` | string | Notes about the organization |
| ↳ `group_id` | number | Group ID for auto-routing new tickets |
| ↳ `shared_tickets` | boolean | Whether end users can see each others tickets |
| ↳ `shared_comments` | boolean | Whether end users can see each others comments |
| ↳ `tags` | array | Tags associated with the organization |
| ↳ `organization_fields` | json | Custom organization fields \(dynamic key-value pairs\) |
| ↳ `created_at` | string | When the organization was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the organization was last updated \(ISO 8601 format\) |
| ↳ `external_id` | string | External ID for linking to external records |
| `organization_id` | number | The created organization ID | | `organization_id` | number | The created organization ID |
### `zendesk_create_organizations_bulk` ### `zendesk_create_organizations_bulk`
@@ -580,7 +1160,21 @@ Create multiple organizations in Zendesk using bulk import
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `job_status` | object | Job status object | | `job_status` | object | Job status object for bulk operations |
| ↳ `id` | string | Automatically assigned job ID |
| ↳ `url` | string | URL to poll for status updates |
| ↳ `status` | string | Current job status \(queued, working, failed, completed\) |
| ↳ `job_type` | string | Category of background task |
| ↳ `total` | number | Total number of tasks in this job |
| ↳ `progress` | number | Number of tasks already completed |
| ↳ `message` | string | Message from the job worker |
| ↳ `results` | array | Array of result objects from the job |
| ↳ `id` | number | ID of the created or updated resource |
| ↳ `index` | number | Position of the result in the batch |
| ↳ `action` | string | Action performed \(e.g., create, update\) |
| ↳ `success` | boolean | Whether the operation succeeded |
| ↳ `status` | string | Status message \(e.g., Updated, Created\) |
| ↳ `error` | string | Error message if operation failed |
| `job_id` | string | The bulk operation job ID | | `job_id` | string | The bulk operation job ID |
### `zendesk_update_organization` ### `zendesk_update_organization`
@@ -606,7 +1200,21 @@ Update an existing organization in Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `organization` | json | Updated organization object | | `organization` | object | Updated organization object |
| ↳ `id` | number | Automatically assigned organization ID |
| ↳ `url` | string | API URL of the organization |
| ↳ `name` | string | Unique organization name |
| ↳ `domain_names` | array | Domain names for automatic user assignment |
| ↳ `details` | string | Details about the organization |
| ↳ `notes` | string | Notes about the organization |
| ↳ `group_id` | number | Group ID for auto-routing new tickets |
| ↳ `shared_tickets` | boolean | Whether end users can see each others tickets |
| ↳ `shared_comments` | boolean | Whether end users can see each others comments |
| ↳ `tags` | array | Tags associated with the organization |
| ↳ `organization_fields` | json | Custom organization fields \(dynamic key-value pairs\) |
| ↳ `created_at` | string | When the organization was created \(ISO 8601 format\) |
| ↳ `updated_at` | string | When the organization was last updated \(ISO 8601 format\) |
| ↳ `external_id` | string | External ID for linking to external records |
| `organization_id` | number | The updated organization ID | | `organization_id` | number | The updated organization ID |
### `zendesk_delete_organization` ### `zendesk_delete_organization`
@@ -650,14 +1258,14 @@ Unified search across tickets, users, and organizations in Zendesk
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | Array of result objects |
| `paging` | object | Pagination information | | `paging` | object | Pagination information |
| ↳ `next_page` | string | URL for next page of results | | ↳ `next_page` | string | URL for next page of results |
| ↳ `previous_page` | string | URL for previous page of results | | ↳ `previous_page` | string | URL for previous page of results |
| ↳ `count` | number | Total count of results | | ↳ `count` | number | Total count of items |
| `metadata` | object | Response metadata | | `metadata` | object | Response metadata |
| ↳ `total_returned` | number | Number of results returned in this response | | ↳ `total_returned` | number | Number of items returned in this response |
| ↳ `has_more` | boolean | Whether more results are available | | ↳ `has_more` | boolean | Whether more items are available |
| `results` | array | Array of result objects \(tickets, users, or organizations depending on search query\) |
### `zendesk_search_count` ### `zendesk_search_count`

View File

@@ -52,10 +52,10 @@ Start a new conversation thread in Zep
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `threadId` | string | The thread ID | | `threadId` | string | Thread identifier |
| `userId` | string | The user ID | | `userId` | string | Associated user ID |
| `uuid` | string | Internal UUID | | `uuid` | string | Internal UUID |
| `createdAt` | string | Creation timestamp | | `createdAt` | string | Creation timestamp \(ISO 8601\) |
| `projectUuid` | string | Project UUID | | `projectUuid` | string | Project UUID |
### `zep_get_threads` ### `zep_get_threads`
@@ -77,8 +77,15 @@ List all conversation threads
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `threads` | array | Array of thread objects | | `threads` | array | Array of thread objects |
| `responseCount` | number | Number of threads in this response | | ↳ `threadId` | string | Thread identifier |
| `totalCount` | number | Total number of threads available | | ↳ `userId` | string | Associated user ID |
| ↳ `uuid` | string | Internal UUID |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `projectUuid` | string | Project UUID |
| ↳ `metadata` | object | Custom metadata \(dynamic key-value pairs\) |
| `responseCount` | number | Number of items in this response |
| `totalCount` | number | Total number of items available |
### `zep_delete_thread` ### `zep_delete_thread`
@@ -135,8 +142,16 @@ Retrieve messages from a thread
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `messages` | array | Array of message objects | | `messages` | array | Array of message objects |
| `rowCount` | number | Number of messages in this response | | ↳ `uuid` | string | Message UUID |
| `totalCount` | number | Total number of messages in the thread | | ↳ `role` | string | Message role \(user, assistant, system, tool\) |
| ↳ `roleType` | string | Role type \(AI, human, tool\) |
| ↳ `content` | string | Message content |
| ↳ `name` | string | Sender name |
| ↳ `createdAt` | string | Timestamp \(RFC3339 format\) |
| ↳ `metadata` | object | Message metadata \(dynamic key-value pairs\) |
| ↳ `processed` | boolean | Whether message has been processed |
| `rowCount` | number | Number of rows returned |
| `totalCount` | number | Total number of items available |
### `zep_add_messages` ### `zep_add_messages`
@@ -154,7 +169,7 @@ Add messages to an existing thread
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `threadId` | string | The thread ID | | `threadId` | string | Thread identifier |
| `added` | boolean | Whether messages were added successfully | | `added` | boolean | Whether messages were added successfully |
| `messageIds` | array | Array of added message UUIDs | | `messageIds` | array | Array of added message UUIDs |
@@ -177,13 +192,13 @@ Create a new user in Zep
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `userId` | string | The user ID | | `userId` | string | User identifier |
| `email` | string | User email | | `email` | string | User email address |
| `firstName` | string | User first name | | `firstName` | string | User first name |
| `lastName` | string | User last name | | `lastName` | string | User last name |
| `uuid` | string | Internal UUID | | `uuid` | string | Internal UUID |
| `createdAt` | string | Creation timestamp | | `createdAt` | string | Creation timestamp \(ISO 8601\) |
| `metadata` | object | User metadata | | `metadata` | object | User metadata \(dynamic key-value pairs\) |
### `zep_get_user` ### `zep_get_user`
@@ -200,14 +215,14 @@ Retrieve user information from Zep
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `userId` | string | The user ID | | `userId` | string | User identifier |
| `email` | string | User email | | `email` | string | User email address |
| `firstName` | string | User first name | | `firstName` | string | User first name |
| `lastName` | string | User last name | | `lastName` | string | User last name |
| `uuid` | string | Internal UUID | | `uuid` | string | Internal UUID |
| `createdAt` | string | Creation timestamp | | `createdAt` | string | Creation timestamp \(ISO 8601\) |
| `updatedAt` | string | Last update timestamp | | `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| `metadata` | object | User metadata | | `metadata` | object | User metadata \(dynamic key-value pairs\) |
### `zep_get_user_threads` ### `zep_get_user_threads`
@@ -225,7 +240,14 @@ List all conversation threads for a specific user
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `threads` | array | Array of thread objects for this user | | `threads` | array | Array of thread objects |
| `totalCount` | number | Total number of threads returned | | ↳ `threadId` | string | Thread identifier |
| ↳ `userId` | string | Associated user ID |
| ↳ `uuid` | string | Internal UUID |
| ↳ `createdAt` | string | Creation timestamp \(ISO 8601\) |
| ↳ `updatedAt` | string | Last update timestamp \(ISO 8601\) |
| ↳ `projectUuid` | string | Project UUID |
| ↳ `metadata` | object | Custom metadata \(dynamic key-value pairs\) |
| `totalCount` | number | Total number of items available |

View File

@@ -69,22 +69,49 @@ Create a new Zoom meeting
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `meeting` | object | The created meeting with all its properties | | `meeting` | object | The created meeting with all its properties |
| ↳ `id` | number | Meeting ID | | ↳ `id` | number | Meeting ID |
| ↳ `uuid` | string | Meeting UUID | | ↳ `uuid` | string | Meeting UUID |
| ↳ `host_id` | string | Host user ID | | ↳ `host_id` | string | Host user ID |
| ↳ `host_email` | string | Host email | | ↳ `host_email` | string | Host email address |
| ↳ `topic` | string | Meeting topic | | ↳ `topic` | string | Meeting topic |
| ↳ `type` | number | Meeting type | | ↳ `type` | number | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
| ↳ `status` | string | Meeting status | | ↳ `status` | string | Meeting status \(e.g., waiting, started\) |
| ↳ `start_time` | string | Start time | | ↳ `start_time` | string | Start time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes | | ↳ `duration` | number | Duration in minutes |
| ↳ `timezone` | string | Timezone | | ↳ `timezone` | string | Timezone \(e.g., America/Los_Angeles\) |
| ↳ `agenda` | string | Meeting agenda | | ↳ `agenda` | string | Meeting agenda |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp in ISO 8601 format |
| ↳ `start_url` | string | Host start URL | | ↳ `start_url` | string | URL for host to start the meeting |
| ↳ `join_url` | string | Participant join URL | | ↳ `join_url` | string | URL for participants to join the meeting |
| ↳ `password` | string | Meeting password | | ↳ `password` | string | Meeting password |
| ↳ `settings` | object | Meeting settings | | ↳ `h323_password` | string | H.323/SIP room system password |
| ↳ `pstn_password` | string | PSTN password for phone dial-in |
| ↳ `encrypted_password` | string | Encrypted password for joining |
| ↳ `settings` | object | Meeting settings |
| ↳ `host_video` | boolean | Start with host video on |
| ↳ `participant_video` | boolean | Start with participant video on |
| ↳ `join_before_host` | boolean | Allow participants to join before host |
| ↳ `mute_upon_entry` | boolean | Mute participants upon entry |
| ↳ `watermark` | boolean | Add watermark when viewing shared screen |
| ↳ `audio` | string | Audio options: both, telephony, or voip |
| ↳ `auto_recording` | string | Auto recording: local, cloud, or none |
| ↳ `waiting_room` | boolean | Enable waiting room |
| ↳ `meeting_authentication` | boolean | Require meeting authentication |
| ↳ `approval_type` | number | Approval type: 0=auto, 1=manual, 2=none |
| ↳ `recurrence` | object | Recurrence settings for recurring meetings |
| ↳ `type` | number | Recurrence type: 1=daily, 2=weekly, 3=monthly |
| ↳ `repeat_interval` | number | Interval between recurring meetings |
| ↳ `weekly_days` | string | Days of week for weekly recurrence \(1-7, comma-separated\) |
| ↳ `monthly_day` | number | Day of month for monthly recurrence |
| ↳ `monthly_week` | number | Week of month for monthly recurrence |
| ↳ `monthly_week_day` | number | Day of week for monthly recurrence |
| ↳ `end_times` | number | Number of occurrences |
| ↳ `end_date_time` | string | End date time in ISO 8601 format |
| ↳ `occurrences` | array | Meeting occurrences for recurring meetings |
| ↳ `occurrence_id` | string | Occurrence ID |
| ↳ `start_time` | string | Start time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `status` | string | Occurrence status |
### `zoom_list_meetings` ### `zoom_list_meetings`
@@ -104,12 +131,23 @@ List all meetings for a Zoom user
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `meetings` | array | List of meetings | | `meetings` | array | List of meetings |
| ↳ `id` | number | Meeting ID |
| ↳ `uuid` | string | Meeting UUID |
| ↳ `host_id` | string | Host user ID |
| ↳ `topic` | string | Meeting topic |
| ↳ `type` | number | Meeting type |
| ↳ `start_time` | string | Start time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `timezone` | string | Timezone |
| ↳ `agenda` | string | Meeting agenda |
| ↳ `created_at` | string | Creation timestamp |
| ↳ `join_url` | string | URL for participants to join |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `pageCount` | number | Total number of pages | | ↳ `pageCount` | number | Total number of pages |
| ↳ `pageNumber` | number | Current page number | | ↳ `pageNumber` | number | Current page number |
| ↳ `pageSize` | number | Number of records per page | | ↳ `pageSize` | number | Number of records per page |
| ↳ `totalRecords` | number | Total number of records | | ↳ `totalRecords` | number | Total number of records |
| ↳ `nextPageToken` | string | Token for next page | | ↳ `nextPageToken` | string | Token for next page of results |
### `zoom_get_meeting` ### `zoom_get_meeting`
@@ -128,24 +166,49 @@ Get details of a specific Zoom meeting
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `meeting` | object | The meeting details | | `meeting` | object | The meeting details |
| ↳ `id` | number | Meeting ID | | ↳ `id` | number | Meeting ID |
| ↳ `uuid` | string | Meeting UUID | | ↳ `uuid` | string | Meeting UUID |
| ↳ `host_id` | string | Host user ID | | ↳ `host_id` | string | Host user ID |
| ↳ `host_email` | string | Host email | | ↳ `host_email` | string | Host email address |
| ↳ `topic` | string | Meeting topic | | ↳ `topic` | string | Meeting topic |
| ↳ `type` | number | Meeting type | | ↳ `type` | number | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
| ↳ `status` | string | Meeting status | | ↳ `status` | string | Meeting status \(e.g., waiting, started\) |
| ↳ `start_time` | string | Start time | | ↳ `start_time` | string | Start time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes | | ↳ `duration` | number | Duration in minutes |
| ↳ `timezone` | string | Timezone | | ↳ `timezone` | string | Timezone \(e.g., America/Los_Angeles\) |
| ↳ `agenda` | string | Meeting agenda | | ↳ `agenda` | string | Meeting agenda |
| ↳ `created_at` | string | Creation timestamp | | ↳ `created_at` | string | Creation timestamp in ISO 8601 format |
| ↳ `start_url` | string | Host start URL | | ↳ `start_url` | string | URL for host to start the meeting |
| ↳ `join_url` | string | Participant join URL | | ↳ `join_url` | string | URL for participants to join the meeting |
| ↳ `password` | string | Meeting password | | ↳ `password` | string | Meeting password |
| ↳ `settings` | object | Meeting settings | | ↳ `h323_password` | string | H.323/SIP room system password |
| ↳ `recurrence` | object | Recurrence settings | | ↳ `pstn_password` | string | PSTN password for phone dial-in |
| ↳ `occurrences` | array | Meeting occurrences | | ↳ `encrypted_password` | string | Encrypted password for joining |
| ↳ `settings` | object | Meeting settings |
| ↳ `host_video` | boolean | Start with host video on |
| ↳ `participant_video` | boolean | Start with participant video on |
| ↳ `join_before_host` | boolean | Allow participants to join before host |
| ↳ `mute_upon_entry` | boolean | Mute participants upon entry |
| ↳ `watermark` | boolean | Add watermark when viewing shared screen |
| ↳ `audio` | string | Audio options: both, telephony, or voip |
| ↳ `auto_recording` | string | Auto recording: local, cloud, or none |
| ↳ `waiting_room` | boolean | Enable waiting room |
| ↳ `meeting_authentication` | boolean | Require meeting authentication |
| ↳ `approval_type` | number | Approval type: 0=auto, 1=manual, 2=none |
| ↳ `recurrence` | object | Recurrence settings for recurring meetings |
| ↳ `type` | number | Recurrence type: 1=daily, 2=weekly, 3=monthly |
| ↳ `repeat_interval` | number | Interval between recurring meetings |
| ↳ `weekly_days` | string | Days of week for weekly recurrence \(1-7, comma-separated\) |
| ↳ `monthly_day` | number | Day of month for monthly recurrence |
| ↳ `monthly_week` | number | Week of month for monthly recurrence |
| ↳ `monthly_week_day` | number | Day of week for monthly recurrence |
| ↳ `end_times` | number | Number of occurrences |
| ↳ `end_date_time` | string | End date time in ISO 8601 format |
| ↳ `occurrences` | array | Meeting occurrences for recurring meetings |
| ↳ `occurrence_id` | string | Occurrence ID |
| ↳ `start_time` | string | Start time in ISO 8601 format |
| ↳ `duration` | number | Duration in minutes |
| ↳ `status` | string | Occurrence status |
### `zoom_update_meeting` ### `zoom_update_meeting`
@@ -231,12 +294,35 @@ List all cloud recordings for a Zoom user
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `recordings` | array | List of recordings | | `recordings` | array | List of recordings |
| ↳ `uuid` | string | Meeting UUID |
| ↳ `id` | number | Meeting ID |
| ↳ `account_id` | string | Account ID |
| ↳ `host_id` | string | Host user ID |
| ↳ `topic` | string | Meeting topic |
| ↳ `type` | number | Meeting type |
| ↳ `start_time` | string | Meeting start time |
| ↳ `duration` | number | Meeting duration in minutes |
| ↳ `total_size` | number | Total size of all recordings in bytes |
| ↳ `recording_count` | number | Number of recording files |
| ↳ `share_url` | string | URL to share recordings |
| ↳ `recording_files` | array | List of recording files |
| ↳ `id` | string | Recording file ID |
| ↳ `meeting_id` | string | Meeting ID associated with the recording |
| ↳ `recording_start` | string | Start time of the recording |
| ↳ `recording_end` | string | End time of the recording |
| ↳ `file_type` | string | Type of recording file \(MP4, M4A, etc.\) |
| ↳ `file_extension` | string | File extension |
| ↳ `file_size` | number | File size in bytes |
| ↳ `play_url` | string | URL to play the recording |
| ↳ `download_url` | string | URL to download the recording |
| ↳ `status` | string | Recording status |
| ↳ `recording_type` | string | Type of recording \(shared_screen, audio_only, etc.\) |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `from` | string | Start date of query range | | ↳ `from` | string | Start date of query range |
| ↳ `to` | string | End date of query range | | ↳ `to` | string | End date of query range |
| ↳ `pageSize` | number | Number of records per page | | ↳ `pageSize` | number | Number of records per page |
| ↳ `totalRecords` | number | Total number of records | | ↳ `totalRecords` | number | Total number of records |
| ↳ `nextPageToken` | string | Token for next page | | ↳ `nextPageToken` | string | Token for next page of results |
### `zoom_get_meeting_recordings` ### `zoom_get_meeting_recordings`
@@ -255,14 +341,29 @@ Get all recordings for a specific Zoom meeting
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `recording` | object | The meeting recording with all files | | `recording` | object | The meeting recording with all files |
| ↳ `uuid` | string | Meeting UUID | | ↳ `uuid` | string | Meeting UUID |
| ↳ `id` | number | Meeting ID | | ↳ `id` | number | Meeting ID |
| ↳ `topic` | string | Meeting topic | | ↳ `account_id` | string | Account ID |
| ↳ `start_time` | string | Meeting start time | | ↳ `host_id` | string | Host user ID |
| ↳ `duration` | number | Meeting duration in minutes | | ↳ `topic` | string | Meeting topic |
| ↳ `total_size` | number | Total size of recordings in bytes | | ↳ `type` | number | Meeting type |
| ↳ `share_url` | string | URL to share recordings | | ↳ `start_time` | string | Meeting start time |
| ↳ `recording_files` | array | List of recording files | | ↳ `duration` | number | Meeting duration in minutes |
| ↳ `total_size` | number | Total size of all recordings in bytes |
| ↳ `recording_count` | number | Number of recording files |
| ↳ `share_url` | string | URL to share recordings |
| ↳ `recording_files` | array | List of recording files |
| ↳ `id` | string | Recording file ID |
| ↳ `meeting_id` | string | Meeting ID associated with the recording |
| ↳ `recording_start` | string | Start time of the recording |
| ↳ `recording_end` | string | End time of the recording |
| ↳ `file_type` | string | Type of recording file \(MP4, M4A, etc.\) |
| ↳ `file_extension` | string | File extension |
| ↳ `file_size` | number | File size in bytes |
| ↳ `play_url` | string | URL to play the recording |
| ↳ `download_url` | string | URL to download the recording |
| ↳ `status` | string | Recording status |
| ↳ `recording_type` | string | Type of recording \(shared_screen, audio_only, etc.\) |
### `zoom_delete_recording` ### `zoom_delete_recording`
@@ -299,9 +400,19 @@ List participants from a past Zoom meeting
| Parameter | Type | Description | | Parameter | Type | Description |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `participants` | array | List of meeting participants | | `participants` | array | List of meeting participants |
| ↳ `id` | string | Participant unique identifier |
| ↳ `user_id` | string | User ID if registered Zoom user |
| ↳ `name` | string | Participant display name |
| ↳ `user_email` | string | Participant email address |
| ↳ `join_time` | string | Time when participant joined \(ISO 8601\) |
| ↳ `leave_time` | string | Time when participant left \(ISO 8601\) |
| ↳ `duration` | number | Duration in seconds participant was in meeting |
| ↳ `attentiveness_score` | string | Attentiveness score \(deprecated\) |
| ↳ `failover` | boolean | Whether participant failed over to another data center |
| ↳ `status` | string | Participant status |
| `pageInfo` | object | Pagination information | | `pageInfo` | object | Pagination information |
| ↳ `pageSize` | number | Number of records per page | | ↳ `pageSize` | number | Number of records per page |
| ↳ `totalRecords` | number | Total number of records | | ↳ `totalRecords` | number | Total number of records |
| ↳ `nextPageToken` | string | Token for next page | | ↳ `nextPageToken` | string | Token for next page of results |

View File

@@ -1,5 +1,5 @@
import { memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react' import { memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'
import { Check, Copy, Wand2 } from 'lucide-react' import { Wand2 } from 'lucide-react'
import { useReactFlow } from 'reactflow' import { useReactFlow } from 'reactflow'
import { Input } from '@/components/emcn' import { Input } from '@/components/emcn'
import { Button } from '@/components/ui/button' import { Button } from '@/components/ui/button'
@@ -40,8 +40,6 @@ interface ShortInputProps {
disabled?: boolean disabled?: boolean
/** Whether the input is read-only */ /** Whether the input is read-only */
readOnly?: boolean readOnly?: boolean
/** Whether to show a copy button */
showCopyButton?: boolean
/** Whether to use webhook URL as value */ /** Whether to use webhook URL as value */
useWebhookUrl?: boolean useWebhookUrl?: boolean
/** Ref to expose wand control handlers to parent */ /** Ref to expose wand control handlers to parent */
@@ -59,7 +57,6 @@ interface ShortInputProps {
* - Handles drag-and-drop for connections and variable references * - Handles drag-and-drop for connections and variable references
* - Provides environment variable and tag autocomplete * - Provides environment variable and tag autocomplete
* - Password masking with reveal on focus * - Password masking with reveal on focus
* - Copy to clipboard functionality
* - Integrates with ReactFlow for zoom control * - Integrates with ReactFlow for zoom control
*/ */
export const ShortInput = memo(function ShortInput({ export const ShortInput = memo(function ShortInput({
@@ -74,14 +71,12 @@ export const ShortInput = memo(function ShortInput({
previewValue, previewValue,
disabled = false, disabled = false,
readOnly = false, readOnly = false,
showCopyButton = false,
useWebhookUrl = false, useWebhookUrl = false,
wandControlRef, wandControlRef,
hideInternalWand = false, hideInternalWand = false,
}: ShortInputProps) { }: ShortInputProps) {
const [localContent, setLocalContent] = useState<string>('') const [localContent, setLocalContent] = useState<string>('')
const [isFocused, setIsFocused] = useState(false) const [isFocused, setIsFocused] = useState(false)
const [copied, setCopied] = useState(false)
const persistSubBlockValueRef = useRef<(value: string) => void>(() => {}) const persistSubBlockValueRef = useRef<(value: string) => void>(() => {})
const justPastedRef = useRef(false) const justPastedRef = useRef(false)
@@ -278,18 +273,6 @@ export const ShortInput = memo(function ShortInput({
[reactFlowInstance] [reactFlowInstance]
) )
/**
* Handles copying the value to the clipboard.
*/
const handleCopy = useCallback(() => {
const textToCopy = useWebhookUrl ? webhookManagement?.webhookUrl : value?.toString()
if (textToCopy) {
navigator.clipboard.writeText(textToCopy)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
}
}, [useWebhookUrl, webhookManagement?.webhookUrl, value])
const handleBlur = useCallback(() => { const handleBlur = useCallback(() => {
setIsFocused(false) setIsFocused(false)
}, []) }, [])
@@ -366,10 +349,7 @@ export const ShortInput = memo(function ShortInput({
<> <>
<Input <Input
ref={ref as React.RefObject<HTMLInputElement>} ref={ref as React.RefObject<HTMLInputElement>}
className={cn( className='allow-scroll w-full overflow-auto text-transparent caret-foreground [-ms-overflow-style:none] [scrollbar-width:none] placeholder:text-muted-foreground/50 [&::-webkit-scrollbar]:hidden'
'allow-scroll w-full overflow-auto text-transparent caret-foreground [-ms-overflow-style:none] [scrollbar-width:none] placeholder:text-muted-foreground/50 [&::-webkit-scrollbar]:hidden',
showCopyButton && 'pr-14'
)}
readOnly={readOnly} readOnly={readOnly}
placeholder={placeholder ?? ''} placeholder={placeholder ?? ''}
type='text' type='text'
@@ -392,8 +372,7 @@ export const ShortInput = memo(function ShortInput({
<div <div
ref={overlayRef} ref={overlayRef}
className={cn( className={cn(
'pointer-events-none absolute inset-0 flex items-center overflow-x-auto bg-transparent px-[8px] py-[6px] font-medium font-sans text-foreground text-sm [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden', 'pointer-events-none absolute inset-0 flex items-center overflow-x-auto bg-transparent px-[8px] py-[6px] pr-3 font-medium font-sans text-foreground text-sm [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
showCopyButton ? 'pr-14' : 'pr-3',
(isPreview || disabled) && 'opacity-50' (isPreview || disabled) && 'opacity-50'
)} )}
> >
@@ -404,27 +383,6 @@ export const ShortInput = memo(function ShortInput({
}} }}
</SubBlockInputController> </SubBlockInputController>
{/* Copy Button */}
{showCopyButton && value && (
<div className='pointer-events-none absolute top-0 right-0 bottom-0 z-10 flex w-14 items-center justify-end pr-2 opacity-0 transition-opacity group-hover:opacity-100'>
<Button
type='button'
variant='ghost'
size='icon'
onClick={handleCopy}
disabled={!value}
className='pointer-events-auto h-6 w-6 p-0'
aria-label='Copy value'
>
{copied ? (
<Check className='h-3.5 w-3.5 text-green-500' />
) : (
<Copy className='h-3.5 w-3.5 text-muted-foreground' />
)}
</Button>
</div>
)}
{/* Wand Button - only show if not hidden by parent */} {/* Wand Button - only show if not hidden by parent */}
{isWandEnabled && !isPreview && !wandHook.isStreaming && !hideInternalWand && ( {isWandEnabled && !isPreview && !wandHook.isStreaming && !hideInternalWand && (
<div className='-translate-y-1/2 absolute top-1/2 right-3 z-10 flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100'> <div className='-translate-y-1/2 absolute top-1/2 right-3 z-10 flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100'>

View File

@@ -14,6 +14,8 @@ interface KeyboardNavigationHandlerProps {
flatTagList: Array<{ tag: string; group?: BlockTagGroup }> flatTagList: Array<{ tag: string; group?: BlockTagGroup }>
nestedBlockTagGroups: NestedBlockTagGroup[] nestedBlockTagGroups: NestedBlockTagGroup[]
handleTagSelect: (tag: string, group?: BlockTagGroup) => void handleTagSelect: (tag: string, group?: BlockTagGroup) => void
/** Called when entering a folder from root level via keyboard navigation */
onFolderEnter?: () => void
} }
/** /**
@@ -107,6 +109,7 @@ export const KeyboardNavigationHandler: React.FC<KeyboardNavigationHandlerProps>
flatTagList, flatTagList,
nestedBlockTagGroups, nestedBlockTagGroups,
handleTagSelect, handleTagSelect,
onFolderEnter,
}) => { }) => {
const { openFolder, closeFolder, isInFolder, currentFolder, setKeyboardNav } = usePopoverContext() const { openFolder, closeFolder, isInFolder, currentFolder, setKeyboardNav } = usePopoverContext()
const nestedNav = useNestedNavigation() const nestedNav = useNestedNavigation()
@@ -251,7 +254,7 @@ export const KeyboardNavigationHandler: React.FC<KeyboardNavigationHandlerProps>
} else if (currentVisibleIndex < visibleIndices.length - 1) { } else if (currentVisibleIndex < visibleIndices.length - 1) {
newIndex = visibleIndices[currentVisibleIndex + 1] newIndex = visibleIndices[currentVisibleIndex + 1]
} else { } else {
newIndex = visibleIndices[0] newIndex = selectedIndex
} }
setSelectedIndex(newIndex) setSelectedIndex(newIndex)
scrollIntoView() scrollIntoView()
@@ -269,7 +272,7 @@ export const KeyboardNavigationHandler: React.FC<KeyboardNavigationHandlerProps>
} else if (currentVisibleIndex > 0) { } else if (currentVisibleIndex > 0) {
newIndex = visibleIndices[currentVisibleIndex - 1] newIndex = visibleIndices[currentVisibleIndex - 1]
} else { } else {
newIndex = visibleIndices[visibleIndices.length - 1] newIndex = selectedIndex
} }
setSelectedIndex(newIndex) setSelectedIndex(newIndex)
scrollIntoView() scrollIntoView()
@@ -295,6 +298,7 @@ export const KeyboardNavigationHandler: React.FC<KeyboardNavigationHandlerProps>
currentFolderInfo.parentTag, currentFolderInfo.parentTag,
currentFolderInfo.group currentFolderInfo.group
) )
onFolderEnter?.()
} }
} }
break break
@@ -346,6 +350,7 @@ export const KeyboardNavigationHandler: React.FC<KeyboardNavigationHandlerProps>
handleTagSelect, handleTagSelect,
nestedNav, nestedNav,
setKeyboardNav, setKeyboardNav,
onFolderEnter,
]) ])
return null return null

View File

@@ -444,10 +444,12 @@ interface NestedTagRendererProps {
nestedTag: NestedTag nestedTag: NestedTag
group: NestedBlockTagGroup group: NestedBlockTagGroup
flatTagList: Array<{ tag: string; group?: BlockTagGroup }> flatTagList: Array<{ tag: string; group?: BlockTagGroup }>
/** Map from tag string to index for O(1) lookups */
flatTagIndexMap: Map<string, number>
selectedIndex: number selectedIndex: number
setSelectedIndex: (index: number) => void setSelectedIndex: (index: number) => void
handleTagSelect: (tag: string, blockGroup?: BlockTagGroup) => void handleTagSelect: (tag: string, blockGroup?: BlockTagGroup) => void
itemRefs: React.RefObject<Map<number, HTMLElement>> itemRefs: React.RefObject<Map<string, HTMLElement>>
blocks: Record<string, BlockState> blocks: Record<string, BlockState>
getMergedSubBlocks: (blockId: string) => Record<string, any> getMergedSubBlocks: (blockId: string) => Record<string, any>
} }
@@ -469,6 +471,7 @@ interface FolderContentsProps extends NestedTagRendererProps {
const FolderContentsInner: React.FC<FolderContentsProps> = ({ const FolderContentsInner: React.FC<FolderContentsProps> = ({
group, group,
flatTagList, flatTagList,
flatTagIndexMap,
selectedIndex, selectedIndex,
setSelectedIndex, setSelectedIndex,
handleTagSelect, handleTagSelect,
@@ -483,7 +486,7 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
const currentNestedTag = nestedPath.length > 0 ? nestedPath[nestedPath.length - 1] : nestedTag const currentNestedTag = nestedPath.length > 0 ? nestedPath[nestedPath.length - 1] : nestedTag
const parentTagIndex = currentNestedTag.parentTag const parentTagIndex = currentNestedTag.parentTag
? flatTagList.findIndex((item) => item.tag === currentNestedTag.parentTag) ? (flatTagIndexMap.get(currentNestedTag.parentTag) ?? -1)
: -1 : -1
return ( return (
@@ -493,7 +496,6 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
<PopoverItem <PopoverItem
active={parentTagIndex === selectedIndex && parentTagIndex >= 0} active={parentTagIndex === selectedIndex && parentTagIndex >= 0}
onMouseEnter={() => { onMouseEnter={() => {
// Skip selection update during keyboard navigation to prevent scroll-triggered selection changes
if (isKeyboardNav) return if (isKeyboardNav) return
setKeyboardNav(false) setKeyboardNav(false)
if (parentTagIndex >= 0) setSelectedIndex(parentTagIndex) if (parentTagIndex >= 0) setSelectedIndex(parentTagIndex)
@@ -504,8 +506,8 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
handleTagSelect(currentNestedTag.parentTag!, group) handleTagSelect(currentNestedTag.parentTag!, group)
}} }}
ref={(el) => { ref={(el) => {
if (el && parentTagIndex >= 0) { if (el && currentNestedTag.parentTag) {
itemRefs.current?.set(parentTagIndex, el) itemRefs.current?.set(currentNestedTag.parentTag, el)
} }
}} }}
> >
@@ -515,7 +517,7 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
{/* Render leaf children as PopoverItems */} {/* Render leaf children as PopoverItems */}
{currentNestedTag.children?.map((child) => { {currentNestedTag.children?.map((child) => {
const childGlobalIndex = flatTagList.findIndex((item) => item.tag === child.fullTag) const childGlobalIndex = flatTagIndexMap.get(child.fullTag) ?? -1
const tagParts = child.fullTag.split('.') const tagParts = child.fullTag.split('.')
const outputPath = tagParts.slice(1).join('.') const outputPath = tagParts.slice(1).join('.')
@@ -550,8 +552,8 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
handleTagSelect(child.fullTag, group) handleTagSelect(child.fullTag, group)
}} }}
ref={(el) => { ref={(el) => {
if (el && childGlobalIndex >= 0) { if (el) {
itemRefs.current?.set(childGlobalIndex, el) itemRefs.current?.set(child.fullTag, el)
} }
}} }}
> >
@@ -568,7 +570,7 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
{/* Render nested children as clickable folder items */} {/* Render nested children as clickable folder items */}
{currentNestedTag.nestedChildren?.map((nestedChild) => { {currentNestedTag.nestedChildren?.map((nestedChild) => {
const parentGlobalIndex = nestedChild.parentTag const parentGlobalIndex = nestedChild.parentTag
? flatTagList.findIndex((item) => item.tag === nestedChild.parentTag) ? (flatTagIndexMap.get(nestedChild.parentTag) ?? -1)
: -1 : -1
return ( return (
@@ -583,12 +585,11 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
onMouseDown={(e) => { onMouseDown={(e) => {
e.preventDefault() e.preventDefault()
e.stopPropagation() e.stopPropagation()
// Navigate into the subfolder on click
onNavigateIn(nestedChild) onNavigateIn(nestedChild)
}} }}
ref={(el) => { ref={(el) => {
if (el && parentGlobalIndex >= 0) { if (el && nestedChild.parentTag) {
itemRefs.current?.set(parentGlobalIndex, el) itemRefs.current?.set(nestedChild.parentTag, el)
} }
}} }}
> >
@@ -605,7 +606,7 @@ const FolderContentsInner: React.FC<FolderContentsProps> = ({
* Wrapper component that uses shared nested navigation state from context. * Wrapper component that uses shared nested navigation state from context.
* Handles registration of the base folder and navigation callbacks. * Handles registration of the base folder and navigation callbacks.
*/ */
const FolderContents: React.FC<NestedTagRendererProps> = (props) => { const FolderContents: React.FC<Omit<NestedTagRendererProps, never>> = (props) => {
const nestedNav = useNestedNavigation() const nestedNav = useNestedNavigation()
const { currentFolder } = usePopoverContext() const { currentFolder } = usePopoverContext()
@@ -638,6 +639,7 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
nestedTag, nestedTag,
group, group,
flatTagList, flatTagList,
flatTagIndexMap,
selectedIndex, selectedIndex,
setSelectedIndex, setSelectedIndex,
handleTagSelect, handleTagSelect,
@@ -653,7 +655,7 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
const folderId = `${group.blockId}-${nestedTag.key}` const folderId = `${group.blockId}-${nestedTag.key}`
const parentGlobalIndex = nestedTag.parentTag const parentGlobalIndex = nestedTag.parentTag
? flatTagList.findIndex((item) => item.tag === nestedTag.parentTag) ? (flatTagIndexMap.get(nestedTag.parentTag) ?? -1)
: -1 : -1
return ( return (
@@ -675,8 +677,8 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
} }
}} }}
ref={(el) => { ref={(el) => {
if (el && parentGlobalIndex >= 0) { if (el && nestedTag.parentTag) {
itemRefs.current?.set(parentGlobalIndex, el) itemRefs.current?.set(nestedTag.parentTag, el)
} }
}} }}
> >
@@ -684,6 +686,7 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
nestedTag={nestedTag} nestedTag={nestedTag}
group={group} group={group}
flatTagList={flatTagList} flatTagList={flatTagList}
flatTagIndexMap={flatTagIndexMap}
selectedIndex={selectedIndex} selectedIndex={selectedIndex}
setSelectedIndex={setSelectedIndex} setSelectedIndex={setSelectedIndex}
handleTagSelect={handleTagSelect} handleTagSelect={handleTagSelect}
@@ -695,10 +698,7 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
) )
} }
// Leaf tag - render as a simple PopoverItem const globalIndex = nestedTag.fullTag ? (flatTagIndexMap.get(nestedTag.fullTag) ?? -1) : -1
const globalIndex = nestedTag.fullTag
? flatTagList.findIndex((item) => item.tag === nestedTag.fullTag)
: -1
let tagDescription = '' let tagDescription = ''
@@ -751,8 +751,8 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
} }
}} }}
ref={(el) => { ref={(el) => {
if (el && globalIndex >= 0) { if (el && nestedTag.fullTag) {
itemRefs.current?.set(globalIndex, el) itemRefs.current?.set(nestedTag.fullTag, el)
} }
}} }}
> >
@@ -767,7 +767,7 @@ const NestedTagRenderer: React.FC<NestedTagRendererProps> = ({
} }
/** /**
* Hook to get mouse enter handler that respects keyboard navigation mode. * Hook to get mouse enter handler that respects keyboard navigation state.
* Returns a handler that only updates selection if not in keyboard mode. * Returns a handler that only updates selection if not in keyboard mode.
*/ */
const useKeyboardAwareMouseEnter = ( const useKeyboardAwareMouseEnter = (
@@ -794,7 +794,7 @@ const VariableTagItem: React.FC<{
selectedIndex: number selectedIndex: number
setSelectedIndex: (index: number) => void setSelectedIndex: (index: number) => void
handleTagSelect: (tag: string) => void handleTagSelect: (tag: string) => void
itemRefs: React.RefObject<Map<number, HTMLElement>> itemRefs: React.RefObject<Map<string, HTMLElement>>
variableInfo: { type: string; id: string } | null variableInfo: { type: string; id: string } | null
}> = ({ }> = ({
tag, tag,
@@ -819,8 +819,8 @@ const VariableTagItem: React.FC<{
handleTagSelect(tag) handleTagSelect(tag)
}} }}
ref={(el) => { ref={(el) => {
if (el && globalIndex >= 0) { if (el) {
itemRefs.current?.set(globalIndex, el) itemRefs.current?.set(tag, el)
} }
}} }}
> >
@@ -845,7 +845,7 @@ const BlockRootTagItem: React.FC<{
selectedIndex: number selectedIndex: number
setSelectedIndex: (index: number) => void setSelectedIndex: (index: number) => void
handleTagSelect: (tag: string, group?: BlockTagGroup) => void handleTagSelect: (tag: string, group?: BlockTagGroup) => void
itemRefs: React.RefObject<Map<number, HTMLElement>> itemRefs: React.RefObject<Map<string, HTMLElement>>
group: BlockTagGroup group: BlockTagGroup
tagIcon: string | React.ComponentType<{ className?: string }> tagIcon: string | React.ComponentType<{ className?: string }>
blockColor: string blockColor: string
@@ -875,8 +875,8 @@ const BlockRootTagItem: React.FC<{
handleTagSelect(rootTag, group) handleTagSelect(rootTag, group)
}} }}
ref={(el) => { ref={(el) => {
if (el && rootTagGlobalIndex >= 0) { if (el) {
itemRefs.current?.set(rootTagGlobalIndex, el) itemRefs.current?.set(rootTag, el)
} }
}} }}
> >
@@ -916,16 +916,12 @@ const TagDropdownBackButton: React.FC = () => {
const handleBackClick = (e: React.MouseEvent) => { const handleBackClick = (e: React.MouseEvent) => {
e.stopPropagation() e.stopPropagation()
// Try to navigate back in nested path first
if (nestedNav?.navigateBack()) { if (nestedNav?.navigateBack()) {
// Successfully navigated back one level
return return
} }
// At root folder level, close the folder
closeFolder() closeFolder()
} }
// Just render the back button - the parent tag is rendered as the first item in FolderContentsInner
return ( return (
<div <div
className={cn( className={cn(
@@ -986,7 +982,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
inputRef, inputRef,
}) => { }) => {
const [selectedIndex, setSelectedIndex] = useState(0) const [selectedIndex, setSelectedIndex] = useState(0)
const itemRefs = useRef<Map<number, HTMLElement>>(new Map()) const itemRefs = useRef<Map<string, HTMLElement>>(new Map())
const [nestedPath, setNestedPath] = useState<NestedTag[]>([]) const [nestedPath, setNestedPath] = useState<NestedTag[]>([])
const baseFolderRef = useRef<{ const baseFolderRef = useRef<{
@@ -998,6 +994,11 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
const handleTagSelectRef = useRef<((tag: string, group?: BlockTagGroup) => void) | null>(null) const handleTagSelectRef = useRef<((tag: string, group?: BlockTagGroup) => void) | null>(null)
const scrollAreaRef = useRef<HTMLDivElement>(null) const scrollAreaRef = useRef<HTMLDivElement>(null)
const inputValueRef = useRef(inputValue)
const cursorPositionRef = useRef(cursorPosition)
inputValueRef.current = inputValue
cursorPositionRef.current = cursorPosition
const { blocks, edges, loops, parallels } = useWorkflowStore( const { blocks, edges, loops, parallels } = useWorkflowStore(
useShallow((state) => ({ useShallow((state) => ({
blocks: state.blocks, blocks: state.blocks,
@@ -1700,27 +1701,23 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
return list return list
}, [variableTags, nestedBlockTagGroups]) }, [variableTags, nestedBlockTagGroups])
useEffect(() => { const flatTagIndexMap = useMemo(() => {
if (!visible || selectedIndex < 0) return const map = new Map<string, number>()
flatTagList.forEach((item, index) => {
const element = itemRefs.current.get(selectedIndex) map.set(item.tag, index)
if (element) { })
element.scrollIntoView({ return map
behavior: 'auto', }, [flatTagList])
block: 'nearest',
})
}
}, [selectedIndex, visible])
const handleTagSelect = useCallback( const handleTagSelect = useCallback(
(tag: string, blockGroup?: BlockTagGroup) => { (tag: string, blockGroup?: BlockTagGroup) => {
let liveCursor = cursorPosition let liveCursor = cursorPositionRef.current
let liveValue = inputValue let liveValue = inputValueRef.current
if (typeof window !== 'undefined' && document?.activeElement) { if (typeof window !== 'undefined' && document?.activeElement) {
const activeEl = document.activeElement as HTMLInputElement | HTMLTextAreaElement | null const activeEl = document.activeElement as HTMLInputElement | HTMLTextAreaElement | null
if (activeEl && typeof activeEl.selectionStart === 'number') { if (activeEl && typeof activeEl.selectionStart === 'number') {
liveCursor = activeEl.selectionStart ?? cursorPosition liveCursor = activeEl.selectionStart ?? cursorPositionRef.current
if ('value' in activeEl && typeof activeEl.value === 'string') { if ('value' in activeEl && typeof activeEl.value === 'string') {
liveValue = activeEl.value liveValue = activeEl.value
} }
@@ -1805,7 +1802,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
onSelect(newValue) onSelect(newValue)
onClose?.() onClose?.()
}, },
[inputValue, cursorPosition, workflowVariables, onSelect, onClose, getMergedSubBlocks] [workflowVariables, onSelect, onClose, getMergedSubBlocks]
) )
handleTagSelectRef.current = handleTagSelect handleTagSelectRef.current = handleTagSelect
@@ -1877,9 +1874,6 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
}, },
registerFolder: (folderId, folderTitle, baseTag, group) => { registerFolder: (folderId, folderTitle, baseTag, group) => {
baseFolderRef.current = { id: folderId, title: folderTitle, baseTag, group } baseFolderRef.current = { id: folderId, title: folderTitle, baseTag, group }
if (scrollAreaRef.current) {
scrollAreaRef.current.scrollTop = 0
}
}, },
}), }),
[nestedPath] [nestedPath]
@@ -1892,13 +1886,9 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
} }
}, [visible]) }, [visible])
useEffect(() => setSelectedIndex(0), [searchTerm])
useEffect(() => { useEffect(() => {
if (selectedIndex >= flatTagList.length) { setSelectedIndex(0)
setSelectedIndex(Math.max(0, flatTagList.length - 1)) }, [flatTagList.length])
}
}, [flatTagList.length, selectedIndex])
useEffect(() => { useEffect(() => {
if (visible) { if (visible) {
@@ -1956,6 +1946,11 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
flatTagList={flatTagList} flatTagList={flatTagList}
nestedBlockTagGroups={nestedBlockTagGroups} nestedBlockTagGroups={nestedBlockTagGroups}
handleTagSelect={handleTagSelect} handleTagSelect={handleTagSelect}
onFolderEnter={() => {
if (scrollAreaRef.current) {
scrollAreaRef.current.scrollTop = 0
}
}}
/> />
<PopoverContent <PopoverContent
maxHeight={240} maxHeight={240}
@@ -1984,7 +1979,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
</PopoverSection> </PopoverSection>
{variableTags.map((tag: string) => { {variableTags.map((tag: string) => {
const variableInfo = variableInfoMap?.[tag] || null const variableInfo = variableInfoMap?.[tag] || null
const globalIndex = flatTagList.findIndex((item) => item.tag === tag) const globalIndex = flatTagIndexMap.get(tag) ?? -1
return ( return (
<VariableTagItem <VariableTagItem
@@ -2027,7 +2022,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
const rootTagFromTags = group.tags.find((tag) => tag === normalizedBlockName) const rootTagFromTags = group.tags.find((tag) => tag === normalizedBlockName)
const rootTag = rootTagFromTags || normalizedBlockName const rootTag = rootTagFromTags || normalizedBlockName
const rootTagGlobalIndex = flatTagList.findIndex((item) => item.tag === rootTag) const rootTagGlobalIndex = flatTagIndexMap.get(rootTag) ?? -1
return ( return (
<div key={group.blockId}> <div key={group.blockId}>
@@ -2054,6 +2049,7 @@ export const TagDropdown: React.FC<TagDropdownProps> = ({
nestedTag={nestedTag} nestedTag={nestedTag}
group={group} group={group}
flatTagList={flatTagList} flatTagList={flatTagList}
flatTagIndexMap={flatTagIndexMap}
selectedIndex={selectedIndex} selectedIndex={selectedIndex}
setSelectedIndex={setSelectedIndex} setSelectedIndex={setSelectedIndex}
handleTagSelect={handleTagSelect} handleTagSelect={handleTagSelect}

View File

@@ -17,7 +17,7 @@ interface TextProps {
* *
* @remarks * @remarks
* - Automatically detects and renders HTML content safely * - Automatically detects and renders HTML content safely
* - Applies prose styling for HTML content (links, code, lists, etc.) * - Applies consistent styling for HTML content (links, code, lists, etc.)
* - Falls back to plain text rendering for non-HTML content * - Falls back to plain text rendering for non-HTML content
* *
* Note: This component renders trusted, internally-defined content only * Note: This component renders trusted, internally-defined content only
@@ -33,7 +33,7 @@ export function Text({ blockId, subBlockId, content, className }: TextProps) {
className={`rounded-md border bg-[var(--surface-2)] p-4 shadow-sm ${className || ''}`} className={`rounded-md border bg-[var(--surface-2)] p-4 shadow-sm ${className || ''}`}
> >
<div <div
className='prose prose-sm dark:prose-invert max-w-none break-words text-sm [&_a]:text-blue-600 [&_a]:underline [&_a]:hover:text-blue-700 [&_a]:dark:text-blue-400 [&_a]:dark:hover:text-blue-300 [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-xs [&_strong]:font-semibold [&_ul]:ml-5 [&_ul]:list-disc' className='max-w-none break-words text-[var(--text-secondary)] text-sm [&_a]:text-[var(--brand-secondary)] [&_a]:underline [&_a]:underline-offset-2 [&_a]:hover:brightness-110 [&_code]:rounded [&_code]:bg-[var(--surface-5)] [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-[var(--text-tertiary)] [&_code]:text-xs [&_strong]:font-medium [&_strong]:text-[var(--text-primary)] [&_ul]:ml-5 [&_ul]:list-disc [&_ul]:marker:text-[var(--text-muted)]'
dangerouslySetInnerHTML={{ __html: content }} dangerouslySetInnerHTML={{ __html: content }}
/> />
</div> </div>
@@ -43,7 +43,7 @@ export function Text({ blockId, subBlockId, content, className }: TextProps) {
return ( return (
<div <div
id={`${blockId}-${subBlockId}`} id={`${blockId}-${subBlockId}`}
className={`whitespace-pre-wrap break-words rounded-md border bg-[var(--surface-2)] p-4 text-muted-foreground text-sm shadow-sm ${className || ''}`} className={`whitespace-pre-wrap break-words rounded-md border bg-[var(--surface-2)] p-4 text-[var(--text-secondary)] text-sm shadow-sm ${className || ''}`}
> >
{content} {content}
</div> </div>

View File

@@ -0,0 +1,261 @@
/**
* @vitest-environment node
*/
import { describe, expect, it } from 'vitest'
import type { SubBlockConfig } from '@/blocks/types'
const isFieldRequired = (config: SubBlockConfig, subBlockValues?: Record<string, any>): boolean => {
if (!config.required) return false
if (typeof config.required === 'boolean') return config.required
const evalCond = (
cond: {
field: string
value: string | number | boolean | Array<string | number | boolean>
not?: boolean
and?: {
field: string
value: string | number | boolean | Array<string | number | boolean> | undefined
not?: boolean
}
},
values: Record<string, any>
): boolean => {
const fieldValue = values[cond.field]?.value
const condValue = cond.value
let match: boolean
if (Array.isArray(condValue)) {
match = condValue.includes(fieldValue)
} else {
match = fieldValue === condValue
}
if (cond.not) match = !match
if (cond.and) {
const andFieldValue = values[cond.and.field]?.value
const andCondValue = cond.and.value
let andMatch: boolean
if (Array.isArray(andCondValue)) {
andMatch = andCondValue.includes(andFieldValue)
} else {
andMatch = andFieldValue === andCondValue
}
if (cond.and.not) andMatch = !andMatch
match = match && andMatch
}
return match
}
const condition = typeof config.required === 'function' ? config.required() : config.required
return evalCond(condition, subBlockValues || {})
}
describe('isFieldRequired', () => {
describe('boolean required', () => {
it.concurrent('returns false when required is not set', () => {
const config = { id: 'test', type: 'short-input' } as SubBlockConfig
expect(isFieldRequired(config, {})).toBe(false)
})
it.concurrent('returns false when required is false', () => {
const config = { id: 'test', type: 'short-input', required: false } as SubBlockConfig
expect(isFieldRequired(config, {})).toBe(false)
})
it.concurrent('returns true when required is true', () => {
const config = { id: 'test', type: 'short-input', required: true } as SubBlockConfig
expect(isFieldRequired(config, {})).toBe(true)
})
})
describe('conditional required - simple value matching', () => {
it.concurrent('returns true when field value matches condition value', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: 'create_booking' },
} as SubBlockConfig
const values = { operation: { value: 'create_booking' } }
expect(isFieldRequired(config, values)).toBe(true)
})
it.concurrent('returns false when field value does not match condition value', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: 'create_booking' },
} as SubBlockConfig
const values = { operation: { value: 'cancel_booking' } }
expect(isFieldRequired(config, values)).toBe(false)
})
it.concurrent('returns false when field is missing', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: 'create_booking' },
} as SubBlockConfig
expect(isFieldRequired(config, {})).toBe(false)
})
it.concurrent('returns false when field value is undefined', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: 'create_booking' },
} as SubBlockConfig
const values = { operation: { value: undefined } }
expect(isFieldRequired(config, values)).toBe(false)
})
})
describe('conditional required - array value matching', () => {
it.concurrent('returns true when field value is in condition array', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: ['create_booking', 'update_booking'] },
} as SubBlockConfig
const values = { operation: { value: 'create_booking' } }
expect(isFieldRequired(config, values)).toBe(true)
})
it.concurrent('returns false when field value is not in condition array', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: ['create_booking', 'update_booking'] },
} as SubBlockConfig
const values = { operation: { value: 'cancel_booking' } }
expect(isFieldRequired(config, values)).toBe(false)
})
})
describe('conditional required - negation', () => {
it.concurrent('returns false when field matches but not is true', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: 'create_booking', not: true },
} as SubBlockConfig
const values = { operation: { value: 'create_booking' } }
expect(isFieldRequired(config, values)).toBe(false)
})
it.concurrent('returns true when field does not match and not is true', () => {
const config = {
id: 'test',
type: 'short-input',
required: { field: 'operation', value: 'create_booking', not: true },
} as SubBlockConfig
const values = { operation: { value: 'cancel_booking' } }
expect(isFieldRequired(config, values)).toBe(true)
})
})
describe('conditional required - compound conditions', () => {
it.concurrent('returns true when both conditions match', () => {
const config = {
id: 'test',
type: 'short-input',
required: {
field: 'operation',
value: 'create_booking',
and: { field: 'hasEmail', value: true },
},
} as SubBlockConfig
const values = {
operation: { value: 'create_booking' },
hasEmail: { value: true },
}
expect(isFieldRequired(config, values)).toBe(true)
})
it.concurrent('returns false when first matches but and fails', () => {
const config = {
id: 'test',
type: 'short-input',
required: {
field: 'operation',
value: 'create_booking',
and: { field: 'hasEmail', value: true },
},
} as SubBlockConfig
const values = {
operation: { value: 'create_booking' },
hasEmail: { value: false },
}
expect(isFieldRequired(config, values)).toBe(false)
})
})
})
describe('condition + required equivalence', () => {
const conditionValue = { field: 'operation', value: 'calcom_create_booking' }
const configWithConditionalRequired = {
id: 'attendeeName',
type: 'short-input',
condition: conditionValue,
required: conditionValue,
} as SubBlockConfig
const configWithSimpleRequired = {
id: 'attendeeName',
type: 'short-input',
condition: conditionValue,
required: true,
} as SubBlockConfig
describe('when condition IS met (field is visible)', () => {
const valuesWhenVisible = { operation: { value: 'calcom_create_booking' } }
it.concurrent('conditional required returns true', () => {
expect(isFieldRequired(configWithConditionalRequired, valuesWhenVisible)).toBe(true)
})
it.concurrent('simple required returns true', () => {
expect(isFieldRequired(configWithSimpleRequired, valuesWhenVisible)).toBe(true)
})
it.concurrent('both configs produce the same result', () => {
const conditionalResult = isFieldRequired(configWithConditionalRequired, valuesWhenVisible)
const simpleResult = isFieldRequired(configWithSimpleRequired, valuesWhenVisible)
expect(conditionalResult).toBe(simpleResult)
})
})
describe('when condition is NOT met (field is hidden)', () => {
const valuesWhenHidden = { operation: { value: 'calcom_cancel_booking' } }
it.concurrent('conditional required returns false', () => {
expect(isFieldRequired(configWithConditionalRequired, valuesWhenHidden)).toBe(false)
})
it.concurrent('simple required returns true but field is hidden', () => {
expect(isFieldRequired(configWithSimpleRequired, valuesWhenHidden)).toBe(true)
})
it.concurrent('results differ but field is hidden when condition fails', () => {
const conditionalResult = isFieldRequired(configWithConditionalRequired, valuesWhenHidden)
const simpleResult = isFieldRequired(configWithSimpleRequired, valuesWhenHidden)
expect(conditionalResult).not.toBe(simpleResult)
})
})
describe('practical equivalence for user-facing behavior', () => {
it.concurrent('when field is visible both show required indicator', () => {
const valuesWhenVisible = { operation: { value: 'calcom_create_booking' } }
const showsRequiredIndicatorA = isFieldRequired(
configWithConditionalRequired,
valuesWhenVisible
)
const showsRequiredIndicatorB = isFieldRequired(configWithSimpleRequired, valuesWhenVisible)
expect(showsRequiredIndicatorA).toBe(true)
expect(showsRequiredIndicatorB).toBe(true)
})
})
})

View File

@@ -1,6 +1,6 @@
import { type JSX, type MouseEvent, memo, useRef, useState } from 'react' import { type JSX, type MouseEvent, memo, useCallback, useRef, useState } from 'react'
import { isEqual } from 'lodash' import { isEqual } from 'lodash'
import { AlertTriangle, ArrowLeftRight, ArrowUp } from 'lucide-react' import { AlertTriangle, ArrowLeftRight, ArrowUp, Check, Clipboard } from 'lucide-react'
import { Button, Input, Label, Tooltip } from '@/components/emcn/components' import { Button, Input, Label, Tooltip } from '@/components/emcn/components'
import { cn } from '@/lib/core/utils/cn' import { cn } from '@/lib/core/utils/cn'
import type { FieldDiffStatus } from '@/lib/workflows/diff/types' import type { FieldDiffStatus } from '@/lib/workflows/diff/types'
@@ -44,6 +44,7 @@ import {
} from '@/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components' } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components'
import { useDependsOnGate } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/hooks/use-depends-on-gate' import { useDependsOnGate } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/hooks/use-depends-on-gate'
import type { SubBlockConfig } from '@/blocks/types' import type { SubBlockConfig } from '@/blocks/types'
import { useWebhookManagement } from '@/hooks/use-webhook-management'
/** /**
* Interface for wand control handlers exposed by sub-block inputs * Interface for wand control handlers exposed by sub-block inputs
@@ -195,7 +196,12 @@ const renderLabel = (
disabled?: boolean disabled?: boolean
onToggle?: () => void onToggle?: () => void
}, },
canonicalToggleIsDisabled?: boolean canonicalToggleIsDisabled?: boolean,
copyState?: {
showCopyButton: boolean
copied: boolean
onCopy: () => void
}
): JSX.Element | null => { ): JSX.Element | null => {
if (config.type === 'switch') return null if (config.type === 'switch') return null
if (!config.title) return null if (!config.title) return null
@@ -203,6 +209,7 @@ const renderLabel = (
const required = isFieldRequired(config, subBlockValues) const required = isFieldRequired(config, subBlockValues)
const showWand = wandState?.isWandEnabled && !wandState.isPreview && !wandState.disabled const showWand = wandState?.isWandEnabled && !wandState.isPreview && !wandState.disabled
const showCanonicalToggle = !!canonicalToggle && !wandState?.isPreview const showCanonicalToggle = !!canonicalToggle && !wandState?.isPreview
const showCopy = copyState?.showCopyButton && !wandState?.isPreview
const canonicalToggleDisabledResolved = canonicalToggleIsDisabled ?? canonicalToggle?.disabled const canonicalToggleDisabledResolved = canonicalToggleIsDisabled ?? canonicalToggle?.disabled
return ( return (
@@ -226,7 +233,28 @@ const renderLabel = (
</Tooltip.Root> </Tooltip.Root>
)} )}
</Label> </Label>
<div className='flex items-center gap-[6px]'> <div className='flex min-w-0 flex-1 items-center justify-end gap-[6px]'>
{showCopy && (
<Tooltip.Root>
<Tooltip.Trigger asChild>
<button
type='button'
onClick={copyState.onCopy}
className='-my-1 flex h-5 w-5 items-center justify-center'
aria-label='Copy value'
>
{copyState.copied ? (
<Check className='h-3 w-3 text-green-500' />
) : (
<Clipboard className='h-3 w-3 text-muted-foreground' />
)}
</button>
</Tooltip.Trigger>
<Tooltip.Content side='top'>
<p>{copyState.copied ? 'Copied!' : 'Copy'}</p>
</Tooltip.Content>
</Tooltip.Root>
)}
{showWand && ( {showWand && (
<> <>
{!wandState.isSearchActive ? ( {!wandState.isSearchActive ? (
@@ -238,14 +266,19 @@ const renderLabel = (
Generate Generate
</Button> </Button>
) : ( ) : (
<div className='-my-1 flex items-center gap-[4px]'> <div className='-my-1 flex min-w-[120px] max-w-[280px] flex-1 items-center gap-[4px]'>
<Input <Input
ref={wandState.searchInputRef} ref={wandState.searchInputRef}
value={wandState.isStreaming ? 'Generating...' : wandState.searchQuery} value={wandState.isStreaming ? 'Generating...' : wandState.searchQuery}
onChange={(e: React.ChangeEvent<HTMLInputElement>) => onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
wandState.onSearchChange(e.target.value) wandState.onSearchChange(e.target.value)
} }
onBlur={wandState.onSearchBlur} onBlur={(e: React.FocusEvent<HTMLInputElement>) => {
// Only close if clicking outside the input container (not on the submit button)
const relatedTarget = e.relatedTarget as HTMLElement | null
if (relatedTarget?.closest('button')) return
wandState.onSearchBlur()
}}
onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => { onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {
if ( if (
e.key === 'Enter' && e.key === 'Enter' &&
@@ -259,7 +292,7 @@ const renderLabel = (
}} }}
disabled={wandState.isStreaming} disabled={wandState.isStreaming}
className={cn( className={cn(
'h-5 max-w-[200px] flex-1 text-[11px]', 'h-5 min-w-[80px] flex-1 text-[11px]',
wandState.isStreaming && 'text-muted-foreground' wandState.isStreaming && 'text-muted-foreground'
)} )}
placeholder='Generate with AI...' placeholder='Generate with AI...'
@@ -385,9 +418,18 @@ function SubBlockComponent({
const [isValidJson, setIsValidJson] = useState(true) const [isValidJson, setIsValidJson] = useState(true)
const [isSearchActive, setIsSearchActive] = useState(false) const [isSearchActive, setIsSearchActive] = useState(false)
const [searchQuery, setSearchQuery] = useState('') const [searchQuery, setSearchQuery] = useState('')
const [copied, setCopied] = useState(false)
const searchInputRef = useRef<HTMLInputElement>(null) const searchInputRef = useRef<HTMLInputElement>(null)
const wandControlRef = useRef<WandControlHandlers | null>(null) const wandControlRef = useRef<WandControlHandlers | null>(null)
// Use webhook management hook when config has useWebhookUrl enabled
const webhookManagement = useWebhookManagement({
blockId,
triggerId: undefined,
isPreview,
useWebhookUrl: config.useWebhookUrl,
})
const handleMouseDown = (e: MouseEvent<HTMLDivElement>): void => { const handleMouseDown = (e: MouseEvent<HTMLDivElement>): void => {
e.stopPropagation() e.stopPropagation()
} }
@@ -398,6 +440,18 @@ function SubBlockComponent({
const isWandEnabled = config.wandConfig?.enabled ?? false const isWandEnabled = config.wandConfig?.enabled ?? false
/**
* Handles copying the webhook URL to clipboard.
*/
const handleCopy = useCallback(() => {
const textToCopy = webhookManagement?.webhookUrl
if (textToCopy) {
navigator.clipboard.writeText(textToCopy)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
}
}, [webhookManagement?.webhookUrl])
/** /**
* Handles wand icon click to activate inline prompt mode. * Handles wand icon click to activate inline prompt mode.
* Focuses the input after a brief delay to ensure DOM is ready. * Focuses the input after a brief delay to ensure DOM is ready.
@@ -482,7 +536,6 @@ function SubBlockComponent({
placeholder={config.placeholder} placeholder={config.placeholder}
password={config.password} password={config.password}
readOnly={config.readOnly} readOnly={config.readOnly}
showCopyButton={config.showCopyButton}
useWebhookUrl={config.useWebhookUrl} useWebhookUrl={config.useWebhookUrl}
config={config} config={config}
isPreview={isPreview} isPreview={isPreview}
@@ -979,7 +1032,12 @@ function SubBlockComponent({
searchInputRef, searchInputRef,
}, },
canonicalToggle, canonicalToggle,
Boolean(canonicalToggle?.disabled || disabled || isPreview) Boolean(canonicalToggle?.disabled || disabled || isPreview),
{
showCopyButton: Boolean(config.showCopyButton && config.useWebhookUrl),
copied,
onCopy: handleCopy,
}
)} )}
{renderInput()} {renderInput()}
</div> </div>

View File

@@ -21,8 +21,9 @@ interface DeleteModalProps {
isDeleting: boolean isDeleting: boolean
/** /**
* Type of item being deleted * Type of item being deleted
* - 'mixed' is used when both workflows and folders are selected
*/ */
itemType: 'workflow' | 'folder' | 'workspace' itemType: 'workflow' | 'folder' | 'workspace' | 'mixed'
/** /**
* Name(s) of the item(s) being deleted (optional, for display) * Name(s) of the item(s) being deleted (optional, for display)
* Can be a single name or an array of names for multiple items * Can be a single name or an array of names for multiple items
@@ -54,7 +55,9 @@ export function DeleteModal({
if (itemType === 'workflow') { if (itemType === 'workflow') {
title = isMultiple ? 'Delete Workflows' : 'Delete Workflow' title = isMultiple ? 'Delete Workflows' : 'Delete Workflow'
} else if (itemType === 'folder') { } else if (itemType === 'folder') {
title = 'Delete Folder' title = isMultiple ? 'Delete Folders' : 'Delete Folder'
} else if (itemType === 'mixed') {
title = 'Delete Items'
} else { } else {
title = 'Delete Workspace' title = 'Delete Workspace'
} }
@@ -85,6 +88,18 @@ export function DeleteModal({
} }
if (itemType === 'folder') { if (itemType === 'folder') {
if (isMultiple) {
return (
<>
Are you sure you want to delete{' '}
<span className='font-medium text-[var(--text-primary)]'>
{displayNames.join(', ')}
</span>
? This will permanently remove all workflows, logs, and knowledge bases within these
folders.
</>
)
}
if (isSingle && displayNames.length > 0) { if (isSingle && displayNames.length > 0) {
return ( return (
<> <>
@@ -97,6 +112,23 @@ export function DeleteModal({
return 'Are you sure you want to delete this folder? This will permanently remove all associated workflows, logs, and knowledge bases.' return 'Are you sure you want to delete this folder? This will permanently remove all associated workflows, logs, and knowledge bases.'
} }
if (itemType === 'mixed') {
if (displayNames.length > 0) {
return (
<>
Are you sure you want to delete{' '}
<span className='font-medium text-[var(--text-primary)]'>
{displayNames.join(', ')}
</span>
? This will permanently remove all selected workflows and folders, including their
contents.
</>
)
}
return 'Are you sure you want to delete the selected items? This will permanently remove all selected workflows and folders, including their contents.'
}
// workspace type
if (isSingle && displayNames.length > 0) { if (isSingle && displayNames.length > 0) {
return ( return (
<> <>

View File

@@ -1,6 +1,6 @@
'use client' 'use client'
import { useCallback, useMemo, useState } from 'react' import { useCallback, useMemo, useRef, useState } from 'react'
import { createLogger } from '@sim/logger' import { createLogger } from '@sim/logger'
import clsx from 'clsx' import clsx from 'clsx'
import { ChevronRight, Folder, FolderOpen, MoreHorizontal } from 'lucide-react' import { ChevronRight, Folder, FolderOpen, MoreHorizontal } from 'lucide-react'
@@ -14,17 +14,23 @@ import {
useFolderExpand, useFolderExpand,
useItemDrag, useItemDrag,
useItemRename, useItemRename,
useSidebarDragContext,
} from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks' } from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks'
import { SIDEBAR_SCROLL_EVENT } from '@/app/workspace/[workspaceId]/w/components/sidebar/sidebar' import { SIDEBAR_SCROLL_EVENT } from '@/app/workspace/[workspaceId]/w/components/sidebar/sidebar'
import { import {
useCanDelete, useCanDelete,
useDeleteFolder, useDeleteFolder,
useDeleteSelection,
useDuplicateFolder, useDuplicateFolder,
useDuplicateSelection,
useExportFolder, useExportFolder,
useExportSelection,
} from '@/app/workspace/[workspaceId]/w/hooks' } from '@/app/workspace/[workspaceId]/w/hooks'
import { useCreateFolder, useUpdateFolder } from '@/hooks/queries/folders' import { useCreateFolder, useUpdateFolder } from '@/hooks/queries/folders'
import { useCreateWorkflow } from '@/hooks/queries/workflows' import { useCreateWorkflow } from '@/hooks/queries/workflows'
import { useFolderStore } from '@/stores/folders/store'
import type { FolderTreeNode } from '@/stores/folders/types' import type { FolderTreeNode } from '@/stores/folders/types'
import { useWorkflowRegistry } from '@/stores/workflows/registry/store'
import { generateCreativeWorkflowName } from '@/stores/workflows/registry/utils' import { generateCreativeWorkflowName } from '@/stores/workflows/registry/utils'
const logger = createLogger('FolderItem') const logger = createLogger('FolderItem')
@@ -37,26 +43,21 @@ interface FolderItemProps {
onDragEnter?: (e: React.DragEvent<HTMLElement>) => void onDragEnter?: (e: React.DragEvent<HTMLElement>) => void
onDragLeave?: (e: React.DragEvent<HTMLElement>) => void onDragLeave?: (e: React.DragEvent<HTMLElement>) => void
} }
onFolderClick?: (folderId: string, shiftKey: boolean, metaKey: boolean) => void
onDragStart?: () => void onDragStart?: () => void
onDragEnd?: () => void onDragEnd?: () => void
} }
/**
* FolderItem component displaying a single folder with drag and expand/collapse support.
* Uses item drag and folder expand hooks for unified behavior.
* Supports hover-to-expand during drag operations via hoverHandlers.
*
* @param props - Component props
* @returns Folder item with drag and expand support
*/
export function FolderItem({ export function FolderItem({
folder, folder,
level, level,
dragDisabled = false, dragDisabled = false,
hoverHandlers, hoverHandlers,
onFolderClick,
onDragStart: onDragStartProp, onDragStart: onDragStartProp,
onDragEnd: onDragEndProp, onDragEnd: onDragEndProp,
}: FolderItemProps) { }: FolderItemProps) {
const { isAnyDragActive } = useSidebarDragContext()
const params = useParams() const params = useParams()
const router = useRouter() const router = useRouter()
const workspaceId = params.workspaceId as string const workspaceId = params.workspaceId as string
@@ -64,27 +65,64 @@ export function FolderItem({
const createWorkflowMutation = useCreateWorkflow() const createWorkflowMutation = useCreateWorkflow()
const createFolderMutation = useCreateFolder() const createFolderMutation = useCreateFolder()
const userPermissions = useUserPermissionsContext() const userPermissions = useUserPermissionsContext()
const selectedFolders = useFolderStore((state) => state.selectedFolders)
const isSelected = selectedFolders.has(folder.id)
const { canDeleteFolder } = useCanDelete({ workspaceId }) const { canDeleteFolder, canDeleteWorkflows } = useCanDelete({ workspaceId })
const canDelete = useMemo(() => canDeleteFolder(folder.id), [canDeleteFolder, folder.id])
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false) const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false)
const [deleteItemType, setDeleteItemType] = useState<'folder' | 'mixed'>('folder')
const [deleteItemNames, setDeleteItemNames] = useState<string | string[]>(folder.name)
const { isDeleting, handleDeleteFolder } = useDeleteFolder({ const capturedSelectionRef = useRef<{
workflowIds: string[]
folderIds: string[]
isMixed: boolean
names: string[]
} | null>(null)
const [canDeleteSelection, setCanDeleteSelection] = useState(true)
const { isDeleting: isDeletingThisFolder, handleDeleteFolder: handleDeleteThisFolder } =
useDeleteFolder({
workspaceId,
folderIds: folder.id,
onSuccess: () => setIsDeleteModalOpen(false),
})
const { isDeleting: isDeletingSelection, handleDeleteSelection } = useDeleteSelection({
workspaceId, workspaceId,
folderIds: folder.id, workflowIds: capturedSelectionRef.current?.workflowIds || [],
folderIds: capturedSelectionRef.current?.folderIds || [],
isActiveWorkflow: (id) => id === params.workflowId,
onSuccess: () => setIsDeleteModalOpen(false), onSuccess: () => setIsDeleteModalOpen(false),
}) })
const { handleDuplicateFolder } = useDuplicateFolder({ const isDeleting = isDeletingThisFolder || isDeletingSelection
const { handleDuplicateFolder: handleDuplicateThisFolder } = useDuplicateFolder({
workspaceId, workspaceId,
folderIds: folder.id, folderIds: folder.id,
}) })
const { isExporting, hasWorkflows, handleExportFolder } = useExportFolder({ const { isDuplicating: isDuplicatingSelection, handleDuplicateSelection } = useDuplicateSelection(
{
workspaceId,
}
)
const {
isExporting: isExportingThisFolder,
hasWorkflows,
handleExportFolder: handleExportThisFolder,
} = useExportFolder({
folderId: folder.id, folderId: folder.id,
}) })
const { isExporting: isExportingSelection, handleExportSelection } = useExportSelection()
const isExporting = isExportingThisFolder || isExportingSelection
const { const {
isExpanded, isExpanded,
handleToggleExpanded, handleToggleExpanded,
@@ -94,11 +132,8 @@ export function FolderItem({
folderId: folder.id, folderId: folder.id,
}) })
/** const isEditingRef = useRef(false)
* Handle create workflow in folder using React Query mutation.
* Generates name and color upfront for optimistic UI updates.
* The UI disables the trigger when isPending, so no guard needed here.
*/
const handleCreateWorkflowInFolder = useCallback(async () => { const handleCreateWorkflowInFolder = useCallback(async () => {
try { try {
const name = generateCreativeWorkflowName() const name = generateCreativeWorkflowName()
@@ -123,10 +158,6 @@ export function FolderItem({
} }
}, [createWorkflowMutation, workspaceId, folder.id, router, expandFolder]) }, [createWorkflowMutation, workspaceId, folder.id, router, expandFolder])
/**
* Handle create sub-folder using React Query mutation.
* Creates a new folder inside the current folder.
*/
const handleCreateFolderInFolder = useCallback(async () => { const handleCreateFolderInFolder = useCallback(async () => {
try { try {
const result = await createFolderMutation.mutateAsync({ const result = await createFolderMutation.mutateAsync({
@@ -147,12 +178,25 @@ export function FolderItem({
const onDragStart = useCallback( const onDragStart = useCallback(
(e: React.DragEvent) => { (e: React.DragEvent) => {
if (isEditing) { if (isEditingRef.current) {
e.preventDefault() e.preventDefault()
return return
} }
e.dataTransfer.setData('folder-id', folder.id) const { selectedWorkflows, selectedFolders } = useFolderStore.getState()
const isCurrentlySelected = selectedFolders.has(folder.id)
const selection = isCurrentlySelected
? {
workflowIds: Array.from(selectedWorkflows),
folderIds: Array.from(selectedFolders),
}
: {
workflowIds: [],
folderIds: [folder.id],
}
e.dataTransfer.setData('sidebar-selection', JSON.stringify(selection))
e.dataTransfer.effectAllowed = 'move' e.dataTransfer.effectAllowed = 'move'
onDragStartProp?.() onDragStartProp?.()
}, },
@@ -177,11 +221,59 @@ export function FolderItem({
isOpen: isContextMenuOpen, isOpen: isContextMenuOpen,
position, position,
menuRef, menuRef,
handleContextMenu, handleContextMenu: handleContextMenuBase,
closeMenu, closeMenu,
preventDismiss, preventDismiss,
} = useContextMenu() } = useContextMenu()
const captureSelectionState = useCallback(() => {
const store = useFolderStore.getState()
const isFolderSelected = store.selectedFolders.has(folder.id)
if (!isFolderSelected) {
store.selectFolder(folder.id)
}
const finalFolderSelection = useFolderStore.getState().selectedFolders
const finalWorkflowSelection = useFolderStore.getState().selectedWorkflows
const folderIds = Array.from(finalFolderSelection)
const workflowIds = Array.from(finalWorkflowSelection)
const isMixed = folderIds.length > 0 && workflowIds.length > 0
const { folders } = useFolderStore.getState()
const { workflows } = useWorkflowRegistry.getState()
const names: string[] = []
for (const id of folderIds) {
const f = folders[id]
if (f) names.push(f.name)
}
for (const id of workflowIds) {
const w = workflows[id]
if (w) names.push(w.name)
}
capturedSelectionRef.current = {
workflowIds,
folderIds,
isMixed,
names,
}
const canDeleteAllFolders = folderIds.every((id) => canDeleteFolder(id))
const canDeleteAllWorkflows = workflowIds.length === 0 || canDeleteWorkflows(workflowIds)
setCanDeleteSelection(canDeleteAllFolders && canDeleteAllWorkflows)
}, [folder.id, canDeleteFolder, canDeleteWorkflows])
const handleContextMenu = useCallback(
(e: React.MouseEvent) => {
captureSelectionState()
handleContextMenuBase(e)
},
[captureSelectionState, handleContextMenuBase]
)
const { const {
isEditing, isEditing,
editValue, editValue,
@@ -204,9 +296,8 @@ export function FolderItem({
itemId: folder.id, itemId: folder.id,
}) })
/** isEditingRef.current = isEditing
* Handle double-click on folder name to enter rename mode
*/
const handleDoubleClick = useCallback( const handleDoubleClick = useCallback(
(e: React.MouseEvent) => { (e: React.MouseEvent) => {
e.preventDefault() e.preventDefault()
@@ -216,11 +307,6 @@ export function FolderItem({
[handleStartEdit] [handleStartEdit]
) )
/**
* Handle click - toggles folder expansion
*
* @param e - React mouse event
*/
const handleClick = useCallback( const handleClick = useCallback(
(e: React.MouseEvent<HTMLDivElement>) => { (e: React.MouseEvent<HTMLDivElement>) => {
e.stopPropagation() e.stopPropagation()
@@ -229,14 +315,21 @@ export function FolderItem({
e.preventDefault() e.preventDefault()
return return
} }
const isModifierClick = e.shiftKey || e.metaKey || e.ctrlKey
if (isModifierClick && onFolderClick) {
e.preventDefault()
onFolderClick(folder.id, e.shiftKey, e.metaKey || e.ctrlKey)
return
}
useFolderStore.getState().clearFolderSelection()
handleToggleExpanded() handleToggleExpanded()
}, },
[handleToggleExpanded, shouldPreventClickRef, isEditing] [handleToggleExpanded, shouldPreventClickRef, isEditing, onFolderClick, folder.id]
) )
/**
* Combined keyboard handler for both expand and rename
*/
const handleKeyDown = useCallback( const handleKeyDown = useCallback(
(e: React.KeyboardEvent<HTMLDivElement>) => { (e: React.KeyboardEvent<HTMLDivElement>) => {
if (isEditing) { if (isEditing) {
@@ -248,18 +341,12 @@ export function FolderItem({
[isEditing, handleRenameKeyDown, handleExpandKeyDown] [isEditing, handleRenameKeyDown, handleExpandKeyDown]
) )
/**
* Handle more button pointerdown - prevents click-outside dismissal when toggling
*/
const handleMorePointerDown = useCallback(() => { const handleMorePointerDown = useCallback(() => {
if (isContextMenuOpen) { if (isContextMenuOpen) {
preventDismiss() preventDismiss()
} }
}, [isContextMenuOpen, preventDismiss]) }, [isContextMenuOpen, preventDismiss])
/**
* Handle more button click - toggles context menu at button position
*/
const handleMoreClick = useCallback( const handleMoreClick = useCallback(
(e: React.MouseEvent<HTMLButtonElement>) => { (e: React.MouseEvent<HTMLButtonElement>) => {
e.preventDefault() e.preventDefault()
@@ -270,17 +357,83 @@ export function FolderItem({
return return
} }
captureSelectionState()
const rect = e.currentTarget.getBoundingClientRect() const rect = e.currentTarget.getBoundingClientRect()
handleContextMenu({ handleContextMenuBase({
preventDefault: () => {}, preventDefault: () => {},
stopPropagation: () => {}, stopPropagation: () => {},
clientX: rect.right, clientX: rect.right,
clientY: rect.top, clientY: rect.top,
} as React.MouseEvent) } as React.MouseEvent)
}, },
[isContextMenuOpen, closeMenu, handleContextMenu] [isContextMenuOpen, closeMenu, captureSelectionState, handleContextMenuBase]
) )
const handleOpenDeleteModal = useCallback(() => {
if (!capturedSelectionRef.current) return
const { isMixed, names, folderIds } = capturedSelectionRef.current
if (isMixed) {
setDeleteItemType('mixed')
setDeleteItemNames(names)
} else if (folderIds.length > 1) {
setDeleteItemType('folder')
setDeleteItemNames(names)
} else {
setDeleteItemType('folder')
setDeleteItemNames(folder.name)
}
setIsDeleteModalOpen(true)
}, [folder.name])
const handleConfirmDelete = useCallback(async () => {
if (!capturedSelectionRef.current) return
const { isMixed, folderIds } = capturedSelectionRef.current
if (isMixed || folderIds.length > 1) {
await handleDeleteSelection()
} else {
await handleDeleteThisFolder()
}
}, [handleDeleteSelection, handleDeleteThisFolder])
const handleExport = useCallback(async () => {
if (!capturedSelectionRef.current) return
const { isMixed, workflowIds, folderIds } = capturedSelectionRef.current
if (isMixed || folderIds.length > 1) {
await handleExportSelection(workflowIds, folderIds)
} else {
await handleExportThisFolder()
}
}, [handleExportSelection, handleExportThisFolder])
const handleDuplicate = useCallback(async () => {
if (!capturedSelectionRef.current) return
const { isMixed, workflowIds, folderIds } = capturedSelectionRef.current
if (isMixed || folderIds.length > 1) {
await handleDuplicateSelection(workflowIds, folderIds)
} else {
await handleDuplicateThisFolder()
}
}, [handleDuplicateSelection, handleDuplicateThisFolder])
const isMixedSelection = useMemo(() => {
return capturedSelectionRef.current?.isMixed ?? false
}, [isContextMenuOpen])
const hasExportableContent = useMemo(() => {
if (!capturedSelectionRef.current) return hasWorkflows
const { workflowIds } = capturedSelectionRef.current
return workflowIds.length > 0 || hasWorkflows
}, [isContextMenuOpen, hasWorkflows])
return ( return (
<> <>
<div <div
@@ -290,8 +443,10 @@ export function FolderItem({
aria-expanded={isExpanded} aria-expanded={isExpanded}
aria-label={`${folder.name} folder, ${isExpanded ? 'expanded' : 'collapsed'}`} aria-label={`${folder.name} folder, ${isExpanded ? 'expanded' : 'collapsed'}`}
className={clsx( className={clsx(
'group flex h-[26px] cursor-pointer items-center gap-[8px] rounded-[8px] px-[6px] text-[14px] hover:bg-[var(--surface-6)] dark:hover:bg-[var(--surface-5)]', 'group flex h-[26px] cursor-pointer items-center gap-[8px] rounded-[8px] px-[6px] text-[14px]',
isDragging ? 'opacity-50' : '' !isAnyDragActive && 'hover:bg-[var(--surface-6)] dark:hover:bg-[var(--surface-5)]',
isSelected ? 'bg-[var(--surface-6)] dark:bg-[var(--surface-5)]' : '',
(isDragging || (isAnyDragActive && isSelected)) && 'opacity-50'
)} )}
onClick={handleClick} onClick={handleClick}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
@@ -303,20 +458,26 @@ export function FolderItem({
> >
<ChevronRight <ChevronRight
className={clsx( className={clsx(
'h-3.5 w-3.5 flex-shrink-0 transition-transform duration-100', 'h-3.5 w-3.5 flex-shrink-0 text-[var(--text-tertiary)] transition-transform duration-100',
'text-[var(--text-tertiary)] group-hover:text-[var(--text-primary)]', !isAnyDragActive && 'group-hover:text-[var(--text-primary)]',
isExpanded && 'rotate-90' isExpanded && 'rotate-90'
)} )}
aria-hidden='true' aria-hidden='true'
/> />
{isExpanded ? ( {isExpanded ? (
<FolderOpen <FolderOpen
className='h-[14px] w-[14px] flex-shrink-0 text-[var(--text-tertiary)] group-hover:text-[var(--text-primary)]' className={clsx(
'h-[14px] w-[14px] flex-shrink-0 text-[var(--text-tertiary)]',
!isAnyDragActive && 'group-hover:text-[var(--text-primary)]'
)}
aria-hidden='true' aria-hidden='true'
/> />
) : ( ) : (
<Folder <Folder
className='h-[14px] w-[14px] flex-shrink-0 text-[var(--text-tertiary)] group-hover:text-[var(--text-primary)]' className={clsx(
'h-[14px] w-[14px] flex-shrink-0 text-[var(--text-tertiary)]',
!isAnyDragActive && 'group-hover:text-[var(--text-primary)]'
)}
aria-hidden='true' aria-hidden='true'
/> />
)} )}
@@ -344,16 +505,23 @@ export function FolderItem({
) : ( ) : (
<div className='flex min-w-0 flex-1 items-center gap-[8px]'> <div className='flex min-w-0 flex-1 items-center gap-[8px]'>
<span <span
className='min-w-0 flex-1 truncate font-medium text-[var(--text-tertiary)] group-hover:text-[var(--text-primary)]' className={clsx(
'min-w-0 flex-1 truncate font-medium text-[var(--text-tertiary)]',
!isAnyDragActive && 'group-hover:text-[var(--text-primary)]'
)}
onDoubleClick={handleDoubleClick} onDoubleClick={handleDoubleClick}
> >
{folder.name} {folder.name}
</span> </span>
<button <button
type='button' type='button'
aria-label='Folder options'
onPointerDown={handleMorePointerDown} onPointerDown={handleMorePointerDown}
onClick={handleMoreClick} onClick={handleMoreClick}
className='flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center rounded-[4px] opacity-0 transition-opacity hover:bg-[var(--surface-7)] group-hover:opacity-100' className={clsx(
'flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center rounded-[4px] opacity-0 transition-opacity hover:bg-[var(--surface-7)]',
!isAnyDragActive && 'group-hover:opacity-100'
)}
> >
<MoreHorizontal className='h-[14px] w-[14px] text-[var(--text-tertiary)]' /> <MoreHorizontal className='h-[14px] w-[14px] text-[var(--text-tertiary)]' />
</button> </button>
@@ -361,7 +529,6 @@ export function FolderItem({
)} )}
</div> </div>
{/* Context Menu */}
<ContextMenu <ContextMenu
isOpen={isContextMenuOpen} isOpen={isContextMenuOpen}
position={position} position={position}
@@ -370,28 +537,31 @@ export function FolderItem({
onRename={handleStartEdit} onRename={handleStartEdit}
onCreate={handleCreateWorkflowInFolder} onCreate={handleCreateWorkflowInFolder}
onCreateFolder={handleCreateFolderInFolder} onCreateFolder={handleCreateFolderInFolder}
onDuplicate={handleDuplicateFolder} onDuplicate={handleDuplicate}
onExport={handleExportFolder} onExport={handleExport}
onDelete={() => setIsDeleteModalOpen(true)} onDelete={handleOpenDeleteModal}
showCreate={true} showCreate={!isMixedSelection}
showCreateFolder={true} showCreateFolder={!isMixedSelection}
showRename={!isMixedSelection && selectedFolders.size <= 1}
showDuplicate={true}
showExport={true} showExport={true}
disableRename={!userPermissions.canEdit} disableRename={!userPermissions.canEdit}
disableCreate={!userPermissions.canEdit || createWorkflowMutation.isPending} disableCreate={!userPermissions.canEdit || createWorkflowMutation.isPending}
disableCreateFolder={!userPermissions.canEdit || createFolderMutation.isPending} disableCreateFolder={!userPermissions.canEdit || createFolderMutation.isPending}
disableDuplicate={!userPermissions.canEdit || !hasWorkflows} disableDuplicate={
disableExport={!userPermissions.canEdit || isExporting || !hasWorkflows} !userPermissions.canEdit || isDuplicatingSelection || !hasExportableContent
disableDelete={!userPermissions.canEdit || !canDelete} }
disableExport={!userPermissions.canEdit || isExporting || !hasExportableContent}
disableDelete={!userPermissions.canEdit || !canDeleteSelection}
/> />
{/* Delete Modal */}
<DeleteModal <DeleteModal
isOpen={isDeleteModalOpen} isOpen={isDeleteModalOpen}
onClose={() => setIsDeleteModalOpen(false)} onClose={() => setIsDeleteModalOpen(false)}
onConfirm={handleDeleteFolder} onConfirm={handleConfirmDelete}
isDeleting={isDeleting} isDeleting={isDeleting}
itemType='folder' itemType={deleteItemType}
itemName={folder.name} itemName={deleteItemNames}
/> />
</> </>
) )

View File

@@ -51,7 +51,7 @@ function UserAvatar({ user, index }: UserAvatarProps) {
)} )}
<AvatarFallback <AvatarFallback
style={{ background: color }} style={{ background: color }}
className='border-0 font-semibold text-[7px] text-white' className='border-0 font-semibold text-[7px] text-white leading-none'
> >
{initials} {initials}
</AvatarFallback> </AvatarFallback>
@@ -132,7 +132,7 @@ export function Avatars({ workflowId }: AvatarsProps) {
<Tooltip.Root> <Tooltip.Root>
<Tooltip.Trigger asChild> <Tooltip.Trigger asChild>
<Avatar size='xs' style={{ zIndex: 0 } as CSSProperties}> <Avatar size='xs' style={{ zIndex: 0 } as CSSProperties}>
<AvatarFallback className='border-0 bg-[#404040] font-semibold text-[7px] text-white'> <AvatarFallback className='border-0 bg-[#404040] font-semibold text-[7px] text-white leading-none'>
+{overflowCount} +{overflowCount}
</AvatarFallback> </AvatarFallback>
</Avatar> </Avatar>

View File

@@ -1,6 +1,6 @@
'use client' 'use client'
import { useCallback, useRef, useState } from 'react' import { useCallback, useMemo, useRef, useState } from 'react'
import clsx from 'clsx' import clsx from 'clsx'
import { MoreHorizontal } from 'lucide-react' import { MoreHorizontal } from 'lucide-react'
import Link from 'next/link' import Link from 'next/link'
@@ -13,11 +13,15 @@ import {
useContextMenu, useContextMenu,
useItemDrag, useItemDrag,
useItemRename, useItemRename,
useSidebarDragContext,
} from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks' } from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks'
import { import {
useCanDelete, useCanDelete,
useDeleteSelection,
useDeleteWorkflow, useDeleteWorkflow,
useDuplicateSelection,
useDuplicateWorkflow, useDuplicateWorkflow,
useExportSelection,
useExportWorkflow, useExportWorkflow,
} from '@/app/workspace/[workspaceId]/w/hooks' } from '@/app/workspace/[workspaceId]/w/hooks'
import { useFolderStore } from '@/stores/folders/store' import { useFolderStore } from '@/stores/folders/store'
@@ -50,6 +54,7 @@ export function WorkflowItem({
onDragStart: onDragStartProp, onDragStart: onDragStartProp,
onDragEnd: onDragEndProp, onDragEnd: onDragEndProp,
}: WorkflowItemProps) { }: WorkflowItemProps) {
const { isAnyDragActive } = useSidebarDragContext()
const params = useParams() const params = useParams()
const workspaceId = params.workspaceId as string const workspaceId = params.workspaceId as string
const selectedWorkflows = useFolderStore((state) => state.selectedWorkflows) const selectedWorkflows = useFolderStore((state) => state.selectedWorkflows)
@@ -57,50 +62,101 @@ export function WorkflowItem({
const userPermissions = useUserPermissionsContext() const userPermissions = useUserPermissionsContext()
const isSelected = selectedWorkflows.has(workflow.id) const isSelected = selectedWorkflows.has(workflow.id)
const { canDeleteWorkflows } = useCanDelete({ workspaceId }) const { canDeleteWorkflows, canDeleteFolder } = useCanDelete({ workspaceId })
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false) const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false)
const [workflowIdsToDelete, setWorkflowIdsToDelete] = useState<string[]>([]) const [deleteItemType, setDeleteItemType] = useState<'workflow' | 'mixed'>('workflow')
const [deleteModalNames, setDeleteModalNames] = useState<string | string[]>('') const [deleteModalNames, setDeleteModalNames] = useState<string | string[]>('')
const [canDeleteCaptured, setCanDeleteCaptured] = useState(true) const [canDeleteSelection, setCanDeleteSelection] = useState(true)
const capturedSelectionRef = useRef<{ const capturedSelectionRef = useRef<{
workflowIds: string[] workflowIds: string[]
workflowNames: string | string[] folderIds: string[]
isMixed: boolean
names: string[]
} | null>(null) } | null>(null)
/** /**
* Handle opening the delete modal - uses pre-captured selection state * Handle opening the delete modal - uses pre-captured selection state
*/ */
const handleOpenDeleteModal = useCallback(() => { const handleOpenDeleteModal = useCallback(() => {
if (capturedSelectionRef.current) { if (!capturedSelectionRef.current) return
setWorkflowIdsToDelete(capturedSelectionRef.current.workflowIds)
setDeleteModalNames(capturedSelectionRef.current.workflowNames) const { isMixed, names } = capturedSelectionRef.current
setIsDeleteModalOpen(true)
if (isMixed) {
setDeleteItemType('mixed')
} else {
setDeleteItemType('workflow')
} }
setDeleteModalNames(names.length > 1 ? names : names[0] || '')
setIsDeleteModalOpen(true)
}, []) }, [])
const { isDeleting, handleDeleteWorkflow } = useDeleteWorkflow({ const { isDeleting: isDeletingWorkflows, handleDeleteWorkflow: handleDeleteWorkflows } =
useDeleteWorkflow({
workspaceId,
workflowIds: capturedSelectionRef.current?.workflowIds || [],
isActive: (workflowIds) => workflowIds.includes(params.workflowId as string),
onSuccess: () => setIsDeleteModalOpen(false),
})
const { isDeleting: isDeletingSelection, handleDeleteSelection } = useDeleteSelection({
workspaceId, workspaceId,
workflowIds: workflowIdsToDelete, workflowIds: capturedSelectionRef.current?.workflowIds || [],
isActive: (workflowIds) => workflowIds.includes(params.workflowId as string), folderIds: capturedSelectionRef.current?.folderIds || [],
isActiveWorkflow: (id) => id === params.workflowId,
onSuccess: () => setIsDeleteModalOpen(false), onSuccess: () => setIsDeleteModalOpen(false),
}) })
const { handleDuplicateWorkflow: duplicateWorkflow } = useDuplicateWorkflow({ workspaceId }) const isDeleting = isDeletingWorkflows || isDeletingSelection
const { handleExportWorkflow: exportWorkflow } = useExportWorkflow() const handleConfirmDelete = useCallback(async () => {
const handleDuplicateWorkflow = useCallback(() => { if (!capturedSelectionRef.current) return
const workflowIds = capturedSelectionRef.current?.workflowIds || []
if (workflowIds.length === 0) return
duplicateWorkflow(workflowIds)
}, [duplicateWorkflow])
const handleExportWorkflow = useCallback(() => { const { isMixed } = capturedSelectionRef.current
const workflowIds = capturedSelectionRef.current?.workflowIds || []
if (workflowIds.length === 0) return if (isMixed) {
exportWorkflow(workflowIds) await handleDeleteSelection()
}, [exportWorkflow]) } else {
await handleDeleteWorkflows()
}
}, [handleDeleteSelection, handleDeleteWorkflows])
const { handleDuplicateWorkflow: duplicateWorkflows } = useDuplicateWorkflow({ workspaceId })
const { isDuplicating: isDuplicatingSelection, handleDuplicateSelection } = useDuplicateSelection(
{ workspaceId }
)
const { handleExportWorkflow: handleExportWorkflows } = useExportWorkflow()
const { handleExportSelection } = useExportSelection()
const handleDuplicate = useCallback(() => {
if (!capturedSelectionRef.current) return
const { isMixed, workflowIds, folderIds } = capturedSelectionRef.current
if (isMixed) {
handleDuplicateSelection(workflowIds, folderIds)
} else {
if (workflowIds.length === 0) return
duplicateWorkflows(workflowIds)
}
}, [duplicateWorkflows, handleDuplicateSelection])
const handleExport = useCallback(() => {
if (!capturedSelectionRef.current) return
const { isMixed, workflowIds, folderIds } = capturedSelectionRef.current
if (isMixed) {
handleExportSelection(workflowIds, folderIds)
} else {
if (workflowIds.length === 0) return
handleExportWorkflows(workflowIds)
}
}, [handleExportWorkflows, handleExportSelection])
const handleOpenInNewTab = useCallback(() => { const handleOpenInNewTab = useCallback(() => {
window.open(`/workspace/${workspaceId}/w/${workflow.id}`, '_blank') window.open(`/workspace/${workspaceId}/w/${workflow.id}`, '_blank')
@@ -124,41 +180,51 @@ export function WorkflowItem({
preventDismiss, preventDismiss,
} = useContextMenu() } = useContextMenu()
/** const isMixedSelection = useMemo(() => {
* Captures selection state for context menu operations return capturedSelectionRef.current?.isMixed ?? false
*/ }, [isContextMenuOpen])
const captureSelectionState = useCallback(() => { const captureSelectionState = useCallback(() => {
const { selectedWorkflows: currentSelection, selectOnly } = useFolderStore.getState() const store = useFolderStore.getState()
const isCurrentlySelected = currentSelection.has(workflow.id) const isCurrentlySelected = store.selectedWorkflows.has(workflow.id)
if (!isCurrentlySelected) { if (!isCurrentlySelected) {
selectOnly(workflow.id) store.selectWorkflow(workflow.id)
} }
const finalSelection = useFolderStore.getState().selectedWorkflows const finalWorkflowSelection = useFolderStore.getState().selectedWorkflows
const finalIsSelected = finalSelection.has(workflow.id) const finalFolderSelection = useFolderStore.getState().selectedFolders
const workflowIds = const workflowIds = Array.from(finalWorkflowSelection)
finalIsSelected && finalSelection.size > 1 ? Array.from(finalSelection) : [workflow.id] const folderIds = Array.from(finalFolderSelection)
const isMixed = workflowIds.length > 0 && folderIds.length > 0
const { workflows } = useWorkflowRegistry.getState() const { workflows } = useWorkflowRegistry.getState()
const workflowNames = workflowIds const { folders } = useFolderStore.getState()
.map((id) => workflows[id]?.name)
.filter((name): name is string => !!name) const names: string[] = []
for (const id of workflowIds) {
const w = workflows[id]
if (w) names.push(w.name)
}
for (const id of folderIds) {
const f = folders[id]
if (f) names.push(f.name)
}
capturedSelectionRef.current = { capturedSelectionRef.current = {
workflowIds, workflowIds,
workflowNames: workflowNames.length > 1 ? workflowNames : workflowNames[0], folderIds,
isMixed,
names,
} }
setCanDeleteCaptured(canDeleteWorkflows(workflowIds)) const canDeleteAllWorkflows = canDeleteWorkflows(workflowIds)
}, [workflow.id, canDeleteWorkflows]) const canDeleteAllFolders =
folderIds.length === 0 || folderIds.every((id) => canDeleteFolder(id))
setCanDeleteSelection(canDeleteAllWorkflows && canDeleteAllFolders)
}, [workflow.id, canDeleteWorkflows, canDeleteFolder])
/**
* Handle right-click - ensure proper selection behavior and capture selection state
* If right-clicking on an unselected workflow, select only that workflow
* If right-clicking on a selected workflow with multiple selections, keep all selections
*/
const handleContextMenu = useCallback( const handleContextMenu = useCallback(
(e: React.MouseEvent) => { (e: React.MouseEvent) => {
captureSelectionState() captureSelectionState()
@@ -167,18 +233,12 @@ export function WorkflowItem({
[captureSelectionState, handleContextMenuBase] [captureSelectionState, handleContextMenuBase]
) )
/**
* Handle more button pointerdown - prevents click-outside dismissal when toggling
*/
const handleMorePointerDown = useCallback(() => { const handleMorePointerDown = useCallback(() => {
if (isContextMenuOpen) { if (isContextMenuOpen) {
preventDismiss() preventDismiss()
} }
}, [isContextMenuOpen, preventDismiss]) }, [isContextMenuOpen, preventDismiss])
/**
* Handle more button click - toggles context menu at button position
*/
const handleMoreClick = useCallback( const handleMoreClick = useCallback(
(e: React.MouseEvent<HTMLButtonElement>) => { (e: React.MouseEvent<HTMLButtonElement>) => {
e.preventDefault() e.preventDefault()
@@ -228,14 +288,20 @@ export function WorkflowItem({
return return
} }
const currentSelection = useFolderStore.getState().selectedWorkflows const { selectedWorkflows, selectedFolders } = useFolderStore.getState()
const isCurrentlySelected = currentSelection.has(workflow.id) const isCurrentlySelected = selectedWorkflows.has(workflow.id)
const workflowIds =
isCurrentlySelected && currentSelection.size > 1
? Array.from(currentSelection)
: [workflow.id]
e.dataTransfer.setData('workflow-ids', JSON.stringify(workflowIds)) const selection = isCurrentlySelected
? {
workflowIds: Array.from(selectedWorkflows),
folderIds: Array.from(selectedFolders),
}
: {
workflowIds: [workflow.id],
folderIds: [],
}
e.dataTransfer.setData('sidebar-selection', JSON.stringify(selection))
e.dataTransfer.effectAllowed = 'move' e.dataTransfer.effectAllowed = 'move'
onDragStartProp?.() onDragStartProp?.()
}, },
@@ -256,9 +322,6 @@ export function WorkflowItem({
onDragEndProp?.() onDragEndProp?.()
}, [handleDragEndBase, onDragEndProp]) }, [handleDragEndBase, onDragEndProp])
/**
* Handle double-click on workflow name to enter rename mode
*/
const handleDoubleClick = useCallback( const handleDoubleClick = useCallback(
(e: React.MouseEvent) => { (e: React.MouseEvent) => {
e.preventDefault() e.preventDefault()
@@ -268,11 +331,6 @@ export function WorkflowItem({
[handleStartEdit] [handleStartEdit]
) )
/**
* Handle click - manages workflow selection with shift-key and cmd/ctrl-key support
*
* @param e - React mouse event
*/
const handleClick = useCallback( const handleClick = useCallback(
(e: React.MouseEvent<HTMLAnchorElement>) => { (e: React.MouseEvent<HTMLAnchorElement>) => {
e.stopPropagation() e.stopPropagation()
@@ -300,13 +358,15 @@ export function WorkflowItem({
data-item-id={workflow.id} data-item-id={workflow.id}
className={clsx( className={clsx(
'group flex h-[26px] items-center gap-[8px] rounded-[8px] px-[6px] text-[14px]', 'group flex h-[26px] items-center gap-[8px] rounded-[8px] px-[6px] text-[14px]',
active active && 'bg-[var(--surface-6)] dark:bg-[var(--surface-5)]',
? 'bg-[var(--surface-6)] dark:bg-[var(--surface-5)]' !active &&
: 'hover:bg-[var(--surface-6)] dark:hover:bg-[var(--surface-5)]', !isAnyDragActive &&
isSelected && selectedWorkflows.size > 1 && !active 'hover:bg-[var(--surface-6)] dark:hover:bg-[var(--surface-5)]',
? 'bg-[var(--surface-6)] dark:bg-[var(--surface-5)]' isSelected &&
: '', selectedWorkflows.size > 1 &&
isDragging ? 'opacity-50' : '' !active &&
'bg-[var(--surface-6)] dark:bg-[var(--surface-5)]',
(isDragging || (isAnyDragActive && isSelected)) && 'opacity-50'
)} )}
draggable={!isEditing && !dragDisabled} draggable={!isEditing && !dragDisabled}
onDragStart={handleDragStart} onDragStart={handleDragStart}
@@ -329,9 +389,8 @@ export function WorkflowItem({
onBlur={handleInputBlur} onBlur={handleInputBlur}
className={clsx( className={clsx(
'w-full min-w-0 border-0 bg-transparent p-0 font-medium text-[14px] outline-none focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0', 'w-full min-w-0 border-0 bg-transparent p-0 font-medium text-[14px] outline-none focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0',
active active ? 'text-[var(--text-primary)]' : 'text-[var(--text-tertiary)]',
? 'text-[var(--text-primary)]' !active && !isAnyDragActive && 'group-hover:text-[var(--text-primary)]'
: 'text-[var(--text-tertiary)] group-hover:text-[var(--text-primary)]'
)} )}
maxLength={100} maxLength={100}
disabled={isRenaming} disabled={isRenaming}
@@ -348,9 +407,8 @@ export function WorkflowItem({
<div <div
className={clsx( className={clsx(
'min-w-0 truncate font-medium', 'min-w-0 truncate font-medium',
active active ? 'text-[var(--text-primary)]' : 'text-[var(--text-tertiary)]',
? 'text-[var(--text-primary)]' !active && !isAnyDragActive && 'group-hover:text-[var(--text-primary)]'
: 'text-[var(--text-tertiary)] group-hover:text-[var(--text-primary)]'
)} )}
onDoubleClick={handleDoubleClick} onDoubleClick={handleDoubleClick}
> >
@@ -364,9 +422,13 @@ export function WorkflowItem({
<> <>
<button <button
type='button' type='button'
aria-label='Workflow options'
onPointerDown={handleMorePointerDown} onPointerDown={handleMorePointerDown}
onClick={handleMoreClick} onClick={handleMoreClick}
className='flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center rounded-[4px] opacity-0 transition-opacity hover:bg-[var(--surface-7)] group-hover:opacity-100' className={clsx(
'flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center rounded-[4px] opacity-0 transition-opacity hover:bg-[var(--surface-7)]',
!isAnyDragActive && 'group-hover:opacity-100'
)}
> >
<MoreHorizontal className='h-[14px] w-[14px] text-[var(--text-tertiary)]' /> <MoreHorizontal className='h-[14px] w-[14px] text-[var(--text-tertiary)]' />
</button> </button>
@@ -374,7 +436,6 @@ export function WorkflowItem({
)} )}
</Link> </Link>
{/* Context Menu */}
<ContextMenu <ContextMenu
isOpen={isContextMenuOpen} isOpen={isContextMenuOpen}
position={position} position={position}
@@ -382,30 +443,29 @@ export function WorkflowItem({
onClose={closeMenu} onClose={closeMenu}
onOpenInNewTab={handleOpenInNewTab} onOpenInNewTab={handleOpenInNewTab}
onRename={handleStartEdit} onRename={handleStartEdit}
onDuplicate={handleDuplicateWorkflow} onDuplicate={handleDuplicate}
onExport={handleExportWorkflow} onExport={handleExport}
onDelete={handleOpenDeleteModal} onDelete={handleOpenDeleteModal}
onColorChange={handleColorChange} onColorChange={handleColorChange}
currentColor={workflow.color} currentColor={workflow.color}
showOpenInNewTab={selectedWorkflows.size <= 1} showOpenInNewTab={!isMixedSelection && selectedWorkflows.size <= 1}
showRename={selectedWorkflows.size <= 1} showRename={!isMixedSelection && selectedWorkflows.size <= 1}
showDuplicate={true} showDuplicate={true}
showExport={true} showExport={true}
showColorChange={selectedWorkflows.size <= 1} showColorChange={!isMixedSelection && selectedWorkflows.size <= 1}
disableRename={!userPermissions.canEdit} disableRename={!userPermissions.canEdit}
disableDuplicate={!userPermissions.canEdit} disableDuplicate={!userPermissions.canEdit || isDuplicatingSelection}
disableExport={!userPermissions.canEdit} disableExport={!userPermissions.canEdit}
disableColorChange={!userPermissions.canEdit} disableColorChange={!userPermissions.canEdit}
disableDelete={!userPermissions.canEdit || !canDeleteCaptured} disableDelete={!userPermissions.canEdit || !canDeleteSelection}
/> />
{/* Delete Confirmation Modal */}
<DeleteModal <DeleteModal
isOpen={isDeleteModalOpen} isOpen={isDeleteModalOpen}
onClose={() => setIsDeleteModalOpen(false)} onClose={() => setIsDeleteModalOpen(false)}
onConfirm={handleDeleteWorkflow} onConfirm={handleConfirmDelete}
isDeleting={isDeleting} isDeleting={isDeleting}
itemType='workflow' itemType={deleteItemType}
itemName={deleteModalNames} itemName={deleteModalNames}
/> />
</> </>

View File

@@ -7,8 +7,11 @@ import { EmptyAreaContextMenu } from '@/app/workspace/[workspaceId]/w/components
import { FolderItem } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item' import { FolderItem } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item'
import { WorkflowItem } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/workflow-item/workflow-item' import { WorkflowItem } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/workflow-item/workflow-item'
import { import {
SidebarDragContext,
useContextMenu, useContextMenu,
useDragDrop, useDragDrop,
useFolderSelection,
useSidebarDragContextValue,
useWorkflowSelection, useWorkflowSelection,
} from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks' } from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks'
import { useFolders } from '@/hooks/queries/folders' import { useFolders } from '@/hooks/queries/folders'
@@ -46,17 +49,22 @@ interface WorkflowListProps {
const DropIndicatorLine = memo(function DropIndicatorLine({ const DropIndicatorLine = memo(function DropIndicatorLine({
show, show,
level = 0, level = 0,
position = 'before',
}: { }: {
show: boolean show: boolean
level?: number level?: number
position?: 'before' | 'after'
}) { }) {
if (!show) return null if (!show) return null
const positionStyle = position === 'before' ? { top: '-2px' } : { bottom: '-2px' }
return ( return (
<div <div
className='pointer-events-none absolute right-0 left-0 z-20 flex items-center' className='pointer-events-none absolute right-0 left-0 z-20'
style={{ paddingLeft: `${level * TREE_SPACING.INDENT_PER_LEVEL}px` }} style={{ ...positionStyle, paddingLeft: `${level * TREE_SPACING.INDENT_PER_LEVEL}px` }}
> >
<div className='h-[2px] flex-1 rounded-full bg-[#33b4ff]/70' /> <div className='h-[2px] rounded-full bg-[#33b4ff]/70' />
</div> </div>
) )
}) })
@@ -98,10 +106,13 @@ export function WorkflowList({
createEmptyFolderDropZone, createEmptyFolderDropZone,
createFolderContentDropZone, createFolderContentDropZone,
createRootDropZone, createRootDropZone,
createEdgeDropZone,
handleDragStart, handleDragStart,
handleDragEnd, handleDragEnd,
} = useDragDrop({ disabled: !canReorder }) } = useDragDrop({ disabled: !canReorder })
const dragContextValue = useSidebarDragContextValue(isDragging)
useEffect(() => { useEffect(() => {
if (scrollContainerRef.current) { if (scrollContainerRef.current) {
setScrollContainer(scrollContainerRef.current) setScrollContainer(scrollContainerRef.current)
@@ -157,11 +168,32 @@ export function WorkflowList({
return ids return ids
}, [folderTree, workflowsByFolder]) }, [folderTree, workflowsByFolder])
const orderedFolderIds = useMemo(() => {
const ids: string[] = []
const collectFolderIds = (folder: FolderTreeNode) => {
ids.push(folder.id)
for (const childFolder of folder.children) {
collectFolderIds(childFolder)
}
}
for (const folder of folderTree) {
collectFolderIds(folder)
}
return ids
}, [folderTree])
const { handleWorkflowClick } = useWorkflowSelection({ const { handleWorkflowClick } = useWorkflowSelection({
workflowIds: orderedWorkflowIds, workflowIds: orderedWorkflowIds,
activeWorkflowId: workflowId, activeWorkflowId: workflowId,
}) })
const { handleFolderClick } = useFolderSelection({
folderIds: orderedFolderIds,
})
const isWorkflowActive = useCallback( const isWorkflowActive = useCallback(
(wfId: string) => pathname === `/workspace/${workspaceId}/w/${wfId}`, (wfId: string) => pathname === `/workspace/${workspaceId}/w/${wfId}`,
[pathname, workspaceId] [pathname, workspaceId]
@@ -190,7 +222,7 @@ export function WorkflowList({
return ( return (
<div key={workflow.id} className='relative'> <div key={workflow.id} className='relative'>
<DropIndicatorLine show={showBefore} level={level} /> <DropIndicatorLine show={showBefore} level={level} position='before' />
<div <div
style={{ paddingLeft: `${level * TREE_SPACING.INDENT_PER_LEVEL}px` }} style={{ paddingLeft: `${level * TREE_SPACING.INDENT_PER_LEVEL}px` }}
{...createWorkflowDragHandlers(workflow.id, folderId)} {...createWorkflowDragHandlers(workflow.id, folderId)}
@@ -201,11 +233,11 @@ export function WorkflowList({
level={level} level={level}
dragDisabled={dragDisabled} dragDisabled={dragDisabled}
onWorkflowClick={handleWorkflowClick} onWorkflowClick={handleWorkflowClick}
onDragStart={() => handleDragStart('workflow', folderId)} onDragStart={() => handleDragStart(folderId)}
onDragEnd={handleDragEnd} onDragEnd={handleDragEnd}
/> />
</div> </div>
<DropIndicatorLine show={showAfter} level={level} /> <DropIndicatorLine show={showAfter} level={level} position='after' />
</div> </div>
) )
}, },
@@ -265,12 +297,11 @@ export function WorkflowList({
return ( return (
<div key={folder.id} className='relative'> <div key={folder.id} className='relative'>
<DropIndicatorLine show={showBefore} level={level} /> <DropIndicatorLine show={showBefore} level={level} position='before' />
{/* Drop target highlight overlay - covers entire folder section */}
<div <div
className={clsx( className={clsx(
'pointer-events-none absolute inset-0 z-10 rounded-[4px] transition-opacity duration-75', 'pointer-events-none absolute inset-0 z-10 rounded-[4px]',
showInside && isDragging ? 'bg-[#33b4ff1a] opacity-100' : 'opacity-0' showInside && isDragging ? 'bg-[#33b4ff1a]' : 'hidden'
)} )}
/> />
<div <div
@@ -281,11 +312,12 @@ export function WorkflowList({
folder={folder} folder={folder}
level={level} level={level}
dragDisabled={dragDisabled} dragDisabled={dragDisabled}
onDragStart={() => handleDragStart('folder', parentFolderId)} onFolderClick={handleFolderClick}
onDragStart={() => handleDragStart(parentFolderId)}
onDragEnd={handleDragEnd} onDragEnd={handleDragEnd}
/> />
</div> </div>
<DropIndicatorLine show={showAfter} level={level} /> <DropIndicatorLine show={showAfter} level={level} position='after' />
{isExpanded && (hasChildren || isDragging) && ( {isExpanded && (hasChildren || isDragging) && (
<div className='relative' {...createFolderContentDropZone(folder.id)}> <div className='relative' {...createFolderContentDropZone(folder.id)}>
@@ -319,6 +351,7 @@ export function WorkflowList({
createFolderContentDropZone, createFolderContentDropZone,
handleDragStart, handleDragStart,
handleDragEnd, handleDragEnd,
handleFolderClick,
renderWorkflowItem, renderWorkflowItem,
] ]
) )
@@ -356,12 +389,19 @@ export function WorkflowList({
}, [folderTree, rootWorkflows]) }, [folderTree, rootWorkflows])
const hasRootItems = rootItems.length > 0 const hasRootItems = rootItems.length > 0
const firstItemId = rootItems[0]?.id ?? null
const lastItemId = rootItems[rootItems.length - 1]?.id ?? null
const showRootInside = dropIndicator?.targetId === 'root' && dropIndicator?.position === 'inside' const showRootInside = dropIndicator?.targetId === 'root' && dropIndicator?.position === 'inside'
const showTopIndicator =
firstItemId && dropIndicator?.targetId === firstItemId && dropIndicator?.position === 'before'
const showBottomIndicator =
lastItemId && dropIndicator?.targetId === lastItemId && dropIndicator?.position === 'after'
const handleContainerClick = useCallback( const handleContainerClick = useCallback(
(e: React.MouseEvent<HTMLDivElement>) => { (e: React.MouseEvent<HTMLDivElement>) => {
if (e.target !== e.currentTarget) return if (e.target !== e.currentTarget) return
const { selectOnly, clearSelection } = useFolderStore.getState() const { selectOnly, clearSelection, clearFolderSelection } = useFolderStore.getState()
clearFolderSelection()
workflowId ? selectOnly(workflowId) : clearSelection() workflowId ? selectOnly(workflowId) : clearSelection()
}, },
[workflowId] [workflowId]
@@ -382,7 +422,7 @@ export function WorkflowList({
) )
return ( return (
<> <SidebarDragContext.Provider value={dragContextValue}>
<div <div
className='flex min-h-full flex-col pb-[8px]' className='flex min-h-full flex-col pb-[8px]'
onClick={handleContainerClick} onClick={handleContainerClick}
@@ -394,13 +434,23 @@ export function WorkflowList({
{...rootDropZoneHandlers} {...rootDropZoneHandlers}
data-empty-area data-empty-area
> >
{/* Root drop target highlight overlay */}
<div <div
className={clsx( className={clsx(
'pointer-events-none absolute inset-0 z-10 rounded-[4px] transition-opacity duration-75', 'pointer-events-none absolute inset-0 z-10 rounded-[4px]',
showRootInside && isDragging ? 'bg-[#33b4ff1a] opacity-100' : 'opacity-0' showRootInside && isDragging ? 'bg-[#33b4ff1a]' : 'hidden'
)} )}
/> />
{isDragging && hasRootItems && (
<div
className='absolute top-0 right-0 left-0 z-30 h-[12px]'
{...createEdgeDropZone(firstItemId, 'before')}
/>
)}
{showTopIndicator && (
<div className='pointer-events-none absolute top-0 right-0 left-0 z-20'>
<div className='h-[2px] rounded-full bg-[#33b4ff]/70' />
</div>
)}
<div className='space-y-[2px]' data-empty-area> <div className='space-y-[2px]' data-empty-area>
{rootItems.map((item) => {rootItems.map((item) =>
item.type === 'folder' item.type === 'folder'
@@ -408,6 +458,17 @@ export function WorkflowList({
: renderWorkflowItem(item.data as WorkflowMetadata, 0, null) : renderWorkflowItem(item.data as WorkflowMetadata, 0, null)
)} )}
</div> </div>
{isDragging && hasRootItems && (
<div
className='absolute right-0 bottom-0 left-0 z-30 h-[12px]'
{...createEdgeDropZone(lastItemId, 'after')}
/>
)}
{showBottomIndicator && (
<div className='pointer-events-none absolute right-0 bottom-0 left-0 z-20'>
<div className='h-[2px] rounded-full bg-[#33b4ff]/70' />
</div>
)}
</div> </div>
<input <input
@@ -432,6 +493,6 @@ export function WorkflowList({
disableCreateFolder={disableCreate} disableCreateFolder={disableCreate}
/> />
)} )}
</> </SidebarDragContext.Provider>
) )
} }

View File

@@ -2,7 +2,7 @@
import { useEffect, useRef, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { createLogger } from '@sim/logger' import { createLogger } from '@sim/logger'
import { ArrowDown, Plus } from 'lucide-react' import { ArrowDown, MoreHorizontal, Plus } from 'lucide-react'
import { import {
Badge, Badge,
Button, Button,
@@ -202,12 +202,9 @@ export function WorkspaceHeader({
const activeWorkspaceFull = workspaces.find((w) => w.id === workspaceId) || null const activeWorkspaceFull = workspaces.find((w) => w.id === workspaceId) || null
/** /**
* Handle right-click context menu * Opens the context menu for a workspace at the specified position
*/ */
const handleContextMenu = (e: React.MouseEvent, workspace: Workspace) => { const openContextMenuAt = (workspace: Workspace, x: number, y: number) => {
e.preventDefault()
e.stopPropagation()
isContextMenuOpeningRef.current = true isContextMenuOpeningRef.current = true
contextMenuClosedRef.current = false contextMenuClosedRef.current = false
@@ -216,10 +213,19 @@ export function WorkspaceHeader({
name: workspace.name, name: workspace.name,
permissions: workspace.permissions, permissions: workspace.permissions,
} }
setContextMenuPosition({ x: e.clientX, y: e.clientY }) setContextMenuPosition({ x, y })
setIsContextMenuOpen(true) setIsContextMenuOpen(true)
} }
/**
* Handle right-click context menu
*/
const handleContextMenu = (e: React.MouseEvent, workspace: Workspace) => {
e.preventDefault()
e.stopPropagation()
openContextMenuAt(workspace, e.clientX, e.clientY)
}
/** /**
* Close context menu and optionally the workspace dropdown * Close context menu and optionally the workspace dropdown
* When renaming, we keep the workspace menu open so the input is visible * When renaming, we keep the workspace menu open so the input is visible
@@ -501,11 +507,25 @@ export function WorkspaceHeader({
</div> </div>
) : ( ) : (
<PopoverItem <PopoverItem
className='group'
active={workspace.id === workspaceId} active={workspace.id === workspaceId}
onClick={() => onWorkspaceSwitch(workspace)} onClick={() => onWorkspaceSwitch(workspace)}
onContextMenu={(e) => handleContextMenu(e, workspace)} onContextMenu={(e) => handleContextMenu(e, workspace)}
> >
<span className='min-w-0 flex-1 truncate'>{workspace.name}</span> <span className='min-w-0 flex-1 truncate'>{workspace.name}</span>
<button
type='button'
aria-label='Workspace options'
onClick={(e) => {
e.preventDefault()
e.stopPropagation()
const rect = e.currentTarget.getBoundingClientRect()
openContextMenuAt(workspace, rect.right, rect.top)
}}
className='flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center rounded-[4px] opacity-0 transition-opacity hover:bg-[var(--surface-7)] group-hover:opacity-100'
>
<MoreHorizontal className='h-[14px] w-[14px] text-[var(--text-tertiary)]' />
</button>
</PopoverItem> </PopoverItem>
)} )}
</div> </div>

View File

@@ -3,8 +3,14 @@ export { useContextMenu } from './use-context-menu'
export { type DropIndicator, useDragDrop } from './use-drag-drop' export { type DropIndicator, useDragDrop } from './use-drag-drop'
export { useFolderExpand } from './use-folder-expand' export { useFolderExpand } from './use-folder-expand'
export { useFolderOperations } from './use-folder-operations' export { useFolderOperations } from './use-folder-operations'
export { useFolderSelection } from './use-folder-selection'
export { useItemDrag } from './use-item-drag' export { useItemDrag } from './use-item-drag'
export { useItemRename } from './use-item-rename' export { useItemRename } from './use-item-rename'
export {
SidebarDragContext,
useSidebarDragContext,
useSidebarDragContextValue,
} from './use-sidebar-drag-context'
export { useSidebarResize } from './use-sidebar-resize' export { useSidebarResize } from './use-sidebar-resize'
export { useWorkflowOperations } from './use-workflow-operations' export { useWorkflowOperations } from './use-workflow-operations'
export { useWorkflowSelection } from './use-workflow-selection' export { useWorkflowSelection } from './use-workflow-selection'

View File

@@ -11,6 +11,7 @@ const logger = createLogger('WorkflowList:DragDrop')
const SCROLL_THRESHOLD = 60 const SCROLL_THRESHOLD = 60
const SCROLL_SPEED = 8 const SCROLL_SPEED = 8
const HOVER_EXPAND_DELAY = 400 const HOVER_EXPAND_DELAY = 400
const DRAG_OVER_THROTTLE_MS = 16
export interface DropIndicator { export interface DropIndicator {
targetId: string targetId: string
@@ -22,17 +23,25 @@ interface UseDragDropOptions {
disabled?: boolean disabled?: boolean
} }
type SiblingItem = {
type: 'folder' | 'workflow'
id: string
sortOrder: number
createdAt: Date
}
export function useDragDrop(options: UseDragDropOptions = {}) { export function useDragDrop(options: UseDragDropOptions = {}) {
const { disabled = false } = options const { disabled = false } = options
const [dropIndicator, setDropIndicator] = useState<DropIndicator | null>(null) const [dropIndicator, setDropIndicator] = useState<DropIndicator | null>(null)
const [isDragging, setIsDragging] = useState(false) const [isDragging, setIsDragging] = useState(false)
const [hoverFolderId, setHoverFolderId] = useState<string | null>(null) const [hoverFolderId, setHoverFolderId] = useState<string | null>(null)
const scrollContainerRef = useRef<HTMLDivElement | null>(null) const scrollContainerRef = useRef<HTMLDivElement | null>(null)
const scrollIntervalRef = useRef<number | null>(null) const scrollAnimationRef = useRef<number | null>(null)
const hoverExpandTimerRef = useRef<number | null>(null) const hoverExpandTimerRef = useRef<number | null>(null)
const lastDragYRef = useRef<number>(0) const lastDragYRef = useRef<number>(0)
const draggedTypeRef = useRef<'workflow' | 'folder' | null>(null) const lastDragOverTimeRef = useRef<number>(0)
const draggedSourceFolderRef = useRef<string | null>(null) const draggedSourceFolderRef = useRef<string | null>(null)
const siblingsCacheRef = useRef<Map<string, SiblingItem[]>>(new Map())
const params = useParams() const params = useParams()
const workspaceId = params.workspaceId as string | undefined const workspaceId = params.workspaceId as string | undefined
@@ -41,13 +50,19 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
const { setExpanded, expandedFolders } = useFolderStore() const { setExpanded, expandedFolders } = useFolderStore()
const handleAutoScroll = useCallback(() => { const handleAutoScroll = useCallback(() => {
if (!scrollContainerRef.current || !isDragging) return if (!scrollContainerRef.current) {
scrollAnimationRef.current = null
return
}
const container = scrollContainerRef.current const container = scrollContainerRef.current
const rect = container.getBoundingClientRect() const rect = container.getBoundingClientRect()
const mouseY = lastDragYRef.current const mouseY = lastDragYRef.current
if (mouseY < rect.top || mouseY > rect.bottom) return if (mouseY < rect.top || mouseY > rect.bottom) {
scrollAnimationRef.current = requestAnimationFrame(handleAutoScroll)
return
}
const distanceFromTop = mouseY - rect.top const distanceFromTop = mouseY - rect.top
const distanceFromBottom = rect.bottom - mouseY const distanceFromBottom = rect.bottom - mouseY
@@ -68,21 +83,22 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
if (scrollDelta !== 0) { if (scrollDelta !== 0) {
container.scrollTop += scrollDelta container.scrollTop += scrollDelta
} }
}, [isDragging])
scrollAnimationRef.current = requestAnimationFrame(handleAutoScroll)
}, [])
useEffect(() => { useEffect(() => {
if (isDragging) { if (isDragging) {
scrollIntervalRef.current = window.setInterval(handleAutoScroll, 10) scrollAnimationRef.current = requestAnimationFrame(handleAutoScroll)
} else { } else if (scrollAnimationRef.current) {
if (scrollIntervalRef.current) { cancelAnimationFrame(scrollAnimationRef.current)
clearInterval(scrollIntervalRef.current) scrollAnimationRef.current = null
scrollIntervalRef.current = null
}
} }
return () => { return () => {
if (scrollIntervalRef.current) { if (scrollAnimationRef.current) {
clearInterval(scrollIntervalRef.current) cancelAnimationFrame(scrollAnimationRef.current)
scrollAnimationRef.current = null
} }
} }
}, [isDragging, handleAutoScroll]) }, [isDragging, handleAutoScroll])
@@ -112,7 +128,6 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
if (!isDragging) { if (!isDragging) {
setHoverFolderId(null) setHoverFolderId(null)
setDropIndicator(null) setDropIndicator(null)
draggedTypeRef.current = null
} }
}, [isDragging]) }, [isDragging])
@@ -130,7 +145,6 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
const rect = element.getBoundingClientRect() const rect = element.getBoundingClientRect()
const relativeY = e.clientY - rect.top const relativeY = e.clientY - rect.top
const height = rect.height const height = rect.height
// Top 25% = before, middle 50% = inside, bottom 25% = after
if (relativeY < height * 0.25) return 'before' if (relativeY < height * 0.25) return 'before'
if (relativeY > height * 0.75) return 'after' if (relativeY > height * 0.75) return 'after'
return 'inside' return 'inside'
@@ -138,13 +152,6 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
[] []
) )
type SiblingItem = {
type: 'folder' | 'workflow'
id: string
sortOrder: number
createdAt: Date
}
const compareSiblingItems = (a: SiblingItem, b: SiblingItem): number => { const compareSiblingItems = (a: SiblingItem, b: SiblingItem): number => {
if (a.sortOrder !== b.sortOrder) return a.sortOrder - b.sortOrder if (a.sortOrder !== b.sortOrder) return a.sortOrder - b.sortOrder
const timeA = a.createdAt.getTime() const timeA = a.createdAt.getTime()
@@ -207,17 +214,34 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
return !relatedTarget || !currentTarget.contains(relatedTarget) return !relatedTarget || !currentTarget.contains(relatedTarget)
}, []) }, [])
const initDragOver = useCallback((e: React.DragEvent<HTMLElement>, stopPropagation = true) => { const initDragOver = useCallback(
e.preventDefault() (e: React.DragEvent<HTMLElement>, stopPropagation = true): boolean => {
if (stopPropagation) e.stopPropagation() e.preventDefault()
lastDragYRef.current = e.clientY if (stopPropagation) e.stopPropagation()
setIsDragging(true) lastDragYRef.current = e.clientY
}, [])
if (!isDragging) {
setIsDragging(true)
}
const now = performance.now()
if (now - lastDragOverTimeRef.current < DRAG_OVER_THROTTLE_MS) {
return false
}
lastDragOverTimeRef.current = now
return true
},
[isDragging]
)
const getSiblingItems = useCallback((folderId: string | null): SiblingItem[] => { const getSiblingItems = useCallback((folderId: string | null): SiblingItem[] => {
const cacheKey = folderId ?? 'root'
const cached = siblingsCacheRef.current.get(cacheKey)
if (cached) return cached
const currentFolders = useFolderStore.getState().folders const currentFolders = useFolderStore.getState().folders
const currentWorkflows = useWorkflowRegistry.getState().workflows const currentWorkflows = useWorkflowRegistry.getState().workflows
return [ const siblings = [
...Object.values(currentFolders) ...Object.values(currentFolders)
.filter((f) => f.parentId === folderId) .filter((f) => f.parentId === folderId)
.map((f) => ({ .map((f) => ({
@@ -235,6 +259,9 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
createdAt: w.createdAt, createdAt: w.createdAt,
})), })),
].sort(compareSiblingItems) ].sort(compareSiblingItems)
siblingsCacheRef.current.set(cacheKey, siblings)
return siblings
}, []) }, [])
const setNormalizedDropIndicator = useCallback( const setNormalizedDropIndicator = useCallback(
@@ -269,155 +296,114 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
[getSiblingItems] [getSiblingItems]
) )
const isNoOpMove = useCallback( const canMoveFolderTo = useCallback(
( (folderId: string, destinationFolderId: string | null): boolean => {
indicator: DropIndicator, if (folderId === destinationFolderId) return false
draggedIds: string[], if (!destinationFolderId) return true
draggedType: 'folder' | 'workflow', const targetPath = useFolderStore.getState().getFolderPath(destinationFolderId)
destinationFolderId: string | null, return !targetPath.some((f) => f.id === folderId)
currentFolderId: string | null | undefined
): boolean => {
if (indicator.position !== 'inside' && draggedIds.includes(indicator.targetId)) {
return true
}
if (currentFolderId !== destinationFolderId) {
return false
}
const siblingItems = getSiblingItems(destinationFolderId)
const remaining = siblingItems.filter(
(item) => !(item.type === draggedType && draggedIds.includes(item.id))
)
const insertAt = calculateInsertIndex(remaining, indicator)
const originalIdx = siblingItems.findIndex(
(item) => item.type === draggedType && item.id === draggedIds[0]
)
return insertAt === originalIdx
}, },
[getSiblingItems, calculateInsertIndex] []
) )
const handleWorkflowDrop = useCallback( const collectMovingItems = useCallback(
async (workflowIds: string[], indicator: DropIndicator) => { (
if (!workflowIds.length || !workspaceId) return workflowIds: string[],
folderIds: string[],
destinationFolderId: string | null
): { fromDestination: SiblingItem[]; fromOther: SiblingItem[] } => {
const { folders } = useFolderStore.getState()
const { workflows } = useWorkflowRegistry.getState()
const fromDestination: SiblingItem[] = []
const fromOther: SiblingItem[] = []
for (const id of workflowIds) {
const workflow = workflows[id]
if (!workflow) continue
const item: SiblingItem = {
type: 'workflow',
id,
sortOrder: workflow.sortOrder,
createdAt: workflow.createdAt,
}
if (workflow.folderId === destinationFolderId) {
fromDestination.push(item)
} else {
fromOther.push(item)
}
}
for (const id of folderIds) {
const folder = folders[id]
if (!folder) continue
const item: SiblingItem = {
type: 'folder',
id,
sortOrder: folder.sortOrder,
createdAt: folder.createdAt,
}
if (folder.parentId === destinationFolderId) {
fromDestination.push(item)
} else {
fromOther.push(item)
}
}
fromDestination.sort(compareSiblingItems)
fromOther.sort(compareSiblingItems)
return { fromDestination, fromOther }
},
[]
)
const handleSelectionDrop = useCallback(
async (selection: { workflowIds: string[]; folderIds: string[] }, indicator: DropIndicator) => {
if (!workspaceId) return
const { workflowIds, folderIds } = selection
if (workflowIds.length === 0 && folderIds.length === 0) return
try { try {
const destinationFolderId = getDestinationFolderId(indicator) const destinationFolderId = getDestinationFolderId(indicator)
const currentWorkflows = useWorkflowRegistry.getState().workflows const validFolderIds = folderIds.filter((id) => canMoveFolderTo(id, destinationFolderId))
const firstWorkflow = currentWorkflows[workflowIds[0]] if (workflowIds.length === 0 && validFolderIds.length === 0) return
if (
isNoOpMove(
indicator,
workflowIds,
'workflow',
destinationFolderId,
firstWorkflow?.folderId
)
) {
return
}
const siblingItems = getSiblingItems(destinationFolderId) const siblingItems = getSiblingItems(destinationFolderId)
const movingSet = new Set(workflowIds) const movingIds = new Set([...workflowIds, ...validFolderIds])
const remaining = siblingItems.filter( const remaining = siblingItems.filter((item) => !movingIds.has(item.id))
(item) => !(item.type === 'workflow' && movingSet.has(item.id))
const { fromDestination, fromOther } = collectMovingItems(
workflowIds,
validFolderIds,
destinationFolderId
) )
const moving = workflowIds
.map((id) => ({
type: 'workflow' as const,
id,
sortOrder: currentWorkflows[id]?.sortOrder ?? 0,
createdAt: currentWorkflows[id]?.createdAt ?? new Date(),
}))
.sort(compareSiblingItems)
const insertAt = calculateInsertIndex(remaining, indicator) const insertAt = calculateInsertIndex(remaining, indicator)
const newOrder = [
const newOrder: SiblingItem[] = [
...remaining.slice(0, insertAt), ...remaining.slice(0, insertAt),
...moving, ...fromDestination,
...fromOther,
...remaining.slice(insertAt), ...remaining.slice(insertAt),
] ]
await buildAndSubmitUpdates(newOrder, destinationFolderId) await buildAndSubmitUpdates(newOrder, destinationFolderId)
const { clearSelection, clearFolderSelection } = useFolderStore.getState()
clearSelection()
clearFolderSelection()
} catch (error) { } catch (error) {
logger.error('Failed to reorder workflows:', error) logger.error('Failed to drop selection:', error)
}
},
[
getDestinationFolderId,
getSiblingItems,
calculateInsertIndex,
isNoOpMove,
buildAndSubmitUpdates,
]
)
const handleFolderDrop = useCallback(
async (draggedFolderId: string, indicator: DropIndicator) => {
if (!draggedFolderId || !workspaceId) return
try {
const folderStore = useFolderStore.getState()
const currentFolders = folderStore.folders
const targetParentId = getDestinationFolderId(indicator)
if (draggedFolderId === targetParentId) {
logger.info('Cannot move folder into itself')
return
}
if (targetParentId) {
const targetPath = folderStore.getFolderPath(targetParentId)
if (targetPath.some((f) => f.id === draggedFolderId)) {
logger.info('Cannot move folder into its own descendant')
return
}
}
const draggedFolder = currentFolders[draggedFolderId]
if (
isNoOpMove(
indicator,
[draggedFolderId],
'folder',
targetParentId,
draggedFolder?.parentId
)
) {
return
}
const siblingItems = getSiblingItems(targetParentId)
const remaining = siblingItems.filter(
(item) => !(item.type === 'folder' && item.id === draggedFolderId)
)
const insertAt = calculateInsertIndex(remaining, indicator)
const newOrder: SiblingItem[] = [
...remaining.slice(0, insertAt),
{
type: 'folder',
id: draggedFolderId,
sortOrder: 0,
createdAt: draggedFolder?.createdAt ?? new Date(),
},
...remaining.slice(insertAt),
]
await buildAndSubmitUpdates(newOrder, targetParentId)
} catch (error) {
logger.error('Failed to reorder folder:', error)
} }
}, },
[ [
workspaceId, workspaceId,
getDestinationFolderId, getDestinationFolderId,
canMoveFolderTo,
getSiblingItems, getSiblingItems,
collectMovingItems,
calculateInsertIndex, calculateInsertIndex,
isNoOpMove,
buildAndSubmitUpdates, buildAndSubmitUpdates,
] ]
) )
@@ -430,32 +416,30 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
const indicator = dropIndicator const indicator = dropIndicator
setDropIndicator(null) setDropIndicator(null)
setIsDragging(false) setIsDragging(false)
siblingsCacheRef.current.clear()
if (!indicator) return if (!indicator) return
try { try {
const workflowIdsData = e.dataTransfer.getData('workflow-ids') const selectionData = e.dataTransfer.getData('sidebar-selection')
if (workflowIdsData) { if (!selectionData) return
const workflowIds = JSON.parse(workflowIdsData) as string[]
await handleWorkflowDrop(workflowIds, indicator)
return
}
const folderIdData = e.dataTransfer.getData('folder-id') const selection = JSON.parse(selectionData) as {
if (folderIdData) { workflowIds: string[]
await handleFolderDrop(folderIdData, indicator) folderIds: string[]
} }
await handleSelectionDrop(selection, indicator)
} catch (error) { } catch (error) {
logger.error('Failed to handle drop:', error) logger.error('Failed to handle drop:', error)
} }
}, },
[dropIndicator, handleWorkflowDrop, handleFolderDrop] [dropIndicator, handleSelectionDrop]
) )
const createWorkflowDragHandlers = useCallback( const createWorkflowDragHandlers = useCallback(
(workflowId: string, folderId: string | null) => ({ (workflowId: string, folderId: string | null) => ({
onDragOver: (e: React.DragEvent<HTMLElement>) => { onDragOver: (e: React.DragEvent<HTMLElement>) => {
initDragOver(e) if (!initDragOver(e)) return
const isSameFolder = draggedSourceFolderRef.current === folderId const isSameFolder = draggedSourceFolderRef.current === folderId
if (isSameFolder) { if (isSameFolder) {
const position = calculateDropPosition(e, e.currentTarget) const position = calculateDropPosition(e, e.currentTarget)
@@ -468,49 +452,34 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
}) })
} }
}, },
onDragLeave: (e: React.DragEvent<HTMLElement>) => {
if (isLeavingElement(e)) setNormalizedDropIndicator(null)
},
onDrop: handleDrop, onDrop: handleDrop,
}), }),
[initDragOver, calculateDropPosition, setNormalizedDropIndicator, handleDrop] [initDragOver, calculateDropPosition, setNormalizedDropIndicator, isLeavingElement, handleDrop]
) )
const createFolderDragHandlers = useCallback( const createFolderDragHandlers = useCallback(
(folderId: string, parentFolderId: string | null) => ({ (folderId: string, parentFolderId: string | null) => ({
onDragOver: (e: React.DragEvent<HTMLElement>) => { onDragOver: (e: React.DragEvent<HTMLElement>) => {
initDragOver(e) if (!initDragOver(e)) return
if (draggedTypeRef.current === 'folder') { const isSameParent = draggedSourceFolderRef.current === parentFolderId
const isSameParent = draggedSourceFolderRef.current === parentFolderId if (isSameParent) {
if (isSameParent) { const position = calculateFolderDropPosition(e, e.currentTarget)
const position = calculateDropPosition(e, e.currentTarget) setNormalizedDropIndicator({ targetId: folderId, position, folderId: parentFolderId })
setNormalizedDropIndicator({ targetId: folderId, position, folderId: parentFolderId }) if (position === 'inside') {
} else {
setNormalizedDropIndicator({
targetId: folderId,
position: 'inside',
folderId: parentFolderId,
})
setHoverFolderId(folderId) setHoverFolderId(folderId)
} else {
setHoverFolderId(null)
} }
} else { } else {
// Workflow being dragged over a folder setNormalizedDropIndicator({
const isSameParent = draggedSourceFolderRef.current === parentFolderId targetId: folderId,
if (isSameParent) { position: 'inside',
// Same level - use three zones: top=before, middle=inside, bottom=after folderId: parentFolderId,
const position = calculateFolderDropPosition(e, e.currentTarget) })
setNormalizedDropIndicator({ targetId: folderId, position, folderId: parentFolderId }) setHoverFolderId(folderId)
if (position === 'inside') {
setHoverFolderId(folderId)
} else {
setHoverFolderId(null)
}
} else {
// Different container - drop into folder
setNormalizedDropIndicator({
targetId: folderId,
position: 'inside',
folderId: parentFolderId,
})
setHoverFolderId(folderId)
}
} }
}, },
onDragLeave: (e: React.DragEvent<HTMLElement>) => { onDragLeave: (e: React.DragEvent<HTMLElement>) => {
@@ -520,7 +489,6 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
}), }),
[ [
initDragOver, initDragOver,
calculateDropPosition,
calculateFolderDropPosition, calculateFolderDropPosition,
setNormalizedDropIndicator, setNormalizedDropIndicator,
isLeavingElement, isLeavingElement,
@@ -531,34 +499,37 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
const createEmptyFolderDropZone = useCallback( const createEmptyFolderDropZone = useCallback(
(folderId: string) => ({ (folderId: string) => ({
onDragOver: (e: React.DragEvent<HTMLElement>) => { onDragOver: (e: React.DragEvent<HTMLElement>) => {
initDragOver(e) if (!initDragOver(e)) return
setNormalizedDropIndicator({ targetId: folderId, position: 'inside', folderId }) setNormalizedDropIndicator({ targetId: folderId, position: 'inside', folderId })
}, },
onDragLeave: (e: React.DragEvent<HTMLElement>) => {
if (isLeavingElement(e)) setNormalizedDropIndicator(null)
},
onDrop: handleDrop, onDrop: handleDrop,
}), }),
[initDragOver, setNormalizedDropIndicator, handleDrop] [initDragOver, setNormalizedDropIndicator, isLeavingElement, handleDrop]
) )
const createFolderContentDropZone = useCallback( const createFolderContentDropZone = useCallback(
(folderId: string) => ({ (folderId: string) => ({
onDragOver: (e: React.DragEvent<HTMLElement>) => { onDragOver: (e: React.DragEvent<HTMLElement>) => {
e.preventDefault() if (!initDragOver(e)) return
e.stopPropagation()
lastDragYRef.current = e.clientY
setIsDragging(true)
if (e.target === e.currentTarget && draggedSourceFolderRef.current !== folderId) { if (e.target === e.currentTarget && draggedSourceFolderRef.current !== folderId) {
setNormalizedDropIndicator({ targetId: folderId, position: 'inside', folderId: null }) setNormalizedDropIndicator({ targetId: folderId, position: 'inside', folderId: null })
} }
}, },
onDragLeave: (e: React.DragEvent<HTMLElement>) => {
if (isLeavingElement(e)) setNormalizedDropIndicator(null)
},
onDrop: handleDrop, onDrop: handleDrop,
}), }),
[setNormalizedDropIndicator, handleDrop] [initDragOver, setNormalizedDropIndicator, isLeavingElement, handleDrop]
) )
const createRootDropZone = useCallback( const createRootDropZone = useCallback(
() => ({ () => ({
onDragOver: (e: React.DragEvent<HTMLElement>) => { onDragOver: (e: React.DragEvent<HTMLElement>) => {
initDragOver(e, false) if (!initDragOver(e, false)) return
if (e.target === e.currentTarget) { if (e.target === e.currentTarget) {
setNormalizedDropIndicator({ targetId: 'root', position: 'inside', folderId: null }) setNormalizedDropIndicator({ targetId: 'root', position: 'inside', folderId: null })
} }
@@ -571,21 +542,35 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
[initDragOver, setNormalizedDropIndicator, isLeavingElement, handleDrop] [initDragOver, setNormalizedDropIndicator, isLeavingElement, handleDrop]
) )
const handleDragStart = useCallback( const createEdgeDropZone = useCallback(
(type: 'workflow' | 'folder', sourceFolderId: string | null) => { (itemId: string | null, position: 'before' | 'after') => ({
draggedTypeRef.current = type onDragOver: (e: React.DragEvent<HTMLElement>) => {
draggedSourceFolderRef.current = sourceFolderId if (!initDragOver(e)) return
setIsDragging(true) if (itemId) {
}, setDropIndicator({ targetId: itemId, position, folderId: null })
[] } else {
setNormalizedDropIndicator({ targetId: 'root', position: 'inside', folderId: null })
}
},
onDragLeave: (e: React.DragEvent<HTMLElement>) => {
if (isLeavingElement(e)) setDropIndicator(null)
},
onDrop: handleDrop,
}),
[initDragOver, setNormalizedDropIndicator, isLeavingElement, handleDrop]
) )
const handleDragStart = useCallback((sourceFolderId: string | null) => {
draggedSourceFolderRef.current = sourceFolderId
setIsDragging(true)
}, [])
const handleDragEnd = useCallback(() => { const handleDragEnd = useCallback(() => {
setIsDragging(false) setIsDragging(false)
setDropIndicator(null) setDropIndicator(null)
draggedTypeRef.current = null
draggedSourceFolderRef.current = null draggedSourceFolderRef.current = null
setHoverFolderId(null) setHoverFolderId(null)
siblingsCacheRef.current.clear()
}, []) }, [])
const setScrollContainer = useCallback((element: HTMLDivElement | null) => { const setScrollContainer = useCallback((element: HTMLDivElement | null) => {
@@ -595,6 +580,7 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
const noopDragHandlers = { const noopDragHandlers = {
onDragOver: (e: React.DragEvent<HTMLElement>) => e.preventDefault(), onDragOver: (e: React.DragEvent<HTMLElement>) => e.preventDefault(),
onDrop: (e: React.DragEvent<HTMLElement>) => e.preventDefault(), onDrop: (e: React.DragEvent<HTMLElement>) => e.preventDefault(),
onDragLeave: () => {},
} }
if (disabled) { if (disabled) {
@@ -604,10 +590,11 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
disabled: true, disabled: true,
setScrollContainer, setScrollContainer,
createWorkflowDragHandlers: () => noopDragHandlers, createWorkflowDragHandlers: () => noopDragHandlers,
createFolderDragHandlers: () => ({ ...noopDragHandlers, onDragLeave: () => {} }), createFolderDragHandlers: () => noopDragHandlers,
createEmptyFolderDropZone: () => noopDragHandlers, createEmptyFolderDropZone: () => noopDragHandlers,
createFolderContentDropZone: () => noopDragHandlers, createFolderContentDropZone: () => noopDragHandlers,
createRootDropZone: () => ({ ...noopDragHandlers, onDragLeave: () => {} }), createRootDropZone: () => noopDragHandlers,
createEdgeDropZone: () => noopDragHandlers,
handleDragStart: () => {}, handleDragStart: () => {},
handleDragEnd: () => {}, handleDragEnd: () => {},
} }
@@ -623,6 +610,7 @@ export function useDragDrop(options: UseDragDropOptions = {}) {
createEmptyFolderDropZone, createEmptyFolderDropZone,
createFolderContentDropZone, createFolderContentDropZone,
createRootDropZone, createRootDropZone,
createEdgeDropZone,
handleDragStart, handleDragStart,
handleDragEnd, handleDragEnd,
} }

View File

@@ -0,0 +1,61 @@
import { useCallback } from 'react'
import { useFolderStore } from '@/stores/folders/store'
interface UseFolderSelectionProps {
/**
* Flat array of all folder IDs in display order
*/
folderIds: string[]
}
/**
* Hook for managing folder selection with support for single, range, and toggle selection.
* Handles shift-click for range selection and cmd/ctrl-click for toggle selection.
* Uses the last selected folder ID (tracked in store) as the anchor point for range selections.
*
* @param props - Hook props
* @returns Selection handlers
*/
export function useFolderSelection({ folderIds }: UseFolderSelectionProps) {
const {
selectedFolders,
lastSelectedFolderId,
selectFolderOnly,
selectFolderRange,
toggleFolderSelection,
} = useFolderStore()
/**
* Handle folder click with support for shift-click range selection and cmd/ctrl-click toggle
*
* @param folderId - ID of clicked folder
* @param shiftKey - Whether shift key was pressed
* @param metaKey - Whether cmd (Mac) or ctrl (Windows) key was pressed
*/
const handleFolderClick = useCallback(
(folderId: string, shiftKey: boolean, metaKey: boolean) => {
// Cmd/Ctrl+Click: Toggle individual selection
if (metaKey) {
toggleFolderSelection(folderId)
}
// Shift+Click: Range selection from last selected folder to clicked folder
else if (shiftKey && lastSelectedFolderId && lastSelectedFolderId !== folderId) {
selectFolderRange(folderIds, lastSelectedFolderId, folderId)
}
// Shift+Click without anchor: Select only this folder (establishes anchor)
else if (shiftKey) {
selectFolderOnly(folderId)
}
// Regular click: Select only this folder
else {
selectFolderOnly(folderId)
}
},
[folderIds, lastSelectedFolderId, selectFolderOnly, selectFolderRange, toggleFolderSelection]
)
return {
selectedFolders,
handleFolderClick,
}
}

View File

@@ -4,9 +4,23 @@ interface UseItemDragProps {
onDragStart: (e: React.DragEvent) => void onDragStart: (e: React.DragEvent) => void
} }
// Lazily initialized invisible drag image (1x1 transparent pixel)
// Created on first use to avoid SSR issues with browser-only Image constructor
let invisibleDragImage: HTMLImageElement | null = null
function getInvisibleDragImage(): HTMLImageElement {
if (!invisibleDragImage) {
invisibleDragImage = new Image()
invisibleDragImage.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
}
return invisibleDragImage
}
/** /**
* Custom hook to handle drag operations for workflow and folder items. * Custom hook to handle drag operations for workflow and folder items.
* Manages drag state and provides unified drag event handlers. * Manages drag state and provides unified drag event handlers.
* Uses an invisible drag image for cleaner UX (only drop indicator shows).
* *
* @param props - Configuration object containing drag start callback * @param props - Configuration object containing drag start callback
* @returns Drag state and event handlers * @returns Drag state and event handlers
@@ -16,12 +30,20 @@ export function useItemDrag({ onDragStart }: UseItemDragProps) {
const shouldPreventClickRef = useRef(false) const shouldPreventClickRef = useRef(false)
/** /**
* Handle drag start - sets dragging state and prevents click * Handle drag start - sets dragging state, hides default drag ghost, and prevents click
*/ */
const handleDragStart = useCallback( const handleDragStart = useCallback(
(e: React.DragEvent) => { (e: React.DragEvent) => {
shouldPreventClickRef.current = true shouldPreventClickRef.current = true
setIsDragging(true) setIsDragging(true)
// Hide the default browser drag ghost image
// Defensive check ensures image is loaded (data URIs are typically synchronous)
const dragImage = getInvisibleDragImage()
if (dragImage.complete) {
e.dataTransfer.setDragImage(dragImage, 0, 0)
}
onDragStart(e) onDragStart(e)
}, },
[onDragStart] [onDragStart]

Some files were not shown because too many files have changed in this diff Show More