mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-09 23:17:59 -05:00
Compare commits
141 Commits
v0.5.44
...
feat/copil
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f6f58cf7f | ||
|
|
41d767e170 | ||
|
|
c5dc78ff08 | ||
|
|
ae6e29512a | ||
|
|
6639871c92 | ||
|
|
0ba5ec65f7 | ||
|
|
8597786962 | ||
|
|
1aada6ba57 | ||
|
|
a9edbd71f1 | ||
|
|
bd35dda8fa | ||
|
|
b2b06c3dd1 | ||
|
|
29eefd8416 | ||
|
|
51b2297e35 | ||
|
|
aa8da99ce2 | ||
|
|
2b2ed6df1a | ||
|
|
7305ecf4fa | ||
|
|
d2ef972bbb | ||
|
|
90c875b895 | ||
|
|
4280461cb8 | ||
|
|
3be426af8e | ||
|
|
8fcb0349d2 | ||
|
|
96dc2b7afd | ||
|
|
e95b6135ac | ||
|
|
2fe0afaef4 | ||
|
|
d86e43945f | ||
|
|
4fd5656c01 | ||
|
|
54f6047dd3 | ||
|
|
86f8e77293 | ||
|
|
05034edc83 | ||
|
|
7a925ad45c | ||
|
|
442d8a1f45 | ||
|
|
56366088d8 | ||
|
|
f6cd0cbc55 | ||
|
|
df80309c3b | ||
|
|
fd76e98f0e | ||
|
|
1dbd16115f | ||
|
|
38e827b61a | ||
|
|
1f5e8a41f8 | ||
|
|
796f73ee01 | ||
|
|
d3d6012d5c | ||
|
|
860610b4c2 | ||
|
|
05bbf34265 | ||
|
|
753600ed60 | ||
|
|
4da43d937c | ||
|
|
9502227fd4 | ||
|
|
13981549d1 | ||
|
|
554dcdf062 | ||
|
|
6b28742b68 | ||
|
|
e5c95093f6 | ||
|
|
b87af80bff | ||
|
|
c2180bf8a0 | ||
|
|
fdac4314d2 | ||
|
|
a54fcbc094 | ||
|
|
05904a73b2 | ||
|
|
1b22d2ce81 | ||
|
|
26dff7cffe | ||
|
|
020037728d | ||
|
|
cb12ceb82c | ||
|
|
0f32310ba6 | ||
|
|
730ddf5a66 | ||
|
|
ef4bec2c37 | ||
|
|
2bd27f9a4d | ||
|
|
3b4f7d6adb | ||
|
|
142c9a0428 | ||
|
|
9dc02f3728 | ||
|
|
833825f04a | ||
|
|
261becd129 | ||
|
|
3ecf7a15eb | ||
|
|
1420bfb73c | ||
|
|
02229f0cb2 | ||
|
|
a2451ef3d3 | ||
|
|
6a262f3988 | ||
|
|
5145ce1684 | ||
|
|
e5bd5e4474 | ||
|
|
e9aede087d | ||
|
|
ba2377f83b | ||
|
|
f502f984f3 | ||
|
|
74f371cc79 | ||
|
|
d248557042 | ||
|
|
8215a819e5 | ||
|
|
155f544ce8 | ||
|
|
22f949a41c | ||
|
|
f9aef6ae22 | ||
|
|
46b04a964d | ||
|
|
964b40de45 | ||
|
|
75aca00b6e | ||
|
|
d25084e05d | ||
|
|
445932c1c8 | ||
|
|
cc3f565d5e | ||
|
|
0977ed228f | ||
|
|
ed6b9c0c4a | ||
|
|
86bcdcf0d3 | ||
|
|
ac942416de | ||
|
|
195e0e8e3f | ||
|
|
1673ef98ac | ||
|
|
356b473dc3 | ||
|
|
8d15219c12 | ||
|
|
c3adcf315b | ||
|
|
4df5d56ac5 | ||
|
|
7515809df0 | ||
|
|
385e93f4bb | ||
|
|
096af4fdfa | ||
|
|
dc3de95c39 | ||
|
|
79be435918 | ||
|
|
852562cfdd | ||
|
|
4da128d77c | ||
|
|
0c8d05fc98 | ||
|
|
4301342ffb | ||
|
|
56e485d13b | ||
|
|
1ed746bacf | ||
|
|
bf5d0a5573 | ||
|
|
fb148c6203 | ||
|
|
b90cc5b874 | ||
|
|
4787909851 | ||
|
|
776f82c0a6 | ||
|
|
2cfd75a422 | ||
|
|
c77268c13d | ||
|
|
34bc115468 | ||
|
|
2697da5d9c | ||
|
|
eca91232bf | ||
|
|
7356edccbb | ||
|
|
9208375523 | ||
|
|
df099e9485 | ||
|
|
f8b1880575 | ||
|
|
a7a7c8601c | ||
|
|
97a9295230 | ||
|
|
e9e5721610 | ||
|
|
a08d86d42b | ||
|
|
400178a3b0 | ||
|
|
da1f668272 | ||
|
|
88065088bf | ||
|
|
1c626dfcae | ||
|
|
132aae1615 | ||
|
|
f44fc18041 | ||
|
|
7761b16b87 | ||
|
|
71130c8b0a | ||
|
|
7c0a3c15ac | ||
|
|
cdc1a832d7 | ||
|
|
aa9cc5604a | ||
|
|
fdba1cfac2 | ||
|
|
2e1ccb16f5 |
@@ -1,45 +1,35 @@
|
||||
---
|
||||
description: EMCN component library patterns with CVA
|
||||
description: EMCN component library patterns
|
||||
globs: ["apps/sim/components/emcn/**"]
|
||||
---
|
||||
|
||||
# EMCN Component Guidelines
|
||||
# EMCN Components
|
||||
|
||||
## When to Use CVA vs Direct Styles
|
||||
Import from `@/components/emcn`, never from subpaths (except CSS files).
|
||||
|
||||
**Use CVA (class-variance-authority) when:**
|
||||
- 2+ visual variants (primary, secondary, outline)
|
||||
- Multiple sizes or state variations
|
||||
- Example: Button with variants
|
||||
## CVA vs Direct Styles
|
||||
|
||||
**Use direct className when:**
|
||||
- Single consistent style
|
||||
- No variations needed
|
||||
- Example: Label with one style
|
||||
**Use CVA when:** 2+ variants (primary/secondary, sm/md/lg)
|
||||
|
||||
## Patterns
|
||||
|
||||
**With CVA:**
|
||||
```tsx
|
||||
const buttonVariants = cva('base-classes', {
|
||||
variants: {
|
||||
variant: { default: '...', primary: '...' },
|
||||
size: { sm: '...', md: '...' }
|
||||
}
|
||||
variants: { variant: { default: '...', primary: '...' } }
|
||||
})
|
||||
export { Button, buttonVariants }
|
||||
```
|
||||
|
||||
**Without CVA:**
|
||||
**Use direct className when:** Single consistent style, no variations
|
||||
|
||||
```tsx
|
||||
function Label({ className, ...props }) {
|
||||
return <Primitive className={cn('single-style-classes', className)} {...props} />
|
||||
return <Primitive className={cn('style-classes', className)} {...props} />
|
||||
}
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- Use Radix UI primitives for accessibility
|
||||
- Export component and variants (if using CVA)
|
||||
- TSDoc with usage examples
|
||||
- Consistent tokens: `font-medium`, `text-[12px]`, `rounded-[4px]`
|
||||
- Always use `transition-colors` for hover states
|
||||
- `transition-colors` for hover states
|
||||
|
||||
@@ -8,7 +8,7 @@ alwaysApply: true
|
||||
You are a professional software engineer. All code must follow best practices: accurate, readable, clean, and efficient.
|
||||
|
||||
## Logging
|
||||
Use `logger.info`, `logger.warn`, `logger.error` instead of `console.log`.
|
||||
Import `createLogger` from `sim/logger`. Use `logger.info`, `logger.warn`, `logger.error` instead of `console.log`.
|
||||
|
||||
## Comments
|
||||
Use TSDoc for documentation. No `====` separators. No non-TSDoc comments.
|
||||
|
||||
@@ -10,58 +10,47 @@ globs: ["apps/sim/**"]
|
||||
2. **Composition Over Complexity**: Break down complex logic into smaller pieces
|
||||
3. **Type Safety First**: TypeScript interfaces for all props, state, return types
|
||||
4. **Predictable State**: Zustand for global state, useState for UI-only concerns
|
||||
5. **Performance by Default**: useMemo, useCallback, refs appropriately
|
||||
|
||||
## File Organization
|
||||
## Root-Level Structure
|
||||
|
||||
```
|
||||
apps/sim/
|
||||
├── app/ # Next.js app router (pages, API routes)
|
||||
├── blocks/ # Block definitions and registry
|
||||
├── components/ # Shared UI (emcn/, ui/)
|
||||
├── executor/ # Workflow execution engine
|
||||
├── hooks/ # Shared hooks (queries/, selectors/)
|
||||
├── lib/ # App-wide utilities
|
||||
├── providers/ # LLM provider integrations
|
||||
├── stores/ # Zustand stores
|
||||
├── tools/ # Tool definitions
|
||||
└── triggers/ # Trigger definitions
|
||||
```
|
||||
|
||||
## Feature Organization
|
||||
|
||||
Features live under `app/workspace/[workspaceId]/`:
|
||||
|
||||
```
|
||||
feature/
|
||||
├── components/ # Feature components
|
||||
│ └── sub-feature/ # Sub-feature with own components
|
||||
├── hooks/ # Custom hooks
|
||||
└── feature.tsx # Main component
|
||||
├── components/ # Feature components
|
||||
├── hooks/ # Feature-scoped hooks
|
||||
├── utils/ # Feature-scoped utilities (2+ consumers)
|
||||
├── feature.tsx # Main component
|
||||
└── page.tsx # Next.js page entry
|
||||
```
|
||||
|
||||
## Naming Conventions
|
||||
- **Components**: PascalCase (`WorkflowList`, `TriggerPanel`)
|
||||
- **Hooks**: camelCase with `use` prefix (`useWorkflowOperations`)
|
||||
- **Files**: kebab-case matching export (`workflow-list.tsx`)
|
||||
- **Stores**: kebab-case in stores/ (`sidebar/store.ts`)
|
||||
- **Components**: PascalCase (`WorkflowList`)
|
||||
- **Hooks**: `use` prefix (`useWorkflowOperations`)
|
||||
- **Files**: kebab-case (`workflow-list.tsx`)
|
||||
- **Stores**: `stores/feature/store.ts`
|
||||
- **Constants**: SCREAMING_SNAKE_CASE
|
||||
- **Interfaces**: PascalCase with suffix (`WorkflowListProps`)
|
||||
|
||||
## State Management
|
||||
## Utils Rules
|
||||
|
||||
**useState**: UI-only concerns (dropdown open, hover, form inputs)
|
||||
**Zustand**: Shared state, persistence, global app state
|
||||
**useRef**: DOM refs, avoiding dependency issues, mutable non-reactive values
|
||||
|
||||
## Component Extraction
|
||||
|
||||
**Extract to separate file when:**
|
||||
- Complex (50+ lines)
|
||||
- Used across 2+ files
|
||||
- Has own state/logic
|
||||
|
||||
**Keep inline when:**
|
||||
- Simple (< 10 lines)
|
||||
- Used in only 1 file
|
||||
- Purely presentational
|
||||
|
||||
**Never import utilities from another component file.** Extract shared helpers to `lib/` or `utils/`.
|
||||
|
||||
## Utils Files
|
||||
|
||||
**Never create a `utils.ts` file for a single consumer.** Inline the logic directly in the consuming component.
|
||||
|
||||
**Create `utils.ts` when:**
|
||||
- 2+ files import the same helper
|
||||
|
||||
**Prefer existing sources of truth:**
|
||||
- Before duplicating logic, check if a centralized helper already exists (e.g., `lib/logs/get-trigger-options.ts`)
|
||||
- Import from the source of truth rather than creating wrapper functions
|
||||
|
||||
**Location hierarchy:**
|
||||
- `lib/` — App-wide utilities (auth, billing, core)
|
||||
- `feature/utils.ts` — Feature-scoped utilities (used by 2+ components in the feature)
|
||||
- Inline — Single-use helpers (define directly in the component)
|
||||
- **Never create `utils.ts` for single consumer** - inline it
|
||||
- **Create `utils.ts` when** 2+ files need the same helper
|
||||
- **Check existing sources** before duplicating (`lib/` has many utilities)
|
||||
- **Location**: `lib/` (app-wide) → `feature/utils/` (feature-scoped) → inline (single-use)
|
||||
|
||||
@@ -6,59 +6,43 @@ globs: ["apps/sim/**/*.tsx"]
|
||||
# Component Patterns
|
||||
|
||||
## Structure Order
|
||||
|
||||
```typescript
|
||||
'use client' // Only if using hooks
|
||||
|
||||
// 1. Imports (external → internal → relative)
|
||||
// 2. Constants at module level
|
||||
// Imports (external → internal)
|
||||
// Constants at module level
|
||||
const CONFIG = { SPACING: 8 } as const
|
||||
|
||||
// 3. Props interface with TSDoc
|
||||
// Props interface
|
||||
interface ComponentProps {
|
||||
/** Description */
|
||||
requiredProp: string
|
||||
optionalProp?: boolean
|
||||
}
|
||||
|
||||
// 4. Component with TSDoc
|
||||
export function Component({ requiredProp, optionalProp = false }: ComponentProps) {
|
||||
// a. Refs
|
||||
// b. External hooks (useParams, useRouter)
|
||||
// c. Store hooks
|
||||
// d. Custom hooks
|
||||
// e. Local state
|
||||
// f. useMemo computations
|
||||
// g. useCallback handlers
|
||||
// f. useMemo
|
||||
// g. useCallback
|
||||
// h. useEffect
|
||||
// i. Return JSX
|
||||
}
|
||||
```
|
||||
|
||||
## Rules
|
||||
1. Add `'use client'` when using React hooks
|
||||
|
||||
1. `'use client'` only when using React hooks
|
||||
2. Always define props interface
|
||||
3. TSDoc on component: description, @param, @returns
|
||||
4. Extract constants with `as const`
|
||||
5. Use Tailwind only, no inline styles
|
||||
6. Semantic HTML (`aside`, `nav`, `article`)
|
||||
7. Include ARIA attributes where appropriate
|
||||
8. Optional chain callbacks: `onAction?.(id)`
|
||||
3. Extract constants with `as const`
|
||||
4. Semantic HTML (`aside`, `nav`, `article`)
|
||||
5. Optional chain callbacks: `onAction?.(id)`
|
||||
|
||||
## Factory Pattern with Caching
|
||||
## Component Extraction
|
||||
|
||||
When generating components for a specific signature (e.g., icons):
|
||||
**Extract when:** 50+ lines, used in 2+ files, or has own state/logic
|
||||
|
||||
```typescript
|
||||
const cache = new Map<string, React.ComponentType<{ className?: string }>>()
|
||||
|
||||
function getColorIcon(color: string) {
|
||||
if (cache.has(color)) return cache.get(color)!
|
||||
|
||||
const Icon = ({ className }: { className?: string }) => (
|
||||
<div className={cn(className, 'rounded-[3px]')} style={{ backgroundColor: color, width: 10, height: 10 }} />
|
||||
)
|
||||
Icon.displayName = `ColorIcon(${color})`
|
||||
cache.set(color, Icon)
|
||||
return Icon
|
||||
}
|
||||
```
|
||||
**Keep inline when:** < 10 lines, single use, purely presentational
|
||||
|
||||
@@ -6,21 +6,13 @@ globs: ["apps/sim/**/use-*.ts", "apps/sim/**/hooks/**/*.ts"]
|
||||
# Hook Patterns
|
||||
|
||||
## Structure
|
||||
|
||||
```typescript
|
||||
import { createLogger } from '@/lib/logs/console/logger'
|
||||
|
||||
const logger = createLogger('useFeatureName')
|
||||
|
||||
interface UseFeatureProps {
|
||||
id: string
|
||||
onSuccess?: (result: Result) => void
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook description.
|
||||
* @param props - Configuration
|
||||
* @returns State and operations
|
||||
*/
|
||||
export function useFeature({ id, onSuccess }: UseFeatureProps) {
|
||||
// 1. Refs for stable dependencies
|
||||
const idRef = useRef(id)
|
||||
@@ -29,7 +21,6 @@ export function useFeature({ id, onSuccess }: UseFeatureProps) {
|
||||
// 2. State
|
||||
const [data, setData] = useState<Data | null>(null)
|
||||
const [isLoading, setIsLoading] = useState(false)
|
||||
const [error, setError] = useState<Error | null>(null)
|
||||
|
||||
// 3. Sync refs
|
||||
useEffect(() => {
|
||||
@@ -37,32 +28,27 @@ export function useFeature({ id, onSuccess }: UseFeatureProps) {
|
||||
onSuccessRef.current = onSuccess
|
||||
}, [id, onSuccess])
|
||||
|
||||
// 4. Operations with useCallback
|
||||
// 4. Operations (useCallback with empty deps when using refs)
|
||||
const fetchData = useCallback(async () => {
|
||||
setIsLoading(true)
|
||||
try {
|
||||
const result = await fetch(`/api/${idRef.current}`).then(r => r.json())
|
||||
setData(result)
|
||||
onSuccessRef.current?.(result)
|
||||
} catch (err) {
|
||||
setError(err as Error)
|
||||
logger.error('Failed', { error: err })
|
||||
} finally {
|
||||
setIsLoading(false)
|
||||
}
|
||||
}, []) // Empty deps - using refs
|
||||
}, [])
|
||||
|
||||
// 5. Return grouped by state/operations
|
||||
return { data, isLoading, error, fetchData }
|
||||
return { data, isLoading, fetchData }
|
||||
}
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
1. Single responsibility per hook
|
||||
2. Props interface required
|
||||
3. TSDoc required
|
||||
4. Use logger, not console.log
|
||||
5. Refs for stable callback dependencies
|
||||
6. Wrap returned functions in useCallback
|
||||
7. Always try/catch async operations
|
||||
8. Track loading/error states
|
||||
3. Refs for stable callback dependencies
|
||||
4. Wrap returned functions in useCallback
|
||||
5. Always try/catch async operations
|
||||
6. Track loading/error states
|
||||
|
||||
@@ -5,33 +5,57 @@ globs: ["apps/sim/**/*.ts", "apps/sim/**/*.tsx"]
|
||||
|
||||
# Import Patterns
|
||||
|
||||
## EMCN Components
|
||||
Import from `@/components/emcn`, never from subpaths like `@/components/emcn/components/modal/modal`.
|
||||
## Absolute Imports
|
||||
|
||||
**Exception**: CSS imports use actual file paths: `import '@/components/emcn/components/code/code.css'`
|
||||
**Always use absolute imports.** Never use relative imports.
|
||||
|
||||
## Feature Components
|
||||
Import from central folder indexes, not specific subfolders:
|
||||
```typescript
|
||||
// ✅ Correct
|
||||
import { Dashboard, Sidebar } from '@/app/workspace/[workspaceId]/logs/components'
|
||||
// ✓ Good
|
||||
import { useWorkflowStore } from '@/stores/workflows/store'
|
||||
import { Button } from '@/components/ui/button'
|
||||
|
||||
// ❌ Wrong
|
||||
import { Dashboard } from '@/app/workspace/[workspaceId]/logs/components/dashboard'
|
||||
// ✗ Bad
|
||||
import { useWorkflowStore } from '../../../stores/workflows/store'
|
||||
```
|
||||
|
||||
## Internal vs External
|
||||
- **Cross-feature**: Absolute paths through central index
|
||||
- **Within feature**: Relative paths (`./components/...`, `../utils`)
|
||||
## Barrel Exports
|
||||
|
||||
Use barrel exports (`index.ts`) when a folder has 3+ exports. Import from barrel, not individual files.
|
||||
|
||||
```typescript
|
||||
// ✓ Good
|
||||
import { Dashboard, Sidebar } from '@/app/workspace/[workspaceId]/logs/components'
|
||||
|
||||
// ✗ Bad
|
||||
import { Dashboard } from '@/app/workspace/[workspaceId]/logs/components/dashboard/dashboard'
|
||||
```
|
||||
|
||||
## No Re-exports
|
||||
|
||||
Do not re-export from non-barrel files. Import directly from the source.
|
||||
|
||||
```typescript
|
||||
// ✓ Good - import from where it's declared
|
||||
import { CORE_TRIGGER_TYPES } from '@/stores/logs/filters/types'
|
||||
|
||||
// ✗ Bad - re-exporting in utils.ts then importing from there
|
||||
import { CORE_TRIGGER_TYPES } from '@/app/workspace/.../utils'
|
||||
```
|
||||
|
||||
## Import Order
|
||||
|
||||
1. React/core libraries
|
||||
2. External libraries
|
||||
3. UI components (`@/components/emcn`, `@/components/ui`)
|
||||
4. Utilities (`@/lib/...`)
|
||||
5. Feature imports from indexes
|
||||
6. Relative imports
|
||||
5. Stores (`@/stores/...`)
|
||||
6. Feature imports
|
||||
7. CSS imports
|
||||
|
||||
## Types
|
||||
Use `type` keyword: `import type { WorkflowLog } from '...'`
|
||||
## Type Imports
|
||||
|
||||
Use `type` keyword for type-only imports:
|
||||
|
||||
```typescript
|
||||
import type { WorkflowLog } from '@/stores/logs/types'
|
||||
```
|
||||
|
||||
207
.cursor/rules/sim-integrations.mdc
Normal file
207
.cursor/rules/sim-integrations.mdc
Normal file
@@ -0,0 +1,207 @@
|
||||
---
|
||||
description: Adding new integrations (tools, blocks, triggers)
|
||||
globs: ["apps/sim/tools/**", "apps/sim/blocks/**", "apps/sim/triggers/**"]
|
||||
---
|
||||
|
||||
# Adding Integrations
|
||||
|
||||
## Overview
|
||||
|
||||
Adding a new integration typically requires:
|
||||
1. **Tools** - API operations (`tools/{service}/`)
|
||||
2. **Block** - UI component (`blocks/blocks/{service}.ts`)
|
||||
3. **Icon** - SVG icon (`components/icons.tsx`)
|
||||
4. **Trigger** (optional) - Webhooks/polling (`triggers/{service}/`)
|
||||
|
||||
Always look up the service's API docs first.
|
||||
|
||||
## 1. Tools (`tools/{service}/`)
|
||||
|
||||
```
|
||||
tools/{service}/
|
||||
├── index.ts # Export all tools
|
||||
├── types.ts # Params/response types
|
||||
├── {action}.ts # Individual tool (e.g., send_message.ts)
|
||||
└── ...
|
||||
```
|
||||
|
||||
**Tool file structure:**
|
||||
|
||||
```typescript
|
||||
// tools/{service}/{action}.ts
|
||||
import type { {Service}Params, {Service}Response } from '@/tools/{service}/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const {service}{Action}Tool: ToolConfig<{Service}Params, {Service}Response> = {
|
||||
id: '{service}_{action}',
|
||||
name: '{Service} {Action}',
|
||||
description: 'What this tool does',
|
||||
version: '1.0.0',
|
||||
oauth: { required: true, provider: '{service}' }, // if OAuth
|
||||
params: { /* param definitions */ },
|
||||
request: {
|
||||
url: '/api/tools/{service}/{action}',
|
||||
method: 'POST',
|
||||
headers: () => ({ 'Content-Type': 'application/json' }),
|
||||
body: (params) => ({ ...params }),
|
||||
},
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
if (!data.success) throw new Error(data.error)
|
||||
return { success: true, output: data.output }
|
||||
},
|
||||
outputs: { /* output definitions */ },
|
||||
}
|
||||
```
|
||||
|
||||
**Register in `tools/registry.ts`:**
|
||||
|
||||
```typescript
|
||||
import { {service}{Action}Tool } from '@/tools/{service}'
|
||||
// Add to registry object
|
||||
{service}_{action}: {service}{Action}Tool,
|
||||
```
|
||||
|
||||
## 2. Block (`blocks/blocks/{service}.ts`)
|
||||
|
||||
```typescript
|
||||
import { {Service}Icon } from '@/components/icons'
|
||||
import type { BlockConfig } from '@/blocks/types'
|
||||
import type { {Service}Response } from '@/tools/{service}/types'
|
||||
|
||||
export const {Service}Block: BlockConfig<{Service}Response> = {
|
||||
type: '{service}',
|
||||
name: '{Service}',
|
||||
description: 'Short description',
|
||||
longDescription: 'Detailed description',
|
||||
category: 'tools',
|
||||
bgColor: '#hexcolor',
|
||||
icon: {Service}Icon,
|
||||
subBlocks: [ /* see SubBlock Properties below */ ],
|
||||
tools: {
|
||||
access: ['{service}_{action}', ...],
|
||||
config: {
|
||||
tool: (params) => `{service}_${params.operation}`,
|
||||
params: (params) => ({ ...params }),
|
||||
},
|
||||
},
|
||||
inputs: { /* input definitions */ },
|
||||
outputs: { /* output definitions */ },
|
||||
}
|
||||
```
|
||||
|
||||
### SubBlock Properties
|
||||
|
||||
```typescript
|
||||
{
|
||||
id: 'fieldName', // Unique identifier
|
||||
title: 'Field Label', // UI label
|
||||
type: 'short-input', // See SubBlock Types below
|
||||
placeholder: 'Hint text',
|
||||
required: true, // See Required below
|
||||
condition: { ... }, // See Condition below
|
||||
dependsOn: ['otherField'], // See DependsOn below
|
||||
mode: 'basic', // 'basic' | 'advanced' | 'both' | 'trigger'
|
||||
}
|
||||
```
|
||||
|
||||
**SubBlock Types:** `short-input`, `long-input`, `dropdown`, `code`, `switch`, `slider`, `oauth-input`, `channel-selector`, `user-selector`, `file-upload`, etc.
|
||||
|
||||
### `condition` - Show/hide based on another field
|
||||
|
||||
```typescript
|
||||
// Show when operation === 'send'
|
||||
condition: { field: 'operation', value: 'send' }
|
||||
|
||||
// Show when operation is 'send' OR 'read'
|
||||
condition: { field: 'operation', value: ['send', 'read'] }
|
||||
|
||||
// Show when operation !== 'send'
|
||||
condition: { field: 'operation', value: 'send', not: true }
|
||||
|
||||
// Complex: NOT in list AND another condition
|
||||
condition: {
|
||||
field: 'operation',
|
||||
value: ['list_channels', 'list_users'],
|
||||
not: true,
|
||||
and: { field: 'destinationType', value: 'dm', not: true }
|
||||
}
|
||||
```
|
||||
|
||||
### `required` - Field validation
|
||||
|
||||
```typescript
|
||||
// Always required
|
||||
required: true
|
||||
|
||||
// Conditionally required (same syntax as condition)
|
||||
required: { field: 'operation', value: 'send' }
|
||||
```
|
||||
|
||||
### `dependsOn` - Clear field when dependencies change
|
||||
|
||||
```typescript
|
||||
// Clear when credential changes
|
||||
dependsOn: ['credential']
|
||||
|
||||
// Clear when authMethod changes AND (credential OR botToken) changes
|
||||
dependsOn: { all: ['authMethod'], any: ['credential', 'botToken'] }
|
||||
```
|
||||
|
||||
### `mode` - When to show field
|
||||
|
||||
- `'basic'` - Only in basic mode (default UI)
|
||||
- `'advanced'` - Only in advanced mode (manual input)
|
||||
- `'both'` - Show in both modes (default)
|
||||
- `'trigger'` - Only when block is used as trigger
|
||||
|
||||
**Register in `blocks/registry.ts`:**
|
||||
|
||||
```typescript
|
||||
import { {Service}Block } from '@/blocks/blocks/{service}'
|
||||
// Add to registry object (alphabetically)
|
||||
{service}: {Service}Block,
|
||||
```
|
||||
|
||||
## 3. Icon (`components/icons.tsx`)
|
||||
|
||||
```typescript
|
||||
export function {Service}Icon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg {...props} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
{/* SVG path from service's brand assets */}
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
## 4. Trigger (`triggers/{service}/`) - Optional
|
||||
|
||||
```
|
||||
triggers/{service}/
|
||||
├── index.ts # Export all triggers
|
||||
├── webhook.ts # Webhook handler
|
||||
├── utils.ts # Shared utilities
|
||||
└── {event}.ts # Specific event handlers
|
||||
```
|
||||
|
||||
**Register in `triggers/registry.ts`:**
|
||||
|
||||
```typescript
|
||||
import { {service}WebhookTrigger } from '@/triggers/{service}'
|
||||
// Add to TRIGGER_REGISTRY
|
||||
{service}_webhook: {service}WebhookTrigger,
|
||||
```
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Look up API docs for the service
|
||||
- [ ] Create `tools/{service}/types.ts` with proper types
|
||||
- [ ] Create tool files for each operation
|
||||
- [ ] Create `tools/{service}/index.ts` barrel export
|
||||
- [ ] Register tools in `tools/registry.ts`
|
||||
- [ ] Add icon to `components/icons.tsx`
|
||||
- [ ] Create block in `blocks/blocks/{service}.ts`
|
||||
- [ ] Register block in `blocks/registry.ts`
|
||||
- [ ] (Optional) Create triggers in `triggers/{service}/`
|
||||
- [ ] (Optional) Register triggers in `triggers/registry.ts`
|
||||
66
.cursor/rules/sim-queries.mdc
Normal file
66
.cursor/rules/sim-queries.mdc
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
description: React Query patterns for the Sim application
|
||||
globs: ["apps/sim/hooks/queries/**/*.ts"]
|
||||
---
|
||||
|
||||
# React Query Patterns
|
||||
|
||||
All React Query hooks live in `hooks/queries/`.
|
||||
|
||||
## Query Key Factory
|
||||
|
||||
Every query file defines a keys factory:
|
||||
|
||||
```typescript
|
||||
export const entityKeys = {
|
||||
all: ['entity'] as const,
|
||||
list: (workspaceId?: string) => [...entityKeys.all, 'list', workspaceId ?? ''] as const,
|
||||
detail: (id?: string) => [...entityKeys.all, 'detail', id ?? ''] as const,
|
||||
}
|
||||
```
|
||||
|
||||
## File Structure
|
||||
|
||||
```typescript
|
||||
// 1. Query keys factory
|
||||
// 2. Types (if needed)
|
||||
// 3. Private fetch functions
|
||||
// 4. Exported hooks
|
||||
```
|
||||
|
||||
## Query Hook
|
||||
|
||||
```typescript
|
||||
export function useEntityList(workspaceId?: string, options?: { enabled?: boolean }) {
|
||||
return useQuery({
|
||||
queryKey: entityKeys.list(workspaceId),
|
||||
queryFn: () => fetchEntities(workspaceId as string),
|
||||
enabled: Boolean(workspaceId) && (options?.enabled ?? true),
|
||||
staleTime: 60 * 1000,
|
||||
placeholderData: keepPreviousData,
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
## Mutation Hook
|
||||
|
||||
```typescript
|
||||
export function useCreateEntity() {
|
||||
const queryClient = useQueryClient()
|
||||
return useMutation({
|
||||
mutationFn: async (variables) => { /* fetch POST */ },
|
||||
onSuccess: () => queryClient.invalidateQueries({ queryKey: entityKeys.all }),
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
## Optimistic Updates
|
||||
|
||||
For optimistic mutations syncing with Zustand, use `createOptimisticMutationHandlers` from `@/hooks/queries/utils/optimistic-mutation`.
|
||||
|
||||
## Naming
|
||||
|
||||
- **Keys**: `entityKeys`
|
||||
- **Query hooks**: `useEntity`, `useEntityList`
|
||||
- **Mutation hooks**: `useCreateEntity`, `useUpdateEntity`
|
||||
- **Fetch functions**: `fetchEntity` (private)
|
||||
@@ -5,53 +5,66 @@ globs: ["apps/sim/**/store.ts", "apps/sim/**/stores/**/*.ts"]
|
||||
|
||||
# Zustand Store Patterns
|
||||
|
||||
## Structure
|
||||
Stores live in `stores/`. Complex stores split into `store.ts` + `types.ts`.
|
||||
|
||||
## Basic Store
|
||||
|
||||
```typescript
|
||||
import { create } from 'zustand'
|
||||
import { devtools } from 'zustand/middleware'
|
||||
import type { FeatureState } from '@/stores/feature/types'
|
||||
|
||||
const initialState = { items: [] as Item[], activeId: null as string | null }
|
||||
|
||||
export const useFeatureStore = create<FeatureState>()(
|
||||
devtools(
|
||||
(set, get) => ({
|
||||
...initialState,
|
||||
setItems: (items) => set({ items }),
|
||||
addItem: (item) => set((state) => ({ items: [...state.items, item] })),
|
||||
reset: () => set(initialState),
|
||||
}),
|
||||
{ name: 'feature-store' }
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Persisted Store
|
||||
|
||||
```typescript
|
||||
import { create } from 'zustand'
|
||||
import { persist } from 'zustand/middleware'
|
||||
|
||||
interface FeatureState {
|
||||
// State
|
||||
items: Item[]
|
||||
activeId: string | null
|
||||
|
||||
// Actions
|
||||
setItems: (items: Item[]) => void
|
||||
addItem: (item: Item) => void
|
||||
clearState: () => void
|
||||
}
|
||||
|
||||
const createInitialState = () => ({
|
||||
items: [],
|
||||
activeId: null,
|
||||
})
|
||||
|
||||
export const useFeatureStore = create<FeatureState>()(
|
||||
persist(
|
||||
(set) => ({
|
||||
...createInitialState(),
|
||||
|
||||
setItems: (items) => set({ items }),
|
||||
|
||||
addItem: (item) => set((state) => ({
|
||||
items: [...state.items, item],
|
||||
})),
|
||||
|
||||
clearState: () => set(createInitialState()),
|
||||
width: 300,
|
||||
setWidth: (width) => set({ width }),
|
||||
_hasHydrated: false,
|
||||
setHasHydrated: (v) => set({ _hasHydrated: v }),
|
||||
}),
|
||||
{
|
||||
name: 'feature-state',
|
||||
partialize: (state) => ({ items: state.items }),
|
||||
partialize: (state) => ({ width: state.width }),
|
||||
onRehydrateStorage: () => (state) => state?.setHasHydrated(true),
|
||||
}
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Rules
|
||||
1. Interface includes state and actions
|
||||
2. Extract config to module constants
|
||||
3. TSDoc on store
|
||||
4. Only persist what's needed
|
||||
5. Immutable updates only - never mutate
|
||||
6. Use `set((state) => ...)` when depending on previous state
|
||||
7. Provide clear/reset actions
|
||||
|
||||
1. Use `devtools` middleware (named stores)
|
||||
2. Use `persist` only when data should survive reload
|
||||
3. `partialize` to persist only necessary state
|
||||
4. `_hasHydrated` pattern for persisted stores needing hydration tracking
|
||||
5. Immutable updates only
|
||||
6. `set((state) => ...)` when depending on previous state
|
||||
7. Provide `reset()` action
|
||||
|
||||
## Outside React
|
||||
|
||||
```typescript
|
||||
const items = useFeatureStore.getState().items
|
||||
useFeatureStore.setState({ items: newItems })
|
||||
```
|
||||
|
||||
@@ -6,13 +6,14 @@ globs: ["apps/sim/**/*.tsx", "apps/sim/**/*.css"]
|
||||
# Styling Rules
|
||||
|
||||
## Tailwind
|
||||
1. **No inline styles** - Use Tailwind classes exclusively
|
||||
2. **No duplicate dark classes** - Don't add `dark:` when value matches light mode
|
||||
3. **Exact values** - Use design system values (`text-[14px]`, `h-[25px]`)
|
||||
4. **Prefer px** - Use `px-[4px]` over `px-1`
|
||||
5. **Transitions** - Add `transition-colors` for interactive states
|
||||
|
||||
1. **No inline styles** - Use Tailwind classes
|
||||
2. **No duplicate dark classes** - Skip `dark:` when value matches light mode
|
||||
3. **Exact values** - `text-[14px]`, `h-[26px]`
|
||||
4. **Transitions** - `transition-colors` for interactive states
|
||||
|
||||
## Conditional Classes
|
||||
|
||||
```typescript
|
||||
import { cn } from '@/lib/utils'
|
||||
|
||||
@@ -23,25 +24,17 @@ import { cn } from '@/lib/utils'
|
||||
)} />
|
||||
```
|
||||
|
||||
## CSS Variables for Dynamic Styles
|
||||
## CSS Variables
|
||||
|
||||
For dynamic values (widths, heights) synced with stores:
|
||||
|
||||
```typescript
|
||||
// In store setter
|
||||
setSidebarWidth: (width) => {
|
||||
set({ sidebarWidth: width })
|
||||
// In store
|
||||
setWidth: (width) => {
|
||||
set({ width })
|
||||
document.documentElement.style.setProperty('--sidebar-width', `${width}px`)
|
||||
}
|
||||
|
||||
// In component
|
||||
<aside style={{ width: 'var(--sidebar-width)' }} />
|
||||
```
|
||||
|
||||
## Anti-Patterns
|
||||
```typescript
|
||||
// ❌ Bad
|
||||
<div style={{ width: 200 }}>
|
||||
<div className='text-[var(--text-primary)] dark:text-[var(--text-primary)]'>
|
||||
|
||||
// ✅ Good
|
||||
<div className='w-[200px]'>
|
||||
<div className='text-[var(--text-primary)]'>
|
||||
```
|
||||
|
||||
60
.cursor/rules/sim-testing.mdc
Normal file
60
.cursor/rules/sim-testing.mdc
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
description: Testing patterns with Vitest
|
||||
globs: ["apps/sim/**/*.test.ts", "apps/sim/**/*.test.tsx"]
|
||||
---
|
||||
|
||||
# Testing Patterns
|
||||
|
||||
Use Vitest. Test files live next to source: `feature.ts` → `feature.test.ts`
|
||||
|
||||
## Structure
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* Tests for [feature name]
|
||||
*
|
||||
* @vitest-environment node
|
||||
*/
|
||||
|
||||
// 1. Mocks BEFORE imports
|
||||
vi.mock('@sim/db', () => ({ db: { select: vi.fn() } }))
|
||||
vi.mock('@sim/logger', () => loggerMock)
|
||||
|
||||
// 2. Imports AFTER mocks
|
||||
import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest'
|
||||
import { createSession, loggerMock } from '@sim/testing'
|
||||
import { myFunction } from '@/lib/feature'
|
||||
|
||||
describe('myFunction', () => {
|
||||
beforeEach(() => vi.clearAllMocks())
|
||||
|
||||
it('should do something', () => {
|
||||
expect(myFunction()).toBe(expected)
|
||||
})
|
||||
|
||||
it.concurrent('runs in parallel', () => { ... })
|
||||
})
|
||||
```
|
||||
|
||||
## @sim/testing Package
|
||||
|
||||
```typescript
|
||||
// Factories - create test data
|
||||
import { createBlock, createWorkflow, createSession } from '@sim/testing'
|
||||
|
||||
// Mocks - pre-configured mocks
|
||||
import { loggerMock, databaseMock, fetchMock } from '@sim/testing'
|
||||
|
||||
// Builders - fluent API for complex objects
|
||||
import { ExecutionBuilder, WorkflowBuilder } from '@sim/testing'
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
1. `@vitest-environment node` directive at file top
|
||||
2. **Mocks before imports** - `vi.mock()` calls must come first
|
||||
3. Use `@sim/testing` factories over manual test data
|
||||
4. `it.concurrent` for independent tests (faster)
|
||||
5. `beforeEach(() => vi.clearAllMocks())` to reset state
|
||||
6. Group related tests with nested `describe` blocks
|
||||
7. Test file naming: `*.test.ts` (not `*.spec.ts`)
|
||||
@@ -6,19 +6,15 @@ globs: ["apps/sim/**/*.ts", "apps/sim/**/*.tsx"]
|
||||
# TypeScript Rules
|
||||
|
||||
1. **No `any`** - Use proper types or `unknown` with type guards
|
||||
2. **Props interface** - Always define, even for simple components
|
||||
3. **Callback types** - Full signature with params and return type
|
||||
4. **Generics** - Use for reusable components/hooks
|
||||
5. **Const assertions** - `as const` for constant objects/arrays
|
||||
6. **Ref types** - Explicit: `useRef<HTMLDivElement>(null)`
|
||||
2. **Props interface** - Always define for components
|
||||
3. **Const assertions** - `as const` for constant objects/arrays
|
||||
4. **Ref types** - Explicit: `useRef<HTMLDivElement>(null)`
|
||||
5. **Type imports** - `import type { X }` for type-only imports
|
||||
|
||||
## Anti-Patterns
|
||||
```typescript
|
||||
// ❌ Bad
|
||||
// ✗ Bad
|
||||
const handleClick = (e: any) => {}
|
||||
useEffect(() => { doSomething(prop) }, []) // Missing dep
|
||||
|
||||
// ✅ Good
|
||||
// ✓ Good
|
||||
const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {}
|
||||
useEffect(() => { doSomething(prop) }, [prop])
|
||||
```
|
||||
|
||||
19
.github/workflows/test-build.yml
vendored
19
.github/workflows/test-build.yml
vendored
@@ -23,16 +23,17 @@ jobs:
|
||||
with:
|
||||
node-version: latest
|
||||
|
||||
- name: Cache Bun dependencies
|
||||
uses: actions/cache@v4
|
||||
- name: Mount Bun cache (Sticky Disk)
|
||||
uses: useblacksmith/stickydisk@v1
|
||||
with:
|
||||
path: |
|
||||
~/.bun/install/cache
|
||||
node_modules
|
||||
**/node_modules
|
||||
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-bun-
|
||||
key: ${{ github.repository }}-bun-cache
|
||||
path: ~/.bun/install/cache
|
||||
|
||||
- name: Mount node_modules (Sticky Disk)
|
||||
uses: useblacksmith/stickydisk@v1
|
||||
with:
|
||||
key: ${{ github.repository }}-node-modules
|
||||
path: ./node_modules
|
||||
|
||||
- name: Install dependencies
|
||||
run: bun install --frozen-lockfile
|
||||
|
||||
304
CLAUDE.md
304
CLAUDE.md
@@ -1,47 +1,295 @@
|
||||
# Expert Programming Standards
|
||||
# Sim Studio Development Guidelines
|
||||
|
||||
**You are tasked with implementing solutions that follow best practices. You MUST be accurate, elegant, and efficient as an expert programmer.**
|
||||
You are a professional software engineer. All code must follow best practices: accurate, readable, clean, and efficient.
|
||||
|
||||
---
|
||||
## Global Standards
|
||||
|
||||
# Role
|
||||
- **Logging**: Import `createLogger` from `@sim/logger`. Use `logger.info`, `logger.warn`, `logger.error` instead of `console.log`
|
||||
- **Comments**: Use TSDoc for documentation. No `====` separators. No non-TSDoc comments
|
||||
- **Styling**: Never update global styles. Keep all styling local to components
|
||||
- **Package Manager**: Use `bun` and `bunx`, not `npm` and `npx`
|
||||
|
||||
You are a professional software engineer. All code you write MUST follow best practices, ensuring accuracy, quality, readability, and cleanliness. You MUST make FOCUSED EDITS that are EFFICIENT and ELEGANT.
|
||||
## Architecture
|
||||
|
||||
## Logs
|
||||
### Core Principles
|
||||
1. Single Responsibility: Each component, hook, store has one clear purpose
|
||||
2. Composition Over Complexity: Break down complex logic into smaller pieces
|
||||
3. Type Safety First: TypeScript interfaces for all props, state, return types
|
||||
4. Predictable State: Zustand for global state, useState for UI-only concerns
|
||||
|
||||
ENSURE that you use the logger.info and logger.warn and logger.error instead of the console.log whenever you want to display logs.
|
||||
### Root Structure
|
||||
```
|
||||
apps/sim/
|
||||
├── app/ # Next.js app router (pages, API routes)
|
||||
├── blocks/ # Block definitions and registry
|
||||
├── components/ # Shared UI (emcn/, ui/)
|
||||
├── executor/ # Workflow execution engine
|
||||
├── hooks/ # Shared hooks (queries/, selectors/)
|
||||
├── lib/ # App-wide utilities
|
||||
├── providers/ # LLM provider integrations
|
||||
├── stores/ # Zustand stores
|
||||
├── tools/ # Tool definitions
|
||||
└── triggers/ # Trigger definitions
|
||||
```
|
||||
|
||||
## Comments
|
||||
### Naming Conventions
|
||||
- Components: PascalCase (`WorkflowList`)
|
||||
- Hooks: `use` prefix (`useWorkflowOperations`)
|
||||
- Files: kebab-case (`workflow-list.tsx`)
|
||||
- Stores: `stores/feature/store.ts`
|
||||
- Constants: SCREAMING_SNAKE_CASE
|
||||
- Interfaces: PascalCase with suffix (`WorkflowListProps`)
|
||||
|
||||
You must use TSDOC for comments. Do not use ==== for comments to separate sections. Do not leave any comments that are not TSDOC.
|
||||
## Imports
|
||||
|
||||
## Global Styles
|
||||
**Always use absolute imports.** Never use relative imports.
|
||||
|
||||
You should not update the global styles unless it is absolutely necessary. Keep all styling local to components and files.
|
||||
```typescript
|
||||
// ✓ Good
|
||||
import { useWorkflowStore } from '@/stores/workflows/store'
|
||||
|
||||
## Bun
|
||||
// ✗ Bad
|
||||
import { useWorkflowStore } from '../../../stores/workflows/store'
|
||||
```
|
||||
|
||||
Use bun and bunx not npm and npx.
|
||||
Use barrel exports (`index.ts`) when a folder has 3+ exports. Do not re-export from non-barrel files; import directly from the source.
|
||||
|
||||
## Code Quality
|
||||
### Import Order
|
||||
1. React/core libraries
|
||||
2. External libraries
|
||||
3. UI components (`@/components/emcn`, `@/components/ui`)
|
||||
4. Utilities (`@/lib/...`)
|
||||
5. Stores (`@/stores/...`)
|
||||
6. Feature imports
|
||||
7. CSS imports
|
||||
|
||||
- Write clean, maintainable code that follows the project's existing patterns
|
||||
- Prefer composition over inheritance
|
||||
- Keep functions small and focused on a single responsibility
|
||||
- Use meaningful variable and function names
|
||||
- Handle errors gracefully and provide useful error messages
|
||||
- Write type-safe code with proper TypeScript types
|
||||
Use `import type { X }` for type-only imports.
|
||||
|
||||
## TypeScript
|
||||
|
||||
1. No `any` - Use proper types or `unknown` with type guards
|
||||
2. Always define props interface for components
|
||||
3. `as const` for constant objects/arrays
|
||||
4. Explicit ref types: `useRef<HTMLDivElement>(null)`
|
||||
|
||||
## Components
|
||||
|
||||
```typescript
|
||||
'use client' // Only if using hooks
|
||||
|
||||
const CONFIG = { SPACING: 8 } as const
|
||||
|
||||
interface ComponentProps {
|
||||
requiredProp: string
|
||||
optionalProp?: boolean
|
||||
}
|
||||
|
||||
export function Component({ requiredProp, optionalProp = false }: ComponentProps) {
|
||||
// Order: refs → external hooks → store hooks → custom hooks → state → useMemo → useCallback → useEffect → return
|
||||
}
|
||||
```
|
||||
|
||||
Extract when: 50+ lines, used in 2+ files, or has own state/logic. Keep inline when: < 10 lines, single use, purely presentational.
|
||||
|
||||
## Hooks
|
||||
|
||||
```typescript
|
||||
interface UseFeatureProps { id: string }
|
||||
|
||||
export function useFeature({ id }: UseFeatureProps) {
|
||||
const idRef = useRef(id)
|
||||
const [data, setData] = useState<Data | null>(null)
|
||||
|
||||
useEffect(() => { idRef.current = id }, [id])
|
||||
|
||||
const fetchData = useCallback(async () => { ... }, []) // Empty deps when using refs
|
||||
|
||||
return { data, fetchData }
|
||||
}
|
||||
```
|
||||
|
||||
## Zustand Stores
|
||||
|
||||
Stores live in `stores/`. Complex stores split into `store.ts` + `types.ts`.
|
||||
|
||||
```typescript
|
||||
import { create } from 'zustand'
|
||||
import { devtools } from 'zustand/middleware'
|
||||
|
||||
const initialState = { items: [] as Item[] }
|
||||
|
||||
export const useFeatureStore = create<FeatureState>()(
|
||||
devtools(
|
||||
(set, get) => ({
|
||||
...initialState,
|
||||
setItems: (items) => set({ items }),
|
||||
reset: () => set(initialState),
|
||||
}),
|
||||
{ name: 'feature-store' }
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
Use `devtools` middleware. Use `persist` only when data should survive reload with `partialize` to persist only necessary state.
|
||||
|
||||
## React Query
|
||||
|
||||
All React Query hooks live in `hooks/queries/`.
|
||||
|
||||
```typescript
|
||||
export const entityKeys = {
|
||||
all: ['entity'] as const,
|
||||
list: (workspaceId?: string) => [...entityKeys.all, 'list', workspaceId ?? ''] as const,
|
||||
}
|
||||
|
||||
export function useEntityList(workspaceId?: string) {
|
||||
return useQuery({
|
||||
queryKey: entityKeys.list(workspaceId),
|
||||
queryFn: () => fetchEntities(workspaceId as string),
|
||||
enabled: Boolean(workspaceId),
|
||||
staleTime: 60 * 1000,
|
||||
placeholderData: keepPreviousData,
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
## Styling
|
||||
|
||||
Use Tailwind only, no inline styles. Use `cn()` from `@/lib/utils` for conditional classes.
|
||||
|
||||
```typescript
|
||||
<div className={cn('base-classes', isActive && 'active-classes')} />
|
||||
```
|
||||
|
||||
## EMCN Components
|
||||
|
||||
Import from `@/components/emcn`, never from subpaths (except CSS files). Use CVA when 2+ variants exist.
|
||||
|
||||
## Testing
|
||||
|
||||
- Write tests for new functionality when appropriate
|
||||
- Ensure existing tests pass before completing work
|
||||
- Follow the project's testing conventions
|
||||
Use Vitest. Test files: `feature.ts` → `feature.test.ts`
|
||||
|
||||
## Performance
|
||||
```typescript
|
||||
/**
|
||||
* @vitest-environment node
|
||||
*/
|
||||
|
||||
- Consider performance implications of your code
|
||||
- Avoid unnecessary re-renders in React components
|
||||
- Use appropriate data structures and algorithms
|
||||
- Profile and optimize when necessary
|
||||
// Mocks BEFORE imports
|
||||
vi.mock('@sim/db', () => ({ db: { select: vi.fn() } }))
|
||||
|
||||
// Imports AFTER mocks
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { createSession, loggerMock } from '@sim/testing'
|
||||
|
||||
describe('feature', () => {
|
||||
beforeEach(() => vi.clearAllMocks())
|
||||
it.concurrent('runs in parallel', () => { ... })
|
||||
})
|
||||
```
|
||||
|
||||
Use `@sim/testing` factories over manual test data.
|
||||
|
||||
## Utils Rules
|
||||
|
||||
- Never create `utils.ts` for single consumer - inline it
|
||||
- Create `utils.ts` when 2+ files need the same helper
|
||||
- Check existing sources in `lib/` before duplicating
|
||||
|
||||
## Adding Integrations
|
||||
|
||||
New integrations require: **Tools** → **Block** → **Icon** → (optional) **Trigger**
|
||||
|
||||
Always look up the service's API docs first.
|
||||
|
||||
### 1. Tools (`tools/{service}/`)
|
||||
|
||||
```
|
||||
tools/{service}/
|
||||
├── index.ts # Barrel export
|
||||
├── types.ts # Params/response types
|
||||
└── {action}.ts # Tool implementation
|
||||
```
|
||||
|
||||
**Tool structure:**
|
||||
```typescript
|
||||
export const serviceTool: ToolConfig<Params, Response> = {
|
||||
id: 'service_action',
|
||||
name: 'Service Action',
|
||||
description: '...',
|
||||
version: '1.0.0',
|
||||
oauth: { required: true, provider: 'service' },
|
||||
params: { /* ... */ },
|
||||
request: { url: '/api/tools/service/action', method: 'POST', ... },
|
||||
transformResponse: async (response) => { /* ... */ },
|
||||
outputs: { /* ... */ },
|
||||
}
|
||||
```
|
||||
|
||||
Register in `tools/registry.ts`.
|
||||
|
||||
### 2. Block (`blocks/blocks/{service}.ts`)
|
||||
|
||||
```typescript
|
||||
export const ServiceBlock: BlockConfig = {
|
||||
type: 'service',
|
||||
name: 'Service',
|
||||
description: '...',
|
||||
category: 'tools',
|
||||
bgColor: '#hexcolor',
|
||||
icon: ServiceIcon,
|
||||
subBlocks: [ /* see SubBlock Properties */ ],
|
||||
tools: { access: ['service_action'], config: { tool: (p) => `service_${p.operation}` } },
|
||||
inputs: { /* ... */ },
|
||||
outputs: { /* ... */ },
|
||||
}
|
||||
```
|
||||
|
||||
Register in `blocks/registry.ts` (alphabetically).
|
||||
|
||||
**SubBlock Properties:**
|
||||
```typescript
|
||||
{
|
||||
id: 'field', title: 'Label', type: 'short-input', placeholder: '...',
|
||||
required: true, // or condition object
|
||||
condition: { field: 'op', value: 'send' }, // show/hide
|
||||
dependsOn: ['credential'], // clear when dep changes
|
||||
mode: 'basic', // 'basic' | 'advanced' | 'both' | 'trigger'
|
||||
}
|
||||
```
|
||||
|
||||
**condition examples:**
|
||||
- `{ field: 'op', value: 'send' }` - show when op === 'send'
|
||||
- `{ field: 'op', value: ['a','b'] }` - show when op is 'a' OR 'b'
|
||||
- `{ field: 'op', value: 'x', not: true }` - show when op !== 'x'
|
||||
- `{ field: 'op', value: 'x', not: true, and: { field: 'type', value: 'dm', not: true } }` - complex
|
||||
|
||||
**dependsOn:** `['field']` or `{ all: ['a'], any: ['b', 'c'] }`
|
||||
|
||||
### 3. Icon (`components/icons.tsx`)
|
||||
|
||||
```typescript
|
||||
export function ServiceIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return <svg {...props}>/* SVG from brand assets */</svg>
|
||||
}
|
||||
```
|
||||
|
||||
### 4. Trigger (`triggers/{service}/`) - Optional
|
||||
|
||||
```
|
||||
triggers/{service}/
|
||||
├── index.ts # Barrel export
|
||||
├── webhook.ts # Webhook handler
|
||||
└── {event}.ts # Event-specific handlers
|
||||
```
|
||||
|
||||
Register in `triggers/registry.ts`.
|
||||
|
||||
### Integration Checklist
|
||||
|
||||
- [ ] Look up API docs
|
||||
- [ ] Create `tools/{service}/` with types and tools
|
||||
- [ ] Register tools in `tools/registry.ts`
|
||||
- [ ] Add icon to `components/icons.tsx`
|
||||
- [ ] Create block in `blocks/blocks/{service}.ts`
|
||||
- [ ] Register block in `blocks/registry.ts`
|
||||
- [ ] (Optional) Create and register triggers
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -187,7 +187,7 @@
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2025 Sim Studio, Inc.
|
||||
Copyright 2026 Sim Studio, Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
2
NOTICE
2
NOTICE
@@ -1,4 +1,4 @@
|
||||
Sim Studio
|
||||
Copyright 2025 Sim Studio
|
||||
Copyright 2026 Sim Studio
|
||||
|
||||
This product includes software developed for the Sim project.
|
||||
File diff suppressed because one or more lines are too long
@@ -28,6 +28,7 @@ import {
|
||||
ExaAIIcon,
|
||||
EyeIcon,
|
||||
FirecrawlIcon,
|
||||
FirefliesIcon,
|
||||
GithubIcon,
|
||||
GitLabIcon,
|
||||
GmailIcon,
|
||||
@@ -42,6 +43,7 @@ import {
|
||||
GoogleVaultIcon,
|
||||
GrafanaIcon,
|
||||
GrainIcon,
|
||||
GreptileIcon,
|
||||
HubspotIcon,
|
||||
HuggingFaceIcon,
|
||||
HunterIOIcon,
|
||||
@@ -50,12 +52,14 @@ import {
|
||||
IntercomIcon,
|
||||
JinaAIIcon,
|
||||
JiraIcon,
|
||||
JiraServiceManagementIcon,
|
||||
KalshiIcon,
|
||||
LinearIcon,
|
||||
LinkedInIcon,
|
||||
LinkupIcon,
|
||||
MailchimpIcon,
|
||||
MailgunIcon,
|
||||
MailServerIcon,
|
||||
Mem0Icon,
|
||||
MicrosoftExcelIcon,
|
||||
MicrosoftOneDriveIcon,
|
||||
@@ -144,6 +148,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
exa: ExaAIIcon,
|
||||
file: DocumentIcon,
|
||||
firecrawl: FirecrawlIcon,
|
||||
fireflies: FirefliesIcon,
|
||||
github: GithubIcon,
|
||||
gitlab: GitLabIcon,
|
||||
gmail: GmailIcon,
|
||||
@@ -158,14 +163,17 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
google_vault: GoogleVaultIcon,
|
||||
grafana: GrafanaIcon,
|
||||
grain: GrainIcon,
|
||||
greptile: GreptileIcon,
|
||||
hubspot: HubspotIcon,
|
||||
huggingface: HuggingFaceIcon,
|
||||
hunter: HunterIOIcon,
|
||||
image_generator: ImageIcon,
|
||||
imap: MailServerIcon,
|
||||
incidentio: IncidentioIcon,
|
||||
intercom: IntercomIcon,
|
||||
jina: JinaAIIcon,
|
||||
jira: JiraIcon,
|
||||
jira_service_management: JiraServiceManagementIcon,
|
||||
kalshi: KalshiIcon,
|
||||
knowledge: PackageSearchIcon,
|
||||
linear: LinearIcon,
|
||||
|
||||
89
apps/docs/content/docs/de/blocks/webhook.mdx
Normal file
89
apps/docs/content/docs/de/blocks/webhook.mdx
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: Webhook
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Webhook-Block sendet HTTP-POST-Anfragen an externe Webhook-Endpunkte mit automatischen Webhook-Headern und optionaler HMAC-Signierung.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Webhook-Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Webhook-URL
|
||||
|
||||
Der Ziel-Endpunkt für Ihre Webhook-Anfrage. Unterstützt sowohl statische URLs als auch dynamische Werte aus anderen Blöcken.
|
||||
|
||||
### Payload
|
||||
|
||||
JSON-Daten, die im Anfrage-Body gesendet werden. Verwenden Sie den KI-Zauberstab, um Payloads zu generieren oder auf Workflow-Variablen zu verweisen:
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "workflow.completed",
|
||||
"data": {
|
||||
"result": "<agent.content>",
|
||||
"timestamp": "<function.result>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Signierungsgeheimnis
|
||||
|
||||
Optionales Geheimnis für die HMAC-SHA256-Payload-Signierung. Wenn angegeben, wird ein `X-Webhook-Signature`Header hinzugefügt:
|
||||
|
||||
```
|
||||
X-Webhook-Signature: t=1704067200000,v1=5d41402abc4b2a76b9719d911017c592...
|
||||
```
|
||||
|
||||
Um Signaturen zu verifizieren, berechnen Sie `HMAC-SHA256(secret, "${timestamp}.${body}")` und vergleichen Sie mit dem `v1`Wert.
|
||||
|
||||
### Zusätzliche Header
|
||||
|
||||
Benutzerdefinierte Schlüssel-Wert-Header, die in die Anfrage aufgenommen werden. Diese überschreiben alle automatischen Header mit demselben Namen.
|
||||
|
||||
## Automatische Header
|
||||
|
||||
Jede Anfrage enthält automatisch diese Header:
|
||||
|
||||
| Header | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `Content-Type` | `application/json` |
|
||||
| `X-Webhook-Timestamp` | Unix-Zeitstempel in Millisekunden |
|
||||
| `X-Delivery-ID` | Eindeutige UUID für diese Zustellung |
|
||||
| `Idempotency-Key` | Identisch mit `X-Delivery-ID` zur Deduplizierung |
|
||||
|
||||
## Ausgaben
|
||||
|
||||
| Ausgabe | Typ | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| `data` | json | Antwort-Body vom Endpunkt |
|
||||
| `status` | number | HTTP-Statuscode |
|
||||
| `headers` | object | Antwort-Header |
|
||||
|
||||
## Beispiel-Anwendungsfälle
|
||||
|
||||
**Externe Dienste benachrichtigen** - Workflow-Ergebnisse an Slack, Discord oder benutzerdefinierte Endpunkte senden
|
||||
|
||||
```
|
||||
Agent → Function (format) → Webhook (notify)
|
||||
```
|
||||
|
||||
**Externe Workflows auslösen** - Prozesse in anderen Systemen starten, wenn Bedingungen erfüllt sind
|
||||
|
||||
```
|
||||
Condition (check) → Webhook (trigger) → Response
|
||||
```
|
||||
|
||||
<Callout>
|
||||
Der Webhook-Block verwendet immer POST. Für andere HTTP-Methoden oder mehr Kontrolle verwenden Sie den [API-Block](/blocks/api).
|
||||
</Callout>
|
||||
76
apps/docs/content/docs/de/enterprise/index.mdx
Normal file
76
apps/docs/content/docs/de/enterprise/index.mdx
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Enterprise
|
||||
description: Enterprise-Funktionen für Organisationen mit erweiterten
|
||||
Sicherheits- und Compliance-Anforderungen
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Sim Studio Enterprise bietet erweiterte Funktionen für Organisationen mit erhöhten Sicherheits-, Compliance- und Verwaltungsanforderungen.
|
||||
|
||||
---
|
||||
|
||||
## Bring Your Own Key (BYOK)
|
||||
|
||||
Verwenden Sie Ihre eigenen API-Schlüssel für KI-Modellanbieter anstelle der gehosteten Schlüssel von Sim Studio.
|
||||
|
||||
### Unterstützte Anbieter
|
||||
|
||||
| Anbieter | Verwendung |
|
||||
|----------|-------|
|
||||
| OpenAI | Knowledge Base-Embeddings, Agent-Block |
|
||||
| Anthropic | Agent-Block |
|
||||
| Google | Agent-Block |
|
||||
| Mistral | Knowledge Base OCR |
|
||||
|
||||
### Einrichtung
|
||||
|
||||
1. Navigieren Sie zu **Einstellungen** → **BYOK** in Ihrem Workspace
|
||||
2. Klicken Sie auf **Schlüssel hinzufügen** für Ihren Anbieter
|
||||
3. Geben Sie Ihren API-Schlüssel ein und speichern Sie
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK-Schlüssel werden verschlüsselt gespeichert. Nur Organisationsadministratoren und -inhaber können Schlüssel verwalten.
|
||||
</Callout>
|
||||
|
||||
Wenn konfiguriert, verwenden Workflows Ihren Schlüssel anstelle der gehosteten Schlüssel von Sim Studio. Bei Entfernung wechseln Workflows automatisch zu den gehosteten Schlüsseln zurück.
|
||||
|
||||
---
|
||||
|
||||
## Single Sign-On (SSO)
|
||||
|
||||
Enterprise-Authentifizierung mit SAML 2.0- und OIDC-Unterstützung für zentralisiertes Identitätsmanagement.
|
||||
|
||||
### Unterstützte Anbieter
|
||||
|
||||
- Okta
|
||||
- Azure AD / Entra ID
|
||||
- Google Workspace
|
||||
- OneLogin
|
||||
- Jeder SAML 2.0- oder OIDC-Anbieter
|
||||
|
||||
### Einrichtung
|
||||
|
||||
1. Navigieren Sie zu **Einstellungen** → **SSO** in Ihrem Workspace
|
||||
2. Wählen Sie Ihren Identitätsanbieter
|
||||
3. Konfigurieren Sie die Verbindung mithilfe der Metadaten Ihres IdP
|
||||
4. Aktivieren Sie SSO für Ihre Organisation
|
||||
|
||||
<Callout type="info">
|
||||
Sobald SSO aktiviert ist, authentifizieren sich Teammitglieder über Ihren Identitätsanbieter anstelle von E-Mail/Passwort.
|
||||
</Callout>
|
||||
|
||||
---
|
||||
|
||||
## Self-Hosted
|
||||
|
||||
Für selbst gehostete Bereitstellungen können Enterprise-Funktionen über Umgebungsvariablen aktiviert werden:
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Single Sign-On mit SAML/OIDC |
|
||||
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Polling-Gruppen für E-Mail-Trigger |
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK ist nur im gehosteten Sim Studio verfügbar. Selbst gehostete Deployments konfigurieren AI-Provider-Schlüssel direkt über Umgebungsvariablen.
|
||||
</Callout>
|
||||
@@ -49,40 +49,40 @@ Die Modellaufschlüsselung zeigt:
|
||||
|
||||
<Tabs items={['Hosted Models', 'Bring Your Own API Key']}>
|
||||
<Tab>
|
||||
**Gehostete Modelle** - Sim stellt API-Schlüssel mit einem 2-fachen Preismultiplikator bereit:
|
||||
**Hosted Models** - Sim bietet API-Schlüssel mit einem 1,4-fachen Preismultiplikator für Agent-Blöcke:
|
||||
|
||||
**OpenAI**
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Gehosteter Preis (Eingabe/Ausgabe) |
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Hosted-Preis (Eingabe/Ausgabe) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| GPT-5.1 | 1,25 $ / 10,00 $ | 2,50 $ / 20,00 $ |
|
||||
| GPT-5 | 1,25 $ / 10,00 $ | 2,50 $ / 20,00 $ |
|
||||
| GPT-5 Mini | 0,25 $ / 2,00 $ | 0,50 $ / 4,00 $ |
|
||||
| GPT-5 Nano | 0,05 $ / 0,40 $ | 0,10 $ / 0,80 $ |
|
||||
| GPT-4o | 2,50 $ / 10,00 $ | 5,00 $ / 20,00 $ |
|
||||
| GPT-4.1 | 2,00 $ / 8,00 $ | 4,00 $ / 16,00 $ |
|
||||
| GPT-4.1 Mini | 0,40 $ / 1,60 $ | 0,80 $ / 3,20 $ |
|
||||
| GPT-4.1 Nano | 0,10 $ / 0,40 $ | 0,20 $ / 0,80 $ |
|
||||
| o1 | 15,00 $ / 60,00 $ | 30,00 $ / 120,00 $ |
|
||||
| o3 | 2,00 $ / 8,00 $ | 4,00 $ / 16,00 $ |
|
||||
| o4 Mini | 1,10 $ / 4,40 $ | 2,20 $ / 8,80 $ |
|
||||
| GPT-5.1 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.35 / $2.80 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.07 / $0.56 |
|
||||
| GPT-4o | $2.50 / $10.00 | $3.50 / $14.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.56 / $2.24 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.14 / $0.56 |
|
||||
| o1 | $15.00 / $60.00 | $21.00 / $84.00 |
|
||||
| o3 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| o4 Mini | $1.10 / $4.40 | $1.54 / $6.16 |
|
||||
|
||||
**Anthropic**
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Gehosteter Preis (Eingabe/Ausgabe) |
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Hosted-Preis (Eingabe/Ausgabe) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Claude Opus 4.5 | 5,00 $ / 25,00 $ | 10,00 $ / 50,00 $ |
|
||||
| Claude Opus 4.1 | 15,00 $ / 75,00 $ | 30,00 $ / 150,00 $ |
|
||||
| Claude Sonnet 4.5 | 3,00 $ / 15,00 $ | 6,00 $ / 30,00 $ |
|
||||
| Claude Sonnet 4.0 | 3,00 $ / 15,00 $ | 6,00 $ / 30,00 $ |
|
||||
| Claude Haiku 4.5 | 1,00 $ / 5,00 $ | 2,00 $ / 10,00 $ |
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $7.00 / $35.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $21.00 / $105.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $1.40 / $7.00 |
|
||||
|
||||
**Google**
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Gehosteter Preis (Eingabe/Ausgabe) |
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Hosted-Preis (Eingabe/Ausgabe) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Gemini 3 Pro Preview | 2,00 $ / 12,00 $ | 4,00 $ / 24,00 $ |
|
||||
| Gemini 2.5 Pro | 1,25 $ / 10,00 $ | 2,50 $ / 20,00 $ |
|
||||
| Gemini 2.5 Flash | 0,30 $ / 2,50 $ | 0,60 $ / 5,00 $ |
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $2.80 / $16.80 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.42 / $3.50 |
|
||||
|
||||
*Der 2x-Multiplikator deckt Infrastruktur- und API-Verwaltungskosten ab.*
|
||||
*Der 1,4-fache Multiplikator deckt Infrastruktur- und API-Verwaltungskosten ab.*
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
|
||||
63
apps/docs/content/docs/de/keyboard-shortcuts/index.mdx
Normal file
63
apps/docs/content/docs/de/keyboard-shortcuts/index.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Tastaturkürzel
|
||||
description: Meistern Sie die Workflow-Arbeitsfläche mit Tastaturkürzeln und Maussteuerung
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Beschleunigen Sie die Erstellung Ihrer Workflows mit diesen Tastaturkürzeln und Maussteuerungen. Alle Tastenkombinationen funktionieren, wenn die Arbeitsfläche fokussiert ist (nicht beim Tippen in einem Eingabefeld).
|
||||
|
||||
<Callout type="info">
|
||||
**Mod** bezieht sich auf `Cmd` unter macOS und `Ctrl` unter Windows/Linux.
|
||||
</Callout>
|
||||
|
||||
## Arbeitsflächen-Steuerung
|
||||
|
||||
### Maussteuerung
|
||||
|
||||
| Aktion | Steuerung |
|
||||
|--------|---------|
|
||||
| Arbeitsfläche verschieben | Linksziehen auf leerer Fläche |
|
||||
| Arbeitsfläche verschieben | Scrollen oder Trackpad |
|
||||
| Mehrere Blöcke auswählen | Rechtsziehen zum Aufziehen eines Auswahlrahmens |
|
||||
| Block ziehen | Linksziehen auf Block-Kopfzeile |
|
||||
| Zur Auswahl hinzufügen | `Mod` + Klick auf Blöcke |
|
||||
|
||||
### Workflow-Aktionen
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `Enter` | Workflow ausführen (oder abbrechen, falls aktiv) |
|
||||
| `Mod` + `Z` | Rückgängig |
|
||||
| `Mod` + `Shift` + `Z` | Wiederholen |
|
||||
| `Mod` + `C` | Ausgewählte Blöcke kopieren |
|
||||
| `Mod` + `V` | Blöcke einfügen |
|
||||
| `Delete` oder `Backspace` | Ausgewählte Blöcke oder Verbindungen löschen |
|
||||
| `Shift` + `L` | Arbeitsfläche automatisch anordnen |
|
||||
|
||||
## Panel-Navigation
|
||||
|
||||
Diese Tastenkombinationen wechseln zwischen den Panel-Tabs auf der rechten Seite der Arbeitsfläche.
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `C` | Copilot-Tab fokussieren |
|
||||
| `T` | Toolbar-Tab fokussieren |
|
||||
| `E` | Editor-Tab fokussieren |
|
||||
| `Mod` + `F` | Toolbar-Suche fokussieren |
|
||||
|
||||
## Globale Navigation
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `K` | Suche öffnen |
|
||||
| `Mod` + `Shift` + `A` | Neuen Agenten-Workflow hinzufügen |
|
||||
| `Mod` + `Y` | Zu Vorlagen gehen |
|
||||
| `Mod` + `L` | Zu Logs gehen |
|
||||
|
||||
## Dienstprogramm
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `D` | Terminal-Konsole leeren |
|
||||
| `Mod` + `E` | Benachrichtigungen löschen |
|
||||
108
apps/docs/content/docs/de/mcp/deploy-workflows.mdx
Normal file
108
apps/docs/content/docs/de/mcp/deploy-workflows.mdx
Normal file
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Workflows als MCP bereitstellen
|
||||
description: Stellen Sie Ihre Workflows als MCP-Tools für externe KI-Assistenten
|
||||
und Anwendungen bereit
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Stellen Sie Ihre Workflows als MCP-Tools bereit, um sie für externe KI-Assistenten wie Claude Desktop, Cursor und andere MCP-kompatible Clients zugänglich zu machen. Dies verwandelt Ihre Workflows in aufrufbare Tools, die von überall aus aufgerufen werden können.
|
||||
|
||||
## MCP-Server erstellen und verwalten
|
||||
|
||||
MCP-Server gruppieren Ihre Workflow-Tools zusammen. Erstellen und verwalten Sie sie in den Workspace-Einstellungen:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-server.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navigieren Sie zu **Einstellungen → Bereitgestellte MCPs**
|
||||
2. Klicken Sie auf **Server erstellen**
|
||||
3. Geben Sie einen Namen und eine optionale Beschreibung ein
|
||||
4. Kopieren Sie die Server-URL zur Verwendung in Ihren MCP-Clients
|
||||
5. Zeigen Sie alle zum Server hinzugefügten Tools an und verwalten Sie diese
|
||||
|
||||
## Einen Workflow als Tool hinzufügen
|
||||
|
||||
Sobald Ihr Workflow bereitgestellt ist, können Sie ihn als MCP-Tool verfügbar machen:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-deploy-tool.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Öffnen Sie Ihren bereitgestellten Workflow
|
||||
2. Klicken Sie auf **Bereitstellen** und wechseln Sie zum Tab **MCP**
|
||||
3. Konfigurieren Sie den Tool-Namen und die Beschreibung
|
||||
4. Fügen Sie Beschreibungen für jeden Parameter hinzu (hilft der KI, Eingaben zu verstehen)
|
||||
5. Wählen Sie aus, zu welchen MCP-Servern es hinzugefügt werden soll
|
||||
|
||||
<Callout type="info">
|
||||
Der Workflow muss bereitgestellt sein, bevor er als MCP-Tool hinzugefügt werden kann.
|
||||
</Callout>
|
||||
|
||||
## Tool-Konfiguration
|
||||
|
||||
### Tool-Name
|
||||
Verwenden Sie Kleinbuchstaben, Zahlen und Unterstriche. Der Name sollte beschreibend sein und den MCP-Namenskonventionen folgen (z. B. `search_documents`, `send_email`).
|
||||
|
||||
### Beschreibung
|
||||
Schreiben Sie eine klare Beschreibung dessen, was das Tool tut. Dies hilft KI-Assistenten zu verstehen, wann das Tool verwendet werden soll.
|
||||
|
||||
### Parameter
|
||||
Die Eingabeformatfelder deines Workflows werden zu Tool-Parametern. Füge jedem Parameter Beschreibungen hinzu, um KI-Assistenten zu helfen, korrekte Werte bereitzustellen.
|
||||
|
||||
## MCP-Clients verbinden
|
||||
|
||||
Verwende die Server-URL aus den Einstellungen, um externe Anwendungen zu verbinden:
|
||||
|
||||
### Claude Desktop
|
||||
Füge dies zu deiner Claude Desktop-Konfiguration hinzu (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-sim-workflows": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "YOUR_SERVER_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
Füge die Server-URL in den MCP-Einstellungen von Cursor mit demselben mcp-remote-Muster hinzu.
|
||||
|
||||
<Callout type="warn">
|
||||
Füge deinen API-Key-Header (`X-API-Key`) für authentifizierten Zugriff hinzu, wenn du mcp-remote oder andere HTTP-basierte MCP-Transporte verwendest.
|
||||
</Callout>
|
||||
|
||||
## Server-Verwaltung
|
||||
|
||||
In der Server-Detailansicht unter **Einstellungen → Bereitgestellte MCPs** können Sie:
|
||||
|
||||
- **Tools anzeigen**: Alle Workflows sehen, die einem Server hinzugefügt wurden
|
||||
- **URL kopieren**: Die Server-URL für MCP-Clients abrufen
|
||||
- **Workflows hinzufügen**: Weitere bereitgestellte Workflows als Tools hinzufügen
|
||||
- **Tools entfernen**: Workflows vom Server entfernen
|
||||
- **Server löschen**: Den gesamten Server und alle seine Tools entfernen
|
||||
|
||||
## So funktioniert es
|
||||
|
||||
Wenn ein MCP-Client dein Tool aufruft:
|
||||
|
||||
1. Die Anfrage wird an deiner MCP-Server-URL empfangen
|
||||
2. Sim validiert die Anfrage und ordnet Parameter den Workflow-Eingaben zu
|
||||
3. Der bereitgestellte Workflow wird mit den angegebenen Eingaben ausgeführt
|
||||
4. Die Ergebnisse werden an den MCP-Client zurückgegeben
|
||||
|
||||
Workflows werden mit derselben Bereitstellungsversion wie API-Aufrufe ausgeführt, was konsistentes Verhalten gewährleistet.
|
||||
|
||||
## Berechtigungsanforderungen
|
||||
|
||||
| Aktion | Erforderliche Berechtigung |
|
||||
|--------|-------------------|
|
||||
| MCP-Server erstellen | **Admin** |
|
||||
| Workflows zu Servern hinzufügen | **Write** oder **Admin** |
|
||||
| MCP-Server anzeigen | **Read**, **Write** oder **Admin** |
|
||||
| MCP-Server löschen | **Admin** |
|
||||
@@ -1,8 +1,10 @@
|
||||
---
|
||||
title: MCP (Model Context Protocol)
|
||||
title: MCP-Tools verwenden
|
||||
description: Externe Tools und Dienste über das Model Context Protocol verbinden
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Das Model Context Protocol ([MCP](https://modelcontextprotocol.com/)) ermöglicht es Ihnen, externe Tools und Dienste über ein standardisiertes Protokoll zu verbinden, wodurch Sie APIs und Dienste direkt in Ihre Workflows integrieren können. Mit MCP können Sie die Fähigkeiten von Sim erweitern, indem Sie benutzerdefinierte Integrationen hinzufügen, die nahtlos mit Ihren Agenten und Workflows zusammenarbeiten.
|
||||
@@ -20,18 +22,12 @@ MCP ist ein offener Standard, der es KI-Assistenten ermöglicht, sich sicher mit
|
||||
|
||||
MCP-Server stellen Sammlungen von Tools bereit, die Ihre Agenten nutzen können. Konfigurieren Sie diese in den Workspace-Einstellungen:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-1.png"
|
||||
alt="Konfiguration eines MCP-Servers in den Einstellungen"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/settings-mcp-tools.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navigieren Sie zu Ihren Workspace-Einstellungen
|
||||
2. Gehen Sie zum Abschnitt **MCP-Server**
|
||||
2. Gehen Sie zum Abschnitt **Bereitgestellte MCPs**
|
||||
3. Klicken Sie auf **MCP-Server hinzufügen**
|
||||
4. Geben Sie die Server-Konfigurationsdetails ein
|
||||
5. Speichern Sie die Konfiguration
|
||||
@@ -40,14 +36,18 @@ MCP-Server stellen Sammlungen von Tools bereit, die Ihre Agenten nutzen können.
|
||||
Sie können MCP-Server auch direkt über die Symbolleiste in einem Agent-Block für eine schnelle Einrichtung konfigurieren.
|
||||
</Callout>
|
||||
|
||||
## Verwendung von MCP-Tools in Agenten
|
||||
### Tools aktualisieren
|
||||
|
||||
Sobald MCP-Server konfiguriert sind, werden ihre Tools innerhalb Ihrer Agent-Blöcke verfügbar:
|
||||
Klicken Sie bei einem Server auf **Aktualisieren**, um die neuesten Tool-Schemas abzurufen und alle Agent-Blöcke, die diese Tools verwenden, automatisch mit den neuen Parameterdefinitionen zu aktualisieren.
|
||||
|
||||
## MCP-Tools in Agents verwenden
|
||||
|
||||
Sobald MCP-Server konfiguriert sind, werden ihre Tools in Ihren Agent-Blöcken verfügbar:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-2.png"
|
||||
alt="Verwendung eines MCP-Tools im Agent-Block"
|
||||
alt="Using MCP Tool in Agent Block"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
@@ -55,25 +55,25 @@ Sobald MCP-Server konfiguriert sind, werden ihre Tools innerhalb Ihrer Agent-Bl
|
||||
</div>
|
||||
|
||||
1. Öffnen Sie einen **Agent**-Block
|
||||
2. Im Abschnitt **Tools** sehen Sie die verfügbaren MCP-Tools
|
||||
2. Im Bereich **Tools** sehen Sie die verfügbaren MCP-Tools
|
||||
3. Wählen Sie die Tools aus, die der Agent verwenden soll
|
||||
4. Der Agent kann nun während der Ausführung auf diese Tools zugreifen
|
||||
|
||||
## Eigenständiger MCP-Tool-Block
|
||||
|
||||
Für eine genauere Kontrolle können Sie den dedizierten MCP-Tool-Block verwenden, um bestimmte MCP-Tools auszuführen:
|
||||
Für eine präzisere Steuerung können Sie den dedizierten MCP-Tool-Block verwenden, um bestimmte MCP-Tools auszuführen:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-3.png"
|
||||
alt="Eigenständiger MCP-Tool-Block"
|
||||
alt="Standalone MCP Tool Block"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Der MCP-Tool-Block ermöglicht es Ihnen:
|
||||
Der MCP-Tool-Block ermöglicht Ihnen:
|
||||
- Jedes konfigurierte MCP-Tool direkt auszuführen
|
||||
- Spezifische Parameter an das Tool zu übergeben
|
||||
- Die Ausgabe des Tools in nachfolgenden Workflow-Schritten zu verwenden
|
||||
@@ -81,9 +81,9 @@ Der MCP-Tool-Block ermöglicht es Ihnen:
|
||||
|
||||
### Wann MCP-Tool vs. Agent verwenden
|
||||
|
||||
**Verwenden Sie einen Agenten mit MCP-Tools, wenn:**
|
||||
- Sie möchten, dass die KI entscheidet, welche Tools zu verwenden sind
|
||||
- Sie komplexe Überlegungen benötigen, wann und wie Tools eingesetzt werden sollen
|
||||
**Verwenden Sie Agent mit MCP-Tools, wenn:**
|
||||
- Sie möchten, dass die KI entscheidet, welche Tools verwendet werden
|
||||
- Sie komplexes Reasoning darüber benötigen, wann und wie Tools verwendet werden
|
||||
- Sie eine natürlichsprachliche Interaktion mit den Tools wünschen
|
||||
|
||||
**Verwenden Sie den MCP-Tool-Block, wenn:**
|
||||
@@ -93,7 +93,7 @@ Der MCP-Tool-Block ermöglicht es Ihnen:
|
||||
|
||||
## Berechtigungsanforderungen
|
||||
|
||||
MCP-Funktionalität erfordert spezifische Workspace-Berechtigungen:
|
||||
Die MCP-Funktionalität erfordert spezifische Workspace-Berechtigungen:
|
||||
|
||||
| Aktion | Erforderliche Berechtigung |
|
||||
|--------|-------------------|
|
||||
@@ -105,7 +105,7 @@ MCP-Funktionalität erfordert spezifische Workspace-Berechtigungen:
|
||||
## Häufige Anwendungsfälle
|
||||
|
||||
### Datenbankintegration
|
||||
Verbinden Sie sich mit Datenbanken, um Daten innerhalb Ihrer Workflows abzufragen, einzufügen oder zu aktualisieren.
|
||||
Verbinden Sie sich mit Datenbanken, um Daten in Ihren Workflows abzufragen, einzufügen oder zu aktualisieren.
|
||||
|
||||
### API-Integrationen
|
||||
Greifen Sie auf externe APIs und Webdienste zu, die keine integrierten Sim-Integrationen haben.
|
||||
@@ -113,8 +113,8 @@ Greifen Sie auf externe APIs und Webdienste zu, die keine integrierten Sim-Integ
|
||||
### Dateisystemzugriff
|
||||
Lesen, schreiben und bearbeiten Sie Dateien auf lokalen oder entfernten Dateisystemen.
|
||||
|
||||
### Benutzerdefinierte Geschäftslogik
|
||||
Führen Sie benutzerdefinierte Skripte oder Tools aus, die auf die Bedürfnisse Ihrer Organisation zugeschnitten sind.
|
||||
### Individuelle Geschäftslogik
|
||||
Führen Sie benutzerdefinierte Skripte oder Tools aus, die spezifisch für die Anforderungen Ihrer Organisation sind.
|
||||
|
||||
### Echtzeit-Datenzugriff
|
||||
Rufen Sie Live-Daten von externen Systemen während der Workflow-Ausführung ab.
|
||||
@@ -128,12 +128,12 @@ Rufen Sie Live-Daten von externen Systemen während der Workflow-Ausführung ab.
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
### MCP-Server erscheint nicht
|
||||
### MCP-Server wird nicht angezeigt
|
||||
- Überprüfen Sie, ob die Serverkonfiguration korrekt ist
|
||||
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben
|
||||
- Stellen Sie sicher, dass der MCP-Server läuft und zugänglich ist
|
||||
- Prüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen
|
||||
- Stellen Sie sicher, dass der MCP-Server läuft und erreichbar ist
|
||||
|
||||
### Fehler bei der Tool-Ausführung
|
||||
### Tool-Ausführungsfehler
|
||||
- Überprüfen Sie, ob die Tool-Parameter korrekt formatiert sind
|
||||
- Prüfen Sie die MCP-Server-Logs auf Fehlermeldungen
|
||||
- Stellen Sie sicher, dass die erforderliche Authentifizierung konfiguriert ist
|
||||
@@ -141,4 +141,4 @@ Rufen Sie Live-Daten von externen Systemen während der Workflow-Ausführung ab.
|
||||
### Berechtigungsfehler
|
||||
- Bestätigen Sie Ihre Workspace-Berechtigungsstufe
|
||||
- Prüfen Sie, ob der MCP-Server zusätzliche Authentifizierung erfordert
|
||||
- Stellen Sie sicher, dass der Server für Ihren Workspace richtig konfiguriert ist
|
||||
- Überprüfen Sie, ob der Server ordnungsgemäß für Ihren Workspace konfiguriert ist
|
||||
233
apps/docs/content/docs/de/tools/fireflies.mdx
Normal file
233
apps/docs/content/docs/de/tools/fireflies.mdx
Normal file
@@ -0,0 +1,233 @@
|
||||
---
|
||||
title: Fireflies
|
||||
description: Interagieren Sie mit Fireflies.ai-Besprechungstranskripten und -aufzeichnungen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="fireflies"
|
||||
color="#100730"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Fireflies.ai](https://fireflies.ai/) ist eine Plattform für Besprechungstranskription und -intelligenz, die sich in Sim integriert und es Ihren Agenten ermöglicht, direkt mit Besprechungsaufzeichnungen, Transkripten und Erkenntnissen über No-Code-Automatisierungen zu arbeiten.
|
||||
|
||||
Die Fireflies-Integration in Sim bietet Tools für:
|
||||
|
||||
- **Besprechungstranskripte auflisten:** Rufen Sie mehrere Besprechungen und deren Zusammenfassungsinformationen für Ihr Team oder Konto ab.
|
||||
- **Vollständige Transkriptdetails abrufen:** Greifen Sie auf detaillierte Transkripte zu, einschließlich Zusammenfassungen, Aktionspunkten, Themen und Teilnehmeranalysen für jede Besprechung.
|
||||
- **Audio oder Video hochladen:** Laden Sie Audio-/Videodateien hoch oder geben Sie URLs zur Transkription an – optional können Sie Sprache, Titel, Teilnehmer festlegen und automatisierte Besprechungsnotizen erhalten.
|
||||
- **Transkripte durchsuchen:** Finden Sie Besprechungen nach Stichwort, Teilnehmer, Moderator oder Zeitraum, um relevante Diskussionen schnell zu lokalisieren.
|
||||
- **Transkripte löschen:** Entfernen Sie bestimmte Besprechungstranskripte aus Ihrem Fireflies-Workspace.
|
||||
- **Soundbites (Bites) erstellen:** Extrahieren und markieren Sie wichtige Momente aus Transkripten als Audio- oder Videoclips.
|
||||
- **Workflows bei Transkriptionsabschluss auslösen:** Aktivieren Sie Sim-Workflows automatisch, wenn eine Fireflies-Besprechungstranskription abgeschlossen ist, mithilfe des bereitgestellten Webhook-Triggers – dies ermöglicht Echtzeit-Automatisierungen und Benachrichtigungen basierend auf neuen Besprechungsdaten.
|
||||
|
||||
Durch die Kombination dieser Funktionen können Sie Aktionen nach Besprechungen optimieren, strukturierte Erkenntnisse extrahieren, Benachrichtigungen automatisieren, Aufzeichnungen verwalten und benutzerdefinierte Workflows rund um die Anrufe Ihrer Organisation orchestrieren – alles sicher unter Verwendung Ihres API-Schlüssels und Ihrer Fireflies-Anmeldedaten.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Fireflies.ai in den Workflow. Verwalten Sie Besprechungstranskripte, fügen Sie Bots zu Live-Besprechungen hinzu, erstellen Sie Soundbites und mehr. Kann auch Workflows auslösen, wenn Transkriptionen abgeschlossen sind.
|
||||
|
||||
## Tools
|
||||
|
||||
### `fireflies_list_transcripts`
|
||||
|
||||
Meeting-Transkripte von Fireflies.ai mit optionaler Filterung auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `keyword` | string | Nein | Suchbegriff im Meeting-Titel oder Transkript |
|
||||
| `fromDate` | string | Nein | Transkripte ab diesem Datum filtern \(ISO 8601-Format\) |
|
||||
| `toDate` | string | Nein | Transkripte bis zu diesem Datum filtern \(ISO 8601-Format\) |
|
||||
| `hostEmail` | string | Nein | Nach E-Mail-Adresse des Meeting-Hosts filtern |
|
||||
| `participants` | string | Nein | Nach E-Mail-Adressen der Teilnehmer filtern \(durch Komma getrennt\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Transkripte \(max. 50\) |
|
||||
| `skip` | number | Nein | Anzahl der zu überspringenden Transkripte für Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcripts` | array | Liste der Transkripte |
|
||||
| `count` | number | Anzahl der zurückgegebenen Transkripte |
|
||||
|
||||
### `fireflies_get_transcript`
|
||||
|
||||
Ein einzelnes Transkript mit vollständigen Details einschließlich Zusammenfassung, Aktionspunkten und Analysen abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Ja | Die abzurufende Transkript-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | Das Transkript mit vollständigen Details |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
Ruft Benutzerinformationen von Fireflies.ai ab. Gibt den aktuellen Benutzer zurück, wenn keine ID angegeben ist.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
| `userId` | string | Nein | Abzurufende Benutzer-ID \(optional, Standardwert ist der Inhaber des API-Schlüssels\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Benutzerinformationen |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
Listet alle Benutzer in Ihrem Fireflies.ai-Team auf
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Liste der Teammitglieder |
|
||||
|
||||
### `fireflies_upload_audio`
|
||||
|
||||
Lädt eine Audiodatei-URL zur Transkription zu Fireflies.ai hoch
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
| `audioFile` | file | Nein | Audio-/Videodatei zur Transkription hochladen |
|
||||
| `audioUrl` | string | Nein | Öffentliche HTTPS-URL der Audio-/Videodatei \(MP3, MP4, WAV, M4A, OGG\) |
|
||||
| `title` | string | Nein | Titel für das Meeting/Transkript |
|
||||
| `webhook` | string | Nein | Webhook-URL zur Benachrichtigung, wenn die Transkription abgeschlossen ist |
|
||||
| `language` | string | Nein | Sprachcode für die Transkription \(z. B. „es" für Spanisch, „de" für Deutsch\) |
|
||||
| `attendees` | string | Nein | Teilnehmer im JSON-Format: \[\{"displayName": "Name", "email": "email@example.com"\}\] |
|
||||
| `clientReferenceId` | string | Nein | Benutzerdefinierte Referenz-ID zur Nachverfolgung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Upload erfolgreich war |
|
||||
| `title` | string | Titel des hochgeladenen Meetings |
|
||||
| `message` | string | Statusmeldung von Fireflies |
|
||||
|
||||
### `fireflies_delete_transcript`
|
||||
|
||||
Ein Transkript von Fireflies.ai löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Ja | Die zu löschende Transkript-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob das Transkript erfolgreich gelöscht wurde |
|
||||
|
||||
### `fireflies_add_to_live_meeting`
|
||||
|
||||
Fügen Sie den Fireflies.ai-Bot zu einem laufenden Meeting hinzu, um aufzuzeichnen und zu transkribieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `meetingLink` | string | Ja | Gültige Meeting-URL \(Zoom, Google Meet, Microsoft Teams, etc.\) |
|
||||
| `title` | string | Nein | Titel für das Meeting \(max. 256 Zeichen\) |
|
||||
| `meetingPassword` | string | Nein | Passwort für das Meeting, falls erforderlich \(max. 32 Zeichen\) |
|
||||
| `duration` | number | Nein | Meetingdauer in Minuten \(15–120, Standard: 60\) |
|
||||
| `language` | string | Nein | Sprachcode für die Transkription \(z. B. "en", "es", "de"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Bot erfolgreich zum Meeting hinzugefügt wurde |
|
||||
|
||||
### `fireflies_create_bite`
|
||||
|
||||
Erstellen Sie einen Soundbite/Highlight aus einem bestimmten Zeitbereich in einem Transkript
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Ja | ID des Transkripts, aus dem der Bite erstellt werden soll |
|
||||
| `startTime` | number | Ja | Startzeit des Bites in Sekunden |
|
||||
| `endTime` | number | Ja | Endzeit des Bites in Sekunden |
|
||||
| `name` | string | Nein | Name für den Bite \(max. 256 Zeichen\) |
|
||||
| `mediaType` | string | Nein | Medientyp: "video" oder "audio" |
|
||||
| `summary` | string | Nein | Zusammenfassung für den Bite \(max. 500 Zeichen\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | Details des erstellten Bites |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
Soundbites/Highlights von Fireflies.ai auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Nein | Bites für ein bestimmtes Transkript filtern |
|
||||
| `mine` | boolean | Nein | Nur Bites zurückgeben, die dem Besitzer des API-Schlüssels gehören \(Standard: true\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Bites \(max. 50\) |
|
||||
| `skip` | number | Nein | Anzahl der zu überspringenden Bites für die Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bites` | array | Liste der Bites/Soundbites |
|
||||
|
||||
### `fireflies_list_contacts`
|
||||
|
||||
Alle Kontakte aus Ihren Fireflies.ai-Meetings auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Liste der Kontakte aus Meetings |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `fireflies`
|
||||
@@ -1,231 +0,0 @@
|
||||
---
|
||||
title: Webhook
|
||||
description: Empfangen Sie Webhooks von jedem Dienst durch Konfiguration eines
|
||||
benutzerdefinierten Webhooks.
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
<BlockInfoCard
|
||||
type="generic_webhook"
|
||||
color="#10B981"
|
||||
/>
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Webhook-Block-Konfiguration"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Übersicht
|
||||
|
||||
Der generische Webhook-Block ermöglicht den Empfang von Webhooks von jedem externen Dienst. Dies ist ein flexibler Trigger, der jede JSON-Nutzlast verarbeiten kann und sich daher ideal für die Integration mit Diensten eignet, die keinen dedizierten Sim-Block haben.
|
||||
|
||||
## Grundlegende Verwendung
|
||||
|
||||
### Einfacher Durchleitungsmodus
|
||||
|
||||
Ohne ein definiertes Eingabeformat leitet der Webhook den gesamten Anforderungstext unverändert weiter:
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Test webhook trigger",
|
||||
"data": {
|
||||
"key": "value"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
Greifen Sie in nachgelagerten Blöcken auf die Daten zu mit:
|
||||
- `<webhook1.message>` → "Test webhook trigger"
|
||||
- `<webhook1.data.key>` → "value"
|
||||
|
||||
### Strukturiertes Eingabeformat (optional)
|
||||
|
||||
Definieren Sie ein Eingabeschema, um typisierte Felder zu erhalten und erweiterte Funktionen wie Datei-Uploads zu aktivieren:
|
||||
|
||||
**Konfiguration des Eingabeformats:**
|
||||
|
||||
```json
|
||||
[
|
||||
{ "name": "message", "type": "string" },
|
||||
{ "name": "priority", "type": "number" },
|
||||
{ "name": "documents", "type": "files" }
|
||||
]
|
||||
```
|
||||
|
||||
**Webhook-Anfrage:**
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Invoice submission",
|
||||
"priority": 1,
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:application/pdf;base64,JVBERi0xLjQK...",
|
||||
"name": "invoice.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## Datei-Uploads
|
||||
|
||||
### Unterstützte Dateiformate
|
||||
|
||||
Der Webhook unterstützt zwei Dateieingabeformate:
|
||||
|
||||
#### 1. Base64-kodierte Dateien
|
||||
Zum direkten Hochladen von Dateiinhalten:
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
|
||||
"name": "screenshot.png",
|
||||
"mime": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **Maximale Größe**: 20MB pro Datei
|
||||
- **Format**: Standard-Daten-URL mit Base64-Kodierung
|
||||
- **Speicherung**: Dateien werden in sicheren Ausführungsspeicher hochgeladen
|
||||
|
||||
#### 2. URL-Referenzen
|
||||
Zum Übergeben vorhandener Datei-URLs:
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "url",
|
||||
"data": "https://example.com/files/document.pdf",
|
||||
"name": "document.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Zugriff auf Dateien in nachgelagerten Blöcken
|
||||
|
||||
Dateien werden in `UserFile`Objekte mit den folgenden Eigenschaften verarbeitet:
|
||||
|
||||
```typescript
|
||||
{
|
||||
id: string, // Unique file identifier
|
||||
name: string, // Original filename
|
||||
url: string, // Presigned URL (valid for 5 minutes)
|
||||
size: number, // File size in bytes
|
||||
type: string, // MIME type
|
||||
key: string, // Storage key
|
||||
uploadedAt: string, // ISO timestamp
|
||||
expiresAt: string // ISO timestamp (5 minutes)
|
||||
}
|
||||
```
|
||||
|
||||
**Zugriff in Blöcken:**
|
||||
- `<webhook1.documents[0].url>` → Download-URL
|
||||
- `<webhook1.documents[0].name>` → "invoice.pdf"
|
||||
- `<webhook1.documents[0].size>` → 524288
|
||||
- `<webhook1.documents[0].type>` → "application/pdf"
|
||||
|
||||
### Vollständiges Datei-Upload-Beispiel
|
||||
|
||||
```bash
|
||||
# Create a base64-encoded file
|
||||
echo "Hello World" | base64
|
||||
# SGVsbG8gV29ybGQK
|
||||
|
||||
# Send webhook with file
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"subject": "Document for review",
|
||||
"attachments": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:text/plain;base64,SGVsbG8gV29ybGQK",
|
||||
"name": "sample.txt",
|
||||
"mime": "text/plain"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## Authentifizierung
|
||||
|
||||
### Authentifizierung konfigurieren (Optional)
|
||||
|
||||
In der Webhook-Konfiguration:
|
||||
1. Aktiviere "Authentifizierung erforderlich"
|
||||
2. Setze einen geheimen Token
|
||||
3. Wähle den Header-Typ:
|
||||
- **Benutzerdefinierter Header**: `X-Sim-Secret: your-token`
|
||||
- **Authorization Bearer**: `Authorization: Bearer your-token`
|
||||
|
||||
### Verwendung der Authentifizierung
|
||||
|
||||
```bash
|
||||
# With custom header
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
|
||||
# With bearer token
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Eingabeformat für Struktur verwenden**: Definiere ein Eingabeformat, wenn du das erwartete Schema kennst. Dies bietet:
|
||||
- Typvalidierung
|
||||
- Bessere Autovervollständigung im Editor
|
||||
- Datei-Upload-Funktionen
|
||||
|
||||
2. **Authentifizierung**: Aktiviere immer die Authentifizierung für Produktions-Webhooks, um unbefugten Zugriff zu verhindern.
|
||||
|
||||
3. **Dateigrößenbeschränkungen**: Halte Dateien unter 20 MB. Verwende für größere Dateien URL-Referenzen.
|
||||
|
||||
4. **Dateiablauf**: Heruntergeladene Dateien haben URLs mit einer Gültigkeit von 5 Minuten. Verarbeite sie umgehend oder speichere sie an anderer Stelle, wenn sie länger benötigt werden.
|
||||
|
||||
5. **Fehlerbehandlung**: Die Webhook-Verarbeitung erfolgt asynchron. Überprüfe die Ausführungsprotokolle auf Fehler.
|
||||
|
||||
6. **Testen**: Verwende die Schaltfläche "Webhook testen" im Editor, um deine Konfiguration vor der Bereitstellung zu validieren.
|
||||
|
||||
## Anwendungsfälle
|
||||
|
||||
- **Formularübermittlungen**: Empfange Daten von benutzerdefinierten Formularen mit Datei-Uploads
|
||||
- **Drittanbieter-Integrationen**: Verbinde mit Diensten, die Webhooks senden (Stripe, GitHub usw.)
|
||||
- **Dokumentenverarbeitung**: Akzeptiere Dokumente von externen Systemen zur Verarbeitung
|
||||
- **Ereignisbenachrichtigungen**: Empfange Ereignisdaten aus verschiedenen Quellen
|
||||
- **Benutzerdefinierte APIs**: Erstelle benutzerdefinierte API-Endpunkte für deine Anwendungen
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `triggers`
|
||||
- Typ: `generic_webhook`
|
||||
- **Dateiunterstützung**: Verfügbar über Eingabeformat-Konfiguration
|
||||
- **Maximale Dateigröße**: 20 MB pro Datei
|
||||
136
apps/docs/content/docs/de/tools/greptile.mdx
Normal file
136
apps/docs/content/docs/de/tools/greptile.mdx
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Greptile
|
||||
description: KI-gestützte Codebase-Suche und Fragen & Antworten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="greptile"
|
||||
color="#e5e5e5"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Greptile](https://greptile.com/) ist ein KI-gestütztes Entwicklertool zum Durchsuchen und Abfragen von Quellcode über ein oder mehrere Repositories hinweg. Greptile ermöglicht es Entwicklern, komplexe Fragen zur Codebase schnell in natürlicher Sprache zu beantworten, relevante Dateien oder Symbole zu finden und Einblicke in unbekannten oder Legacy-Code zu gewinnen.
|
||||
|
||||
Mit Greptile können Sie:
|
||||
|
||||
- **Komplexe Fragen zu Ihrer Codebase in natürlicher Sprache stellen**: Erhalten Sie KI-generierte Antworten zu Architektur, Verwendungsmustern oder spezifischen Implementierungen.
|
||||
- **Relevanten Code, Dateien oder Funktionen sofort finden**: Suchen Sie mit Schlüsselwörtern oder natürlichsprachlichen Abfragen und springen Sie direkt zu passenden Zeilen, Dateien oder Codeblöcken.
|
||||
- **Abhängigkeiten und Beziehungen verstehen**: Entdecken Sie, wo Funktionen aufgerufen werden, wie Module miteinander verbunden sind oder wo APIs in großen Codebasen verwendet werden.
|
||||
- **Onboarding und Code-Exploration beschleunigen**: Arbeiten Sie sich schnell in neue Projekte ein oder debuggen Sie knifflige Probleme, ohne tiefgreifenden Vorkontext zu benötigen.
|
||||
|
||||
Die Sim Greptile-Integration ermöglicht es Ihren KI-Agenten:
|
||||
|
||||
- Private und öffentliche Repositories mithilfe der fortschrittlichen Sprachmodelle von Greptile abzufragen und zu durchsuchen.
|
||||
- Kontextuell relevante Code-Snippets, Dateiverweise und Erklärungen abzurufen, um Code-Reviews, Dokumentation und Entwicklungsworkflows zu unterstützen.
|
||||
- Automatisierungen in Sim-Workflows basierend auf Such-/Abfrageergebnissen auszulösen oder Code-Intelligenz direkt in Ihre Prozesse einzubetten.
|
||||
|
||||
Egal, ob Sie die Produktivität von Entwicklern beschleunigen, Dokumentation automatisieren oder das Verständnis Ihres Teams für eine komplexe Codebase verbessern möchten – Greptile und Sim bieten nahtlosen Zugriff auf Code-Intelligenz und Suche, genau dort, wo Sie sie benötigen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Fragen Sie Codebasen mit natürlicher Sprache über Greptile ab und durchsuchen Sie sie. Erhalten Sie KI-generierte Antworten zu Ihrem Code, finden Sie relevante Dateien und verstehen Sie komplexe Codebasen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `greptile_query`
|
||||
|
||||
Durchsuchen Sie Repositories in natürlicher Sprache und erhalten Sie Antworten mit relevanten Code-Referenzen. Greptile nutzt KI, um Ihre Codebasis zu verstehen und Fragen zu beantworten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Frage in natürlicher Sprache zur Codebasis |
|
||||
| `repositories` | string | Ja | Kommagetrennte Liste von Repositories. Format: "github:branch:owner/repo" oder nur "owner/repo" \(Standard ist github:main\) |
|
||||
| `sessionId` | string | Nein | Sitzungs-ID für Gesprächskontinuität |
|
||||
| `genius` | boolean | Nein | Genius-Modus für gründlichere Analyse aktivieren \(langsamer, aber genauer\) |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf Repositories |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | KI-generierte Antwort auf die Anfrage |
|
||||
| `sources` | array | Relevante Code-Referenzen, die die Antwort unterstützen |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
Durchsuchen Sie Repositories in natürlicher Sprache und erhalten Sie relevante Code-Referenzen ohne Generierung einer Antwort. Nützlich zum Auffinden spezifischer Code-Stellen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Suchanfrage in natürlicher Sprache zum Auffinden relevanten Codes |
|
||||
| `repositories` | string | Ja | Kommagetrennte Liste von Repositories. Format: "github:branch:owner/repo" oder nur "owner/repo" \(Standard ist github:main\) |
|
||||
| `sessionId` | string | Nein | Sitzungs-ID für Gesprächskontinuität |
|
||||
| `genius` | boolean | Nein | Genius-Modus für gründlichere Suche aktivieren \(langsamer, aber genauer\) |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf Repositories |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | Relevante Code-Referenzen, die zur Suchanfrage passen |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
Übermitteln Sie ein Repository zur Indexierung durch Greptile. Die Indexierung muss abgeschlossen sein, bevor das Repository abgefragt werden kann. Kleine Repositories benötigen 3-5 Minuten, größere können über eine Stunde dauern.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Ja | Git-Remote-Typ: github oder gitlab |
|
||||
| `repository` | string | Ja | Repository im Format owner/repo \(z. B. "facebook/react"\) |
|
||||
| `branch` | string | Ja | Zu indexierender Branch \(z. B. "main" oder "master"\) |
|
||||
| `reload` | boolean | Nein | Neuindexierung erzwingen, auch wenn bereits indexiert |
|
||||
| `notify` | boolean | Nein | E-Mail-Benachrichtigung senden, wenn Indexierung abgeschlossen ist |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf Repository |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repositoryId` | string | Eindeutige Kennung für das indexierte Repository \(Format: remote:branch:owner/repo\) |
|
||||
| `statusEndpoint` | string | URL-Endpunkt zur Überprüfung des Indexierungsstatus |
|
||||
| `message` | string | Statusmeldung über den Indexierungsvorgang |
|
||||
|
||||
### `greptile_status`
|
||||
|
||||
Überprüfen Sie den Indexierungsstatus eines Repositories. Verwenden Sie dies, um zu verifizieren, ob ein Repository abfragebereit ist, oder um den Indexierungsfortschritt zu überwachen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Ja | Git-Remote-Typ: github oder gitlab |
|
||||
| `repository` | string | Ja | Repository im Format owner/repo \(z. B. "facebook/react"\) |
|
||||
| `branch` | string | Ja | Branch-Name \(z. B. "main" oder "master"\) |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf das Repository |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repository` | string | Repository-Name \(owner/repo\) |
|
||||
| `remote` | string | Git-Remote \(github/gitlab\) |
|
||||
| `branch` | string | Branch-Name |
|
||||
| `private` | boolean | Ob das Repository privat ist |
|
||||
| `status` | string | Indexierungsstatus: submitted, cloning, processing, completed oder failed |
|
||||
| `filesProcessed` | number | Anzahl der bisher verarbeiteten Dateien |
|
||||
| `numFiles` | number | Gesamtanzahl der Dateien im Repository |
|
||||
| `sampleQuestions` | array | Beispielfragen für das indexierte Repository |
|
||||
| `sha` | string | Git-Commit-SHA der indexierten Version |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `greptile`
|
||||
36
apps/docs/content/docs/de/tools/imap.mdx
Normal file
36
apps/docs/content/docs/de/tools/imap.mdx
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: IMAP-E-Mail
|
||||
description: Workflows auslösen, wenn neue E-Mails über IMAP eintreffen
|
||||
(funktioniert mit jedem E-Mail-Anbieter)
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="imap"
|
||||
color="#6366F1"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
Der IMAP-E-Mail-Trigger ermöglicht es Ihren Sim-Workflows, automatisch zu starten, sobald eine neue E-Mail in einem Postfach empfangen wird, das das IMAP-Protokoll unterstützt. Dies funktioniert mit Gmail, Outlook, Yahoo und den meisten anderen E-Mail-Anbietern.
|
||||
|
||||
Mit dem IMAP-Trigger können Sie:
|
||||
|
||||
- **E-Mail-Verarbeitung automatisieren**: Starten Sie Workflows in Echtzeit, wenn neue Nachrichten in Ihrem Posteingang eintreffen.
|
||||
- **Nach Absender, Betreff oder Ordner filtern**: Konfigurieren Sie Ihren Trigger so, dass er nur auf E-Mails reagiert, die bestimmte Bedingungen erfüllen.
|
||||
- **Anhänge extrahieren und verarbeiten**: Laden Sie Dateianhänge automatisch herunter und verwenden Sie sie in Ihren automatisierten Abläufen.
|
||||
- **E-Mail-Inhalte parsen und verwenden**: Greifen Sie auf Betreff, Absender, Empfänger, vollständigen Text und andere Metadaten in nachfolgenden Workflow-Schritten zu.
|
||||
- **Mit jedem E-Mail-Anbieter integrieren**: Funktioniert mit jedem Dienst, der standardmäßigen IMAP-Zugriff bietet, ohne Vendor-Lock-in.
|
||||
- **Bei ungelesenen, markierten oder benutzerdefinierten Kriterien auslösen**: Richten Sie erweiterte Filter für die Arten von E-Mails ein, die Ihre Workflows starten.
|
||||
|
||||
Mit Sim gibt Ihnen die IMAP-Integration die Möglichkeit, E-Mails in eine handlungsfähige Automatisierungsquelle zu verwandeln. Reagieren Sie auf Kundenanfragen, verarbeiten Sie Benachrichtigungen, starten Sie Daten-Pipelines und mehr – direkt aus Ihrem E-Mail-Posteingang, ohne manuelles Eingreifen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Verbinden Sie sich über das IMAP-Protokoll mit jedem E-Mail-Server, um Workflows auszulösen, wenn neue E-Mails empfangen werden. Unterstützt Gmail, Outlook, Yahoo und jeden anderen IMAP-kompatiblen E-Mail-Anbieter.
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `triggers`
|
||||
- Typ: `imap`
|
||||
486
apps/docs/content/docs/de/tools/jira_service_management.mdx
Normal file
486
apps/docs/content/docs/de/tools/jira_service_management.mdx
Normal file
@@ -0,0 +1,486 @@
|
||||
---
|
||||
title: Jira Service Management
|
||||
description: Interagieren Sie mit Jira Service Management
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="jira_service_management"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Jira Service Management für IT-Service-Management. Erstellen und verwalten Sie Service-Anfragen, bearbeiten Sie Kunden und Organisationen, verfolgen Sie SLAs und verwalten Sie Warteschlangen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `jsm_get_service_desks`
|
||||
|
||||
Alle Service Desks aus Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `serviceDesks` | json | Array von Service Desks |
|
||||
| `total` | number | Gesamtanzahl der Service Desks |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_get_request_types`
|
||||
|
||||
Anfragetypen für einen Service Desk in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service Desk ID, für die Anfragetypen abgerufen werden sollen |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `requestTypes` | json | Array von Anfragetypen |
|
||||
| `total` | number | Gesamtanzahl der Anfragetypen |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_create_request`
|
||||
|
||||
Erstellen Sie eine neue Serviceanfrage in Jira Service Management
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service-Desk-ID, in der die Anfrage erstellt werden soll |
|
||||
| `requestTypeId` | string | Ja | Anfragetyp-ID für die neue Anfrage |
|
||||
| `summary` | string | Ja | Zusammenfassung/Titel für die Serviceanfrage |
|
||||
| `description` | string | Nein | Beschreibung für die Serviceanfrage |
|
||||
| `raiseOnBehalfOf` | string | Nein | Konto-ID des Kunden, für den die Anfrage im Namen gestellt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueId` | string | Erstellte Anfrage-Issue-ID |
|
||||
| `issueKey` | string | Erstellter Anfrage-Issue-Key \(z. B. SD-123\) |
|
||||
| `requestTypeId` | string | Anfragetyp-ID |
|
||||
| `serviceDeskId` | string | Service-Desk-ID |
|
||||
| `success` | boolean | Ob die Anfrage erfolgreich erstellt wurde |
|
||||
| `url` | string | URL zur erstellten Anfrage |
|
||||
|
||||
### `jsm_get_request`
|
||||
|
||||
Eine einzelne Serviceanfrage aus Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
|
||||
### `jsm_get_requests`
|
||||
|
||||
Mehrere Serviceanfragen aus Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `serviceDeskId` | string | Nein | Nach Service-Desk-ID filtern |
|
||||
| `requestOwnership` | string | Nein | Nach Eigentümerschaft filtern: OWNED_REQUESTS, PARTICIPATED_REQUESTS, ORGANIZATION, ALL_REQUESTS |
|
||||
| `requestStatus` | string | Nein | Nach Status filtern: OPEN, CLOSED, ALL |
|
||||
| `searchTerm` | string | Nein | Suchbegriff zum Filtern von Anfragen |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `requests` | json | Array von Serviceanfragen |
|
||||
| `total` | number | Gesamtanzahl der Anfragen |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_add_comment`
|
||||
|
||||
Einen Kommentar (öffentlich oder intern) zu einer Serviceanfrage in Jira Service Management hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `body` | string | Ja | Kommentartext |
|
||||
| `isPublic` | boolean | Ja | Ob der Kommentar öffentlich \(für Kunden sichtbar\) oder intern ist |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Vorgangs-ID oder -Schlüssel |
|
||||
| `commentId` | string | ID des erstellten Kommentars |
|
||||
| `body` | string | Kommentartext |
|
||||
| `isPublic` | boolean | Ob der Kommentar öffentlich ist |
|
||||
| `success` | boolean | Ob der Kommentar erfolgreich hinzugefügt wurde |
|
||||
|
||||
### `jsm_get_comments`
|
||||
|
||||
Kommentare für eine Serviceanfrage in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `isPublic` | boolean | Nein | Nur öffentliche Kommentare filtern |
|
||||
| `internal` | boolean | Nein | Nur interne Kommentare filtern |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Vorgangs-ID oder -Schlüssel |
|
||||
| `comments` | json | Array von Kommentaren |
|
||||
| `total` | number | Gesamtanzahl der Kommentare |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_get_customers`
|
||||
|
||||
Kunden für einen Service Desk in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service-Desk-ID, für die Kunden abgerufen werden sollen |
|
||||
| `query` | string | Nein | Suchabfrage zum Filtern von Kunden |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `customers` | json | Array von Kunden |
|
||||
| `total` | number | Gesamtanzahl der Kunden |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_add_customer`
|
||||
|
||||
Kunden zu einem Service Desk in Jira Service Management hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service-Desk-ID, zu der Kunden hinzugefügt werden sollen |
|
||||
| `emails` | string | Ja | Kommagetrennte E-Mail-Adressen, die als Kunden hinzugefügt werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `serviceDeskId` | string | Service-Desk-ID |
|
||||
| `success` | boolean | Ob Kunden erfolgreich hinzugefügt wurden |
|
||||
|
||||
### `jsm_get_organizations`
|
||||
|
||||
Organisationen für einen Service Desk in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service-Desk-ID, für die Organisationen abgerufen werden sollen |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `organizations` | json | Array von Organisationen |
|
||||
| `total` | number | Gesamtanzahl der Organisationen |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_create_organization`
|
||||
|
||||
Eine neue Organisation in Jira Service Management erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `name` | string | Ja | Name der zu erstellenden Organisation |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `organizationId` | string | ID der erstellten Organisation |
|
||||
| `name` | string | Name der erstellten Organisation |
|
||||
| `success` | boolean | Ob die Operation erfolgreich war |
|
||||
|
||||
### `jsm_add_organization`
|
||||
|
||||
Eine Organisation zu einem Service Desk in Jira Service Management hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service Desk ID, zu der die Organisation hinzugefügt werden soll |
|
||||
| `organizationId` | string | Ja | Organisations-ID, die zum Service Desk hinzugefügt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `serviceDeskId` | string | Service Desk ID |
|
||||
| `organizationId` | string | Hinzugefügte Organisations-ID |
|
||||
| `success` | boolean | Ob die Operation erfolgreich war |
|
||||
|
||||
### `jsm_get_queues`
|
||||
|
||||
Warteschlangen für einen Service Desk in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `serviceDeskId` | string | Ja | Service Desk ID, für die Warteschlangen abgerufen werden sollen |
|
||||
| `includeCount` | boolean | Nein | Vorgangsanzahl für jede Warteschlange einbeziehen |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `queues` | json | Array von Warteschlangen |
|
||||
| `total` | number | Gesamtanzahl der Warteschlangen |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_get_sla`
|
||||
|
||||
SLA-Informationen für eine Serviceanfrage in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Vorgangs-ID oder -Schlüssel |
|
||||
| `slas` | json | Array mit SLA-Informationen |
|
||||
| `total` | number | Gesamtanzahl der SLAs |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_get_transitions`
|
||||
|
||||
Verfügbare Übergänge für eine Serviceanfrage in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Vorgangs-ID oder -Schlüssel |
|
||||
| `transitions` | json | Array mit verfügbaren Übergängen |
|
||||
|
||||
### `jsm_transition_request`
|
||||
|
||||
Eine Serviceanfrage in einen neuen Status in Jira Service Management überführen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `transitionId` | string | Ja | Anzuwendende Übergangs-ID |
|
||||
| `comment` | string | Nein | Optionaler Kommentar, der während des Übergangs hinzugefügt werden kann |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Issue-ID oder -Schlüssel |
|
||||
| `transitionId` | string | Angewendete Übergangs-ID |
|
||||
| `success` | boolean | Ob der Übergang erfolgreich war |
|
||||
|
||||
### `jsm_get_participants`
|
||||
|
||||
Teilnehmer für eine Anfrage in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Issue-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Issue-ID oder -Schlüssel |
|
||||
| `participants` | json | Array von Teilnehmern |
|
||||
| `total` | number | Gesamtanzahl der Teilnehmer |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_add_participants`
|
||||
|
||||
Teilnehmer zu einer Anfrage in Jira Service Management hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Issue-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `accountIds` | string | Ja | Durch Kommas getrennte Account-IDs, die als Teilnehmer hinzugefügt werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Vorgangs-ID oder -Schlüssel |
|
||||
| `participants` | json | Array der hinzugefügten Teilnehmer |
|
||||
| `success` | boolean | Ob die Operation erfolgreich war |
|
||||
|
||||
### `jsm_get_approvals`
|
||||
|
||||
Genehmigungen für eine Anfrage in Jira Service Management abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `start` | number | Nein | Startindex für Paginierung \(Standard: 0\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Vorgangs-ID oder -Schlüssel |
|
||||
| `approvals` | json | Array der Genehmigungen |
|
||||
| `total` | number | Gesamtanzahl der Genehmigungen |
|
||||
| `isLastPage` | boolean | Ob dies die letzte Seite ist |
|
||||
|
||||
### `jsm_answer_approval`
|
||||
|
||||
Eine Genehmigungsanfrage in Jira Service Management genehmigen oder ablehnen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Jira-Domain \(z. B. ihrfirma.atlassian.net\) |
|
||||
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz |
|
||||
| `issueIdOrKey` | string | Ja | Vorgangs-ID oder -Schlüssel \(z. B. SD-123\) |
|
||||
| `approvalId` | string | Ja | Genehmigungs-ID zur Beantwortung |
|
||||
| `decision` | string | Ja | Entscheidung: "approve" oder "decline" |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Operation |
|
||||
| `issueIdOrKey` | string | Issue-ID oder -Schlüssel |
|
||||
| `approvalId` | string | Genehmigungs-ID |
|
||||
| `decision` | string | Getroffene Entscheidung \(genehmigen/ablehnen\) |
|
||||
| `success` | boolean | Ob die Operation erfolgreich war |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `jira_service_management`
|
||||
@@ -123,8 +123,6 @@ Kontostand und Portfoliowert von Kalshi abrufen
|
||||
| --------- | ---- | ----------- |
|
||||
| `balance` | number | Kontostand in Cent |
|
||||
| `portfolioValue` | number | Portfoliowert in Cent |
|
||||
| `balanceDollars` | number | Kontostand in Dollar |
|
||||
| `portfolioValueDollars` | number | Portfoliowert in Dollar |
|
||||
|
||||
### `kalshi_get_positions`
|
||||
|
||||
|
||||
@@ -47,10 +47,11 @@ Daten aus einer Supabase-Tabelle abfragen
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z. B. jdrkgepadsdopsntdlom\) |
|
||||
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Ja | Der Name der abzufragenden Supabase-Tabelle |
|
||||
| `schema` | string | Nein | Datenbankschema für die Abfrage \(Standard: public\). Verwenden Sie dies, um auf Tabellen in anderen Schemas zuzugreifen. |
|
||||
| `filter` | string | Nein | PostgREST-Filter \(z. B. "id=eq.123"\) |
|
||||
| `select` | string | Nein | Zurückzugebende Spalten \(durch Komma getrennt\). Standard ist * \(alle Spalten\) |
|
||||
| `filter` | string | Nein | PostgREST-Filter \(z.B. "id=eq.123"\) |
|
||||
| `orderBy` | string | Nein | Spalte zum Sortieren \(fügen Sie DESC für absteigende Sortierung hinzu\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Zeilen |
|
||||
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
|
||||
@@ -91,10 +92,11 @@ Eine einzelne Zeile aus einer Supabase-Tabelle basierend auf Filterkriterien abr
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z. B. jdrkgepadsdopsntdlom\) |
|
||||
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Ja | Der Name der abzufragenden Supabase-Tabelle |
|
||||
| `schema` | string | Nein | Datenbankschema für die Abfrage \(Standard: public\). Verwenden Sie dies, um auf Tabellen in anderen Schemas zuzugreifen. |
|
||||
| `filter` | string | Ja | PostgREST-Filter zum Auffinden der spezifischen Zeile \(z. B. "id=eq.123"\) |
|
||||
| `select` | string | Nein | Zurückzugebende Spalten \(durch Komma getrennt\). Standard ist * \(alle Spalten\) |
|
||||
| `filter` | string | Ja | PostgREST-Filter zum Finden der spezifischen Zeile \(z.B. "id=eq.123"\) |
|
||||
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
@@ -22,7 +22,7 @@ Verwende den Start-Block für alles, was aus dem Editor, deploy-to-API oder depl
|
||||
|
||||
<Cards>
|
||||
<Card title="Start" href="/triggers/start">
|
||||
Einheitlicher Einstiegspunkt, der Editor-Ausführungen, API-Bereitstellungen und Chat-Bereitstellungen unterstützt
|
||||
Einheitlicher Einstiegspunkt, der Editor-Ausführungen, API-Deployments und Chat-Deployments unterstützt
|
||||
</Card>
|
||||
<Card title="Webhook" href="/triggers/webhook">
|
||||
Externe Webhook-Payloads empfangen
|
||||
@@ -33,6 +33,9 @@ Verwende den Start-Block für alles, was aus dem Editor, deploy-to-API oder depl
|
||||
<Card title="RSS Feed" href="/triggers/rss">
|
||||
RSS- und Atom-Feeds auf neue Inhalte überwachen
|
||||
</Card>
|
||||
<Card title="Email Polling Groups" href="#email-polling-groups">
|
||||
Team-Gmail- und Outlook-Postfächer überwachen
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Schneller Vergleich
|
||||
@@ -43,6 +46,7 @@ Verwende den Start-Block für alles, was aus dem Editor, deploy-to-API oder depl
|
||||
| **Schedule** | Timer, der im Schedule-Block verwaltet wird |
|
||||
| **Webhook** | Bei eingehender HTTP-Anfrage |
|
||||
| **RSS Feed** | Neues Element im Feed veröffentlicht |
|
||||
| **Email Polling Groups** | Neue E-Mail in Team-Gmail- oder Outlook-Postfächern empfangen |
|
||||
|
||||
> Der Start-Block stellt immer `input`, `conversationId` und `files` Felder bereit. Füge benutzerdefinierte Felder zum Eingabeformat für zusätzliche strukturierte Daten hinzu.
|
||||
|
||||
@@ -65,3 +69,25 @@ Wenn du im Editor auf **Run** klickst, wählt Sim automatisch aus, welcher Trigg
|
||||
Wenn dein Workflow mehrere Trigger hat, wird der Trigger mit der höchsten Priorität ausgeführt. Wenn du beispielsweise sowohl einen Start-Block als auch einen Webhook-Trigger hast, wird beim Klicken auf Run der Start-Block ausgeführt.
|
||||
|
||||
**Externe Auslöser mit Mock-Payloads**: Wenn externe Auslöser (Webhooks und Integrationen) manuell ausgeführt werden, generiert Sim automatisch Mock-Payloads basierend auf der erwarteten Datenstruktur des Auslösers. Dies stellt sicher, dass nachgelagerte Blöcke während des Testens Variablen korrekt auflösen können.
|
||||
|
||||
## E-Mail-Polling-Gruppen
|
||||
|
||||
Polling-Gruppen ermöglichen es Ihnen, die Gmail- oder Outlook-Postfächer mehrerer Teammitglieder mit einem einzigen Trigger zu überwachen. Erfordert einen Team- oder Enterprise-Plan.
|
||||
|
||||
**Erstellen einer Polling-Gruppe** (Admin/Owner)
|
||||
|
||||
1. Gehen Sie zu **Einstellungen → E-Mail-Polling**
|
||||
2. Klicken Sie auf **Erstellen** und wählen Sie Gmail oder Outlook
|
||||
3. Geben Sie einen Namen für die Gruppe ein
|
||||
|
||||
**Mitglieder einladen**
|
||||
|
||||
1. Klicken Sie auf **Mitglieder hinzufügen** bei Ihrer Polling-Gruppe
|
||||
2. Geben Sie E-Mail-Adressen ein (durch Komma oder Zeilenumbruch getrennt oder ziehen Sie eine CSV-Datei per Drag & Drop)
|
||||
3. Klicken Sie auf **Einladungen senden**
|
||||
|
||||
Eingeladene erhalten eine E-Mail mit einem Link, um ihr Konto zu verbinden. Sobald die Verbindung hergestellt ist, wird ihr Postfach automatisch in die Polling-Gruppe aufgenommen. Eingeladene müssen keine Mitglieder Ihrer Sim-Organisation sein.
|
||||
|
||||
**Verwendung in einem Workflow**
|
||||
|
||||
Wählen Sie beim Konfigurieren eines E-Mail-Triggers Ihre Polling-Gruppe aus dem Dropdown-Menü für Anmeldeinformationen anstelle eines einzelnen Kontos aus. Das System erstellt Webhooks für jedes Mitglied und leitet alle E-Mails durch Ihren Workflow.
|
||||
|
||||
@@ -15,7 +15,7 @@ Der generische Webhook-Block erstellt einen flexiblen Endpunkt, der beliebige Pa
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
src="/static/blocks/webhook-trigger.png"
|
||||
alt="Generische Webhook-Konfiguration"
|
||||
width={500}
|
||||
height={400}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"router",
|
||||
"variables",
|
||||
"wait",
|
||||
"webhook",
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
The Router block uses AI to intelligently route workflows based on content analysis. Unlike Condition blocks that use simple rules, Routers understand context and intent.
|
||||
The Router block uses AI to intelligently route workflows based on content analysis. Unlike Condition blocks that use simple rules, Routers understand context and intent. Each route you define creates a separate output port, allowing you to connect different paths to different downstream blocks.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/router.png"
|
||||
alt="Router Block with Multiple Paths"
|
||||
alt="Router Block with Multiple Route Ports"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
@@ -32,21 +32,23 @@ The Router block uses AI to intelligently route workflows based on content analy
|
||||
|
||||
## Configuration Options
|
||||
|
||||
### Content/Prompt
|
||||
### Context
|
||||
|
||||
The content or prompt that the Router will analyze to make routing decisions. This can be:
|
||||
The context that the Router will analyze to make routing decisions. This is the input data that gets evaluated against your route descriptions. It can be:
|
||||
|
||||
- A direct user query or input
|
||||
- Output from a previous block
|
||||
- A system-generated message
|
||||
- Any text content that needs intelligent routing
|
||||
|
||||
### Target Blocks
|
||||
### Routes
|
||||
|
||||
The possible destination blocks that the Router can select from. The Router will automatically detect connected blocks, but you can also:
|
||||
Define the possible paths that the Router can take. Each route consists of:
|
||||
|
||||
- Customize the descriptions of target blocks to improve routing accuracy
|
||||
- Specify routing criteria for each target block
|
||||
- Exclude certain blocks from being considered as routing targets
|
||||
- **Route Title**: A name for the route (e.g., "Sales", "Support", "Technical")
|
||||
- **Route Description**: A clear description of when this route should be selected (e.g., "Route here when the query is about pricing, purchasing, or sales inquiries")
|
||||
|
||||
Each route you add creates a **separate output port** on the Router block. Connect each port to the appropriate downstream block for that route.
|
||||
|
||||
### Model Selection
|
||||
|
||||
@@ -66,8 +68,9 @@ Your API key for the selected LLM provider. This is securely stored and used for
|
||||
|
||||
## Outputs
|
||||
|
||||
- **`<router.prompt>`**: Summary of the routing prompt
|
||||
- **`<router.selected_path>`**: Chosen destination block
|
||||
- **`<router.context>`**: The context that was analyzed
|
||||
- **`<router.selectedRoute>`**: The ID of the selected route
|
||||
- **`<router.selected_path>`**: Details of the chosen destination block
|
||||
- **`<router.tokens>`**: Token usage statistics
|
||||
- **`<router.cost>`**: Estimated routing cost
|
||||
- **`<router.model>`**: Model used for decision-making
|
||||
@@ -75,26 +78,36 @@ Your API key for the selected LLM provider. This is securely stored and used for
|
||||
## Example Use Cases
|
||||
|
||||
**Customer Support Triage** - Route tickets to specialized departments
|
||||
|
||||
```
|
||||
Input (Ticket) → Router → Agent (Engineering) or Agent (Finance)
|
||||
Input (Ticket) → Router
|
||||
├── [Sales Route] → Agent (Sales Team)
|
||||
├── [Technical Route] → Agent (Engineering)
|
||||
└── [Billing Route] → Agent (Finance)
|
||||
```
|
||||
|
||||
**Content Classification** - Classify and route user-generated content
|
||||
|
||||
```
|
||||
Input (Feedback) → Router → Workflow (Product) or Workflow (Technical)
|
||||
Input (Feedback) → Router
|
||||
├── [Product Feedback] → Workflow (Product Team)
|
||||
└── [Bug Report] → Workflow (Technical Team)
|
||||
```
|
||||
|
||||
**Lead Qualification** - Route leads based on qualification criteria
|
||||
```
|
||||
Input (Lead) → Router → Agent (Enterprise Sales) or Workflow (Self-serve)
|
||||
```
|
||||
|
||||
```
|
||||
Input (Lead) → Router
|
||||
├── [Enterprise] → Agent (Enterprise Sales)
|
||||
└── [Self-serve] → Workflow (Automated Onboarding)
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Provide clear target descriptions**: Help the Router understand when to select each destination with specific, detailed descriptions
|
||||
- **Use specific routing criteria**: Define clear conditions and examples for each path to improve accuracy
|
||||
- **Implement fallback paths**: Connect a default destination for when no specific path is appropriate
|
||||
- **Test with diverse inputs**: Ensure the Router handles various input types, edge cases, and unexpected content
|
||||
- **Monitor routing performance**: Review routing decisions regularly and refine criteria based on actual usage patterns
|
||||
- **Choose appropriate models**: Use models with strong reasoning capabilities for complex routing decisions
|
||||
- **Write clear route descriptions**: Each route description should clearly explain when that route should be selected. Be specific about the criteria.
|
||||
- **Make routes mutually exclusive**: When possible, ensure route descriptions don't overlap to prevent ambiguous routing decisions.
|
||||
- **Include an error/fallback route**: Add a catch-all route for unexpected inputs that don't match other routes.
|
||||
- **Use descriptive route titles**: Route titles appear in the workflow canvas, so make them meaningful for readability.
|
||||
- **Test with diverse inputs**: Ensure the Router handles various input types, edge cases, and unexpected content.
|
||||
- **Monitor routing performance**: Review routing decisions regularly and refine route descriptions based on actual usage patterns.
|
||||
- **Choose appropriate models**: Use models with strong reasoning capabilities for complex routing decisions.
|
||||
|
||||
87
apps/docs/content/docs/en/blocks/webhook.mdx
Normal file
87
apps/docs/content/docs/en/blocks/webhook.mdx
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: Webhook
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
The Webhook block sends HTTP POST requests to external webhook endpoints with automatic webhook headers and optional HMAC signing.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Webhook Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Configuration
|
||||
|
||||
### Webhook URL
|
||||
|
||||
The destination endpoint for your webhook request. Supports both static URLs and dynamic values from other blocks.
|
||||
|
||||
### Payload
|
||||
|
||||
JSON data to send in the request body. Use the AI wand to generate payloads or reference workflow variables:
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "workflow.completed",
|
||||
"data": {
|
||||
"result": "<agent.content>",
|
||||
"timestamp": "<function.result>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Signing Secret
|
||||
|
||||
Optional secret for HMAC-SHA256 payload signing. When provided, adds an `X-Webhook-Signature` header:
|
||||
|
||||
```
|
||||
X-Webhook-Signature: t=1704067200000,v1=5d41402abc4b2a76b9719d911017c592...
|
||||
```
|
||||
|
||||
To verify signatures, compute `HMAC-SHA256(secret, "${timestamp}.${body}")` and compare with the `v1` value.
|
||||
|
||||
### Additional Headers
|
||||
|
||||
Custom key-value headers to include with the request. These override any automatic headers with the same name.
|
||||
|
||||
## Automatic Headers
|
||||
|
||||
Every request includes these headers automatically:
|
||||
|
||||
| Header | Description |
|
||||
|--------|-------------|
|
||||
| `Content-Type` | `application/json` |
|
||||
| `X-Webhook-Timestamp` | Unix timestamp in milliseconds |
|
||||
| `X-Delivery-ID` | Unique UUID for this delivery |
|
||||
| `Idempotency-Key` | Same as `X-Delivery-ID` for deduplication |
|
||||
|
||||
## Outputs
|
||||
|
||||
| Output | Type | Description |
|
||||
|--------|------|-------------|
|
||||
| `data` | json | Response body from the endpoint |
|
||||
| `status` | number | HTTP status code |
|
||||
| `headers` | object | Response headers |
|
||||
|
||||
## Example Use Cases
|
||||
|
||||
**Notify external services** - Send workflow results to Slack, Discord, or custom endpoints
|
||||
```
|
||||
Agent → Function (format) → Webhook (notify)
|
||||
```
|
||||
|
||||
**Trigger external workflows** - Start processes in other systems when conditions are met
|
||||
```
|
||||
Condition (check) → Webhook (trigger) → Response
|
||||
```
|
||||
|
||||
<Callout>
|
||||
The Webhook block always uses POST. For other HTTP methods or more control, use the [API block](/blocks/api).
|
||||
</Callout>
|
||||
75
apps/docs/content/docs/en/enterprise/index.mdx
Normal file
75
apps/docs/content/docs/en/enterprise/index.mdx
Normal file
@@ -0,0 +1,75 @@
|
||||
---
|
||||
title: Enterprise
|
||||
description: Enterprise features for organizations with advanced security and compliance requirements
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Sim Studio Enterprise provides advanced features for organizations with enhanced security, compliance, and management requirements.
|
||||
|
||||
---
|
||||
|
||||
## Bring Your Own Key (BYOK)
|
||||
|
||||
Use your own API keys for AI model providers instead of Sim Studio's hosted keys.
|
||||
|
||||
### Supported Providers
|
||||
|
||||
| Provider | Usage |
|
||||
|----------|-------|
|
||||
| OpenAI | Knowledge Base embeddings, Agent block |
|
||||
| Anthropic | Agent block |
|
||||
| Google | Agent block |
|
||||
| Mistral | Knowledge Base OCR |
|
||||
|
||||
### Setup
|
||||
|
||||
1. Navigate to **Settings** → **BYOK** in your workspace
|
||||
2. Click **Add Key** for your provider
|
||||
3. Enter your API key and save
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK keys are encrypted at rest. Only organization admins and owners can manage keys.
|
||||
</Callout>
|
||||
|
||||
When configured, workflows use your key instead of Sim Studio's hosted keys. If removed, workflows automatically fall back to hosted keys.
|
||||
|
||||
---
|
||||
|
||||
## Single Sign-On (SSO)
|
||||
|
||||
Enterprise authentication with SAML 2.0 and OIDC support for centralized identity management.
|
||||
|
||||
### Supported Providers
|
||||
|
||||
- Okta
|
||||
- Azure AD / Entra ID
|
||||
- Google Workspace
|
||||
- OneLogin
|
||||
- Any SAML 2.0 or OIDC provider
|
||||
|
||||
### Setup
|
||||
|
||||
1. Navigate to **Settings** → **SSO** in your workspace
|
||||
2. Choose your identity provider
|
||||
3. Configure the connection using your IdP's metadata
|
||||
4. Enable SSO for your organization
|
||||
|
||||
<Callout type="info">
|
||||
Once SSO is enabled, team members authenticate through your identity provider instead of email/password.
|
||||
</Callout>
|
||||
|
||||
---
|
||||
|
||||
## Self-Hosted
|
||||
|
||||
For self-hosted deployments, enterprise features can be enabled via environment variables:
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Single Sign-On with SAML/OIDC |
|
||||
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Polling Groups for email triggers |
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK is only available on hosted Sim Studio. Self-hosted deployments configure AI provider keys directly via environment variables.
|
||||
</Callout>
|
||||
@@ -48,40 +48,40 @@ The model breakdown shows:
|
||||
|
||||
<Tabs items={['Hosted Models', 'Bring Your Own API Key']}>
|
||||
<Tab>
|
||||
**Hosted Models** - Sim provides API keys with a 2x pricing multiplier:
|
||||
**Hosted Models** - Sim provides API keys with a 1.4x pricing multiplier for Agent blocks:
|
||||
|
||||
**OpenAI**
|
||||
| Model | Base Price (Input/Output) | Hosted Price (Input/Output) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| GPT-5.1 | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.50 / $4.00 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.10 / $0.80 |
|
||||
| GPT-4o | $2.50 / $10.00 | $5.00 / $20.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $4.00 / $16.00 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.80 / $3.20 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.20 / $0.80 |
|
||||
| o1 | $15.00 / $60.00 | $30.00 / $120.00 |
|
||||
| o3 | $2.00 / $8.00 | $4.00 / $16.00 |
|
||||
| o4 Mini | $1.10 / $4.40 | $2.20 / $8.80 |
|
||||
| GPT-5.1 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.35 / $2.80 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.07 / $0.56 |
|
||||
| GPT-4o | $2.50 / $10.00 | $3.50 / $14.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.56 / $2.24 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.14 / $0.56 |
|
||||
| o1 | $15.00 / $60.00 | $21.00 / $84.00 |
|
||||
| o3 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| o4 Mini | $1.10 / $4.40 | $1.54 / $6.16 |
|
||||
|
||||
**Anthropic**
|
||||
| Model | Base Price (Input/Output) | Hosted Price (Input/Output) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $10.00 / $50.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $30.00 / $150.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $6.00 / $30.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $6.00 / $30.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $2.00 / $10.00 |
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $7.00 / $35.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $21.00 / $105.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $1.40 / $7.00 |
|
||||
|
||||
**Google**
|
||||
| Model | Base Price (Input/Output) | Hosted Price (Input/Output) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $4.00 / $24.00 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.60 / $5.00 |
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $2.80 / $16.80 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.42 / $3.50 |
|
||||
|
||||
*The 2x multiplier covers infrastructure and API management costs.*
|
||||
*The 1.4x multiplier covers infrastructure and API management costs.*
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
|
||||
64
apps/docs/content/docs/en/keyboard-shortcuts/index.mdx
Normal file
64
apps/docs/content/docs/en/keyboard-shortcuts/index.mdx
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: Keyboard Shortcuts
|
||||
description: Master the workflow canvas with keyboard shortcuts and mouse controls
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Speed up your workflow building with these keyboard shortcuts and mouse controls. All shortcuts work when the canvas is focused (not when typing in an input field).
|
||||
|
||||
<Callout type="info">
|
||||
**Mod** refers to `Cmd` on macOS and `Ctrl` on Windows/Linux.
|
||||
</Callout>
|
||||
|
||||
## Canvas Controls
|
||||
|
||||
### Mouse Controls
|
||||
|
||||
| Action | Control |
|
||||
|--------|---------|
|
||||
| Pan/move canvas | Left-drag on empty space |
|
||||
| Pan/move canvas | Scroll or trackpad |
|
||||
| Select multiple blocks | Right-drag to draw selection box |
|
||||
| Drag block | Left-drag on block header |
|
||||
| Add to selection | `Mod` + click on blocks |
|
||||
|
||||
### Workflow Actions
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Mod` + `Enter` | Run workflow (or cancel if running) |
|
||||
| `Mod` + `Z` | Undo |
|
||||
| `Mod` + `Shift` + `Z` | Redo |
|
||||
| `Mod` + `C` | Copy selected blocks |
|
||||
| `Mod` + `V` | Paste blocks |
|
||||
| `Delete` or `Backspace` | Delete selected blocks or edges |
|
||||
| `Shift` + `L` | Auto-layout canvas |
|
||||
|
||||
## Panel Navigation
|
||||
|
||||
These shortcuts switch between panel tabs on the right side of the canvas.
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `C` | Focus Copilot tab |
|
||||
| `T` | Focus Toolbar tab |
|
||||
| `E` | Focus Editor tab |
|
||||
| `Mod` + `F` | Focus Toolbar search |
|
||||
|
||||
## Global Navigation
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Mod` + `K` | Open search |
|
||||
| `Mod` + `Shift` + `A` | Add new agent workflow |
|
||||
| `Mod` + `Y` | Go to templates |
|
||||
| `Mod` + `L` | Go to logs |
|
||||
|
||||
## Utility
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Mod` + `D` | Clear terminal console |
|
||||
| `Mod` + `E` | Clear notifications |
|
||||
|
||||
108
apps/docs/content/docs/en/mcp/deploy-workflows.mdx
Normal file
108
apps/docs/content/docs/en/mcp/deploy-workflows.mdx
Normal file
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Deploy Workflows as MCP
|
||||
description: Expose your workflows as MCP tools for external AI assistants and applications
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Deploy your workflows as MCP tools to make them accessible to external AI assistants like Claude Desktop, Cursor, and other MCP-compatible clients. This turns your workflows into callable tools that can be invoked from anywhere.
|
||||
|
||||
## Creating and Managing MCP Servers
|
||||
|
||||
MCP servers group your workflow tools together. Create and manage them in workspace settings:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-server.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navigate to **Settings → Deployed MCPs**
|
||||
2. Click **Create Server**
|
||||
3. Enter a name and optional description
|
||||
4. Copy the server URL for use in your MCP clients
|
||||
5. View and manage all tools added to the server
|
||||
|
||||
## Adding a Workflow as a Tool
|
||||
|
||||
Once your workflow is deployed, you can expose it as an MCP tool:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-deploy-tool.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Open your deployed workflow
|
||||
2. Click **Deploy** and go to the **MCP** tab
|
||||
3. Configure the tool name and description
|
||||
4. Add descriptions for each parameter (helps AI understand inputs)
|
||||
5. Select which MCP servers to add it to
|
||||
|
||||
<Callout type="info">
|
||||
The workflow must be deployed before it can be added as an MCP tool.
|
||||
</Callout>
|
||||
|
||||
## Tool Configuration
|
||||
|
||||
### Tool Name
|
||||
Use lowercase letters, numbers, and underscores. The name should be descriptive and follow MCP naming conventions (e.g., `search_documents`, `send_email`).
|
||||
|
||||
### Description
|
||||
Write a clear description of what the tool does. This helps AI assistants understand when to use the tool.
|
||||
|
||||
### Parameters
|
||||
Your workflow's input format fields become tool parameters. Add descriptions to each parameter to help AI assistants provide correct values.
|
||||
|
||||
## Connecting MCP Clients
|
||||
|
||||
Use the server URL from settings to connect external applications:
|
||||
|
||||
### Claude Desktop
|
||||
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-sim-workflows": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "YOUR_SERVER_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
Add the server URL in Cursor's MCP settings using the same mcp-remote pattern.
|
||||
|
||||
<Callout type="warn">
|
||||
Include your API key header (`X-API-Key`) for authenticated access when using mcp-remote or other HTTP-based MCP transports.
|
||||
</Callout>
|
||||
|
||||
## Server Management
|
||||
|
||||
From the server detail view in **Settings → Deployed MCPs**, you can:
|
||||
|
||||
- **View tools**: See all workflows added to a server
|
||||
- **Copy URL**: Get the server URL for MCP clients
|
||||
- **Add workflows**: Add more deployed workflows as tools
|
||||
- **Remove tools**: Remove workflows from the server
|
||||
- **Delete server**: Remove the entire server and all its tools
|
||||
|
||||
## How It Works
|
||||
|
||||
When an MCP client calls your tool:
|
||||
|
||||
1. The request is received at your MCP server URL
|
||||
2. Sim validates the request and maps parameters to workflow inputs
|
||||
3. The deployed workflow executes with the provided inputs
|
||||
4. Results are returned to the MCP client
|
||||
|
||||
Workflows execute using the same deployment version as API calls, ensuring consistent behavior.
|
||||
|
||||
## Permission Requirements
|
||||
|
||||
| Action | Required Permission |
|
||||
|--------|-------------------|
|
||||
| Create MCP servers | **Admin** |
|
||||
| Add workflows to servers | **Write** or **Admin** |
|
||||
| View MCP servers | **Read**, **Write**, or **Admin** |
|
||||
| Delete MCP servers | **Admin** |
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
---
|
||||
title: MCP (Model Context Protocol)
|
||||
title: Using MCP Tools
|
||||
description: Connect external tools and services using the Model Context Protocol
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
The Model Context Protocol ([MCP](https://modelcontextprotocol.com/)) allows you to connect external tools and services using a standardized protocol, enabling you to integrate APIs and services directly into your workflows. With MCP, you can extend Sim's capabilities by adding custom integrations that work seamlessly with your agents and workflows.
|
||||
@@ -20,18 +22,12 @@ MCP is an open standard that enables AI assistants to securely connect to extern
|
||||
|
||||
MCP servers provide collections of tools that your agents can use. Configure them in workspace settings:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-1.png"
|
||||
alt="Configuring MCP Server in Settings"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/settings-mcp-tools.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navigate to your workspace settings
|
||||
2. Go to the **MCP Servers** section
|
||||
2. Go to the **Deployed MCPs** section
|
||||
3. Click **Add MCP Server**
|
||||
4. Enter the server configuration details
|
||||
5. Save the configuration
|
||||
@@ -40,6 +36,10 @@ MCP servers provide collections of tools that your agents can use. Configure the
|
||||
You can also configure MCP servers directly from the toolbar in an Agent block for quick setup.
|
||||
</Callout>
|
||||
|
||||
### Refresh Tools
|
||||
|
||||
Click **Refresh** on a server to fetch the latest tool schemas and automatically update any agent blocks using those tools with the new parameter definitions.
|
||||
|
||||
## Using MCP Tools in Agents
|
||||
|
||||
Once MCP servers are configured, their tools become available within your agent blocks:
|
||||
|
||||
5
apps/docs/content/docs/en/mcp/meta.json
Normal file
5
apps/docs/content/docs/en/mcp/meta.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"title": "MCP",
|
||||
"pages": ["index", "deploy-workflows"],
|
||||
"defaultOpen": false
|
||||
}
|
||||
@@ -14,7 +14,9 @@
|
||||
"execution",
|
||||
"permissions",
|
||||
"sdks",
|
||||
"self-hosting"
|
||||
"self-hosting",
|
||||
"./enterprise/index",
|
||||
"./keyboard-shortcuts/index"
|
||||
],
|
||||
"defaultOpen": false
|
||||
}
|
||||
|
||||
238
apps/docs/content/docs/en/tools/fireflies.mdx
Normal file
238
apps/docs/content/docs/en/tools/fireflies.mdx
Normal file
@@ -0,0 +1,238 @@
|
||||
---
|
||||
title: Fireflies
|
||||
description: Interact with Fireflies.ai meeting transcripts and recordings
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="fireflies"
|
||||
color="#100730"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Fireflies.ai](https://fireflies.ai/) is a meeting transcription and intelligence platform that integrates with Sim, allowing your agents to work directly with meeting recordings, transcripts, and insights through no-code automations.
|
||||
|
||||
The Fireflies integration in Sim provides tools to:
|
||||
|
||||
- **List meeting transcripts:** Fetch multiple meetings and their summary information for your team or account.
|
||||
- **Retrieve full transcript details:** Access detailed transcripts, including summaries, action items, topics, and participant analytics for any meeting.
|
||||
- **Upload audio or video:** Upload audio/video files or provide URLs for transcription—optionally set language, title, attendees, and receive automated meeting notes.
|
||||
- **Search transcripts:** Find meetings by keyword, participant, host, or timeframe to quickly locate relevant discussions.
|
||||
- **Delete transcripts:** Remove specific meeting transcripts from your Fireflies workspace.
|
||||
- **Create soundbites (Bites):** Extract and highlight key moments from transcripts as audio or video clips.
|
||||
- **Trigger workflows on transcription completion:** Activate Sim workflows automatically when a Fireflies meeting transcription finishes using the provided webhook trigger—enabling real-time automations and notifications based on new meeting data.
|
||||
|
||||
By combining these capabilities, you can streamline post-meeting actions, extract structured insights, automate notifications, manage recordings, and orchestrate custom workflows around your organization’s calls—all securely using your API key and Fireflies credentials.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate Fireflies.ai into the workflow. Manage meeting transcripts, add bot to live meetings, create soundbites, and more. Can also trigger workflows when transcriptions complete.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `fireflies_list_transcripts`
|
||||
|
||||
List meeting transcripts from Fireflies.ai with optional filtering
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `keyword` | string | No | Search keyword in meeting title or transcript |
|
||||
| `fromDate` | string | No | Filter transcripts from this date \(ISO 8601 format\) |
|
||||
| `toDate` | string | No | Filter transcripts until this date \(ISO 8601 format\) |
|
||||
| `hostEmail` | string | No | Filter by meeting host email |
|
||||
| `participants` | string | No | Filter by participant emails \(comma-separated\) |
|
||||
| `limit` | number | No | Maximum number of transcripts to return \(max 50\) |
|
||||
| `skip` | number | No | Number of transcripts to skip for pagination |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcripts` | array | List of transcripts |
|
||||
| `count` | number | Number of transcripts returned |
|
||||
|
||||
### `fireflies_get_transcript`
|
||||
|
||||
Get a single transcript with full details including summary, action items, and analytics
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `transcriptId` | string | Yes | The transcript ID to retrieve |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | The transcript with full details |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
Get user information from Fireflies.ai. Returns current user if no ID specified.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `userId` | string | No | User ID to retrieve \(optional, defaults to API key owner\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | User information |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
List all users within your Fireflies.ai team
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | List of team users |
|
||||
|
||||
### `fireflies_upload_audio`
|
||||
|
||||
Upload an audio file URL to Fireflies.ai for transcription
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `audioFile` | file | No | Audio/video file to upload for transcription |
|
||||
| `audioUrl` | string | No | Public HTTPS URL of the audio/video file \(MP3, MP4, WAV, M4A, OGG\) |
|
||||
| `title` | string | No | Title for the meeting/transcript |
|
||||
| `webhook` | string | No | Webhook URL to notify when transcription is complete |
|
||||
| `language` | string | No | Language code for transcription \(e.g., "es" for Spanish, "de" for German\) |
|
||||
| `attendees` | string | No | Attendees in JSON format: \[\{"displayName": "Name", "email": "email@example.com"\}\] |
|
||||
| `clientReferenceId` | string | No | Custom reference ID for tracking |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the upload was successful |
|
||||
| `title` | string | Title of the uploaded meeting |
|
||||
| `message` | string | Status message from Fireflies |
|
||||
|
||||
### `fireflies_delete_transcript`
|
||||
|
||||
Delete a transcript from Fireflies.ai
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `transcriptId` | string | Yes | The transcript ID to delete |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the transcript was successfully deleted |
|
||||
|
||||
### `fireflies_add_to_live_meeting`
|
||||
|
||||
Add the Fireflies.ai bot to an ongoing meeting to record and transcribe
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `meetingLink` | string | Yes | Valid meeting URL \(Zoom, Google Meet, Microsoft Teams, etc.\) |
|
||||
| `title` | string | No | Title for the meeting \(max 256 characters\) |
|
||||
| `meetingPassword` | string | No | Password for the meeting if required \(max 32 characters\) |
|
||||
| `duration` | number | No | Meeting duration in minutes \(15-120, default: 60\) |
|
||||
| `language` | string | No | Language code for transcription \(e.g., "en", "es", "de"\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the bot was successfully added to the meeting |
|
||||
|
||||
### `fireflies_create_bite`
|
||||
|
||||
Create a soundbite/highlight from a specific time range in a transcript
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `transcriptId` | string | Yes | ID of the transcript to create the bite from |
|
||||
| `startTime` | number | Yes | Start time of the bite in seconds |
|
||||
| `endTime` | number | Yes | End time of the bite in seconds |
|
||||
| `name` | string | No | Name for the bite \(max 256 characters\) |
|
||||
| `mediaType` | string | No | Media type: "video" or "audio" |
|
||||
| `summary` | string | No | Summary for the bite \(max 500 characters\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | Created bite details |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
List soundbites/highlights from Fireflies.ai
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
| `transcriptId` | string | No | Filter bites for a specific transcript |
|
||||
| `mine` | boolean | No | Only return bites owned by the API key owner \(default: true\) |
|
||||
| `limit` | number | No | Maximum number of bites to return \(max 50\) |
|
||||
| `skip` | number | No | Number of bites to skip for pagination |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bites` | array | List of bites/soundbites |
|
||||
|
||||
### `fireflies_list_contacts`
|
||||
|
||||
List all contacts from your Fireflies.ai meetings
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Fireflies API key |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | List of contacts from meetings |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `fireflies`
|
||||
@@ -48,7 +48,7 @@ Integrate Google Drive into the workflow. Can create, upload, and list files.
|
||||
|
||||
### `google_drive_upload`
|
||||
|
||||
Upload a file to Google Drive
|
||||
Upload a file to Google Drive with complete metadata returned
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -65,11 +65,11 @@ Upload a file to Google Drive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Uploaded file metadata including ID, name, and links |
|
||||
| `file` | object | Complete uploaded file metadata from Google Drive |
|
||||
|
||||
### `google_drive_create_folder`
|
||||
|
||||
Create a new folder in Google Drive
|
||||
Create a new folder in Google Drive with complete metadata returned
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -83,11 +83,11 @@ Create a new folder in Google Drive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Created folder metadata including ID, name, and parent information |
|
||||
| `file` | object | Complete created folder metadata from Google Drive |
|
||||
|
||||
### `google_drive_download`
|
||||
|
||||
Download a file from Google Drive (exports Google Workspace files automatically)
|
||||
Download a file from Google Drive with complete metadata (exports Google Workspace files automatically)
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -96,16 +96,17 @@ Download a file from Google Drive (exports Google Workspace files automatically)
|
||||
| `fileId` | string | Yes | The ID of the file to download |
|
||||
| `mimeType` | string | No | The MIME type to export Google Workspace files to \(optional\) |
|
||||
| `fileName` | string | No | Optional filename override |
|
||||
| `includeRevisions` | boolean | No | Whether to include revision history in the metadata \(default: true\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | file | Downloaded file stored in execution files |
|
||||
| `file` | object | Downloaded file stored in execution files |
|
||||
|
||||
### `google_drive_list`
|
||||
|
||||
List files and folders in Google Drive
|
||||
List files and folders in Google Drive with complete metadata
|
||||
|
||||
#### Input
|
||||
|
||||
@@ -121,7 +122,7 @@ List files and folders in Google Drive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | json | Array of file metadata objects from the specified folder |
|
||||
| `files` | array | Array of file metadata objects from Google Drive |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -162,6 +162,7 @@ Create a webhook to receive recording events
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Grain API key \(Personal Access Token\) |
|
||||
| `hookUrl` | string | Yes | Webhook endpoint URL \(must respond 2xx\) |
|
||||
| `hookType` | string | Yes | Type of webhook: "recording_added" or "upload_status" |
|
||||
| `filterBeforeDatetime` | string | No | Filter: recordings before this date |
|
||||
| `filterAfterDatetime` | string | No | Filter: recordings after this date |
|
||||
| `filterParticipantScope` | string | No | Filter: "internal" or "external" |
|
||||
@@ -178,6 +179,7 @@ Create a webhook to receive recording events
|
||||
| `id` | string | Hook UUID |
|
||||
| `enabled` | boolean | Whether hook is active |
|
||||
| `hook_url` | string | The webhook URL |
|
||||
| `hook_type` | string | Type of hook: recording_added or upload_status |
|
||||
| `filter` | object | Applied filters |
|
||||
| `include` | object | Included fields |
|
||||
| `inserted_at` | string | ISO8601 creation timestamp |
|
||||
|
||||
141
apps/docs/content/docs/en/tools/greptile.mdx
Normal file
141
apps/docs/content/docs/en/tools/greptile.mdx
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
title: Greptile
|
||||
description: AI-powered codebase search and Q&A
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="greptile"
|
||||
color="#e5e5e5"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Greptile](https://greptile.com/) is an AI-powered developer tool for searching and querying source code across one or more repositories. Greptile enables engineers to quickly answer complex codebase questions in natural language, locate relevant files or symbols, and gain insights into unfamiliar or legacy code.
|
||||
|
||||
With Greptile, you can:
|
||||
|
||||
- **Ask complex questions about your codebase in natural language**: Get AI-generated answers about architecture, usage patterns, or specific implementations.
|
||||
- **Find relevant code, files, or functions instantly**: Search using keywords or natural language queries and jump right to matching lines, files, or code blocks.
|
||||
- **Understand dependencies and relationships**: Uncover where functions are called, how modules are related, or where APIs are used across large codebases.
|
||||
- **Accelerate onboarding and code exploration**: Quickly ramp up on new projects or debug tricky issues without needing deep prior context.
|
||||
|
||||
The Sim Greptile integration allows your AI agents to:
|
||||
|
||||
- Query and search private and public repositories using Greptile’s advanced language models.
|
||||
- Retrieve contextually relevant code snippets, file references, and explanations to support code review, documentation, and development workflows.
|
||||
- Trigger automations in Sim workflows based on search/query results or embed code intelligence directly into your processes.
|
||||
|
||||
Whether you’re trying to accelerate developer productivity, automate documentation, or supercharge your team’s understanding of a complex codebase, Greptile and Sim provide seamless access to code intelligence and search—right where you need it.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Query and search codebases using natural language with Greptile. Get AI-generated answers about your code, find relevant files, and understand complex codebases.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `greptile_query`
|
||||
|
||||
Query repositories in natural language and get answers with relevant code references. Greptile uses AI to understand your codebase and answer questions.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Yes | Natural language question about the codebase |
|
||||
| `repositories` | string | Yes | Comma-separated list of repositories. Format: "github:branch:owner/repo" or just "owner/repo" \(defaults to github:main\) |
|
||||
| `sessionId` | string | No | Session ID for conversation continuity |
|
||||
| `genius` | boolean | No | Enable genius mode for more thorough analysis \(slower but more accurate\) |
|
||||
| `apiKey` | string | Yes | Greptile API key |
|
||||
| `githubToken` | string | Yes | GitHub Personal Access Token with repo read access |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | AI-generated answer to the query |
|
||||
| `sources` | array | Relevant code references that support the answer |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
Search repositories in natural language and get relevant code references without generating an answer. Useful for finding specific code locations.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Yes | Natural language search query to find relevant code |
|
||||
| `repositories` | string | Yes | Comma-separated list of repositories. Format: "github:branch:owner/repo" or just "owner/repo" \(defaults to github:main\) |
|
||||
| `sessionId` | string | No | Session ID for conversation continuity |
|
||||
| `genius` | boolean | No | Enable genius mode for more thorough search \(slower but more accurate\) |
|
||||
| `apiKey` | string | Yes | Greptile API key |
|
||||
| `githubToken` | string | Yes | GitHub Personal Access Token with repo read access |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | Relevant code references matching the search query |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
Submit a repository to be indexed by Greptile. Indexing must complete before the repository can be queried. Small repos take 3-5 minutes, larger ones can take over an hour.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Yes | Git remote type: github or gitlab |
|
||||
| `repository` | string | Yes | Repository in owner/repo format \(e.g., "facebook/react"\) |
|
||||
| `branch` | string | Yes | Branch to index \(e.g., "main" or "master"\) |
|
||||
| `reload` | boolean | No | Force re-indexing even if already indexed |
|
||||
| `notify` | boolean | No | Send email notification when indexing completes |
|
||||
| `apiKey` | string | Yes | Greptile API key |
|
||||
| `githubToken` | string | Yes | GitHub Personal Access Token with repo read access |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repositoryId` | string | Unique identifier for the indexed repository \(format: remote:branch:owner/repo\) |
|
||||
| `statusEndpoint` | string | URL endpoint to check indexing status |
|
||||
| `message` | string | Status message about the indexing operation |
|
||||
|
||||
### `greptile_status`
|
||||
|
||||
Check the indexing status of a repository. Use this to verify if a repository is ready to be queried or to monitor indexing progress.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Yes | Git remote type: github or gitlab |
|
||||
| `repository` | string | Yes | Repository in owner/repo format \(e.g., "facebook/react"\) |
|
||||
| `branch` | string | Yes | Branch name \(e.g., "main" or "master"\) |
|
||||
| `apiKey` | string | Yes | Greptile API key |
|
||||
| `githubToken` | string | Yes | GitHub Personal Access Token with repo read access |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repository` | string | Repository name \(owner/repo\) |
|
||||
| `remote` | string | Git remote \(github/gitlab\) |
|
||||
| `branch` | string | Branch name |
|
||||
| `private` | boolean | Whether the repository is private |
|
||||
| `status` | string | Indexing status: submitted, cloning, processing, completed, or failed |
|
||||
| `filesProcessed` | number | Number of files processed so far |
|
||||
| `numFiles` | number | Total number of files in the repository |
|
||||
| `sampleQuestions` | array | Sample questions for the indexed repository |
|
||||
| `sha` | string | Git commit SHA of the indexed version |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `greptile`
|
||||
40
apps/docs/content/docs/en/tools/imap.mdx
Normal file
40
apps/docs/content/docs/en/tools/imap.mdx
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: IMAP Email
|
||||
description: Trigger workflows when new emails arrive via IMAP (works with any email provider)
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="imap"
|
||||
color="#6366F1"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
The IMAP Email trigger allows your Sim workflows to start automatically whenever a new email is received in any mailbox that supports the IMAP protocol. This works with Gmail, Outlook, Yahoo, and most other email providers.
|
||||
|
||||
With the IMAP trigger, you can:
|
||||
|
||||
- **Automate email processing**: Start workflows in real time when new messages arrive in your inbox.
|
||||
- **Filter by sender, subject, or folder**: Configure your trigger to react only to emails that match certain conditions.
|
||||
- **Extract and process attachments**: Automatically download and use file attachments in your automated flows.
|
||||
- **Parse and use email content**: Access the subject, sender, recipients, full body, and other metadata in downstream workflow steps.
|
||||
- **Integrate with any email provider**: Works with any service that provides standard IMAP access, without vendor lock-in.
|
||||
- **Trigger on unread, flagged, or custom criteria**: Set up advanced filters for the kinds of emails that start your workflows.
|
||||
|
||||
With Sim, the IMAP integration gives you the power to turn email into an actionable source of automation. Respond to customer inquiries, process notifications, kick off data pipelines, and more—directly from your email inbox, with no manual intervention.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Connect to any email server via IMAP protocol to trigger workflows when new emails are received. Supports Gmail, Outlook, Yahoo, and any other IMAP-compatible email provider.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `triggers`
|
||||
- Type: `imap`
|
||||
490
apps/docs/content/docs/en/tools/jira_service_management.mdx
Normal file
490
apps/docs/content/docs/en/tools/jira_service_management.mdx
Normal file
@@ -0,0 +1,490 @@
|
||||
---
|
||||
title: Jira Service Management
|
||||
description: Interact with Jira Service Management
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="jira_service_management"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate with Jira Service Management for IT service management. Create and manage service requests, handle customers and organizations, track SLAs, and manage queues.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `jsm_get_service_desks`
|
||||
|
||||
Get all service desks from Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `serviceDesks` | json | Array of service desks |
|
||||
| `total` | number | Total number of service desks |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_get_request_types`
|
||||
|
||||
Get request types for a service desk in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to get request types for |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `requestTypes` | json | Array of request types |
|
||||
| `total` | number | Total number of request types |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_create_request`
|
||||
|
||||
Create a new service request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to create the request in |
|
||||
| `requestTypeId` | string | Yes | Request Type ID for the new request |
|
||||
| `summary` | string | Yes | Summary/title for the service request |
|
||||
| `description` | string | No | Description for the service request |
|
||||
| `raiseOnBehalfOf` | string | No | Account ID of customer to raise request on behalf of |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueId` | string | Created request issue ID |
|
||||
| `issueKey` | string | Created request issue key \(e.g., SD-123\) |
|
||||
| `requestTypeId` | string | Request type ID |
|
||||
| `serviceDeskId` | string | Service desk ID |
|
||||
| `success` | boolean | Whether the request was created successfully |
|
||||
| `url` | string | URL to the created request |
|
||||
|
||||
### `jsm_get_request`
|
||||
|
||||
Get a single service request from Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
|
||||
### `jsm_get_requests`
|
||||
|
||||
Get multiple service requests from Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | No | Filter by service desk ID |
|
||||
| `requestOwnership` | string | No | Filter by ownership: OWNED_REQUESTS, PARTICIPATED_REQUESTS, ORGANIZATION, ALL_REQUESTS |
|
||||
| `requestStatus` | string | No | Filter by status: OPEN, CLOSED, ALL |
|
||||
| `searchTerm` | string | No | Search term to filter requests |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `requests` | json | Array of service requests |
|
||||
| `total` | number | Total number of requests |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_add_comment`
|
||||
|
||||
Add a comment (public or internal) to a service request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `body` | string | Yes | Comment body text |
|
||||
| `isPublic` | boolean | Yes | Whether the comment is public \(visible to customer\) or internal |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `commentId` | string | Created comment ID |
|
||||
| `body` | string | Comment body text |
|
||||
| `isPublic` | boolean | Whether the comment is public |
|
||||
| `success` | boolean | Whether the comment was added successfully |
|
||||
|
||||
### `jsm_get_comments`
|
||||
|
||||
Get comments for a service request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `isPublic` | boolean | No | Filter to only public comments |
|
||||
| `internal` | boolean | No | Filter to only internal comments |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `comments` | json | Array of comments |
|
||||
| `total` | number | Total number of comments |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_get_customers`
|
||||
|
||||
Get customers for a service desk in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to get customers for |
|
||||
| `query` | string | No | Search query to filter customers |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `customers` | json | Array of customers |
|
||||
| `total` | number | Total number of customers |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_add_customer`
|
||||
|
||||
Add customers to a service desk in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to add customers to |
|
||||
| `emails` | string | Yes | Comma-separated email addresses to add as customers |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `serviceDeskId` | string | Service desk ID |
|
||||
| `success` | boolean | Whether customers were added successfully |
|
||||
|
||||
### `jsm_get_organizations`
|
||||
|
||||
Get organizations for a service desk in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to get organizations for |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `organizations` | json | Array of organizations |
|
||||
| `total` | number | Total number of organizations |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_create_organization`
|
||||
|
||||
Create a new organization in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `name` | string | Yes | Name of the organization to create |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `organizationId` | string | ID of the created organization |
|
||||
| `name` | string | Name of the created organization |
|
||||
| `success` | boolean | Whether the operation succeeded |
|
||||
|
||||
### `jsm_add_organization`
|
||||
|
||||
Add an organization to a service desk in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to add the organization to |
|
||||
| `organizationId` | string | Yes | Organization ID to add to the service desk |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `serviceDeskId` | string | Service Desk ID |
|
||||
| `organizationId` | string | Organization ID added |
|
||||
| `success` | boolean | Whether the operation succeeded |
|
||||
|
||||
### `jsm_get_queues`
|
||||
|
||||
Get queues for a service desk in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `serviceDeskId` | string | Yes | Service Desk ID to get queues for |
|
||||
| `includeCount` | boolean | No | Include issue count for each queue |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `queues` | json | Array of queues |
|
||||
| `total` | number | Total number of queues |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_get_sla`
|
||||
|
||||
Get SLA information for a service request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `slas` | json | Array of SLA information |
|
||||
| `total` | number | Total number of SLAs |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_get_transitions`
|
||||
|
||||
Get available transitions for a service request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `transitions` | json | Array of available transitions |
|
||||
|
||||
### `jsm_transition_request`
|
||||
|
||||
Transition a service request to a new status in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `transitionId` | string | Yes | Transition ID to apply |
|
||||
| `comment` | string | No | Optional comment to add during transition |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `transitionId` | string | Applied transition ID |
|
||||
| `success` | boolean | Whether the transition was successful |
|
||||
|
||||
### `jsm_get_participants`
|
||||
|
||||
Get participants for a request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `participants` | json | Array of participants |
|
||||
| `total` | number | Total number of participants |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_add_participants`
|
||||
|
||||
Add participants to a request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `accountIds` | string | Yes | Comma-separated account IDs to add as participants |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `participants` | json | Array of added participants |
|
||||
| `success` | boolean | Whether the operation succeeded |
|
||||
|
||||
### `jsm_get_approvals`
|
||||
|
||||
Get approvals for a request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `start` | number | No | Start index for pagination \(default: 0\) |
|
||||
| `limit` | number | No | Maximum results to return \(default: 50\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `approvals` | json | Array of approvals |
|
||||
| `total` | number | Total number of approvals |
|
||||
| `isLastPage` | boolean | Whether this is the last page |
|
||||
|
||||
### `jsm_answer_approval`
|
||||
|
||||
Approve or decline an approval request in Jira Service Management
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
|
||||
| `cloudId` | string | No | Jira Cloud ID for the instance |
|
||||
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
|
||||
| `approvalId` | string | Yes | Approval ID to answer |
|
||||
| `decision` | string | Yes | Decision: "approve" or "decline" |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Timestamp of the operation |
|
||||
| `issueIdOrKey` | string | Issue ID or key |
|
||||
| `approvalId` | string | Approval ID |
|
||||
| `decision` | string | Decision made \(approve/decline\) |
|
||||
| `success` | boolean | Whether the operation succeeded |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `jira_service_management`
|
||||
@@ -126,8 +126,6 @@ Retrieve your account balance and portfolio value from Kalshi
|
||||
| --------- | ---- | ----------- |
|
||||
| `balance` | number | Account balance in cents |
|
||||
| `portfolioValue` | number | Portfolio value in cents |
|
||||
| `balanceDollars` | number | Account balance in dollars |
|
||||
| `portfolioValueDollars` | number | Portfolio value in dollars |
|
||||
|
||||
### `kalshi_get_positions`
|
||||
|
||||
|
||||
@@ -851,24 +851,6 @@ List all status updates for a project in Linear
|
||||
| --------- | ---- | ----------- |
|
||||
| `updates` | array | Array of project updates |
|
||||
|
||||
### `linear_create_project_link`
|
||||
|
||||
Add an external link to a project in Linear
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Yes | Project ID to add link to |
|
||||
| `url` | string | Yes | URL of the external link |
|
||||
| `label` | string | No | Link label/title |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `link` | object | The created project link |
|
||||
|
||||
### `linear_list_notifications`
|
||||
|
||||
List notifications for the current user in Linear
|
||||
@@ -1246,7 +1228,6 @@ Create a new project label in Linear
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Yes | The project for this label |
|
||||
| `name` | string | Yes | Project label name |
|
||||
| `color` | string | No | Label color \(hex code\) |
|
||||
| `description` | string | No | Label description |
|
||||
@@ -1424,12 +1405,12 @@ Create a new project status in Linear
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Yes | The project to create the status for |
|
||||
| `name` | string | Yes | Project status name |
|
||||
| `type` | string | Yes | Status type: "backlog", "planned", "started", "paused", "completed", or "canceled" |
|
||||
| `color` | string | Yes | Status color \(hex code\) |
|
||||
| `position` | number | Yes | Position in status list \(e.g. 0, 1, 2...\) |
|
||||
| `description` | string | No | Status description |
|
||||
| `indefinite` | boolean | No | Whether the status is indefinite |
|
||||
| `position` | number | No | Position in status list |
|
||||
|
||||
#### Output
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
"exa",
|
||||
"file",
|
||||
"firecrawl",
|
||||
"fireflies",
|
||||
"github",
|
||||
"gitlab",
|
||||
"gmail",
|
||||
@@ -37,14 +38,17 @@
|
||||
"google_vault",
|
||||
"grafana",
|
||||
"grain",
|
||||
"greptile",
|
||||
"hubspot",
|
||||
"huggingface",
|
||||
"hunter",
|
||||
"image_generator",
|
||||
"imap",
|
||||
"incidentio",
|
||||
"intercom",
|
||||
"jina",
|
||||
"jira",
|
||||
"jira_service_management",
|
||||
"kalshi",
|
||||
"knowledge",
|
||||
"linear",
|
||||
|
||||
@@ -79,30 +79,6 @@ Capture multiple events at once in PostHog. Use this for bulk event ingestion to
|
||||
| `status` | string | Status message indicating whether the batch was captured successfully |
|
||||
| `eventsProcessed` | number | Number of events processed in the batch |
|
||||
|
||||
### `posthog_list_events`
|
||||
|
||||
List events in PostHog. Note: This endpoint is deprecated but kept for backwards compatibility. For production use, prefer the Query endpoint with HogQL.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `personalApiKey` | string | Yes | PostHog Personal API Key \(for authenticated API access\) |
|
||||
| `region` | string | No | PostHog region: us \(default\) or eu |
|
||||
| `projectId` | string | Yes | PostHog Project ID |
|
||||
| `limit` | number | No | Number of events to return \(default: 100, max: 100\) |
|
||||
| `offset` | number | No | Number of events to skip for pagination |
|
||||
| `event` | string | No | Filter by specific event name |
|
||||
| `distinctId` | string | No | Filter by specific distinct_id |
|
||||
| `before` | string | No | ISO 8601 timestamp - only return events before this time |
|
||||
| `after` | string | No | ISO 8601 timestamp - only return events after this time |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `events` | array | List of events with their properties and metadata |
|
||||
|
||||
### `posthog_list_persons`
|
||||
|
||||
List persons (users) in PostHog. Returns user profiles with their properties and distinct IDs.
|
||||
|
||||
@@ -53,6 +53,7 @@ Query data from a Supabase table
|
||||
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Yes | The name of the Supabase table to query |
|
||||
| `schema` | string | No | Database schema to query from \(default: public\). Use this to access tables in other schemas. |
|
||||
| `select` | string | No | Columns to return \(comma-separated\). Defaults to * \(all columns\) |
|
||||
| `filter` | string | No | PostgREST filter \(e.g., "id=eq.123"\) |
|
||||
| `orderBy` | string | No | Column to order by \(add DESC for descending\) |
|
||||
| `limit` | number | No | Maximum number of rows to return |
|
||||
@@ -97,6 +98,7 @@ Get a single row from a Supabase table based on filter criteria
|
||||
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Yes | The name of the Supabase table to query |
|
||||
| `schema` | string | No | Database schema to query from \(default: public\). Use this to access tables in other schemas. |
|
||||
| `select` | string | No | Columns to return \(comma-separated\). Defaults to * \(all columns\) |
|
||||
| `filter` | string | Yes | PostgREST filter to find the specific row \(e.g., "id=eq.123"\) |
|
||||
| `apiKey` | string | Yes | Your Supabase service role secret key |
|
||||
|
||||
|
||||
@@ -53,6 +53,9 @@ Send a chat completion request to any supported LLM provider
|
||||
| `vertexProject` | string | No | Google Cloud project ID for Vertex AI |
|
||||
| `vertexLocation` | string | No | Google Cloud location for Vertex AI \(defaults to us-central1\) |
|
||||
| `vertexCredential` | string | No | Google Cloud OAuth credential ID for Vertex AI |
|
||||
| `bedrockAccessKeyId` | string | No | AWS Access Key ID for Bedrock |
|
||||
| `bedrockSecretKey` | string | No | AWS Secret Access Key for Bedrock |
|
||||
| `bedrockRegion` | string | No | AWS region for Bedrock \(defaults to us-east-1\) |
|
||||
|
||||
#### Output
|
||||
|
||||
|
||||
@@ -33,6 +33,9 @@ Use the Start block for everything originating from the editor, deploy-to-API, o
|
||||
<Card title="RSS Feed" href="/triggers/rss">
|
||||
Monitor RSS and Atom feeds for new content
|
||||
</Card>
|
||||
<Card title="Email Polling Groups" href="#email-polling-groups">
|
||||
Monitor team Gmail and Outlook inboxes
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Quick Comparison
|
||||
@@ -43,6 +46,7 @@ Use the Start block for everything originating from the editor, deploy-to-API, o
|
||||
| **Schedule** | Timer managed in schedule block |
|
||||
| **Webhook** | On inbound HTTP request |
|
||||
| **RSS Feed** | New item published to feed |
|
||||
| **Email Polling Groups** | New email received in team Gmail or Outlook inboxes |
|
||||
|
||||
> The Start block always exposes `input`, `conversationId`, and `files` fields. Add custom fields to the input format for additional structured data.
|
||||
|
||||
@@ -66,3 +70,24 @@ If your workflow has multiple triggers, the highest priority trigger will be exe
|
||||
|
||||
**External triggers with mock payloads**: When external triggers (webhooks and integrations) are executed manually, Sim automatically generates mock payloads based on the trigger's expected data structure. This ensures downstream blocks can resolve variables correctly during testing.
|
||||
|
||||
## Email Polling Groups
|
||||
|
||||
Polling Groups let you monitor multiple team members' Gmail or Outlook inboxes with a single trigger. Requires a Team or Enterprise plan.
|
||||
|
||||
**Creating a Polling Group** (Admin/Owner)
|
||||
|
||||
1. Go to **Settings → Email Polling**
|
||||
2. Click **Create** and choose Gmail or Outlook
|
||||
3. Enter a name for the group
|
||||
|
||||
**Inviting Members**
|
||||
|
||||
1. Click **Add Members** on your polling group
|
||||
2. Enter email addresses (comma or newline separated, or drag & drop a CSV)
|
||||
3. Click **Send Invites**
|
||||
|
||||
Invitees receive an email with a link to connect their account. Once connected, their inbox is automatically included in the polling group. Invitees don't need to be members of your Sim organization.
|
||||
|
||||
**Using in a Workflow**
|
||||
|
||||
When configuring an email trigger, select your polling group from the credentials dropdown instead of an individual account. The system creates webhooks for each member and routes all emails through your workflow.
|
||||
|
||||
@@ -15,7 +15,7 @@ The Generic Webhook block creates a flexible endpoint that can receive any paylo
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
src="/static/blocks/webhook-trigger.png"
|
||||
alt="Generic Webhook Configuration"
|
||||
width={500}
|
||||
height={400}
|
||||
|
||||
89
apps/docs/content/docs/es/blocks/webhook.mdx
Normal file
89
apps/docs/content/docs/es/blocks/webhook.mdx
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: Webhook
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
El bloque Webhook envía solicitudes HTTP POST a endpoints de webhook externos con encabezados de webhook automáticos y firma HMAC opcional.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Bloque Webhook"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Configuración
|
||||
|
||||
### URL del webhook
|
||||
|
||||
El endpoint de destino para tu solicitud de webhook. Admite tanto URL estáticas como valores dinámicos de otros bloques.
|
||||
|
||||
### Carga útil
|
||||
|
||||
Datos JSON para enviar en el cuerpo de la solicitud. Usa la varita de IA para generar cargas útiles o referenciar variables del flujo de trabajo:
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "workflow.completed",
|
||||
"data": {
|
||||
"result": "<agent.content>",
|
||||
"timestamp": "<function.result>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Secreto de firma
|
||||
|
||||
Secreto opcional para la firma HMAC-SHA256 de la carga útil. Cuando se proporciona, añade un encabezado `X-Webhook-Signature`:
|
||||
|
||||
```
|
||||
X-Webhook-Signature: t=1704067200000,v1=5d41402abc4b2a76b9719d911017c592...
|
||||
```
|
||||
|
||||
Para verificar las firmas, calcula `HMAC-SHA256(secret, "${timestamp}.${body}")` y compara con el valor `v1`.
|
||||
|
||||
### Encabezados adicionales
|
||||
|
||||
Encabezados personalizados de clave-valor para incluir con la solicitud. Estos sobrescriben cualquier encabezado automático con el mismo nombre.
|
||||
|
||||
## Encabezados automáticos
|
||||
|
||||
Cada solicitud incluye estos encabezados automáticamente:
|
||||
|
||||
| Encabezado | Descripción |
|
||||
|--------|-------------|
|
||||
| `Content-Type` | `application/json` |
|
||||
| `X-Webhook-Timestamp` | Marca de tiempo Unix en milisegundos |
|
||||
| `X-Delivery-ID` | UUID único para esta entrega |
|
||||
| `Idempotency-Key` | Igual que `X-Delivery-ID` para deduplicación |
|
||||
|
||||
## Salidas
|
||||
|
||||
| Salida | Tipo | Descripción |
|
||||
|--------|------|-------------|
|
||||
| `data` | json | Cuerpo de respuesta del endpoint |
|
||||
| `status` | number | Código de estado HTTP |
|
||||
| `headers` | object | Encabezados de respuesta |
|
||||
|
||||
## Ejemplos de casos de uso
|
||||
|
||||
**Notificar servicios externos** - Envía resultados del flujo de trabajo a Slack, Discord o endpoints personalizados
|
||||
|
||||
```
|
||||
Agent → Function (format) → Webhook (notify)
|
||||
```
|
||||
|
||||
**Activar flujos de trabajo externos** - Inicia procesos en otros sistemas cuando se cumplan las condiciones
|
||||
|
||||
```
|
||||
Condition (check) → Webhook (trigger) → Response
|
||||
```
|
||||
|
||||
<Callout>
|
||||
El bloque Webhook siempre usa POST. Para otros métodos HTTP o más control, usa el [bloque API](/blocks/api).
|
||||
</Callout>
|
||||
76
apps/docs/content/docs/es/enterprise/index.mdx
Normal file
76
apps/docs/content/docs/es/enterprise/index.mdx
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Enterprise
|
||||
description: Funciones enterprise para organizaciones con requisitos avanzados
|
||||
de seguridad y cumplimiento
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Sim Studio Enterprise proporciona funciones avanzadas para organizaciones con requisitos mejorados de seguridad, cumplimiento y gestión.
|
||||
|
||||
---
|
||||
|
||||
## Bring Your Own Key (BYOK)
|
||||
|
||||
Usa tus propias claves API para proveedores de modelos de IA en lugar de las claves alojadas de Sim Studio.
|
||||
|
||||
### Proveedores compatibles
|
||||
|
||||
| Proveedor | Uso |
|
||||
|----------|-------|
|
||||
| OpenAI | Embeddings de base de conocimiento, bloque Agent |
|
||||
| Anthropic | Bloque Agent |
|
||||
| Google | Bloque Agent |
|
||||
| Mistral | OCR de base de conocimiento |
|
||||
|
||||
### Configuración
|
||||
|
||||
1. Navega a **Configuración** → **BYOK** en tu espacio de trabajo
|
||||
2. Haz clic en **Añadir clave** para tu proveedor
|
||||
3. Introduce tu clave API y guarda
|
||||
|
||||
<Callout type="warn">
|
||||
Las claves BYOK están cifradas en reposo. Solo los administradores y propietarios de la organización pueden gestionar las claves.
|
||||
</Callout>
|
||||
|
||||
Cuando está configurado, los flujos de trabajo usan tu clave en lugar de las claves alojadas de Sim Studio. Si se elimina, los flujos de trabajo vuelven automáticamente a las claves alojadas.
|
||||
|
||||
---
|
||||
|
||||
## Single Sign-On (SSO)
|
||||
|
||||
Autenticación enterprise con soporte SAML 2.0 y OIDC para gestión centralizada de identidades.
|
||||
|
||||
### Proveedores compatibles
|
||||
|
||||
- Okta
|
||||
- Azure AD / Entra ID
|
||||
- Google Workspace
|
||||
- OneLogin
|
||||
- Cualquier proveedor SAML 2.0 u OIDC
|
||||
|
||||
### Configuración
|
||||
|
||||
1. Navega a **Configuración** → **SSO** en tu espacio de trabajo
|
||||
2. Elige tu proveedor de identidad
|
||||
3. Configura la conexión usando los metadatos de tu IdP
|
||||
4. Activa SSO para tu organización
|
||||
|
||||
<Callout type="info">
|
||||
Una vez que SSO está activado, los miembros del equipo se autentican a través de tu proveedor de identidad en lugar de correo electrónico/contraseña.
|
||||
</Callout>
|
||||
|
||||
---
|
||||
|
||||
## Self-Hosted
|
||||
|
||||
Para implementaciones self-hosted, las funciones enterprise se pueden activar mediante variables de entorno:
|
||||
|
||||
| Variable | Descripción |
|
||||
|----------|-------------|
|
||||
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Inicio de sesión único con SAML/OIDC |
|
||||
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Grupos de sondeo para activadores de correo electrónico |
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK solo está disponible en Sim Studio alojado. Las implementaciones autoalojadas configuran las claves de proveedor de IA directamente a través de variables de entorno.
|
||||
</Callout>
|
||||
@@ -49,40 +49,40 @@ El desglose del modelo muestra:
|
||||
|
||||
<Tabs items={['Modelos alojados', 'Trae tu propia clave API']}>
|
||||
<Tab>
|
||||
**Modelos alojados** - Sim proporciona claves API con un multiplicador de precio de 2x:
|
||||
**Modelos alojados** - Sim proporciona claves API con un multiplicador de precios de 1.4x para bloques de agente:
|
||||
|
||||
**OpenAI**
|
||||
| Modelo | Precio base (entrada/salida) | Precio alojado (entrada/salida) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| GPT-5.1 | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.50 / $4.00 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.10 / $0.80 |
|
||||
| GPT-4o | $2.50 / $10.00 | $5.00 / $20.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $4.00 / $16.00 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.80 / $3.20 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.20 / $0.80 |
|
||||
| o1 | $15.00 / $60.00 | $30.00 / $120.00 |
|
||||
| o3 | $2.00 / $8.00 | $4.00 / $16.00 |
|
||||
| o4 Mini | $1.10 / $4.40 | $2.20 / $8.80 |
|
||||
| GPT-5.1 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.35 / $2.80 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.07 / $0.56 |
|
||||
| GPT-4o | $2.50 / $10.00 | $3.50 / $14.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.56 / $2.24 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.14 / $0.56 |
|
||||
| o1 | $15.00 / $60.00 | $21.00 / $84.00 |
|
||||
| o3 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| o4 Mini | $1.10 / $4.40 | $1.54 / $6.16 |
|
||||
|
||||
**Anthropic**
|
||||
| Modelo | Precio base (entrada/salida) | Precio alojado (entrada/salida) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $10.00 / $50.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $30.00 / $150.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $6.00 / $30.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $6.00 / $30.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $2.00 / $10.00 |
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $7.00 / $35.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $21.00 / $105.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $1.40 / $7.00 |
|
||||
|
||||
**Google**
|
||||
| Modelo | Precio base (entrada/salida) | Precio alojado (entrada/salida) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $4.00 / $24.00 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.60 / $5.00 |
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $2.80 / $16.80 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.42 / $3.50 |
|
||||
|
||||
*El multiplicador 2x cubre los costos de infraestructura y gestión de API.*
|
||||
*El multiplicador de 1.4x cubre los costos de infraestructura y gestión de API.*
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
|
||||
64
apps/docs/content/docs/es/keyboard-shortcuts/index.mdx
Normal file
64
apps/docs/content/docs/es/keyboard-shortcuts/index.mdx
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: Atajos de teclado
|
||||
description: Domina el lienzo de flujo de trabajo con atajos de teclado y
|
||||
controles del ratón
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Acelera la creación de tus flujos de trabajo con estos atajos de teclado y controles del ratón. Todos los atajos funcionan cuando el lienzo está enfocado (no cuando estás escribiendo en un campo de entrada).
|
||||
|
||||
<Callout type="info">
|
||||
**Mod** se refiere a `Cmd` en macOS y `Ctrl` en Windows/Linux.
|
||||
</Callout>
|
||||
|
||||
## Controles del lienzo
|
||||
|
||||
### Controles del ratón
|
||||
|
||||
| Acción | Control |
|
||||
|--------|---------|
|
||||
| Desplazar/mover lienzo | Arrastrar con botón izquierdo en espacio vacío |
|
||||
| Desplazar/mover lienzo | Desplazamiento o trackpad |
|
||||
| Seleccionar múltiples bloques | Arrastrar con botón derecho para dibujar cuadro de selección |
|
||||
| Arrastrar bloque | Arrastrar con botón izquierdo en encabezado del bloque |
|
||||
| Añadir a la selección | `Mod` + clic en bloques |
|
||||
|
||||
### Acciones de flujo de trabajo
|
||||
|
||||
| Atajo | Acción |
|
||||
|----------|--------|
|
||||
| `Mod` + `Enter` | Ejecutar flujo de trabajo (o cancelar si está en ejecución) |
|
||||
| `Mod` + `Z` | Deshacer |
|
||||
| `Mod` + `Shift` + `Z` | Rehacer |
|
||||
| `Mod` + `C` | Copiar bloques seleccionados |
|
||||
| `Mod` + `V` | Pegar bloques |
|
||||
| `Delete` o `Backspace` | Eliminar bloques o conexiones seleccionados |
|
||||
| `Shift` + `L` | Diseño automático del lienzo |
|
||||
|
||||
## Navegación de paneles
|
||||
|
||||
Estos atajos cambian entre las pestañas del panel en el lado derecho del lienzo.
|
||||
|
||||
| Atajo | Acción |
|
||||
|----------|--------|
|
||||
| `C` | Enfocar pestaña Copilot |
|
||||
| `T` | Enfocar pestaña Barra de herramientas |
|
||||
| `E` | Enfocar pestaña Editor |
|
||||
| `Mod` + `F` | Enfocar búsqueda de Barra de herramientas |
|
||||
|
||||
## Navegación global
|
||||
|
||||
| Atajo | Acción |
|
||||
|----------|--------|
|
||||
| `Mod` + `K` | Abrir búsqueda |
|
||||
| `Mod` + `Shift` + `A` | Añadir nuevo flujo de trabajo de agente |
|
||||
| `Mod` + `Y` | Ir a plantillas |
|
||||
| `Mod` + `L` | Ir a registros |
|
||||
|
||||
## Utilidad
|
||||
|
||||
| Atajo | Acción |
|
||||
|----------|--------|
|
||||
| `Mod` + `D` | Limpiar consola del terminal |
|
||||
| `Mod` + `E` | Limpiar notificaciones |
|
||||
108
apps/docs/content/docs/es/mcp/deploy-workflows.mdx
Normal file
108
apps/docs/content/docs/es/mcp/deploy-workflows.mdx
Normal file
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Implementar flujos de trabajo como MCP
|
||||
description: Expone tus flujos de trabajo como herramientas MCP para asistentes
|
||||
de IA externos y aplicaciones
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Implementa tus flujos de trabajo como herramientas MCP para hacerlos accesibles a asistentes de IA externos como Claude Desktop, Cursor y otros clientes compatibles con MCP. Esto convierte tus flujos de trabajo en herramientas invocables que pueden ser llamadas desde cualquier lugar.
|
||||
|
||||
## Crear y gestionar servidores MCP
|
||||
|
||||
Los servidores MCP agrupan tus herramientas de flujo de trabajo. Créalos y gestiόnalos en la configuración del espacio de trabajo:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-server.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navega a **Configuración → MCP implementados**
|
||||
2. Haz clic en **Crear servidor**
|
||||
3. Introduce un nombre y una descripción opcional
|
||||
4. Copia la URL del servidor para usarla en tus clientes MCP
|
||||
5. Visualiza y gestiona todas las herramientas añadidas al servidor
|
||||
|
||||
## Añadir un flujo de trabajo como herramienta
|
||||
|
||||
Una vez que tu flujo de trabajo esté implementado, puedes exponerlo como una herramienta MCP:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-deploy-tool.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Abre tu flujo de trabajo implementado
|
||||
2. Haz clic en **Implementar** y ve a la pestaña **MCP**
|
||||
3. Configura el nombre y la descripción de la herramienta
|
||||
4. Añade descripciones para cada parámetro (ayuda a la IA a entender las entradas)
|
||||
5. Selecciona a qué servidores MCP añadirla
|
||||
|
||||
<Callout type="info">
|
||||
El flujo de trabajo debe estar implementado antes de poder añadirse como herramienta MCP.
|
||||
</Callout>
|
||||
|
||||
## Configuración de la herramienta
|
||||
|
||||
### Nombre de la herramienta
|
||||
Usa letras minúsculas, números y guiones bajos. El nombre debe ser descriptivo y seguir las convenciones de nomenclatura de MCP (por ejemplo, `search_documents`, `send_email`).
|
||||
|
||||
### Descripción
|
||||
Escribe una descripción clara de lo que hace la herramienta. Esto ayuda a los asistentes de IA a entender cuándo usar la herramienta.
|
||||
|
||||
### Parámetros
|
||||
Los campos de formato de entrada de tu flujo de trabajo se convierten en parámetros de herramienta. Añade descripciones a cada parámetro para ayudar a los asistentes de IA a proporcionar valores correctos.
|
||||
|
||||
## Conectar clientes MCP
|
||||
|
||||
Usa la URL del servidor desde la configuración para conectar aplicaciones externas:
|
||||
|
||||
### Claude Desktop
|
||||
Añade a tu configuración de Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-sim-workflows": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "YOUR_SERVER_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
Añade la URL del servidor en la configuración MCP de Cursor usando el mismo patrón mcp-remote.
|
||||
|
||||
<Callout type="warn">
|
||||
Incluye tu encabezado de clave API (`X-API-Key`) para acceso autenticado al usar mcp-remote u otros transportes MCP basados en HTTP.
|
||||
</Callout>
|
||||
|
||||
## Gestión del servidor
|
||||
|
||||
Desde la vista de detalles del servidor en **Configuración → MCP implementados**, puedes:
|
||||
|
||||
- **Ver herramientas**: consulta todos los flujos de trabajo añadidos a un servidor
|
||||
- **Copiar URL**: obtén la URL del servidor para clientes MCP
|
||||
- **Añadir flujos de trabajo**: añade más flujos de trabajo desplegados como herramientas
|
||||
- **Eliminar herramientas**: elimina flujos de trabajo del servidor
|
||||
- **Eliminar servidor**: elimina el servidor completo y todas sus herramientas
|
||||
|
||||
## Cómo funciona
|
||||
|
||||
Cuando un cliente MCP llama a tu herramienta:
|
||||
|
||||
1. La solicitud se recibe en la URL de tu servidor MCP
|
||||
2. Sim valida la solicitud y mapea los parámetros a las entradas del flujo de trabajo
|
||||
3. El flujo de trabajo desplegado se ejecuta con las entradas proporcionadas
|
||||
4. Los resultados se devuelven al cliente MCP
|
||||
|
||||
Los flujos de trabajo se ejecutan usando la misma versión de despliegue que las llamadas API, garantizando un comportamiento consistente.
|
||||
|
||||
## Requisitos de permisos
|
||||
|
||||
| Acción | Permiso requerido |
|
||||
|--------|-------------------|
|
||||
| Crear servidores MCP | **Admin** |
|
||||
| Añadir flujos de trabajo a servidores | **Write** o **Admin** |
|
||||
| Ver servidores MCP | **Read**, **Write** o **Admin** |
|
||||
| Eliminar servidores MCP | **Admin** |
|
||||
@@ -1,8 +1,10 @@
|
||||
---
|
||||
title: MCP (Protocolo de Contexto de Modelo)
|
||||
title: Uso de herramientas MCP
|
||||
description: Conecta herramientas y servicios externos usando el Model Context Protocol
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
El Protocolo de Contexto de Modelo ([MCP](https://modelcontextprotocol.com/)) te permite conectar herramientas y servicios externos utilizando un protocolo estandarizado, permitiéndote integrar APIs y servicios directamente en tus flujos de trabajo. Con MCP, puedes ampliar las capacidades de Sim añadiendo integraciones personalizadas que funcionan perfectamente con tus agentes y flujos de trabajo.
|
||||
@@ -20,18 +22,12 @@ MCP es un estándar abierto que permite a los asistentes de IA conectarse de for
|
||||
|
||||
Los servidores MCP proporcionan colecciones de herramientas que tus agentes pueden utilizar. Configúralos en los ajustes del espacio de trabajo:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-1.png"
|
||||
alt="Configuración del servidor MCP en Ajustes"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/settings-mcp-tools.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navega a los ajustes de tu espacio de trabajo
|
||||
2. Ve a la sección **Servidores MCP**
|
||||
1. Navega a la configuración de tu espacio de trabajo
|
||||
2. Ve a la sección **MCP implementados**
|
||||
3. Haz clic en **Añadir servidor MCP**
|
||||
4. Introduce los detalles de configuración del servidor
|
||||
5. Guarda la configuración
|
||||
@@ -40,14 +36,18 @@ Los servidores MCP proporcionan colecciones de herramientas que tus agentes pued
|
||||
También puedes configurar servidores MCP directamente desde la barra de herramientas en un bloque de Agente para una configuración rápida.
|
||||
</Callout>
|
||||
|
||||
### Actualizar herramientas
|
||||
|
||||
Haz clic en **Actualizar** en un servidor para obtener los esquemas de herramientas más recientes y actualizar automáticamente cualquier bloque de agente que use esas herramientas con las nuevas definiciones de parámetros.
|
||||
|
||||
## Uso de herramientas MCP en agentes
|
||||
|
||||
Una vez que los servidores MCP están configurados, sus herramientas estarán disponibles dentro de tus bloques de agente:
|
||||
Una vez configurados los servidores MCP, sus herramientas están disponibles dentro de tus bloques de agente:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-2.png"
|
||||
alt="Uso de herramienta MCP en bloque de Agente"
|
||||
alt="Uso de herramienta MCP en bloque de agente"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
@@ -61,7 +61,7 @@ Una vez que los servidores MCP están configurados, sus herramientas estarán di
|
||||
|
||||
## Bloque de herramienta MCP independiente
|
||||
|
||||
Para un control más preciso, puedes usar el bloque dedicado de Herramienta MCP para ejecutar herramientas MCP específicas:
|
||||
Para un control más granular, puedes usar el bloque de herramienta MCP dedicado para ejecutar herramientas MCP específicas:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
@@ -73,23 +73,23 @@ Para un control más preciso, puedes usar el bloque dedicado de Herramienta MCP
|
||||
/>
|
||||
</div>
|
||||
|
||||
El bloque de Herramienta MCP te permite:
|
||||
El bloque de herramienta MCP te permite:
|
||||
- Ejecutar cualquier herramienta MCP configurada directamente
|
||||
- Pasar parámetros específicos a la herramienta
|
||||
- Usar la salida de la herramienta en pasos posteriores del flujo de trabajo
|
||||
- Encadenar múltiples herramientas MCP
|
||||
|
||||
### Cuándo usar Herramienta MCP vs Agente
|
||||
### Cuándo usar herramienta MCP vs. agente
|
||||
|
||||
**Usa Agente con herramientas MCP cuando:**
|
||||
**Usa agente con herramientas MCP cuando:**
|
||||
- Quieres que la IA decida qué herramientas usar
|
||||
- Necesitas un razonamiento complejo sobre cuándo y cómo usar las herramientas
|
||||
- Deseas una interacción en lenguaje natural con las herramientas
|
||||
- Necesitas razonamiento complejo sobre cuándo y cómo usar las herramientas
|
||||
- Quieres interacción en lenguaje natural con las herramientas
|
||||
|
||||
**Usa el bloque Herramienta MCP cuando:**
|
||||
- Necesites una ejecución determinista de herramientas
|
||||
- Quieras ejecutar una herramienta específica con parámetros conocidos
|
||||
- Estés construyendo flujos de trabajo estructurados con pasos predecibles
|
||||
- Necesitas una ejecución determinista de herramientas
|
||||
- Quieres ejecutar una herramienta específica con parámetros conocidos
|
||||
- Estás construyendo flujos de trabajo estructurados con pasos predecibles
|
||||
|
||||
## Requisitos de permisos
|
||||
|
||||
@@ -99,22 +99,22 @@ La funcionalidad MCP requiere permisos específicos del espacio de trabajo:
|
||||
|--------|-------------------|
|
||||
| Configurar servidores MCP en ajustes | **Admin** |
|
||||
| Usar herramientas MCP en agentes | **Write** o **Admin** |
|
||||
| Ver herramientas MCP disponibles | **Read**, **Write**, o **Admin** |
|
||||
| Ver herramientas MCP disponibles | **Read**, **Write** o **Admin** |
|
||||
| Ejecutar bloques de Herramienta MCP | **Write** o **Admin** |
|
||||
|
||||
## Casos de uso comunes
|
||||
|
||||
### Integración con bases de datos
|
||||
Conéctate a bases de datos para consultar, insertar o actualizar datos dentro de tus flujos de trabajo.
|
||||
Conecta con bases de datos para consultar, insertar o actualizar datos dentro de tus flujos de trabajo.
|
||||
|
||||
### Integraciones de API
|
||||
Accede a APIs externas y servicios web que no tienen integraciones incorporadas en Sim.
|
||||
Accede a API externas y servicios web que no tienen integraciones integradas en Sim.
|
||||
|
||||
### Acceso al sistema de archivos
|
||||
Lee, escribe y manipula archivos en sistemas de archivos locales o remotos.
|
||||
|
||||
### Lógica de negocio personalizada
|
||||
Ejecuta scripts o herramientas personalizadas específicas para las necesidades de tu organización.
|
||||
Ejecuta scripts o herramientas personalizadas específicas de las necesidades de tu organización.
|
||||
|
||||
### Acceso a datos en tiempo real
|
||||
Obtén datos en vivo de sistemas externos durante la ejecución del flujo de trabajo.
|
||||
@@ -122,23 +122,23 @@ Obtén datos en vivo de sistemas externos durante la ejecución del flujo de tra
|
||||
## Consideraciones de seguridad
|
||||
|
||||
- Los servidores MCP se ejecutan con los permisos del usuario que los configuró
|
||||
- Verifica siempre las fuentes del servidor MCP antes de la instalación
|
||||
- Siempre verifica las fuentes de los servidores MCP antes de la instalación
|
||||
- Usa variables de entorno para datos de configuración sensibles
|
||||
- Revisa las capacidades del servidor MCP antes de conceder acceso a los agentes
|
||||
- Revisa las capacidades del servidor MCP antes de otorgar acceso a los agentes
|
||||
|
||||
## Solución de problemas
|
||||
|
||||
### El servidor MCP no aparece
|
||||
- Verifica que la configuración del servidor sea correcta
|
||||
- Comprueba que tienes los permisos necesarios
|
||||
- Asegúrate de que el servidor MCP esté en funcionamiento y sea accesible
|
||||
- Comprueba que tienes los permisos requeridos
|
||||
- Asegúrate de que el servidor MCP esté en ejecución y accesible
|
||||
|
||||
### Fallos en la ejecución de herramientas
|
||||
- Verifica que los parámetros de la herramienta estén correctamente formateados
|
||||
- Revisa los registros del servidor MCP para ver mensajes de error
|
||||
- Revisa los registros del servidor MCP para mensajes de error
|
||||
- Asegúrate de que la autenticación requerida esté configurada
|
||||
|
||||
### Errores de permisos
|
||||
- Confirma tu nivel de permisos en el espacio de trabajo
|
||||
- Comprueba si el servidor MCP requiere autenticación adicional
|
||||
- Verifica que el servidor esté configurado correctamente para tu espacio de trabajo
|
||||
- Confirma tu nivel de permisos del espacio de trabajo
|
||||
- Verifica si el servidor MCP requiere autenticación adicional
|
||||
- Comprueba que el servidor esté configurado correctamente para tu espacio de trabajo
|
||||
233
apps/docs/content/docs/es/tools/fireflies.mdx
Normal file
233
apps/docs/content/docs/es/tools/fireflies.mdx
Normal file
@@ -0,0 +1,233 @@
|
||||
---
|
||||
title: Fireflies
|
||||
description: Interactúa con transcripciones y grabaciones de reuniones de Fireflies.ai
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="fireflies"
|
||||
color="#100730"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Fireflies.ai](https://fireflies.ai/) es una plataforma de transcripción e inteligencia de reuniones que se integra con Sim, permitiendo que tus agentes trabajen directamente con grabaciones de reuniones, transcripciones e información mediante automatizaciones sin código.
|
||||
|
||||
La integración de Fireflies en Sim proporciona herramientas para:
|
||||
|
||||
- **Listar transcripciones de reuniones:** Obtén múltiples reuniones y su información resumida para tu equipo o cuenta.
|
||||
- **Recuperar detalles completos de transcripciones:** Accede a transcripciones detalladas, incluyendo resúmenes, elementos de acción, temas y análisis de participantes para cualquier reunión.
|
||||
- **Subir audio o vídeo:** Sube archivos de audio/vídeo o proporciona URLs para transcripción—opcionalmente establece idioma, título, asistentes y recibe notas de reunión automatizadas.
|
||||
- **Buscar transcripciones:** Encuentra reuniones por palabra clave, participante, anfitrión o periodo de tiempo para localizar rápidamente discusiones relevantes.
|
||||
- **Eliminar transcripciones:** Elimina transcripciones de reuniones específicas de tu espacio de trabajo de Fireflies.
|
||||
- **Crear fragmentos destacados (Bites):** Extrae y resalta momentos clave de las transcripciones como clips de audio o vídeo.
|
||||
- **Activar flujos de trabajo al completar la transcripción:** Activa flujos de trabajo de Sim automáticamente cuando finaliza una transcripción de reunión de Fireflies usando el webhook trigger proporcionado—habilitando automatizaciones en tiempo real y notificaciones basadas en nuevos datos de reuniones.
|
||||
|
||||
Al combinar estas capacidades, puedes optimizar acciones posteriores a las reuniones, extraer información estructurada, automatizar notificaciones, gestionar grabaciones y orquestar flujos de trabajo personalizados en torno a las llamadas de tu organización—todo de forma segura usando tu clave API y credenciales de Fireflies.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instrucciones de uso
|
||||
|
||||
Integra Fireflies.ai en el flujo de trabajo. Gestiona transcripciones de reuniones, añade bot a reuniones en vivo, crea fragmentos destacados y más. También puede activar flujos de trabajo cuando se completan las transcripciones.
|
||||
|
||||
## Herramientas
|
||||
|
||||
### `fireflies_list_transcripts`
|
||||
|
||||
Lista las transcripciones de reuniones de Fireflies.ai con filtrado opcional
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `keyword` | string | No | Palabra clave de búsqueda en el título de la reunión o transcripción |
|
||||
| `fromDate` | string | No | Filtra transcripciones desde esta fecha \(formato ISO 8601\) |
|
||||
| `toDate` | string | No | Filtra transcripciones hasta esta fecha \(formato ISO 8601\) |
|
||||
| `hostEmail` | string | No | Filtra por correo electrónico del anfitrión de la reunión |
|
||||
| `participants` | string | No | Filtra por correos electrónicos de participantes \(separados por comas\) |
|
||||
| `limit` | number | No | Número máximo de transcripciones a devolver \(máx. 50\) |
|
||||
| `skip` | number | No | Número de transcripciones a omitir para paginación |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcripts` | array | Lista de transcripciones |
|
||||
| `count` | number | Número de transcripciones devueltas |
|
||||
|
||||
### `fireflies_get_transcript`
|
||||
|
||||
Obtiene una única transcripción con detalles completos, incluyendo resumen, elementos de acción y análisis
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `transcriptId` | string | Sí | El ID de transcripción a recuperar |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | La transcripción con detalles completos |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
Obtener información del usuario de Fireflies.ai. Devuelve el usuario actual si no se especifica ningún ID.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `userId` | string | No | ID de usuario a recuperar \(opcional, por defecto el propietario de la clave API\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Información del usuario |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
Listar todos los usuarios dentro de tu equipo de Fireflies.ai
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Lista de usuarios del equipo |
|
||||
|
||||
### `fireflies_upload_audio`
|
||||
|
||||
Subir una URL de archivo de audio a Fireflies.ai para transcripción
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `audioFile` | file | No | Archivo de audio/vídeo a subir para transcripción |
|
||||
| `audioUrl` | string | No | URL HTTPS pública del archivo de audio/vídeo \(MP3, MP4, WAV, M4A, OGG\) |
|
||||
| `title` | string | No | Título para la reunión/transcripción |
|
||||
| `webhook` | string | No | URL de webhook para notificar cuando la transcripción esté completa |
|
||||
| `language` | string | No | Código de idioma para la transcripción \(por ejemplo, "es" para español, "de" para alemán\) |
|
||||
| `attendees` | string | No | Asistentes en formato JSON: \[\{"displayName": "Nombre", "email": "email@example.com"\}\] |
|
||||
| `clientReferenceId` | string | No | ID de referencia personalizado para seguimiento |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Si la carga fue exitosa |
|
||||
| `title` | string | Título de la reunión cargada |
|
||||
| `message` | string | Mensaje de estado de Fireflies |
|
||||
|
||||
### `fireflies_delete_transcript`
|
||||
|
||||
Eliminar una transcripción de Fireflies.ai
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `transcriptId` | string | Sí | El ID de la transcripción a eliminar |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Si la transcripción fue eliminada exitosamente |
|
||||
|
||||
### `fireflies_add_to_live_meeting`
|
||||
|
||||
Agregar el bot de Fireflies.ai a una reunión en curso para grabar y transcribir
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `meetingLink` | string | Sí | URL de reunión válida \(Zoom, Google Meet, Microsoft Teams, etc.\) |
|
||||
| `title` | string | No | Título para la reunión \(máximo 256 caracteres\) |
|
||||
| `meetingPassword` | string | No | Contraseña para la reunión si es necesaria \(máximo 32 caracteres\) |
|
||||
| `duration` | number | No | Duración de la reunión en minutos \(15-120, predeterminado: 60\) |
|
||||
| `language` | string | No | Código de idioma para la transcripción \(p. ej., "en", "es", "de"\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Si el bot se agregó exitosamente a la reunión |
|
||||
|
||||
### `fireflies_create_bite`
|
||||
|
||||
Crear un fragmento destacado desde un rango de tiempo específico en una transcripción
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `transcriptId` | string | Sí | ID de la transcripción desde la cual crear el fragmento |
|
||||
| `startTime` | number | Sí | Tiempo de inicio del fragmento en segundos |
|
||||
| `endTime` | number | Sí | Tiempo de finalización del fragmento en segundos |
|
||||
| `name` | string | No | Nombre para el fragmento \(máximo 256 caracteres\) |
|
||||
| `mediaType` | string | No | Tipo de medio: "video" o "audio" |
|
||||
| `summary` | string | No | Resumen para el fragmento \(máximo 500 caracteres\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | Detalles del fragmento creado |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
Listar fragmentos destacados de Fireflies.ai
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
| `transcriptId` | string | No | Filtrar fragmentos para una transcripción específica |
|
||||
| `mine` | boolean | No | Devolver solo fragmentos propiedad del titular de la clave API \(predeterminado: true\) |
|
||||
| `limit` | number | No | Número máximo de fragmentos a devolver \(máximo 50\) |
|
||||
| `skip` | number | No | Número de fragmentos a omitir para paginación |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bites` | array | Lista de fragmentos/clips de audio |
|
||||
|
||||
### `fireflies_list_contacts`
|
||||
|
||||
Lista todos los contactos de tus reuniones de Fireflies.ai
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Sí | Clave API de Fireflies |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Lista de contactos de las reuniones |
|
||||
|
||||
## Notas
|
||||
|
||||
- Categoría: `tools`
|
||||
- Tipo: `fireflies`
|
||||
@@ -1,230 +0,0 @@
|
||||
---
|
||||
title: Webhook
|
||||
description: Recibe webhooks de cualquier servicio configurando un webhook personalizado.
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
<BlockInfoCard
|
||||
type="generic_webhook"
|
||||
color="#10B981"
|
||||
/>
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Configuración del bloque Webhook"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Descripción general
|
||||
|
||||
El bloque Webhook genérico te permite recibir webhooks desde cualquier servicio externo. Este es un disparador flexible que puede manejar cualquier carga útil JSON, lo que lo hace ideal para integrarse con servicios que no tienen un bloque Sim dedicado.
|
||||
|
||||
## Uso básico
|
||||
|
||||
### Modo de paso simple
|
||||
|
||||
Sin definir un formato de entrada, el webhook transmite todo el cuerpo de la solicitud tal como está:
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Test webhook trigger",
|
||||
"data": {
|
||||
"key": "value"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
Accede a los datos en bloques posteriores usando:
|
||||
- `<webhook1.message>` → "Test webhook trigger"
|
||||
- `<webhook1.data.key>` → "value"
|
||||
|
||||
### Formato de entrada estructurado (opcional)
|
||||
|
||||
Define un esquema de entrada para obtener campos tipados y habilitar funciones avanzadas como cargas de archivos:
|
||||
|
||||
**Configuración del formato de entrada:**
|
||||
|
||||
```json
|
||||
[
|
||||
{ "name": "message", "type": "string" },
|
||||
{ "name": "priority", "type": "number" },
|
||||
{ "name": "documents", "type": "files" }
|
||||
]
|
||||
```
|
||||
|
||||
**Solicitud de webhook:**
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Invoice submission",
|
||||
"priority": 1,
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:application/pdf;base64,JVBERi0xLjQK...",
|
||||
"name": "invoice.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## Cargas de archivos
|
||||
|
||||
### Formatos de archivo compatibles
|
||||
|
||||
El webhook admite dos formatos de entrada de archivos:
|
||||
|
||||
#### 1. Archivos codificados en Base64
|
||||
Para cargar contenido de archivos directamente:
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
|
||||
"name": "screenshot.png",
|
||||
"mime": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **Tamaño máximo**: 20MB por archivo
|
||||
- **Formato**: URL de datos estándar con codificación base64
|
||||
- **Almacenamiento**: Los archivos se cargan en almacenamiento seguro de ejecución
|
||||
|
||||
#### 2. Referencias URL
|
||||
Para pasar URLs de archivos existentes:
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "url",
|
||||
"data": "https://example.com/files/document.pdf",
|
||||
"name": "document.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Acceso a archivos en bloques posteriores
|
||||
|
||||
Los archivos se procesan en objetos `UserFile` con las siguientes propiedades:
|
||||
|
||||
```typescript
|
||||
{
|
||||
id: string, // Unique file identifier
|
||||
name: string, // Original filename
|
||||
url: string, // Presigned URL (valid for 5 minutes)
|
||||
size: number, // File size in bytes
|
||||
type: string, // MIME type
|
||||
key: string, // Storage key
|
||||
uploadedAt: string, // ISO timestamp
|
||||
expiresAt: string // ISO timestamp (5 minutes)
|
||||
}
|
||||
```
|
||||
|
||||
**Acceso en bloques:**
|
||||
- `<webhook1.documents[0].url>` → URL de descarga
|
||||
- `<webhook1.documents[0].name>` → "invoice.pdf"
|
||||
- `<webhook1.documents[0].size>` → 524288
|
||||
- `<webhook1.documents[0].type>` → "application/pdf"
|
||||
|
||||
### Ejemplo completo de carga de archivos
|
||||
|
||||
```bash
|
||||
# Create a base64-encoded file
|
||||
echo "Hello World" | base64
|
||||
# SGVsbG8gV29ybGQK
|
||||
|
||||
# Send webhook with file
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"subject": "Document for review",
|
||||
"attachments": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:text/plain;base64,SGVsbG8gV29ybGQK",
|
||||
"name": "sample.txt",
|
||||
"mime": "text/plain"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## Autenticación
|
||||
|
||||
### Configurar autenticación (opcional)
|
||||
|
||||
En la configuración del webhook:
|
||||
1. Habilitar "Requerir autenticación"
|
||||
2. Establecer un token secreto
|
||||
3. Elegir tipo de encabezado:
|
||||
- **Encabezado personalizado**: `X-Sim-Secret: your-token`
|
||||
- **Autorización Bearer**: `Authorization: Bearer your-token`
|
||||
|
||||
### Uso de la autenticación
|
||||
|
||||
```bash
|
||||
# With custom header
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
|
||||
# With bearer token
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
```
|
||||
|
||||
## Mejores prácticas
|
||||
|
||||
1. **Usar formato de entrada para estructura**: Define un formato de entrada cuando conozcas el esquema esperado. Esto proporciona:
|
||||
- Validación de tipo
|
||||
- Mejor autocompletado en el editor
|
||||
- Capacidades de carga de archivos
|
||||
|
||||
2. **Autenticación**: Habilita siempre la autenticación para webhooks en producción para prevenir accesos no autorizados.
|
||||
|
||||
3. **Límites de tamaño de archivo**: Mantén los archivos por debajo de 20MB. Para archivos más grandes, usa referencias URL en su lugar.
|
||||
|
||||
4. **Caducidad de archivos**: Los archivos descargados tienen URLs con caducidad de 5 minutos. Procésalos rápidamente o almacénalos en otro lugar si los necesitas por más tiempo.
|
||||
|
||||
5. **Manejo de errores**: El procesamiento de webhooks es asíncrono. Revisa los registros de ejecución para detectar errores.
|
||||
|
||||
6. **Pruebas**: Usa el botón "Probar webhook" en el editor para validar tu configuración antes de implementarla.
|
||||
|
||||
## Casos de uso
|
||||
|
||||
- **Envíos de formularios**: Recibe datos de formularios personalizados con cargas de archivos
|
||||
- **Integraciones con terceros**: Conéctate con servicios que envían webhooks (Stripe, GitHub, etc.)
|
||||
- **Procesamiento de documentos**: Acepta documentos de sistemas externos para procesarlos
|
||||
- **Notificaciones de eventos**: Recibe datos de eventos de varias fuentes
|
||||
- **APIs personalizadas**: Construye endpoints de API personalizados para tus aplicaciones
|
||||
|
||||
## Notas
|
||||
|
||||
- Categoría: `triggers`
|
||||
- Tipo: `generic_webhook`
|
||||
- **Soporte de archivos**: disponible a través de la configuración del formato de entrada
|
||||
- **Tamaño máximo de archivo**: 20MB por archivo
|
||||
136
apps/docs/content/docs/es/tools/greptile.mdx
Normal file
136
apps/docs/content/docs/es/tools/greptile.mdx
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Greptile
|
||||
description: Búsqueda de código base y preguntas y respuestas con IA
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="greptile"
|
||||
color="#e5e5e5"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Greptile](https://greptile.com/) es una herramienta de desarrollo impulsada por IA para buscar y consultar código fuente en uno o más repositorios. Greptile permite a los ingenieros responder rápidamente preguntas complejas sobre el código base en lenguaje natural, localizar archivos o símbolos relevantes y obtener información sobre código desconocido o heredado.
|
||||
|
||||
Con Greptile, puedes:
|
||||
|
||||
- **Hacer preguntas complejas sobre tu código base en lenguaje natural**: Obtén respuestas generadas por IA sobre arquitectura, patrones de uso o implementaciones específicas.
|
||||
- **Encontrar código, archivos o funciones relevantes al instante**: Busca usando palabras clave o consultas en lenguaje natural y ve directamente a las líneas, archivos o bloques de código coincidentes.
|
||||
- **Comprender dependencias y relaciones**: Descubre dónde se llaman las funciones, cómo se relacionan los módulos o dónde se usan las API en grandes bases de código.
|
||||
- **Acelerar la incorporación y exploración de código**: Ponte al día rápidamente en nuevos proyectos o depura problemas complicados sin necesitar un contexto previo profundo.
|
||||
|
||||
La integración de Sim Greptile permite a tus agentes de IA:
|
||||
|
||||
- Consultar y buscar repositorios privados y públicos usando los modelos de lenguaje avanzados de Greptile.
|
||||
- Recuperar fragmentos de código contextualmente relevantes, referencias de archivos y explicaciones para apoyar la revisión de código, documentación y flujos de trabajo de desarrollo.
|
||||
- Activar automatizaciones en flujos de trabajo de Sim basadas en resultados de búsqueda/consulta o integrar inteligencia de código directamente en tus procesos.
|
||||
|
||||
Ya sea que estés tratando de acelerar la productividad del desarrollador, automatizar la documentación o potenciar la comprensión de tu equipo sobre un código base complejo, Greptile y Sim proporcionan acceso fluido a la inteligencia y búsqueda de código, justo donde lo necesitas.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instrucciones de uso
|
||||
|
||||
Consulta y busca en bases de código usando lenguaje natural con Greptile. Obtén respuestas generadas por IA sobre tu código, encuentra archivos relevantes y comprende bases de código complejas.
|
||||
|
||||
## Herramientas
|
||||
|
||||
### `greptile_query`
|
||||
|
||||
Consulta repositorios en lenguaje natural y obtén respuestas con referencias de código relevantes. Greptile utiliza IA para comprender tu código base y responder preguntas.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Sí | Pregunta en lenguaje natural sobre el código base |
|
||||
| `repositories` | string | Sí | Lista de repositorios separados por comas. Formato: "github:branch:owner/repo" o simplemente "owner/repo" \(por defecto github:main\) |
|
||||
| `sessionId` | string | No | ID de sesión para continuidad de la conversación |
|
||||
| `genius` | boolean | No | Activar modo genius para un análisis más exhaustivo \(más lento pero más preciso\) |
|
||||
| `apiKey` | string | Sí | Clave API de Greptile |
|
||||
| `githubToken` | string | Sí | Token de acceso personal de GitHub con acceso de lectura al repositorio |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Respuesta generada por IA a la consulta |
|
||||
| `sources` | array | Referencias de código relevantes que respaldan la respuesta |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
Busca en repositorios en lenguaje natural y obtén referencias de código relevantes sin generar una respuesta. Útil para encontrar ubicaciones específicas de código.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Sí | Consulta de búsqueda en lenguaje natural para encontrar código relevante |
|
||||
| `repositories` | string | Sí | Lista de repositorios separados por comas. Formato: "github:branch:owner/repo" o simplemente "owner/repo" \(por defecto github:main\) |
|
||||
| `sessionId` | string | No | ID de sesión para continuidad de la conversación |
|
||||
| `genius` | boolean | No | Activar modo genius para una búsqueda más exhaustiva \(más lento pero más preciso\) |
|
||||
| `apiKey` | string | Sí | Clave API de Greptile |
|
||||
| `githubToken` | string | Sí | Token de acceso personal de GitHub con acceso de lectura al repositorio |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | Referencias de código relevantes que coinciden con la consulta de búsqueda |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
Envía un repositorio para ser indexado por Greptile. La indexación debe completarse antes de que el repositorio pueda ser consultado. Los repositorios pequeños tardan de 3 a 5 minutos, los más grandes pueden tardar más de una hora.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Sí | Tipo de remoto Git: github o gitlab |
|
||||
| `repository` | string | Sí | Repositorio en formato propietario/repo \(ej., "facebook/react"\) |
|
||||
| `branch` | string | Sí | Rama a indexar \(ej., "main" o "master"\) |
|
||||
| `reload` | boolean | No | Forzar re-indexación incluso si ya está indexado |
|
||||
| `notify` | boolean | No | Enviar notificación por correo electrónico cuando se complete la indexación |
|
||||
| `apiKey` | string | Sí | Clave API de Greptile |
|
||||
| `githubToken` | string | Sí | Token de acceso personal de GitHub con acceso de lectura al repositorio |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repositoryId` | string | Identificador único para el repositorio indexado \(formato: remoto:rama:propietario/repo\) |
|
||||
| `statusEndpoint` | string | URL del endpoint para verificar el estado de indexación |
|
||||
| `message` | string | Mensaje de estado sobre la operación de indexación |
|
||||
|
||||
### `greptile_status`
|
||||
|
||||
Verifica el estado de indexación de un repositorio. Usa esto para verificar si un repositorio está listo para ser consultado o para monitorear el progreso de indexación.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Sí | Tipo de remoto Git: github o gitlab |
|
||||
| `repository` | string | Sí | Repositorio en formato propietario/repo \(ej., "facebook/react"\) |
|
||||
| `branch` | string | Sí | Nombre de la rama \(ej., "main" o "master"\) |
|
||||
| `apiKey` | string | Sí | Clave API de Greptile |
|
||||
| `githubToken` | string | Sí | Token de acceso personal de GitHub con acceso de lectura al repositorio |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repository` | string | Nombre del repositorio \(propietario/repo\) |
|
||||
| `remote` | string | Remoto Git \(github/gitlab\) |
|
||||
| `branch` | string | Nombre de la rama |
|
||||
| `private` | boolean | Si el repositorio es privado |
|
||||
| `status` | string | Estado de indexación: submitted, cloning, processing, completed o failed |
|
||||
| `filesProcessed` | number | Número de archivos procesados hasta el momento |
|
||||
| `numFiles` | number | Número total de archivos en el repositorio |
|
||||
| `sampleQuestions` | array | Preguntas de ejemplo para el repositorio indexado |
|
||||
| `sha` | string | SHA del commit Git de la versión indexada |
|
||||
|
||||
## Notas
|
||||
|
||||
- Categoría: `tools`
|
||||
- Tipo: `greptile`
|
||||
36
apps/docs/content/docs/es/tools/imap.mdx
Normal file
36
apps/docs/content/docs/es/tools/imap.mdx
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: Correo electrónico IMAP
|
||||
description: Activa flujos de trabajo cuando lleguen nuevos correos electrónicos
|
||||
a través de IMAP (funciona con cualquier proveedor de correo electrónico)
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="imap"
|
||||
color="#6366F1"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
El activador de correo electrónico IMAP permite que tus flujos de trabajo de Sim se inicien automáticamente cada vez que se reciba un nuevo correo electrónico en cualquier buzón que admita el protocolo IMAP. Esto funciona con Gmail, Outlook, Yahoo y la mayoría de los demás proveedores de correo electrónico.
|
||||
|
||||
Con el activador IMAP, puedes:
|
||||
|
||||
- **Automatizar el procesamiento de correos electrónicos**: inicia flujos de trabajo en tiempo real cuando lleguen nuevos mensajes a tu bandeja de entrada.
|
||||
- **Filtrar por remitente, asunto o carpeta**: configura tu activador para que reaccione solo a los correos electrónicos que cumplan ciertas condiciones.
|
||||
- **Extraer y procesar archivos adjuntos**: descarga y utiliza automáticamente archivos adjuntos en tus flujos automatizados.
|
||||
- **Analizar y utilizar el contenido del correo electrónico**: accede al asunto, remitente, destinatarios, cuerpo completo y otros metadatos en los pasos posteriores del flujo de trabajo.
|
||||
- **Integrar con cualquier proveedor de correo electrónico**: funciona con cualquier servicio que proporcione acceso IMAP estándar, sin dependencia de proveedores.
|
||||
- **Activar según criterios de no leído, marcado o personalizados**: configura filtros avanzados para los tipos de correos electrónicos que inician tus flujos de trabajo.
|
||||
|
||||
Con Sim, la integración IMAP te brinda el poder de convertir el correo electrónico en una fuente de automatización procesable. Responde a consultas de clientes, procesa notificaciones, inicia pipelines de datos y más, directamente desde tu bandeja de entrada de correo electrónico, sin intervención manual.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instrucciones de uso
|
||||
|
||||
Conéctate a cualquier servidor de correo electrónico a través del protocolo IMAP para activar flujos de trabajo cuando se reciban nuevos correos electrónicos. Compatible con Gmail, Outlook, Yahoo y cualquier otro proveedor de correo electrónico compatible con IMAP.
|
||||
|
||||
## Notas
|
||||
|
||||
- Categoría: `triggers`
|
||||
- Tipo: `imap`
|
||||
486
apps/docs/content/docs/es/tools/jira_service_management.mdx
Normal file
486
apps/docs/content/docs/es/tools/jira_service_management.mdx
Normal file
@@ -0,0 +1,486 @@
|
||||
---
|
||||
title: Jira Service Management
|
||||
description: Interactúa con Jira Service Management
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="jira_service_management"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
## Instrucciones de uso
|
||||
|
||||
Integra con Jira Service Management para la gestión de servicios de TI. Crea y gestiona solicitudes de servicio, maneja clientes y organizaciones, realiza seguimiento de SLA y administra colas.
|
||||
|
||||
## Herramientas
|
||||
|
||||
### `jsm_get_service_desks`
|
||||
|
||||
Obtiene todos los service desks de Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `serviceDesks` | json | Array de service desks |
|
||||
| `total` | number | Número total de service desks |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_get_request_types`
|
||||
|
||||
Obtiene los tipos de solicitud para un service desk en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del service desk para obtener tipos de solicitud |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `requestTypes` | json | Array de tipos de solicitud |
|
||||
| `total` | number | Número total de tipos de solicitud |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_create_request`
|
||||
|
||||
Crear una nueva solicitud de servicio en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del Service Desk en el que crear la solicitud |
|
||||
| `requestTypeId` | string | Sí | ID del tipo de solicitud para la nueva solicitud |
|
||||
| `summary` | string | Sí | Resumen/título para la solicitud de servicio |
|
||||
| `description` | string | No | Descripción para la solicitud de servicio |
|
||||
| `raiseOnBehalfOf` | string | No | ID de cuenta del cliente para crear la solicitud en su nombre |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueId` | string | ID de la incidencia de solicitud creada |
|
||||
| `issueKey` | string | Clave de la incidencia de solicitud creada \(p. ej., SD-123\) |
|
||||
| `requestTypeId` | string | ID del tipo de solicitud |
|
||||
| `serviceDeskId` | string | ID del service desk |
|
||||
| `success` | boolean | Si la solicitud se creó correctamente |
|
||||
| `url` | string | URL de la solicitud creada |
|
||||
|
||||
### `jsm_get_request`
|
||||
|
||||
Obtener una única solicitud de servicio de Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
|
||||
### `jsm_get_requests`
|
||||
|
||||
Obtener múltiples solicitudes de servicio de Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | No | Filtrar por ID de service desk |
|
||||
| `requestOwnership` | string | No | Filtrar por propiedad: OWNED_REQUESTS, PARTICIPATED_REQUESTS, ORGANIZATION, ALL_REQUESTS |
|
||||
| `requestStatus` | string | No | Filtrar por estado: OPEN, CLOSED, ALL |
|
||||
| `searchTerm` | string | No | Término de búsqueda para filtrar solicitudes |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `requests` | json | Array de solicitudes de servicio |
|
||||
| `total` | number | Número total de solicitudes |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_add_comment`
|
||||
|
||||
Añadir un comentario (público o interno) a una solicitud de servicio en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(ej., SD-123\) |
|
||||
| `body` | string | Sí | Texto del cuerpo del comentario |
|
||||
| `isPublic` | boolean | Sí | Si el comentario es público \(visible para el cliente\) o interno |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `commentId` | string | ID del comentario creado |
|
||||
| `body` | string | Texto del cuerpo del comentario |
|
||||
| `isPublic` | boolean | Si el comentario es público |
|
||||
| `success` | boolean | Si el comentario se añadió correctamente |
|
||||
|
||||
### `jsm_get_comments`
|
||||
|
||||
Obtener comentarios de una solicitud de servicio en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(ej., SD-123\) |
|
||||
| `isPublic` | boolean | No | Filtrar solo comentarios públicos |
|
||||
| `internal` | boolean | No | Filtrar solo comentarios internos |
|
||||
| `start` | number | No | Índice de inicio para la paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave del issue |
|
||||
| `comments` | json | Array de comentarios |
|
||||
| `total` | number | Número total de comentarios |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_get_customers`
|
||||
|
||||
Obtener clientes para un service desk en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del service desk para obtener clientes |
|
||||
| `query` | string | No | Consulta de búsqueda para filtrar clientes |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `customers` | json | Array de clientes |
|
||||
| `total` | number | Número total de clientes |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_add_customer`
|
||||
|
||||
Añadir clientes a un service desk en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del Service Desk al que añadir clientes |
|
||||
| `emails` | string | Sí | Direcciones de correo electrónico separadas por comas para añadir como clientes |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `serviceDeskId` | string | ID del service desk |
|
||||
| `success` | boolean | Si los clientes se añadieron correctamente |
|
||||
|
||||
### `jsm_get_organizations`
|
||||
|
||||
Obtener organizaciones de un service desk en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del Service Desk del que obtener organizaciones |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `organizations` | json | Array de organizaciones |
|
||||
| `total` | number | Número total de organizaciones |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_create_organization`
|
||||
|
||||
Crear una nueva organización en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `name` | string | Sí | Nombre de la organización a crear |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `organizationId` | string | ID de la organización creada |
|
||||
| `name` | string | Nombre de la organización creada |
|
||||
| `success` | boolean | Si la operación tuvo éxito |
|
||||
|
||||
### `jsm_add_organization`
|
||||
|
||||
Añadir una organización a un service desk en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del service desk al que añadir la organización |
|
||||
| `organizationId` | string | Sí | ID de la organización a añadir al service desk |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `serviceDeskId` | string | ID del service desk |
|
||||
| `organizationId` | string | ID de la organización añadida |
|
||||
| `success` | boolean | Si la operación tuvo éxito |
|
||||
|
||||
### `jsm_get_queues`
|
||||
|
||||
Obtener colas para un service desk en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `serviceDeskId` | string | Sí | ID del service desk para obtener colas |
|
||||
| `includeCount` | boolean | No | Incluir recuento de incidencias para cada cola |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `queues` | json | Array de colas |
|
||||
| `total` | number | Número total de colas |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_get_sla`
|
||||
|
||||
Obtener información de SLA para una solicitud de servicio en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(ej., SD-123\) |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `slas` | json | Array de información de SLA |
|
||||
| `total` | number | Número total de SLA |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_get_transitions`
|
||||
|
||||
Obtener las transiciones disponibles para una solicitud de servicio en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `transitions` | json | Array de transiciones disponibles |
|
||||
|
||||
### `jsm_transition_request`
|
||||
|
||||
Transicionar una solicitud de servicio a un nuevo estado en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
| `transitionId` | string | Sí | ID de transición a aplicar |
|
||||
| `comment` | string | No | Comentario opcional para añadir durante la transición |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `transitionId` | string | ID de transición aplicada |
|
||||
| `success` | boolean | Si la transición fue exitosa |
|
||||
|
||||
### `jsm_get_participants`
|
||||
|
||||
Obtener participantes de una solicitud en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
| `start` | number | No | Índice de inicio para paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `participants` | json | Array de participantes |
|
||||
| `total` | number | Número total de participantes |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_add_participants`
|
||||
|
||||
Agregar participantes a una solicitud en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
| `accountIds` | string | Sí | IDs de cuenta separados por comas para agregar como participantes |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `participants` | json | Array de participantes añadidos |
|
||||
| `success` | boolean | Si la operación tuvo éxito |
|
||||
|
||||
### `jsm_get_approvals`
|
||||
|
||||
Obtener aprobaciones para una solicitud en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
| `start` | number | No | Índice de inicio para la paginación \(predeterminado: 0\) |
|
||||
| `limit` | number | No | Máximo de resultados a devolver \(predeterminado: 50\) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `approvals` | json | Array de aprobaciones |
|
||||
| `total` | number | Número total de aprobaciones |
|
||||
| `isLastPage` | boolean | Si esta es la última página |
|
||||
|
||||
### `jsm_answer_approval`
|
||||
|
||||
Aprobar o rechazar una solicitud de aprobación en Jira Service Management
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Requerido | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Jira \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `cloudId` | string | No | ID de Jira Cloud para la instancia |
|
||||
| `issueIdOrKey` | string | Sí | ID o clave de la incidencia \(p. ej., SD-123\) |
|
||||
| `approvalId` | string | Sí | ID de aprobación a responder |
|
||||
| `decision` | string | Sí | Decisión: "approve" o "decline" |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la operación |
|
||||
| `issueIdOrKey` | string | ID o clave de la incidencia |
|
||||
| `approvalId` | string | ID de aprobación |
|
||||
| `decision` | string | Decisión tomada \(aprobar/rechazar\) |
|
||||
| `success` | boolean | Si la operación tuvo éxito |
|
||||
|
||||
## Notas
|
||||
|
||||
- Categoría: `tools`
|
||||
- Tipo: `jira_service_management`
|
||||
@@ -122,9 +122,7 @@ Recuperar el saldo de tu cuenta y el valor de la cartera desde Kalshi
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `balance` | number | Saldo de la cuenta en centavos |
|
||||
| `portfolioValue` | number | Valor de la cartera en centavos |
|
||||
| `balanceDollars` | number | Saldo de la cuenta en dólares |
|
||||
| `portfolioValueDollars` | number | Valor de la cartera en dólares |
|
||||
| `portfolioValue` | number | Valor del portafolio en centavos |
|
||||
|
||||
### `kalshi_get_positions`
|
||||
|
||||
|
||||
@@ -46,12 +46,13 @@ Consultar datos de una tabla de Supabase
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Obligatorio | Descripción |
|
||||
| --------- | ---- | ----------- | ----------- |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Sí | ID de tu proyecto Supabase \(p. ej., jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Sí | Nombre de la tabla Supabase a consultar |
|
||||
| `schema` | string | No | Esquema de base de datos desde donde consultar \(predeterminado: public\). Usa esto para acceder a tablas en otros esquemas. |
|
||||
| `schema` | string | No | Esquema de base de datos desde el que consultar \(predeterminado: public\). Usa esto para acceder a tablas en otros esquemas. |
|
||||
| `select` | string | No | Columnas a devolver \(separadas por comas\). Predeterminado: * \(todas las columnas\) |
|
||||
| `filter` | string | No | Filtro PostgREST \(p. ej., "id=eq.123"\) |
|
||||
| `orderBy` | string | No | Columna para ordenar \(añade DESC para descendente\) |
|
||||
| `orderBy` | string | No | Columna por la que ordenar \(añade DESC para orden descendente\) |
|
||||
| `limit` | number | No | Número máximo de filas a devolver |
|
||||
| `apiKey` | string | Sí | Tu clave secreta de rol de servicio de Supabase |
|
||||
|
||||
@@ -90,10 +91,11 @@ Obtener una sola fila de una tabla de Supabase basada en criterios de filtro
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Obligatorio | Descripción |
|
||||
| --------- | ---- | ----------- | ----------- |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Sí | ID de tu proyecto Supabase \(p. ej., jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Sí | Nombre de la tabla Supabase a consultar |
|
||||
| `schema` | string | No | Esquema de base de datos desde donde consultar \(predeterminado: public\). Usa esto para acceder a tablas en otros esquemas. |
|
||||
| `schema` | string | No | Esquema de base de datos desde el que consultar \(predeterminado: public\). Usa esto para acceder a tablas en otros esquemas. |
|
||||
| `select` | string | No | Columnas a devolver \(separadas por comas\). Predeterminado: * \(todas las columnas\) |
|
||||
| `filter` | string | Sí | Filtro PostgREST para encontrar la fila específica \(p. ej., "id=eq.123"\) |
|
||||
| `apiKey` | string | Sí | Tu clave secreta de rol de servicio de Supabase |
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Utiliza el bloque Start para todo lo que se origina desde el editor, despliegue
|
||||
|
||||
<Cards>
|
||||
<Card title="Start" href="/triggers/start">
|
||||
Punto de entrada unificado que admite ejecuciones del editor, despliegues de API y despliegues de chat
|
||||
Punto de entrada unificado que admite ejecuciones en el editor, despliegues de API y despliegues de chat
|
||||
</Card>
|
||||
<Card title="Webhook" href="/triggers/webhook">
|
||||
Recibe cargas útiles de webhooks externos
|
||||
@@ -31,18 +31,22 @@ Utiliza el bloque Start para todo lo que se origina desde el editor, despliegue
|
||||
Ejecución basada en cron o intervalos
|
||||
</Card>
|
||||
<Card title="RSS Feed" href="/triggers/rss">
|
||||
Monitorea feeds RSS y Atom para nuevo contenido
|
||||
Monitorea feeds RSS y Atom para detectar contenido nuevo
|
||||
</Card>
|
||||
<Card title="Email Polling Groups" href="#email-polling-groups">
|
||||
Monitorea bandejas de entrada de Gmail y Outlook del equipo
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Comparación rápida
|
||||
|
||||
| Disparador | Condición de inicio |
|
||||
| Trigger | Condición de inicio |
|
||||
|---------|-----------------|
|
||||
| **Start** | Ejecuciones del editor, solicitudes de despliegue a API o mensajes de chat |
|
||||
| **Start** | Ejecuciones en el editor, solicitudes de despliegue a API o mensajes de chat |
|
||||
| **Schedule** | Temporizador gestionado en el bloque de programación |
|
||||
| **Webhook** | Al recibir una solicitud HTTP entrante |
|
||||
| **RSS Feed** | Nuevo elemento publicado en el feed |
|
||||
| **Email Polling Groups** | Nuevo correo electrónico recibido en bandejas de entrada de Gmail o Outlook del equipo |
|
||||
|
||||
> El bloque Start siempre expone los campos `input`, `conversationId` y `files`. Añade campos personalizados al formato de entrada para datos estructurados adicionales.
|
||||
|
||||
@@ -65,3 +69,25 @@ Cuando haces clic en **Ejecutar** en el editor, Sim selecciona automáticamente
|
||||
Si tu flujo de trabajo tiene múltiples disparadores, se ejecutará el disparador de mayor prioridad. Por ejemplo, si tienes tanto un bloque Start como un disparador Webhook, al hacer clic en Ejecutar se ejecutará el bloque Start.
|
||||
|
||||
**Disparadores externos con cargas útiles simuladas**: Cuando los disparadores externos (webhooks e integraciones) se ejecutan manualmente, Sim genera automáticamente cargas útiles simuladas basadas en la estructura de datos esperada del disparador. Esto asegura que los bloques posteriores puedan resolver las variables correctamente durante las pruebas.
|
||||
|
||||
## Grupos de sondeo de correo electrónico
|
||||
|
||||
Los grupos de sondeo te permiten monitorear las bandejas de entrada de Gmail o Outlook de varios miembros del equipo con un solo activador. Requiere un plan Team o Enterprise.
|
||||
|
||||
**Crear un grupo de sondeo** (administrador/propietario)
|
||||
|
||||
1. Ve a **Configuración → Sondeo de correo electrónico**
|
||||
2. Haz clic en **Crear** y elige Gmail u Outlook
|
||||
3. Ingresa un nombre para el grupo
|
||||
|
||||
**Invitar miembros**
|
||||
|
||||
1. Haz clic en **Agregar miembros** en tu grupo de sondeo
|
||||
2. Ingresa direcciones de correo electrónico (separadas por comas o saltos de línea, o arrastra y suelta un CSV)
|
||||
3. Haz clic en **Enviar invitaciones**
|
||||
|
||||
Los invitados reciben un correo electrónico con un enlace para conectar su cuenta. Una vez conectada, su bandeja de entrada se incluye automáticamente en el grupo de sondeo. Los invitados no necesitan ser miembros de tu organización Sim.
|
||||
|
||||
**Usar en un flujo de trabajo**
|
||||
|
||||
Al configurar un activador de correo electrónico, selecciona tu grupo de sondeo del menú desplegable de credenciales en lugar de una cuenta individual. El sistema crea webhooks para cada miembro y enruta todos los correos electrónicos a través de tu flujo de trabajo.
|
||||
|
||||
@@ -15,8 +15,8 @@ El bloque de webhook genérico crea un punto de conexión flexible que puede rec
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Configuración genérica de webhook"
|
||||
src="/static/blocks/webhook-trigger.png"
|
||||
alt="Configuración de webhook genérico"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
|
||||
89
apps/docs/content/docs/fr/blocks/webhook.mdx
Normal file
89
apps/docs/content/docs/fr/blocks/webhook.mdx
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: Webhook
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Le bloc Webhook envoie des requêtes HTTP POST vers des points de terminaison webhook externes avec des en-têtes webhook automatiques et une signature HMAC optionnelle.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Bloc Webhook"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Configuration
|
||||
|
||||
### URL du webhook
|
||||
|
||||
Le point de terminaison de destination pour votre requête webhook. Prend en charge les URL statiques et les valeurs dynamiques provenant d'autres blocs.
|
||||
|
||||
### Charge utile
|
||||
|
||||
Données JSON à envoyer dans le corps de la requête. Utilisez la baguette IA pour générer des charges utiles ou référencer des variables de workflow :
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "workflow.completed",
|
||||
"data": {
|
||||
"result": "<agent.content>",
|
||||
"timestamp": "<function.result>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Secret de signature
|
||||
|
||||
Secret optionnel pour la signature HMAC-SHA256 de la charge utile. Lorsqu'il est fourni, ajoute un en-tête `X-Webhook-Signature` :
|
||||
|
||||
```
|
||||
X-Webhook-Signature: t=1704067200000,v1=5d41402abc4b2a76b9719d911017c592...
|
||||
```
|
||||
|
||||
Pour vérifier les signatures, calculez `HMAC-SHA256(secret, "${timestamp}.${body}")` et comparez avec la valeur `v1`.
|
||||
|
||||
### En-têtes supplémentaires
|
||||
|
||||
En-têtes personnalisés clé-valeur à inclure avec la requête. Ceux-ci remplacent tous les en-têtes automatiques portant le même nom.
|
||||
|
||||
## En-têtes automatiques
|
||||
|
||||
Chaque requête inclut automatiquement ces en-têtes :
|
||||
|
||||
| En-tête | Description |
|
||||
|--------|-------------|
|
||||
| `Content-Type` | `application/json` |
|
||||
| `X-Webhook-Timestamp` | Horodatage Unix en millisecondes |
|
||||
| `X-Delivery-ID` | UUID unique pour cette livraison |
|
||||
| `Idempotency-Key` | Identique à `X-Delivery-ID` pour la déduplication |
|
||||
|
||||
## Sorties
|
||||
|
||||
| Sortie | Type | Description |
|
||||
|--------|------|-------------|
|
||||
| `data` | json | Corps de la réponse du point de terminaison |
|
||||
| `status` | number | Code de statut HTTP |
|
||||
| `headers` | object | En-têtes de réponse |
|
||||
|
||||
## Exemples de cas d'usage
|
||||
|
||||
**Notifier des services externes** - Envoyer les résultats du workflow vers Slack, Discord ou des points de terminaison personnalisés
|
||||
|
||||
```
|
||||
Agent → Function (format) → Webhook (notify)
|
||||
```
|
||||
|
||||
**Déclencher des workflows externes** - Démarrer des processus dans d'autres systèmes lorsque des conditions sont remplies
|
||||
|
||||
```
|
||||
Condition (check) → Webhook (trigger) → Response
|
||||
```
|
||||
|
||||
<Callout>
|
||||
Le bloc Webhook utilise toujours POST. Pour d'autres méthodes HTTP ou plus de contrôle, utilisez le [bloc API](/blocks/api).
|
||||
</Callout>
|
||||
76
apps/docs/content/docs/fr/enterprise/index.mdx
Normal file
76
apps/docs/content/docs/fr/enterprise/index.mdx
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Entreprise
|
||||
description: Fonctionnalités entreprise pour les organisations ayant des
|
||||
exigences avancées en matière de sécurité et de conformité
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Sim Studio Entreprise fournit des fonctionnalités avancées pour les organisations ayant des exigences renforcées en matière de sécurité, de conformité et de gestion.
|
||||
|
||||
---
|
||||
|
||||
## Apportez votre propre clé (BYOK)
|
||||
|
||||
Utilisez vos propres clés API pour les fournisseurs de modèles IA au lieu des clés hébergées par Sim Studio.
|
||||
|
||||
### Fournisseurs pris en charge
|
||||
|
||||
| Fournisseur | Utilisation |
|
||||
|----------|-------|
|
||||
| OpenAI | Embeddings de base de connaissances, bloc Agent |
|
||||
| Anthropic | Bloc Agent |
|
||||
| Google | Bloc Agent |
|
||||
| Mistral | OCR de base de connaissances |
|
||||
|
||||
### Configuration
|
||||
|
||||
1. Accédez à **Paramètres** → **BYOK** dans votre espace de travail
|
||||
2. Cliquez sur **Ajouter une clé** pour votre fournisseur
|
||||
3. Saisissez votre clé API et enregistrez
|
||||
|
||||
<Callout type="warn">
|
||||
Les clés BYOK sont chiffrées au repos. Seuls les administrateurs et propriétaires de l'organisation peuvent gérer les clés.
|
||||
</Callout>
|
||||
|
||||
Une fois configurés, les workflows utilisent votre clé au lieu des clés hébergées par Sim Studio. Si elle est supprimée, les workflows basculent automatiquement vers les clés hébergées.
|
||||
|
||||
---
|
||||
|
||||
## Authentification unique (SSO)
|
||||
|
||||
Authentification entreprise avec prise en charge de SAML 2.0 et OIDC pour une gestion centralisée des identités.
|
||||
|
||||
### Fournisseurs pris en charge
|
||||
|
||||
- Okta
|
||||
- Azure AD / Entra ID
|
||||
- Google Workspace
|
||||
- OneLogin
|
||||
- Tout fournisseur SAML 2.0 ou OIDC
|
||||
|
||||
### Configuration
|
||||
|
||||
1. Accédez à **Paramètres** → **SSO** dans votre espace de travail
|
||||
2. Choisissez votre fournisseur d'identité
|
||||
3. Configurez la connexion en utilisant les métadonnées de votre IdP
|
||||
4. Activez le SSO pour votre organisation
|
||||
|
||||
<Callout type="info">
|
||||
Une fois le SSO activé, les membres de l'équipe s'authentifient via votre fournisseur d'identité au lieu d'utiliser un email/mot de passe.
|
||||
</Callout>
|
||||
|
||||
---
|
||||
|
||||
## Auto-hébergé
|
||||
|
||||
Pour les déploiements auto-hébergés, les fonctionnalités entreprise peuvent être activées via des variables d'environnement :
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Authentification unique avec SAML/OIDC |
|
||||
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Groupes de sondage pour les déclencheurs d'e-mail |
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK est uniquement disponible sur Sim Studio hébergé. Les déploiements auto-hébergés configurent les clés de fournisseur d'IA directement via les variables d'environnement.
|
||||
</Callout>
|
||||
@@ -49,40 +49,40 @@ La répartition des modèles montre :
|
||||
|
||||
<Tabs items={['Modèles hébergés', 'Apportez votre propre clé API']}>
|
||||
<Tab>
|
||||
**Modèles hébergés** - Sim fournit des clés API avec un multiplicateur de prix de 2x :
|
||||
**Modèles hébergés** - Sim fournit des clés API avec un multiplicateur de prix de 1,4x pour les blocs Agent :
|
||||
|
||||
**OpenAI**
|
||||
| Modèle | Prix de base (entrée/sortie) | Prix hébergé (entrée/sortie) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| GPT-5.1 | 1,25 $ / 10,00 $ | 2,50 $ / 20,00 $ |
|
||||
| GPT-5 | 1,25 $ / 10,00 $ | 2,50 $ / 20,00 $ |
|
||||
| GPT-5 Mini | 0,25 $ / 2,00 $ | 0,50 $ / 4,00 $ |
|
||||
| GPT-5 Nano | 0,05 $ / 0,40 $ | 0,10 $ / 0,80 $ |
|
||||
| GPT-4o | 2,50 $ / 10,00 $ | 5,00 $ / 20,00 $ |
|
||||
| GPT-4.1 | 2,00 $ / 8,00 $ | 4,00 $ / 16,00 $ |
|
||||
| GPT-4.1 Mini | 0,40 $ / 1,60 $ | 0,80 $ / 3,20 $ |
|
||||
| GPT-4.1 Nano | 0,10 $ / 0,40 $ | 0,20 $ / 0,80 $ |
|
||||
| o1 | 15,00 $ / 60,00 $ | 30,00 $ / 120,00 $ |
|
||||
| o3 | 2,00 $ / 8,00 $ | 4,00 $ / 16,00 $ |
|
||||
| o4 Mini | 1,10 $ / 4,40 $ | 2,20 $ / 8,80 $ |
|
||||
| GPT-5.1 | 1,25 $ / 10,00 $ | 1,75 $ / 14,00 $ |
|
||||
| GPT-5 | 1,25 $ / 10,00 $ | 1,75 $ / 14,00 $ |
|
||||
| GPT-5 Mini | 0,25 $ / 2,00 $ | 0,35 $ / 2,80 $ |
|
||||
| GPT-5 Nano | 0,05 $ / 0,40 $ | 0,07 $ / 0,56 $ |
|
||||
| GPT-4o | 2,50 $ / 10,00 $ | 3,50 $ / 14,00 $ |
|
||||
| GPT-4.1 | 2,00 $ / 8,00 $ | 2,80 $ / 11,20 $ |
|
||||
| GPT-4.1 Mini | 0,40 $ / 1,60 $ | 0,56 $ / 2,24 $ |
|
||||
| GPT-4.1 Nano | 0,10 $ / 0,40 $ | 0,14 $ / 0,56 $ |
|
||||
| o1 | 15,00 $ / 60,00 $ | 21,00 $ / 84,00 $ |
|
||||
| o3 | 2,00 $ / 8,00 $ | 2,80 $ / 11,20 $ |
|
||||
| o4 Mini | 1,10 $ / 4,40 $ | 1,54 $ / 6,16 $ |
|
||||
|
||||
**Anthropic**
|
||||
| Modèle | Prix de base (entrée/sortie) | Prix hébergé (entrée/sortie) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Claude Opus 4.5 | 5,00 $ / 25,00 $ | 10,00 $ / 50,00 $ |
|
||||
| Claude Opus 4.1 | 15,00 $ / 75,00 $ | 30,00 $ / 150,00 $ |
|
||||
| Claude Sonnet 4.5 | 3,00 $ / 15,00 $ | 6,00 $ / 30,00 $ |
|
||||
| Claude Sonnet 4.0 | 3,00 $ / 15,00 $ | 6,00 $ / 30,00 $ |
|
||||
| Claude Haiku 4.5 | 1,00 $ / 5,00 $ | 2,00 $ / 10,00 $ |
|
||||
| Claude Opus 4.5 | 5,00 $ / 25,00 $ | 7,00 $ / 35,00 $ |
|
||||
| Claude Opus 4.1 | 15,00 $ / 75,00 $ | 21,00 $ / 105,00 $ |
|
||||
| Claude Sonnet 4.5 | 3,00 $ / 15,00 $ | 4,20 $ / 21,00 $ |
|
||||
| Claude Sonnet 4.0 | 3,00 $ / 15,00 $ | 4,20 $ / 21,00 $ |
|
||||
| Claude Haiku 4.5 | 1,00 $ / 5,00 $ | 1,40 $ / 7,00 $ |
|
||||
|
||||
**Google**
|
||||
| Modèle | Prix de base (entrée/sortie) | Prix hébergé (entrée/sortie) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Gemini 3 Pro Preview | 2,00 $ / 12,00 $ | 4,00 $ / 24,00 $ |
|
||||
| Gemini 2.5 Pro | 1,25 $ / 10,00 $ | 2,50 $ / 20,00 $ |
|
||||
| Gemini 2.5 Flash | 0,30 $ / 2,50 $ | 0,60 $ / 5,00 $ |
|
||||
| Gemini 3 Pro Preview | 2,00 $ / 12,00 $ | 2,80 $ / 16,80 $ |
|
||||
| Gemini 2.5 Pro | 1,25 $ / 10,00 $ | 1,75 $ / 14,00 $ |
|
||||
| Gemini 2.5 Flash | 0,30 $ / 2,50 $ | 0,42 $ / 3,50 $ |
|
||||
|
||||
*Le multiplicateur 2x couvre les coûts d'infrastructure et de gestion des API.*
|
||||
*Le multiplicateur de 1,4x couvre les coûts d'infrastructure et de gestion des API.*
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
|
||||
64
apps/docs/content/docs/fr/keyboard-shortcuts/index.mdx
Normal file
64
apps/docs/content/docs/fr/keyboard-shortcuts/index.mdx
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: Raccourcis clavier
|
||||
description: Maîtrisez le canevas de workflow avec les raccourcis clavier et les
|
||||
contrôles de souris
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Accélérez la création de vos workflows avec ces raccourcis clavier et contrôles de souris. Tous les raccourcis fonctionnent lorsque le canevas est actif (pas lors de la saisie dans un champ de texte).
|
||||
|
||||
<Callout type="info">
|
||||
**Mod** fait référence à `Cmd` sur macOS et `Ctrl` sur Windows/Linux.
|
||||
</Callout>
|
||||
|
||||
## Contrôles du canevas
|
||||
|
||||
### Contrôles de la souris
|
||||
|
||||
| Action | Contrôle |
|
||||
|--------|---------|
|
||||
| Déplacer le canevas | Glisser-gauche sur un espace vide |
|
||||
| Déplacer le canevas | Molette ou trackpad |
|
||||
| Sélectionner plusieurs blocs | Glisser-droit pour tracer une zone de sélection |
|
||||
| Déplacer un bloc | Glisser-gauche sur l'en-tête du bloc |
|
||||
| Ajouter à la sélection | `Mod` + clic sur les blocs |
|
||||
|
||||
### Actions de workflow
|
||||
|
||||
| Raccourci | Action |
|
||||
|----------|--------|
|
||||
| `Mod` + `Enter` | Exécuter le workflow (ou annuler si en cours) |
|
||||
| `Mod` + `Z` | Annuler |
|
||||
| `Mod` + `Shift` + `Z` | Rétablir |
|
||||
| `Mod` + `C` | Copier les blocs sélectionnés |
|
||||
| `Mod` + `V` | Coller les blocs |
|
||||
| `Delete` ou `Backspace` | Supprimer les blocs ou connexions sélectionnés |
|
||||
| `Shift` + `L` | Disposition automatique du canevas |
|
||||
|
||||
## Navigation dans les panneaux
|
||||
|
||||
Ces raccourcis permettent de basculer entre les onglets du panneau sur le côté droit du canevas.
|
||||
|
||||
| Raccourci | Action |
|
||||
|----------|--------|
|
||||
| `C` | Activer l'onglet Copilot |
|
||||
| `T` | Activer l'onglet Barre d'outils |
|
||||
| `E` | Activer l'onglet Éditeur |
|
||||
| `Mod` + `F` | Activer la recherche dans la barre d'outils |
|
||||
|
||||
## Navigation globale
|
||||
|
||||
| Raccourci | Action |
|
||||
|----------|--------|
|
||||
| `Mod` + `K` | Ouvrir la recherche |
|
||||
| `Mod` + `Shift` + `A` | Ajouter un nouveau workflow d'agent |
|
||||
| `Mod` + `Y` | Aller aux modèles |
|
||||
| `Mod` + `L` | Aller aux journaux |
|
||||
|
||||
## Utilitaire
|
||||
|
||||
| Raccourci | Action |
|
||||
|----------|--------|
|
||||
| `Mod` + `D` | Effacer la console du terminal |
|
||||
| `Mod` + `E` | Effacer les notifications |
|
||||
108
apps/docs/content/docs/fr/mcp/deploy-workflows.mdx
Normal file
108
apps/docs/content/docs/fr/mcp/deploy-workflows.mdx
Normal file
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Déployer des workflows en tant que MCP
|
||||
description: Exposez vos workflows en tant qu'outils MCP pour les assistants IA
|
||||
externes et les applications
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Déployez vos workflows en tant qu'outils MCP pour les rendre accessibles aux assistants IA externes comme Claude Desktop, Cursor et autres clients compatibles MCP. Cela transforme vos workflows en outils appelables qui peuvent être invoqués depuis n'importe où.
|
||||
|
||||
## Créer et gérer des serveurs MCP
|
||||
|
||||
Les serveurs MCP regroupent vos outils de workflow. Créez-les et gérez-les dans les paramètres de l'espace de travail :
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-server.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Accédez à **Paramètres → MCP déployés**
|
||||
2. Cliquez sur **Créer un serveur**
|
||||
3. Saisissez un nom et une description facultative
|
||||
4. Copiez l'URL du serveur pour l'utiliser dans vos clients MCP
|
||||
5. Affichez et gérez tous les outils ajoutés au serveur
|
||||
|
||||
## Ajouter un workflow en tant qu'outil
|
||||
|
||||
Une fois votre workflow déployé, vous pouvez l'exposer en tant qu'outil MCP :
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-deploy-tool.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Ouvrez votre workflow déployé
|
||||
2. Cliquez sur **Déployer** et accédez à l'onglet **MCP**
|
||||
3. Configurez le nom et la description de l'outil
|
||||
4. Ajoutez des descriptions pour chaque paramètre (aide l'IA à comprendre les entrées)
|
||||
5. Sélectionnez les serveurs MCP auxquels l'ajouter
|
||||
|
||||
<Callout type="info">
|
||||
Le workflow doit être déployé avant de pouvoir être ajouté en tant qu'outil MCP.
|
||||
</Callout>
|
||||
|
||||
## Configuration de l'outil
|
||||
|
||||
### Nom de l'outil
|
||||
Utilisez des lettres minuscules, des chiffres et des traits de soulignement. Le nom doit être descriptif et suivre les conventions de nommage MCP (par exemple, `search_documents`, `send_email`).
|
||||
|
||||
### Description
|
||||
Rédigez une description claire de ce que fait l'outil. Cela aide les assistants IA à comprendre quand utiliser l'outil.
|
||||
|
||||
### Paramètres
|
||||
Les champs du format d'entrée de votre workflow deviennent des paramètres d'outil. Ajoutez des descriptions à chaque paramètre pour aider les assistants IA à fournir les valeurs correctes.
|
||||
|
||||
## Connexion des clients MCP
|
||||
|
||||
Utilisez l'URL du serveur depuis les paramètres pour connecter des applications externes :
|
||||
|
||||
### Claude Desktop
|
||||
Ajoutez à votre configuration Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json`) :
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-sim-workflows": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "YOUR_SERVER_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
Ajoutez l'URL du serveur dans les paramètres MCP de Cursor en utilisant le même modèle mcp-remote.
|
||||
|
||||
<Callout type="warn">
|
||||
Incluez votre en-tête de clé API (`X-API-Key`) pour un accès authentifié lors de l'utilisation de mcp-remote ou d'autres transports MCP basés sur HTTP.
|
||||
</Callout>
|
||||
|
||||
## Gestion du serveur
|
||||
|
||||
Depuis la vue détaillée du serveur dans **Paramètres → MCP déployés**, vous pouvez :
|
||||
|
||||
- **Voir les outils** : voir tous les workflows ajoutés à un serveur
|
||||
- **Copier l'URL** : obtenir l'URL du serveur pour les clients MCP
|
||||
- **Ajouter des workflows** : ajouter d'autres workflows déployés comme outils
|
||||
- **Supprimer des outils** : retirer des workflows du serveur
|
||||
- **Supprimer le serveur** : supprimer l'intégralité du serveur et tous ses outils
|
||||
|
||||
## Comment ça fonctionne
|
||||
|
||||
Lorsqu'un client MCP appelle votre outil :
|
||||
|
||||
1. La requête est reçue à l'URL de votre serveur MCP
|
||||
2. Sim valide la requête et mappe les paramètres aux entrées du workflow
|
||||
3. Le workflow déployé s'exécute avec les entrées fournies
|
||||
4. Les résultats sont renvoyés au client MCP
|
||||
|
||||
Les workflows s'exécutent en utilisant la même version de déploiement que les appels API, garantissant un comportement cohérent.
|
||||
|
||||
## Exigences de permission
|
||||
|
||||
| Action | Permission requise |
|
||||
|--------|-------------------|
|
||||
| Créer des serveurs MCP | **Admin** |
|
||||
| Ajouter des workflows aux serveurs | **Write** ou **Admin** |
|
||||
| Voir les serveurs MCP | **Read**, **Write** ou **Admin** |
|
||||
| Supprimer des serveurs MCP | **Admin** |
|
||||
@@ -1,8 +1,11 @@
|
||||
---
|
||||
title: MCP (Model Context Protocol)
|
||||
title: Utiliser les outils MCP
|
||||
description: Connectez des outils et services externes en utilisant le Model
|
||||
Context Protocol
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Le Model Context Protocol ([MCP](https://modelcontextprotocol.com/)) vous permet de connecter des outils et services externes en utilisant un protocole standardisé, vous permettant d'intégrer des API et des services directement dans vos flux de travail. Avec MCP, vous pouvez étendre les capacités de Sim en ajoutant des intégrations personnalisées qui fonctionnent parfaitement avec vos agents et flux de travail.
|
||||
@@ -20,18 +23,12 @@ MCP est une norme ouverte qui permet aux assistants IA de se connecter de maniè
|
||||
|
||||
Les serveurs MCP fournissent des collections d'outils que vos agents peuvent utiliser. Configurez-les dans les paramètres de l'espace de travail :
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-1.png"
|
||||
alt="Configuration du serveur MCP dans les paramètres"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/settings-mcp-tools.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Accédez aux paramètres de votre espace de travail
|
||||
2. Allez à la section **Serveurs MCP**
|
||||
2. Allez dans la section **MCP déployés**
|
||||
3. Cliquez sur **Ajouter un serveur MCP**
|
||||
4. Saisissez les détails de configuration du serveur
|
||||
5. Enregistrez la configuration
|
||||
@@ -40,14 +37,18 @@ Les serveurs MCP fournissent des collections d'outils que vos agents peuvent uti
|
||||
Vous pouvez également configurer les serveurs MCP directement depuis la barre d'outils d'un bloc Agent pour une configuration rapide.
|
||||
</Callout>
|
||||
|
||||
## Utilisation des outils MCP dans les agents
|
||||
### Actualiser les outils
|
||||
|
||||
Une fois les serveurs MCP configurés, leurs outils deviennent disponibles dans vos blocs d'agents :
|
||||
Cliquez sur **Actualiser** sur un serveur pour récupérer les derniers schémas d'outils et mettre à jour automatiquement tous les blocs d'agent utilisant ces outils avec les nouvelles définitions de paramètres.
|
||||
|
||||
## Utiliser les outils MCP dans les agents
|
||||
|
||||
Une fois les serveurs MCP configurés, leurs outils deviennent disponibles dans vos blocs d'agent :
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-2.png"
|
||||
alt="Utilisation d'un outil MCP dans un bloc Agent"
|
||||
alt="Utilisation de l'outil MCP dans un bloc d'agent"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
@@ -61,7 +62,7 @@ Une fois les serveurs MCP configurés, leurs outils deviennent disponibles dans
|
||||
|
||||
## Bloc d'outil MCP autonome
|
||||
|
||||
Pour un contrôle plus précis, vous pouvez utiliser le bloc dédié d'outil MCP pour exécuter des outils MCP spécifiques :
|
||||
Pour un contrôle plus précis, vous pouvez utiliser le bloc d'outil MCP dédié pour exécuter des outils MCP spécifiques :
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
@@ -76,52 +77,52 @@ Pour un contrôle plus précis, vous pouvez utiliser le bloc dédié d'outil MCP
|
||||
Le bloc d'outil MCP vous permet de :
|
||||
- Exécuter directement n'importe quel outil MCP configuré
|
||||
- Transmettre des paramètres spécifiques à l'outil
|
||||
- Utiliser la sortie de l'outil dans les étapes suivantes du flux de travail
|
||||
- Enchaîner plusieurs outils MCP
|
||||
- Utiliser la sortie de l'outil dans les étapes suivantes du workflow
|
||||
- Enchaîner plusieurs outils MCP ensemble
|
||||
|
||||
### Quand utiliser l'outil MCP vs l'agent
|
||||
### Quand utiliser l'outil MCP ou l'agent
|
||||
|
||||
**Utilisez l'agent avec les outils MCP quand :**
|
||||
**Utilisez l'agent avec les outils MCP lorsque :**
|
||||
- Vous voulez que l'IA décide quels outils utiliser
|
||||
- Vous avez besoin d'un raisonnement complexe sur quand et comment utiliser les outils
|
||||
- Vous souhaitez une interaction en langage naturel avec les outils
|
||||
|
||||
**Utilisez le bloc Outil MCP quand :**
|
||||
- Vous avez besoin d'une exécution déterministe d'outils
|
||||
- Vous souhaitez exécuter un outil spécifique avec des paramètres connus
|
||||
- Vous construisez des flux de travail structurés avec des étapes prévisibles
|
||||
**Utilisez le bloc outil MCP quand :**
|
||||
- Vous avez besoin d'une exécution d'outil déterministe
|
||||
- Vous voulez exécuter un outil spécifique avec des paramètres connus
|
||||
- Vous construisez des workflows structurés avec des étapes prévisibles
|
||||
|
||||
## Exigences en matière d'autorisations
|
||||
## Exigences de permission
|
||||
|
||||
Les fonctionnalités MCP nécessitent des autorisations spécifiques pour l'espace de travail :
|
||||
La fonctionnalité MCP nécessite des permissions d'espace de travail spécifiques :
|
||||
|
||||
| Action | Autorisation requise |
|
||||
| Action | Permission requise |
|
||||
|--------|-------------------|
|
||||
| Configurer les serveurs MCP dans les paramètres | **Admin** |
|
||||
| Utiliser les outils MCP dans les agents | **Écriture** ou **Admin** |
|
||||
| Voir les outils MCP disponibles | **Lecture**, **Écriture**, ou **Admin** |
|
||||
| Exécuter des blocs d'Outil MCP | **Écriture** ou **Admin** |
|
||||
| Voir les outils MCP disponibles | **Lecture**, **Écriture** ou **Admin** |
|
||||
| Exécuter les blocs outil MCP | **Écriture** ou **Admin** |
|
||||
|
||||
## Cas d'utilisation courants
|
||||
## Cas d'usage courants
|
||||
|
||||
### Intégration de bases de données
|
||||
Connectez-vous aux bases de données pour interroger, insérer ou mettre à jour des données dans vos flux de travail.
|
||||
### Intégration de base de données
|
||||
Connectez-vous aux bases de données pour interroger, insérer ou mettre à jour des données dans vos workflows.
|
||||
|
||||
### Intégrations API
|
||||
Accédez à des API externes et des services web qui n'ont pas d'intégrations Sim intégrées.
|
||||
### Intégrations d'API
|
||||
Accédez aux API externes et services web qui n'ont pas d'intégrations Sim intégrées.
|
||||
|
||||
### Accès au système de fichiers
|
||||
Lisez, écrivez et manipulez des fichiers sur des systèmes de fichiers locaux ou distants.
|
||||
|
||||
### Logique métier personnalisée
|
||||
Exécutez des scripts ou des outils personnalisés spécifiques aux besoins de votre organisation.
|
||||
Exécutez des scripts ou outils personnalisés spécifiques aux besoins de votre organisation.
|
||||
|
||||
### Accès aux données en temps réel
|
||||
Récupérez des données en direct à partir de systèmes externes pendant l'exécution du flux de travail.
|
||||
Récupérez des données en direct depuis des systèmes externes pendant l'exécution du workflow.
|
||||
|
||||
## Considérations de sécurité
|
||||
|
||||
- Les serveurs MCP s'exécutent avec les autorisations de l'utilisateur qui les a configurés
|
||||
- Les serveurs MCP s'exécutent avec les permissions de l'utilisateur qui les a configurés
|
||||
- Vérifiez toujours les sources des serveurs MCP avant l'installation
|
||||
- Utilisez des variables d'environnement pour les données de configuration sensibles
|
||||
- Examinez les capacités du serveur MCP avant d'accorder l'accès aux agents
|
||||
@@ -130,10 +131,10 @@ Récupérez des données en direct à partir de systèmes externes pendant l'ex
|
||||
|
||||
### Le serveur MCP n'apparaît pas
|
||||
- Vérifiez que la configuration du serveur est correcte
|
||||
- Vérifiez que vous disposez des autorisations requises
|
||||
- Vérifiez que vous avez les permissions requises
|
||||
- Assurez-vous que le serveur MCP est en cours d'exécution et accessible
|
||||
|
||||
### Échecs d'exécution d'outils
|
||||
### Échecs d'exécution d'outil
|
||||
- Vérifiez que les paramètres de l'outil sont correctement formatés
|
||||
- Consultez les journaux du serveur MCP pour les messages d'erreur
|
||||
- Assurez-vous que l'authentification requise est configurée
|
||||
|
||||
234
apps/docs/content/docs/fr/tools/fireflies.mdx
Normal file
234
apps/docs/content/docs/fr/tools/fireflies.mdx
Normal file
@@ -0,0 +1,234 @@
|
||||
---
|
||||
title: Fireflies
|
||||
description: Interagissez avec les transcriptions et enregistrements de réunions
|
||||
Fireflies.ai
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="fireflies"
|
||||
color="#100730"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Fireflies.ai](https://fireflies.ai/) est une plateforme de transcription et d'intelligence de réunions qui s'intègre avec Sim, permettant à vos agents de travailler directement avec les enregistrements de réunions, les transcriptions et les informations via des automatisations sans code.
|
||||
|
||||
L'intégration Fireflies dans Sim fournit des outils pour :
|
||||
|
||||
- **Lister les transcriptions de réunions :** récupérez plusieurs réunions et leurs informations récapitulatives pour votre équipe ou compte.
|
||||
- **Récupérer les détails complets de transcription :** accédez aux transcriptions détaillées, y compris les résumés, les éléments d'action, les sujets et les analyses des participants pour toute réunion.
|
||||
- **Télécharger de l'audio ou de la vidéo :** téléchargez des fichiers audio/vidéo ou fournissez des URL pour la transcription—définissez éventuellement la langue, le titre, les participants et recevez des notes de réunion automatisées.
|
||||
- **Rechercher des transcriptions :** trouvez des réunions par mot-clé, participant, hôte ou période pour localiser rapidement les discussions pertinentes.
|
||||
- **Supprimer des transcriptions :** supprimez des transcriptions de réunions spécifiques de votre espace de travail Fireflies.
|
||||
- **Créer des extraits sonores (Bites) :** extrayez et mettez en évidence les moments clés des transcriptions sous forme de clips audio ou vidéo.
|
||||
- **Déclencher des workflows à la fin de la transcription :** activez automatiquement les workflows Sim lorsqu'une transcription de réunion Fireflies se termine en utilisant le déclencheur webhook fourni—permettant des automatisations en temps réel et des notifications basées sur les nouvelles données de réunion.
|
||||
|
||||
En combinant ces capacités, vous pouvez rationaliser les actions post-réunion, extraire des informations structurées, automatiser les notifications, gérer les enregistrements et orchestrer des workflows personnalisés autour des appels de votre organisation—le tout de manière sécurisée en utilisant votre clé API et vos identifiants Fireflies.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instructions d'utilisation
|
||||
|
||||
Intégrez Fireflies.ai dans le workflow. Gérez les transcriptions de réunions, ajoutez un bot aux réunions en direct, créez des extraits sonores et plus encore. Peut également déclencher des workflows lorsque les transcriptions sont terminées.
|
||||
|
||||
## Outils
|
||||
|
||||
### `fireflies_list_transcripts`
|
||||
|
||||
Lister les transcriptions de réunions depuis Fireflies.ai avec filtrage optionnel
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `keyword` | string | Non | Mot-clé de recherche dans le titre de la réunion ou la transcription |
|
||||
| `fromDate` | string | Non | Filtrer les transcriptions à partir de cette date \(format ISO 8601\) |
|
||||
| `toDate` | string | Non | Filtrer les transcriptions jusqu'à cette date \(format ISO 8601\) |
|
||||
| `hostEmail` | string | Non | Filtrer par e-mail de l'organisateur de la réunion |
|
||||
| `participants` | string | Non | Filtrer par e-mails des participants \(séparés par des virgules\) |
|
||||
| `limit` | number | Non | Nombre maximum de transcriptions à retourner \(max 50\) |
|
||||
| `skip` | number | Non | Nombre de transcriptions à ignorer pour la pagination |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcripts` | array | Liste des transcriptions |
|
||||
| `count` | number | Nombre de transcriptions retournées |
|
||||
|
||||
### `fireflies_get_transcript`
|
||||
|
||||
Obtenir une transcription unique avec tous les détails, y compris le résumé, les actions à effectuer et les analyses
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `transcriptId` | string | Oui | L'identifiant de la transcription à récupérer |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | La transcription avec tous les détails |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
Obtenir les informations utilisateur depuis Fireflies.ai. Renvoie l'utilisateur actuel si aucun ID n'est spécifié.
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `userId` | string | Non | ID utilisateur à récupérer \(optionnel, par défaut le propriétaire de la clé API\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Informations utilisateur |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
Lister tous les utilisateurs de votre équipe Fireflies.ai
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Liste des utilisateurs de l'équipe |
|
||||
|
||||
### `fireflies_upload_audio`
|
||||
|
||||
Télécharger une URL de fichier audio vers Fireflies.ai pour transcription
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `audioFile` | file | Non | Fichier audio/vidéo à télécharger pour transcription |
|
||||
| `audioUrl` | string | Non | URL HTTPS publique du fichier audio/vidéo \(MP3, MP4, WAV, M4A, OGG\) |
|
||||
| `title` | string | Non | Titre de la réunion/transcription |
|
||||
| `webhook` | string | Non | URL webhook pour notification lorsque la transcription est terminée |
|
||||
| `language` | string | Non | Code de langue pour la transcription \(par ex., « es » pour l'espagnol, « de » pour l'allemand\) |
|
||||
| `attendees` | string | Non | Participants au format JSON : \[\{"displayName": "Nom", "email": "email@exemple.com"\}\] |
|
||||
| `clientReferenceId` | string | Non | ID de référence personnalisé pour le suivi |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Indique si le téléversement a réussi |
|
||||
| `title` | string | Titre de la réunion téléversée |
|
||||
| `message` | string | Message de statut de Fireflies |
|
||||
|
||||
### `fireflies_delete_transcript`
|
||||
|
||||
Supprimer une transcription de Fireflies.ai
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `transcriptId` | string | Oui | L'identifiant de la transcription à supprimer |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Indique si la transcription a été supprimée avec succès |
|
||||
|
||||
### `fireflies_add_to_live_meeting`
|
||||
|
||||
Ajouter le bot Fireflies.ai à une réunion en cours pour enregistrer et transcrire
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `meetingLink` | string | Oui | URL de réunion valide \(Zoom, Google Meet, Microsoft Teams, etc.\) |
|
||||
| `title` | string | Non | Titre de la réunion \(256 caractères maximum\) |
|
||||
| `meetingPassword` | string | Non | Mot de passe de la réunion si nécessaire \(32 caractères maximum\) |
|
||||
| `duration` | number | Non | Durée de la réunion en minutes \(15-120, par défaut : 60\) |
|
||||
| `language` | string | Non | Code de langue pour la transcription \(par exemple, "en", "es", "de"\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Indique si le bot a été ajouté avec succès à la réunion |
|
||||
|
||||
### `fireflies_create_bite`
|
||||
|
||||
Créer un extrait sonore/moment fort à partir d'une plage horaire spécifique dans une transcription
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `transcriptId` | string | Oui | ID de la transcription à partir de laquelle créer l'extrait |
|
||||
| `startTime` | number | Oui | Heure de début de l'extrait en secondes |
|
||||
| `endTime` | number | Oui | Heure de fin de l'extrait en secondes |
|
||||
| `name` | string | Non | Nom de l'extrait \(256 caractères maximum\) |
|
||||
| `mediaType` | string | Non | Type de média : « video » ou « audio » |
|
||||
| `summary` | string | Non | Résumé de l'extrait \(500 caractères maximum\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | Détails de l'extrait créé |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
Lister les extraits sonores/moments forts de Fireflies.ai
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
| `transcriptId` | string | Non | Filtrer les extraits pour une transcription spécifique |
|
||||
| `mine` | boolean | Non | Retourner uniquement les extraits appartenant au propriétaire de la clé API \(par défaut : true\) |
|
||||
| `limit` | number | Non | Nombre maximum d'extraits à retourner \(50 maximum\) |
|
||||
| `skip` | number | Non | Nombre d'extraits à ignorer pour la pagination |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bites` | array | Liste des extraits/extraits sonores |
|
||||
|
||||
### `fireflies_list_contacts`
|
||||
|
||||
Lister tous les contacts de vos réunions Fireflies.ai
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Oui | Clé API Fireflies |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Liste des contacts des réunions |
|
||||
|
||||
## Remarques
|
||||
|
||||
- Catégorie : `tools`
|
||||
- Type : `fireflies`
|
||||
@@ -1,231 +0,0 @@
|
||||
---
|
||||
title: Webhook
|
||||
description: Recevez des webhooks de n'importe quel service en configurant un
|
||||
webhook personnalisé.
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
<BlockInfoCard
|
||||
type="generic_webhook"
|
||||
color="#10B981"
|
||||
/>
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Configuration du bloc Webhook"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Aperçu
|
||||
|
||||
Le bloc Webhook générique vous permet de recevoir des webhooks depuis n'importe quel service externe. C'est un déclencheur flexible qui peut traiter n'importe quelle charge utile JSON, ce qui le rend idéal pour l'intégration avec des services qui n'ont pas de bloc Sim dédié.
|
||||
|
||||
## Utilisation de base
|
||||
|
||||
### Mode de transmission simple
|
||||
|
||||
Sans définir un format d'entrée, le webhook transmet l'intégralité du corps de la requête tel quel :
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Test webhook trigger",
|
||||
"data": {
|
||||
"key": "value"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
Accédez aux données dans les blocs en aval en utilisant :
|
||||
- `<webhook1.message>` → "Test webhook trigger"
|
||||
- `<webhook1.data.key>` → "value"
|
||||
|
||||
### Format d'entrée structuré (optionnel)
|
||||
|
||||
Définissez un schéma d'entrée pour obtenir des champs typés et activer des fonctionnalités avancées comme les téléchargements de fichiers :
|
||||
|
||||
**Configuration du format d'entrée :**
|
||||
|
||||
```json
|
||||
[
|
||||
{ "name": "message", "type": "string" },
|
||||
{ "name": "priority", "type": "number" },
|
||||
{ "name": "documents", "type": "files" }
|
||||
]
|
||||
```
|
||||
|
||||
**Requête Webhook :**
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Invoice submission",
|
||||
"priority": 1,
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:application/pdf;base64,JVBERi0xLjQK...",
|
||||
"name": "invoice.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## Téléchargements de fichiers
|
||||
|
||||
### Formats de fichiers pris en charge
|
||||
|
||||
Le webhook prend en charge deux formats d'entrée de fichiers :
|
||||
|
||||
#### 1. Fichiers encodés en Base64
|
||||
Pour télécharger directement le contenu du fichier :
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
|
||||
"name": "screenshot.png",
|
||||
"mime": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **Taille maximale** : 20 Mo par fichier
|
||||
- **Format** : URL de données standard avec encodage base64
|
||||
- **Stockage** : Les fichiers sont téléchargés dans un stockage d'exécution sécurisé
|
||||
|
||||
#### 2. Références URL
|
||||
Pour transmettre des URL de fichiers existants :
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "url",
|
||||
"data": "https://example.com/files/document.pdf",
|
||||
"name": "document.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Accès aux fichiers dans les blocs en aval
|
||||
|
||||
Les fichiers sont traités en objets `UserFile` avec les propriétés suivantes :
|
||||
|
||||
```typescript
|
||||
{
|
||||
id: string, // Unique file identifier
|
||||
name: string, // Original filename
|
||||
url: string, // Presigned URL (valid for 5 minutes)
|
||||
size: number, // File size in bytes
|
||||
type: string, // MIME type
|
||||
key: string, // Storage key
|
||||
uploadedAt: string, // ISO timestamp
|
||||
expiresAt: string // ISO timestamp (5 minutes)
|
||||
}
|
||||
```
|
||||
|
||||
**Accès dans les blocs :**
|
||||
- `<webhook1.documents[0].url>` → URL de téléchargement
|
||||
- `<webhook1.documents[0].name>` → "invoice.pdf"
|
||||
- `<webhook1.documents[0].size>` → 524288
|
||||
- `<webhook1.documents[0].type>` → "application/pdf"
|
||||
|
||||
### Exemple complet de téléchargement de fichier
|
||||
|
||||
```bash
|
||||
# Create a base64-encoded file
|
||||
echo "Hello World" | base64
|
||||
# SGVsbG8gV29ybGQK
|
||||
|
||||
# Send webhook with file
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"subject": "Document for review",
|
||||
"attachments": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:text/plain;base64,SGVsbG8gV29ybGQK",
|
||||
"name": "sample.txt",
|
||||
"mime": "text/plain"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## Authentification
|
||||
|
||||
### Configurer l'authentification (optionnel)
|
||||
|
||||
Dans la configuration du webhook :
|
||||
1. Activez "Exiger l'authentification"
|
||||
2. Définissez un jeton secret
|
||||
3. Choisissez le type d'en-tête :
|
||||
- **En-tête personnalisé** : `X-Sim-Secret: your-token`
|
||||
- **Autorisation Bearer** : `Authorization: Bearer your-token`
|
||||
|
||||
### Utilisation de l'authentification
|
||||
|
||||
```bash
|
||||
# With custom header
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
|
||||
# With bearer token
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
```
|
||||
|
||||
## Bonnes pratiques
|
||||
|
||||
1. **Utiliser le format d'entrée pour la structure** : définissez un format d'entrée lorsque vous connaissez le schéma attendu. Cela fournit :
|
||||
- Validation de type
|
||||
- Meilleure autocomplétion dans l'éditeur
|
||||
- Capacités de téléchargement de fichiers
|
||||
|
||||
2. **Authentification** : activez toujours l'authentification pour les webhooks en production afin d'empêcher les accès non autorisés.
|
||||
|
||||
3. **Limites de taille de fichier** : gardez les fichiers en dessous de 20 Mo. Pour les fichiers plus volumineux, utilisez plutôt des références URL.
|
||||
|
||||
4. **Expiration des fichiers** : les fichiers téléchargés ont des URL d'expiration de 5 minutes. Traitez-les rapidement ou stockez-les ailleurs si vous en avez besoin plus longtemps.
|
||||
|
||||
5. **Gestion des erreurs** : le traitement des webhooks est asynchrone. Vérifiez les journaux d'exécution pour les erreurs.
|
||||
|
||||
6. **Tests** : utilisez le bouton "Tester le webhook" dans l'éditeur pour valider votre configuration avant le déploiement.
|
||||
|
||||
## Cas d'utilisation
|
||||
|
||||
- **Soumissions de formulaires** : recevez des données de formulaires personnalisés avec téléchargement de fichiers
|
||||
- **Intégrations tierces** : connectez-vous avec des services qui envoient des webhooks (Stripe, GitHub, etc.)
|
||||
- **Traitement de documents** : acceptez des documents de systèmes externes pour traitement
|
||||
- **Notifications d'événements** : recevez des données d'événements de diverses sources
|
||||
- **API personnalisées** : créez des points de terminaison API personnalisés pour vos applications
|
||||
|
||||
## Remarques
|
||||
|
||||
- Catégorie : `triggers`
|
||||
- Type : `generic_webhook`
|
||||
- **Support de fichiers** : disponible via la configuration du format d'entrée
|
||||
- **Taille maximale de fichier** : 20 Mo par fichier
|
||||
136
apps/docs/content/docs/fr/tools/greptile.mdx
Normal file
136
apps/docs/content/docs/fr/tools/greptile.mdx
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Greptile
|
||||
description: Recherche de base de code et questions-réponses alimentées par l'IA
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="greptile"
|
||||
color="#e5e5e5"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Greptile](https://greptile.com/) est un outil de développement alimenté par l'IA pour rechercher et interroger le code source dans un ou plusieurs dépôts. Greptile permet aux ingénieurs de répondre rapidement à des questions complexes sur la base de code en langage naturel, de localiser des fichiers ou symboles pertinents et d'obtenir des informations sur du code inconnu ou hérité.
|
||||
|
||||
Avec Greptile, vous pouvez :
|
||||
|
||||
- **Poser des questions complexes sur votre base de code en langage naturel** : obtenez des réponses générées par l'IA sur l'architecture, les modèles d'utilisation ou des implémentations spécifiques.
|
||||
- **Trouver instantanément du code, des fichiers ou des fonctions pertinents** : recherchez à l'aide de mots-clés ou de requêtes en langage naturel et accédez directement aux lignes, fichiers ou blocs de code correspondants.
|
||||
- **Comprendre les dépendances et les relations** : découvrez où les fonctions sont appelées, comment les modules sont liés ou où les API sont utilisées dans de grandes bases de code.
|
||||
- **Accélérer l'intégration et l'exploration du code** : montez rapidement en compétence sur de nouveaux projets ou déboguez des problèmes complexes sans avoir besoin d'un contexte préalable approfondi.
|
||||
|
||||
L'intégration Sim Greptile permet à vos agents IA de :
|
||||
|
||||
- Interroger et rechercher des dépôts privés et publics en utilisant les modèles de langage avancés de Greptile.
|
||||
- Récupérer des extraits de code contextuellement pertinents, des références de fichiers et des explications pour soutenir la revue de code, la documentation et les flux de travail de développement.
|
||||
- Déclencher des automatisations dans les workflows Sim en fonction des résultats de recherche/requête ou intégrer l'intelligence du code directement dans vos processus.
|
||||
|
||||
Que vous cherchiez à accélérer la productivité des développeurs, à automatiser la documentation ou à renforcer la compréhension de votre équipe d'une base de code complexe, Greptile et Sim offrent un accès transparent à l'intelligence et à la recherche de code, exactement là où vous en avez besoin.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instructions d'utilisation
|
||||
|
||||
Interrogez et recherchez des bases de code en langage naturel avec Greptile. Obtenez des réponses générées par l'IA sur votre code, trouvez des fichiers pertinents et comprenez des bases de code complexes.
|
||||
|
||||
## Outils
|
||||
|
||||
### `greptile_query`
|
||||
|
||||
Interrogez les dépôts en langage naturel et obtenez des réponses avec des références de code pertinentes. Greptile utilise l'IA pour comprendre votre base de code et répondre aux questions.
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Oui | Question en langage naturel sur la base de code |
|
||||
| `repositories` | string | Oui | Liste de dépôts séparés par des virgules. Format : "github:branch:owner/repo" ou simplement "owner/repo" \(par défaut github:main\) |
|
||||
| `sessionId` | string | Non | ID de session pour la continuité de la conversation |
|
||||
| `genius` | boolean | Non | Activer le mode genius pour une analyse plus approfondie \(plus lent mais plus précis\) |
|
||||
| `apiKey` | string | Oui | Clé API Greptile |
|
||||
| `githubToken` | string | Oui | Jeton d'accès personnel GitHub avec accès en lecture au dépôt |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Réponse générée par l'IA à la requête |
|
||||
| `sources` | array | Références de code pertinentes qui appuient la réponse |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
Recherchez dans les dépôts en langage naturel et obtenez des références de code pertinentes sans générer de réponse. Utile pour trouver des emplacements de code spécifiques.
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Oui | Requête de recherche en langage naturel pour trouver du code pertinent |
|
||||
| `repositories` | string | Oui | Liste de dépôts séparés par des virgules. Format : "github:branch:owner/repo" ou simplement "owner/repo" \(par défaut github:main\) |
|
||||
| `sessionId` | string | Non | ID de session pour la continuité de la conversation |
|
||||
| `genius` | boolean | Non | Activer le mode genius pour une recherche plus approfondie \(plus lent mais plus précis\) |
|
||||
| `apiKey` | string | Oui | Clé API Greptile |
|
||||
| `githubToken` | string | Oui | Jeton d'accès personnel GitHub avec accès en lecture au dépôt |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | Références de code pertinentes correspondant à la requête de recherche |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
Soumettre un dépôt pour qu'il soit indexé par Greptile. L'indexation doit être terminée avant que le dépôt puisse être interrogé. Les petits dépôts prennent 3 à 5 minutes, les plus grands peuvent prendre plus d'une heure.
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Oui | Type de dépôt distant : github ou gitlab |
|
||||
| `repository` | string | Oui | Dépôt au format propriétaire/dépôt \(par exemple, "facebook/react"\) |
|
||||
| `branch` | string | Oui | Branche à indexer \(par exemple, "main" ou "master"\) |
|
||||
| `reload` | boolean | Non | Forcer la réindexation même si déjà indexé |
|
||||
| `notify` | boolean | Non | Envoyer une notification par e-mail lorsque l'indexation est terminée |
|
||||
| `apiKey` | string | Oui | Clé API Greptile |
|
||||
| `githubToken` | string | Oui | Jeton d'accès personnel GitHub avec accès en lecture au dépôt |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repositoryId` | string | Identifiant unique du dépôt indexé \(format : distant:branche:propriétaire/dépôt\) |
|
||||
| `statusEndpoint` | string | Point de terminaison URL pour vérifier l'état de l'indexation |
|
||||
| `message` | string | Message d'état concernant l'opération d'indexation |
|
||||
|
||||
### `greptile_status`
|
||||
|
||||
Vérifier l'état d'indexation d'un dépôt. Utilisez ceci pour vérifier si un dépôt est prêt à être interrogé ou pour surveiller la progression de l'indexation.
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Oui | Type de dépôt distant Git : github ou gitlab |
|
||||
| `repository` | string | Oui | Dépôt au format propriétaire/dépôt \(par ex., "facebook/react"\) |
|
||||
| `branch` | string | Oui | Nom de la branche \(par ex., "main" ou "master"\) |
|
||||
| `apiKey` | string | Oui | Clé API Greptile |
|
||||
| `githubToken` | string | Oui | Jeton d'accès personnel GitHub avec accès en lecture au dépôt |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repository` | string | Nom du dépôt \(propriétaire/dépôt\) |
|
||||
| `remote` | string | Dépôt distant Git \(github/gitlab\) |
|
||||
| `branch` | string | Nom de la branche |
|
||||
| `private` | boolean | Indique si le dépôt est privé |
|
||||
| `status` | string | Statut d'indexation : submitted, cloning, processing, completed ou failed |
|
||||
| `filesProcessed` | number | Nombre de fichiers traités jusqu'à présent |
|
||||
| `numFiles` | number | Nombre total de fichiers dans le dépôt |
|
||||
| `sampleQuestions` | array | Exemples de questions pour le dépôt indexé |
|
||||
| `sha` | string | SHA du commit Git de la version indexée |
|
||||
|
||||
## Remarques
|
||||
|
||||
- Catégorie : `tools`
|
||||
- Type : `greptile`
|
||||
36
apps/docs/content/docs/fr/tools/imap.mdx
Normal file
36
apps/docs/content/docs/fr/tools/imap.mdx
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: Email IMAP
|
||||
description: Déclenchez des workflows lorsque de nouveaux emails arrivent via
|
||||
IMAP (fonctionne avec n'importe quel fournisseur d'email)
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="imap"
|
||||
color="#6366F1"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
Le déclencheur Email IMAP permet à vos workflows Sim de démarrer automatiquement dès qu'un nouvel email est reçu dans n'importe quelle boîte mail prenant en charge le protocole IMAP. Cela fonctionne avec Gmail, Outlook, Yahoo et la plupart des autres fournisseurs d'email.
|
||||
|
||||
Avec le déclencheur IMAP, vous pouvez :
|
||||
|
||||
- **Automatiser le traitement des emails** : démarrez des workflows en temps réel lorsque de nouveaux messages arrivent dans votre boîte de réception.
|
||||
- **Filtrer par expéditeur, objet ou dossier** : configurez votre déclencheur pour réagir uniquement aux emails correspondant à certaines conditions.
|
||||
- **Extraire et traiter les pièces jointes** : téléchargez et utilisez automatiquement les fichiers joints dans vos flux automatisés.
|
||||
- **Analyser et utiliser le contenu des emails** : accédez à l'objet, l'expéditeur, les destinataires, le corps complet et d'autres métadonnées dans les étapes suivantes du workflow.
|
||||
- **Intégrer avec n'importe quel fournisseur d'email** : fonctionne avec tout service offrant un accès IMAP standard, sans dépendance à un fournisseur.
|
||||
- **Déclencher sur non lu, marqué ou critères personnalisés** : configurez des filtres avancés pour les types d'emails qui démarrent vos workflows.
|
||||
|
||||
Avec Sim, l'intégration IMAP vous donne le pouvoir de transformer l'email en une source d'automatisation exploitable. Répondez aux demandes clients, traitez les notifications, lancez des pipelines de données et plus encore, directement depuis votre boîte de réception email, sans intervention manuelle.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instructions d'utilisation
|
||||
|
||||
Connectez-vous à n'importe quel serveur email via le protocole IMAP pour déclencher des workflows lorsque de nouveaux emails sont reçus. Prend en charge Gmail, Outlook, Yahoo et tout autre fournisseur d'email compatible IMAP.
|
||||
|
||||
## Remarques
|
||||
|
||||
- Catégorie : `triggers`
|
||||
- Type : `imap`
|
||||
486
apps/docs/content/docs/fr/tools/jira_service_management.mdx
Normal file
486
apps/docs/content/docs/fr/tools/jira_service_management.mdx
Normal file
@@ -0,0 +1,486 @@
|
||||
---
|
||||
title: Jira Service Management
|
||||
description: Interagir avec Jira Service Management
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="jira_service_management"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
## Instructions d'utilisation
|
||||
|
||||
Intégrez-vous avec Jira Service Management pour la gestion des services informatiques. Créez et gérez des demandes de service, traitez les clients et les organisations, suivez les SLA et gérez les files d'attente.
|
||||
|
||||
## Outils
|
||||
|
||||
### `jsm_get_service_desks`
|
||||
|
||||
Obtenir tous les centres de services depuis Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `serviceDesks` | json | Tableau des centres de services |
|
||||
| `total` | number | Nombre total de centres de services |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_get_request_types`
|
||||
|
||||
Obtenir les types de demandes pour un centre de services dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du centre de services pour lequel obtenir les types de demandes |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `requestTypes` | json | Tableau des types de demande |
|
||||
| `total` | number | Nombre total de types de demande |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_create_request`
|
||||
|
||||
Créer une nouvelle demande de service dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du Service Desk dans lequel créer la demande |
|
||||
| `requestTypeId` | string | Oui | ID du type de demande pour la nouvelle demande |
|
||||
| `summary` | string | Oui | Résumé/titre de la demande de service |
|
||||
| `description` | string | Non | Description de la demande de service |
|
||||
| `raiseOnBehalfOf` | string | Non | ID de compte du client pour lequel créer la demande |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueId` | string | ID du ticket de demande créé |
|
||||
| `issueKey` | string | Clé du ticket de demande créé \(par exemple, SD-123\) |
|
||||
| `requestTypeId` | string | ID du type de demande |
|
||||
| `serviceDeskId` | string | ID du Service Desk |
|
||||
| `success` | boolean | Indique si la demande a été créée avec succès |
|
||||
| `url` | string | URL vers la demande créée |
|
||||
|
||||
### `jsm_get_request`
|
||||
|
||||
Obtenir une seule demande de service depuis Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket \(par exemple, SD-123\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
|
||||
### `jsm_get_requests`
|
||||
|
||||
Obtenir plusieurs demandes de service depuis Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Non | Filtrer par ID de service desk |
|
||||
| `requestOwnership` | string | Non | Filtrer par propriété : OWNED_REQUESTS, PARTICIPATED_REQUESTS, ORGANIZATION, ALL_REQUESTS |
|
||||
| `requestStatus` | string | Non | Filtrer par statut : OPEN, CLOSED, ALL |
|
||||
| `searchTerm` | string | Non | Terme de recherche pour filtrer les demandes |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `requests` | json | Tableau des demandes de service |
|
||||
| `total` | number | Nombre total de demandes |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_add_comment`
|
||||
|
||||
Ajouter un commentaire (public ou interne) à une demande de service dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket \(par exemple, SD-123\) |
|
||||
| `body` | string | Oui | Texte du corps du commentaire |
|
||||
| `isPublic` | boolean | Oui | Indique si le commentaire est public \(visible par le client\) ou interne |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `commentId` | string | ID du commentaire créé |
|
||||
| `body` | string | Texte du corps du commentaire |
|
||||
| `isPublic` | boolean | Indique si le commentaire est public |
|
||||
| `success` | boolean | Indique si le commentaire a été ajouté avec succès |
|
||||
|
||||
### `jsm_get_comments`
|
||||
|
||||
Obtenir les commentaires d'une demande de service dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket \(par exemple, SD-123\) |
|
||||
| `isPublic` | boolean | Non | Filtrer uniquement les commentaires publics |
|
||||
| `internal` | boolean | Non | Filtrer uniquement les commentaires internes |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `comments` | json | Tableau des commentaires |
|
||||
| `total` | number | Nombre total de commentaires |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_get_customers`
|
||||
|
||||
Obtenir les clients d'un service desk dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Jira Cloud de l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du service desk pour lequel obtenir les clients |
|
||||
| `query` | string | Non | Requête de recherche pour filtrer les clients |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `customers` | json | Tableau des clients |
|
||||
| `total` | number | Nombre total de clients |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_add_customer`
|
||||
|
||||
Ajouter des clients à un service desk dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du Service Desk auquel ajouter des clients |
|
||||
| `emails` | string | Oui | Adresses e-mail séparées par des virgules à ajouter comme clients |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `serviceDeskId` | string | ID du Service Desk |
|
||||
| `success` | boolean | Indique si les clients ont été ajoutés avec succès |
|
||||
|
||||
### `jsm_get_organizations`
|
||||
|
||||
Obtenir les organisations d'un Service Desk dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du Service Desk pour lequel obtenir les organisations |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `organizations` | json | Tableau des organisations |
|
||||
| `total` | number | Nombre total d'organisations |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_create_organization`
|
||||
|
||||
Créer une nouvelle organisation dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `name` | string | Oui | Nom de l'organisation à créer |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `organizationId` | string | ID de l'organisation créée |
|
||||
| `name` | string | Nom de l'organisation créée |
|
||||
| `success` | boolean | Indique si l'opération a réussi |
|
||||
|
||||
### `jsm_add_organization`
|
||||
|
||||
Ajouter une organisation à un service desk dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du service desk auquel ajouter l'organisation |
|
||||
| `organizationId` | string | Oui | ID de l'organisation à ajouter au service desk |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `serviceDeskId` | string | ID du service desk |
|
||||
| `organizationId` | string | ID de l'organisation ajoutée |
|
||||
| `success` | boolean | Indique si l'opération a réussi |
|
||||
|
||||
### `jsm_get_queues`
|
||||
|
||||
Obtenir les files d'attente pour un service desk dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira (par ex., votreentreprise.atlassian.net) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `serviceDeskId` | string | Oui | ID du service desk pour lequel obtenir les files d'attente |
|
||||
| `includeCount` | boolean | Non | Inclure le nombre de tickets pour chaque file d'attente |
|
||||
| `start` | number | Non | Index de départ pour la pagination (par défaut : 0) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner (par défaut : 50) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `queues` | json | Tableau des files d'attente |
|
||||
| `total` | number | Nombre total de files d'attente |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_get_sla`
|
||||
|
||||
Obtenir les informations SLA pour une demande de service dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira (par ex., votreentreprise.atlassian.net) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket (par ex., SD-123) |
|
||||
| `start` | number | Non | Index de départ pour la pagination (par défaut : 0) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner (par défaut : 50) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `slas` | json | Tableau des informations SLA |
|
||||
| `total` | number | Nombre total de SLA |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_get_transitions`
|
||||
|
||||
Obtenir les transitions disponibles pour une demande de service dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira (par exemple, votreentreprise.atlassian.net) |
|
||||
| `cloudId` | string | Non | ID Jira Cloud de l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket (par exemple, SD-123) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `transitions` | json | Tableau des transitions disponibles |
|
||||
|
||||
### `jsm_transition_request`
|
||||
|
||||
Faire passer une demande de service à un nouveau statut dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira (par exemple, votreentreprise.atlassian.net) |
|
||||
| `cloudId` | string | Non | ID Jira Cloud de l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket (par exemple, SD-123) |
|
||||
| `transitionId` | string | Oui | ID de la transition à appliquer |
|
||||
| `comment` | string | Non | Commentaire optionnel à ajouter lors de la transition |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `transitionId` | string | ID de la transition appliquée |
|
||||
| `success` | boolean | Indique si la transition a réussi |
|
||||
|
||||
### `jsm_get_participants`
|
||||
|
||||
Obtenir les participants d'une demande dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira de l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket \(par exemple, SD-123\) |
|
||||
| `start` | number | Non | Index de départ pour la pagination \(par défaut : 0\) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner \(par défaut : 50\) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `participants` | json | Tableau des participants |
|
||||
| `total` | number | Nombre total de participants |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_add_participants`
|
||||
|
||||
Ajouter des participants à une demande dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira \(par exemple, votreentreprise.atlassian.net\) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira de l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket \(par exemple, SD-123\) |
|
||||
| `accountIds` | string | Oui | ID de comptes séparés par des virgules à ajouter comme participants |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `participants` | json | Tableau des participants ajoutés |
|
||||
| `success` | boolean | Indique si l'opération a réussi |
|
||||
|
||||
### `jsm_get_approvals`
|
||||
|
||||
Obtenir les approbations pour une demande dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira (par exemple, votreentreprise.atlassian.net) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket (par exemple, SD-123) |
|
||||
| `start` | number | Non | Index de départ pour la pagination (par défaut : 0) |
|
||||
| `limit` | number | Non | Nombre maximum de résultats à retourner (par défaut : 50) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `approvals` | json | Tableau des approbations |
|
||||
| `total` | number | Nombre total d'approbations |
|
||||
| `isLastPage` | boolean | Indique s'il s'agit de la dernière page |
|
||||
|
||||
### `jsm_answer_approval`
|
||||
|
||||
Approuver ou refuser une demande d'approbation dans Jira Service Management
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Requis | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Oui | Votre domaine Jira (par exemple, votreentreprise.atlassian.net) |
|
||||
| `cloudId` | string | Non | ID Cloud Jira pour l'instance |
|
||||
| `issueIdOrKey` | string | Oui | ID ou clé du ticket (par exemple, SD-123) |
|
||||
| `approvalId` | string | Oui | ID de l'approbation à traiter |
|
||||
| `decision` | string | Oui | Décision : "approve" ou "decline" |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Horodatage de l'opération |
|
||||
| `issueIdOrKey` | string | ID ou clé du ticket |
|
||||
| `approvalId` | string | ID d'approbation |
|
||||
| `decision` | string | Décision prise \(approuver/refuser\) |
|
||||
| `success` | boolean | Indique si l'opération a réussi |
|
||||
|
||||
## Remarques
|
||||
|
||||
- Catégorie : `tools`
|
||||
- Type : `jira_service_management`
|
||||
@@ -123,8 +123,6 @@ Récupérer le solde de votre compte et la valeur de votre portefeuille depuis K
|
||||
| --------- | ---- | ----------- |
|
||||
| `balance` | number | Solde du compte en centimes |
|
||||
| `portfolioValue` | number | Valeur du portefeuille en centimes |
|
||||
| `balanceDollars` | number | Solde du compte en dollars |
|
||||
| `portfolioValueDollars` | number | Valeur du portefeuille en dollars |
|
||||
|
||||
### `kalshi_get_positions`
|
||||
|
||||
|
||||
@@ -49,7 +49,8 @@ Interroger des données d'une table Supabase
|
||||
| --------- | ---- | ----------- | ----------- |
|
||||
| `projectId` | string | Oui | L'ID de votre projet Supabase \(ex. : jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Oui | Le nom de la table Supabase à interroger |
|
||||
| `schema` | string | Non | Schéma de base de données à interroger \(par défaut : public\). Utilisez ceci pour accéder aux tables dans d'autres schémas. |
|
||||
| `schema` | string | Non | Schéma de base de données à partir duquel interroger \(par défaut : public\). Utilisez ceci pour accéder aux tables dans d'autres schémas. |
|
||||
| `select` | string | Non | Colonnes à retourner \(séparées par des virgules\). Par défaut * \(toutes les colonnes\) |
|
||||
| `filter` | string | Non | Filtre PostgREST \(ex. : "id=eq.123"\) |
|
||||
| `orderBy` | string | Non | Colonne pour le tri \(ajoutez DESC pour l'ordre décroissant\) |
|
||||
| `limit` | number | Non | Nombre maximum de lignes à retourner |
|
||||
@@ -93,7 +94,8 @@ Obtenir une seule ligne d'une table Supabase selon des critères de filtrage
|
||||
| --------- | ---- | ----------- | ----------- |
|
||||
| `projectId` | string | Oui | L'ID de votre projet Supabase \(ex. : jdrkgepadsdopsntdlom\) |
|
||||
| `table` | string | Oui | Le nom de la table Supabase à interroger |
|
||||
| `schema` | string | Non | Schéma de base de données à interroger \(par défaut : public\). Utilisez ceci pour accéder aux tables dans d'autres schémas. |
|
||||
| `schema` | string | Non | Schéma de base de données à partir duquel interroger \(par défaut : public\). Utilisez ceci pour accéder aux tables dans d'autres schémas. |
|
||||
| `select` | string | Non | Colonnes à retourner \(séparées par des virgules\). Par défaut * \(toutes les colonnes\) |
|
||||
| `filter` | string | Oui | Filtre PostgREST pour trouver la ligne spécifique \(ex. : "id=eq.123"\) |
|
||||
| `apiKey` | string | Oui | Votre clé secrète de rôle de service Supabase |
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Utilisez le bloc Démarrer pour tout ce qui provient de l'éditeur, du déploiem
|
||||
|
||||
<Cards>
|
||||
<Card title="Start" href="/triggers/start">
|
||||
Point d'entrée unifié qui prend en charge les exécutions de l'éditeur, les déploiements d'API et les déploiements de chat
|
||||
Point d'entrée unifié qui prend en charge les exécutions dans l'éditeur, les déploiements API et les déploiements de chat
|
||||
</Card>
|
||||
<Card title="Webhook" href="/triggers/webhook">
|
||||
Recevoir des charges utiles de webhook externes
|
||||
@@ -31,18 +31,22 @@ Utilisez le bloc Démarrer pour tout ce qui provient de l'éditeur, du déploiem
|
||||
Exécution basée sur cron ou intervalle
|
||||
</Card>
|
||||
<Card title="RSS Feed" href="/triggers/rss">
|
||||
Surveiller les flux RSS et Atom pour du nouveau contenu
|
||||
Surveiller les flux RSS et Atom pour détecter du nouveau contenu
|
||||
</Card>
|
||||
<Card title="Email Polling Groups" href="#email-polling-groups">
|
||||
Surveiller les boîtes de réception Gmail et Outlook de l'équipe
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Comparaison rapide
|
||||
|
||||
| Déclencheur | Condition de démarrage |
|
||||
|---------|-----------------|
|
||||
| **Start** | Exécutions de l'éditeur, requêtes de déploiement d'API ou messages de chat |
|
||||
|-------------|------------------------|
|
||||
| **Start** | Exécutions dans l'éditeur, requêtes de déploiement vers l'API ou messages de chat |
|
||||
| **Schedule** | Minuteur géré dans le bloc de planification |
|
||||
| **Webhook** | Sur requête HTTP entrante |
|
||||
| **Webhook** | Lors d'une requête HTTP entrante |
|
||||
| **RSS Feed** | Nouvel élément publié dans le flux |
|
||||
| **Email Polling Groups** | Nouvel e-mail reçu dans les boîtes de réception Gmail ou Outlook de l'équipe |
|
||||
|
||||
> Le bloc Démarrer expose toujours les champs `input`, `conversationId` et `files`. Ajoutez des champs personnalisés au format d'entrée pour des données structurées supplémentaires.
|
||||
|
||||
@@ -65,3 +69,25 @@ Lorsque vous cliquez sur **Exécuter** dans l'éditeur, Sim sélectionne automat
|
||||
Si votre flux de travail comporte plusieurs déclencheurs, le déclencheur de priorité la plus élevée sera exécuté. Par exemple, si vous avez à la fois un bloc Démarrer et un déclencheur Webhook, cliquer sur Exécuter exécutera le bloc Démarrer.
|
||||
|
||||
**Déclencheurs externes avec charges utiles simulées** : lorsque des déclencheurs externes (webhooks et intégrations) sont exécutés manuellement, Sim génère automatiquement des charges utiles simulées basées sur la structure de données attendue du déclencheur. Cela garantit que les blocs en aval peuvent résoudre correctement les variables pendant les tests.
|
||||
|
||||
## Groupes de surveillance d'e-mails
|
||||
|
||||
Les groupes de surveillance vous permettent de surveiller les boîtes de réception Gmail ou Outlook de plusieurs membres de l'équipe avec un seul déclencheur. Nécessite un forfait Team ou Enterprise.
|
||||
|
||||
**Créer un groupe de surveillance** (Admin/Propriétaire)
|
||||
|
||||
1. Accédez à **Paramètres → Surveillance d'e-mails**
|
||||
2. Cliquez sur **Créer** et choisissez Gmail ou Outlook
|
||||
3. Entrez un nom pour le groupe
|
||||
|
||||
**Inviter des membres**
|
||||
|
||||
1. Cliquez sur **Ajouter des membres** dans votre groupe de surveillance
|
||||
2. Entrez les adresses e-mail (séparées par des virgules ou des sauts de ligne, ou glissez-déposez un fichier CSV)
|
||||
3. Cliquez sur **Envoyer les invitations**
|
||||
|
||||
Les personnes invitées reçoivent un e-mail avec un lien pour connecter leur compte. Une fois connectée, leur boîte de réception est automatiquement incluse dans le groupe de surveillance. Les personnes invitées n'ont pas besoin d'être membres de votre organisation Sim.
|
||||
|
||||
**Utiliser dans un workflow**
|
||||
|
||||
Lors de la configuration d'un déclencheur d'e-mail, sélectionnez votre groupe de surveillance dans le menu déroulant des identifiants au lieu d'un compte individuel. Le système crée des webhooks pour chaque membre et achemine tous les e-mails via votre workflow.
|
||||
|
||||
@@ -15,8 +15,8 @@ Le bloc Webhook générique crée un point de terminaison flexible qui peut rece
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Configuration de webhook générique"
|
||||
src="/static/blocks/webhook-trigger.png"
|
||||
alt="Configuration du webhook générique"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
|
||||
89
apps/docs/content/docs/ja/blocks/webhook.mdx
Normal file
89
apps/docs/content/docs/ja/blocks/webhook.mdx
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: Webhook
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Webhookブロックは、自動的なWebhookヘッダーとオプションのHMAC署名を使用して、外部のWebhookエンドポイントにHTTP POSTリクエストを送信します。
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Webhookブロック"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## 設定
|
||||
|
||||
### Webhook URL
|
||||
|
||||
Webhookリクエストの送信先エンドポイントです。静的URLと他のブロックからの動的な値の両方に対応しています。
|
||||
|
||||
### ペイロード
|
||||
|
||||
リクエストボディで送信するJSONデータです。AIワンドを使用してペイロードを生成したり、ワークフロー変数を参照したりできます。
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "workflow.completed",
|
||||
"data": {
|
||||
"result": "<agent.content>",
|
||||
"timestamp": "<function.result>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 署名シークレット
|
||||
|
||||
HMAC-SHA256ペイロード署名用のオプションのシークレットです。指定すると、`X-Webhook-Signature`ヘッダーが追加されます。
|
||||
|
||||
```
|
||||
X-Webhook-Signature: t=1704067200000,v1=5d41402abc4b2a76b9719d911017c592...
|
||||
```
|
||||
|
||||
署名を検証するには、`HMAC-SHA256(secret, "${timestamp}.${body}")`を計算し、`v1`の値と比較します。
|
||||
|
||||
### 追加ヘッダー
|
||||
|
||||
リクエストに含めるカスタムのキーと値のヘッダーです。同じ名前の自動ヘッダーがある場合は上書きされます。
|
||||
|
||||
## 自動ヘッダー
|
||||
|
||||
すべてのリクエストには、以下のヘッダーが自動的に含まれます。
|
||||
|
||||
| ヘッダー | 説明 |
|
||||
|--------|-------------|
|
||||
| `Content-Type` | `application/json` |
|
||||
| `X-Webhook-Timestamp` | ミリ秒単位のUnixタイムスタンプ |
|
||||
| `X-Delivery-ID` | この配信の一意のUUID |
|
||||
| `Idempotency-Key` | 重複排除用の`X-Delivery-ID`と同じ |
|
||||
|
||||
## 出力
|
||||
|
||||
| 出力 | 型 | 説明 |
|
||||
|--------|------|-------------|
|
||||
| `data` | json | エンドポイントからのレスポンスボディ |
|
||||
| `status` | number | HTTPステータスコード |
|
||||
| `headers` | object | レスポンスヘッダー |
|
||||
|
||||
## 使用例
|
||||
|
||||
**外部サービスへの通知** - ワークフローの結果をSlack、Discord、またはカスタムエンドポイントに送信します。
|
||||
|
||||
```
|
||||
Agent → Function (format) → Webhook (notify)
|
||||
```
|
||||
|
||||
**外部ワークフローのトリガー** - 条件が満たされたときに他のシステムでプロセスを開始します。
|
||||
|
||||
```
|
||||
Condition (check) → Webhook (trigger) → Response
|
||||
```
|
||||
|
||||
<Callout>
|
||||
Webhookブロックは常にPOSTを使用します。他のHTTPメソッドやより詳細な制御が必要な場合は、[APIブロック](/blocks/api)を使用してください。
|
||||
</Callout>
|
||||
75
apps/docs/content/docs/ja/enterprise/index.mdx
Normal file
75
apps/docs/content/docs/ja/enterprise/index.mdx
Normal file
@@ -0,0 +1,75 @@
|
||||
---
|
||||
title: エンタープライズ
|
||||
description: 高度なセキュリティとコンプライアンス要件を持つ組織向けのエンタープライズ機能
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Sim Studio Enterpriseは、強化されたセキュリティ、コンプライアンス、管理要件を持つ組織向けの高度な機能を提供します。
|
||||
|
||||
---
|
||||
|
||||
## Bring Your Own Key (BYOK)
|
||||
|
||||
Sim Studioのホストキーの代わりに、AIモデルプロバイダー用の独自のAPIキーを使用できます。
|
||||
|
||||
### 対応プロバイダー
|
||||
|
||||
| プロバイダー | 用途 |
|
||||
|----------|-------|
|
||||
| OpenAI | ナレッジベースの埋め込み、エージェントブロック |
|
||||
| Anthropic | エージェントブロック |
|
||||
| Google | エージェントブロック |
|
||||
| Mistral | ナレッジベースOCR |
|
||||
|
||||
### セットアップ
|
||||
|
||||
1. ワークスペースの**設定** → **BYOK**に移動します
|
||||
2. プロバイダーの**キーを追加**をクリックします
|
||||
3. APIキーを入力して保存します
|
||||
|
||||
<Callout type="warn">
|
||||
BYOKキーは保存時に暗号化されます。組織の管理者とオーナーのみがキーを管理できます。
|
||||
</Callout>
|
||||
|
||||
設定すると、ワークフローはSim Studioのホストキーの代わりに独自のキーを使用します。削除すると、ワークフローは自動的にホストキーにフォールバックします。
|
||||
|
||||
---
|
||||
|
||||
## シングルサインオン (SSO)
|
||||
|
||||
集中型IDマネジメントのためのSAML 2.0およびOIDCサポートを備えたエンタープライズ認証。
|
||||
|
||||
### 対応プロバイダー
|
||||
|
||||
- Okta
|
||||
- Azure AD / Entra ID
|
||||
- Google Workspace
|
||||
- OneLogin
|
||||
- SAML 2.0またはOIDCに対応する任意のプロバイダー
|
||||
|
||||
### セットアップ
|
||||
|
||||
1. ワークスペースの**設定** → **SSO**に移動します
|
||||
2. IDプロバイダーを選択します
|
||||
3. IdPのメタデータを使用して接続を設定します
|
||||
4. 組織のSSOを有効にします
|
||||
|
||||
<Callout type="info">
|
||||
SSOを有効にすると、チームメンバーはメール/パスワードの代わりにIDプロバイダーを通じて認証します。
|
||||
</Callout>
|
||||
|
||||
---
|
||||
|
||||
## セルフホスト
|
||||
|
||||
セルフホストデプロイメントの場合、エンタープライズ機能は環境変数を介して有効にできます:
|
||||
|
||||
| 変数 | 説明 |
|
||||
|----------|-------------|
|
||||
| `SSO_ENABLED`、`NEXT_PUBLIC_SSO_ENABLED` | SAML/OIDCによるシングルサインオン |
|
||||
| `CREDENTIAL_SETS_ENABLED`、`NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | メールトリガー用のポーリンググループ |
|
||||
|
||||
<Callout type="warn">
|
||||
BYOKはホスト型Sim Studioでのみ利用可能です。セルフホスト型デプロイメントでは、環境変数を介してAIプロバイダーキーを直接設定します。
|
||||
</Callout>
|
||||
@@ -47,42 +47,42 @@ AIブロックを使用するワークフローでは、ログで詳細なコス
|
||||
|
||||
## 料金オプション
|
||||
|
||||
<Tabs items={['Hosted Models', 'Bring Your Own API Key']}>
|
||||
<Tabs items={['ホステッドモデル', '独自のAPIキーを使用']}>
|
||||
<Tab>
|
||||
**ホステッドモデル** - Simは2倍の価格乗数でAPIキーを提供します:
|
||||
**ホステッドモデル** - Simは、エージェントブロック用に1.4倍の価格乗数を適用したAPIキーを提供します:
|
||||
|
||||
**OpenAI**
|
||||
| モデル | 基本価格(入力/出力) | ホステッド価格(入力/出力) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| GPT-5.1 | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.50 / $4.00 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.10 / $0.80 |
|
||||
| GPT-4o | $2.50 / $10.00 | $5.00 / $20.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $4.00 / $16.00 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.80 / $3.20 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.20 / $0.80 |
|
||||
| o1 | $15.00 / $60.00 | $30.00 / $120.00 |
|
||||
| o3 | $2.00 / $8.00 | $4.00 / $16.00 |
|
||||
| o4 Mini | $1.10 / $4.40 | $2.20 / $8.80 |
|
||||
| GPT-5.1 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.35 / $2.80 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.07 / $0.56 |
|
||||
| GPT-4o | $2.50 / $10.00 | $3.50 / $14.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.56 / $2.24 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.14 / $0.56 |
|
||||
| o1 | $15.00 / $60.00 | $21.00 / $84.00 |
|
||||
| o3 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| o4 Mini | $1.10 / $4.40 | $1.54 / $6.16 |
|
||||
|
||||
**Anthropic**
|
||||
| モデル | 基本価格(入力/出力) | ホステッド価格(入力/出力) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $10.00 / $50.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $30.00 / $150.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $6.00 / $30.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $6.00 / $30.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $2.00 / $10.00 |
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $7.00 / $35.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $21.00 / $105.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $1.40 / $7.00 |
|
||||
|
||||
**Google**
|
||||
| モデル | 基本価格(入力/出力) | ホステッド価格(入力/出力) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $4.00 / $24.00 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $2.50 / $20.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.60 / $5.00 |
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $2.80 / $16.80 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.42 / $3.50 |
|
||||
|
||||
*2倍の乗数は、インフラストラクチャとAPI管理コストをカバーします。*
|
||||
*1.4倍の乗数は、インフラストラクチャとAPI管理のコストをカバーします。*
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
|
||||
63
apps/docs/content/docs/ja/keyboard-shortcuts/index.mdx
Normal file
63
apps/docs/content/docs/ja/keyboard-shortcuts/index.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: キーボードショートカット
|
||||
description: キーボードショートカットとマウス操作でワークフローキャンバスをマスターしましょう
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
これらのキーボードショートカットとマウス操作でワークフロー構築を高速化できます。すべてのショートカットは、キャンバスにフォーカスがある時に機能します(入力フィールドに入力中は機能しません)。
|
||||
|
||||
<Callout type="info">
|
||||
**Mod**はmacOSでは`Cmd`、Windows/Linuxでは`Ctrl`を指します。
|
||||
</Callout>
|
||||
|
||||
## キャンバス操作
|
||||
|
||||
### マウス操作
|
||||
|
||||
| 操作 | 操作方法 |
|
||||
|--------|---------|
|
||||
| キャンバスの移動 | 空白部分を左ドラッグ |
|
||||
| キャンバスの移動 | スクロールまたはトラックパッド |
|
||||
| 複数ブロックの選択 | 右ドラッグで選択ボックスを描画 |
|
||||
| ブロックのドラッグ | ブロックヘッダーを左ドラッグ |
|
||||
| 選択に追加 | `Mod` + ブロックをクリック |
|
||||
|
||||
### ワークフロー操作
|
||||
|
||||
| ショートカット | 操作 |
|
||||
|----------|--------|
|
||||
| `Mod` + `Enter` | ワークフローを実行(実行中の場合はキャンセル) |
|
||||
| `Mod` + `Z` | 元に戻す |
|
||||
| `Mod` + `Shift` + `Z` | やり直す |
|
||||
| `Mod` + `C` | 選択したブロックをコピー |
|
||||
| `Mod` + `V` | ブロックを貼り付け |
|
||||
| `Delete`または`Backspace` | 選択したブロックまたはエッジを削除 |
|
||||
| `Shift` + `L` | キャンバスを自動レイアウト |
|
||||
|
||||
## パネルナビゲーション
|
||||
|
||||
これらのショートカットは、キャンバス右側のパネルタブを切り替えます。
|
||||
|
||||
| ショートカット | 操作 |
|
||||
|----------|--------|
|
||||
| `C` | Copilotタブにフォーカス |
|
||||
| `T` | Toolbarタブにフォーカス |
|
||||
| `E` | Editorタブにフォーカス |
|
||||
| `Mod` + `F` | Toolbar検索にフォーカス |
|
||||
|
||||
## グローバルナビゲーション
|
||||
|
||||
| ショートカット | 操作 |
|
||||
|----------|--------|
|
||||
| `Mod` + `K` | 検索を開く |
|
||||
| `Mod` + `Shift` + `A` | 新しいエージェントワークフローを追加 |
|
||||
| `Mod` + `Y` | テンプレートに移動 |
|
||||
| `Mod` + `L` | ログに移動 |
|
||||
|
||||
## ユーティリティ
|
||||
|
||||
| ショートカット | アクション |
|
||||
|----------|--------|
|
||||
| `Mod` + `D` | ターミナルコンソールをクリア |
|
||||
| `Mod` + `E` | 通知をクリア |
|
||||
107
apps/docs/content/docs/ja/mcp/deploy-workflows.mdx
Normal file
107
apps/docs/content/docs/ja/mcp/deploy-workflows.mdx
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
title: ワークフローをMCPとしてデプロイ
|
||||
description: 外部のAIアシスタントやアプリケーション向けに、ワークフローをMCPツールとして公開
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
ワークフローをMCPツールとしてデプロイすることで、Claude Desktop、Cursor、その他のMCP互換クライアントなどの外部AIアシスタントからアクセス可能になります。これにより、ワークフローがどこからでも呼び出せる呼び出し可能なツールに変わります。
|
||||
|
||||
## MCPサーバーの作成と管理
|
||||
|
||||
MCPサーバーは、ワークフローツールをまとめてグループ化します。ワークスペース設定で作成と管理を行います。
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-server.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. **設定 → デプロイ済みMCP**に移動します
|
||||
2. **サーバーを作成**をクリックします
|
||||
3. 名前とオプションの説明を入力します
|
||||
4. MCPクライアントで使用するためにサーバーURLをコピーします
|
||||
5. サーバーに追加されたすべてのツールを表示および管理します
|
||||
|
||||
## ワークフローをツールとして追加
|
||||
|
||||
ワークフローがデプロイされたら、MCPツールとして公開できます。
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-deploy-tool.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. デプロイ済みのワークフローを開く
|
||||
2. **デプロイ**をクリックし、**MCP**タブに移動
|
||||
3. ツール名と説明を設定
|
||||
4. 各パラメータの説明を追加(AIが入力を理解するのに役立ちます)
|
||||
5. 追加先のMCPサーバーを選択
|
||||
|
||||
<Callout type="info">
|
||||
ワークフローをMCPツールとして追加する前に、デプロイしておく必要があります。
|
||||
</Callout>
|
||||
|
||||
## ツールの設定
|
||||
|
||||
### ツール名
|
||||
小文字、数字、アンダースコアを使用します。名前は説明的で、MCPの命名規則に従う必要があります(例: `search_documents`、`send_email`)。
|
||||
|
||||
### 説明
|
||||
ツールが何をするのかを明確に説明します。これにより、AIアシスタントがツールをいつ使用すべきかを理解できます。
|
||||
|
||||
### パラメータ
|
||||
ワークフローの入力形式フィールドがツールパラメータになります。AIアシスタントが正しい値を提供できるよう、各パラメータに説明を追加してください。
|
||||
|
||||
## MCPクライアントの接続
|
||||
|
||||
設定から取得したサーバーURLを使用して外部アプリケーションを接続します:
|
||||
|
||||
### Claude Desktop
|
||||
Claude Desktopの設定ファイル(`~/Library/Application Support/Claude/claude_desktop_config.json`)に追加してください:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-sim-workflows": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "YOUR_SERVER_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
同じmcp-remoteパターンを使用して、CursorのMCP設定にサーバーURLを追加してください。
|
||||
|
||||
<Callout type="warn">
|
||||
mcp-remoteまたは他のHTTPベースのMCPトランスポートを使用する際は、認証アクセスのためにAPIキーヘッダー(`X-API-Key`)を含めてください。
|
||||
</Callout>
|
||||
|
||||
## サーバー管理
|
||||
|
||||
**設定 → デプロイ済みMCP**のサーバー詳細ビューから、次のことができます:
|
||||
|
||||
- **ツールを表示**: サーバーに追加されたすべてのワークフローを確認
|
||||
- **URLをコピー**: MCPクライアント用のサーバーURLを取得
|
||||
- **ワークフローを追加**: デプロイ済みワークフローをツールとして追加
|
||||
- **ツールを削除**: サーバーからワークフローを削除
|
||||
- **サーバーを削除**: サーバー全体とすべてのツールを削除
|
||||
|
||||
## 仕組み
|
||||
|
||||
MCPクライアントがツールを呼び出すと:
|
||||
|
||||
1. MCPサーバーURLでリクエストを受信
|
||||
2. Simがリクエストを検証し、パラメータをワークフロー入力にマッピング
|
||||
3. 提供された入力でデプロイ済みワークフローを実行
|
||||
4. 結果をMCPクライアントに返却
|
||||
|
||||
ワークフローはAPI呼び出しと同じデプロイバージョンを使用して実行されるため、一貫した動作が保証されます。
|
||||
|
||||
## 必要な権限
|
||||
|
||||
| アクション | 必要な権限 |
|
||||
|--------|-------------------|
|
||||
| MCPサーバーを作成 | **管理者** |
|
||||
| サーバーにワークフローを追加 | **書き込み**または**管理者** |
|
||||
| MCPサーバーを表示 | **読み取り**、**書き込み**、または**管理者** |
|
||||
| MCPサーバーを削除 | **管理者** |
|
||||
@@ -1,8 +1,10 @@
|
||||
---
|
||||
title: MCP(モデルコンテキストプロトコル)
|
||||
title: MCPツールの使用
|
||||
description: Model Context Protocolを使用して外部ツールとサービスを接続
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
モデルコンテキストプロトコル([MCP](https://modelcontextprotocol.com/))を使用すると、標準化されたプロトコルを使用して外部ツールやサービスを接続し、APIやサービスをワークフローに直接統合することができます。MCPを使用することで、エージェントやワークフローとシームレスに連携するカスタム統合機能を追加して、Simの機能を拡張できます。
|
||||
@@ -20,29 +22,27 @@ MCPは、AIアシスタントが外部データソースやツールに安全に
|
||||
|
||||
MCPサーバーはエージェントが使用できるツールのコレクションを提供します。ワークスペース設定で構成してください:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-1.png"
|
||||
alt="設定でのMCPサーバーの構成"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/settings-mcp-tools.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. ワークスペース設定に移動します
|
||||
2. **MCPサーバー**セクションに進みます
|
||||
2. **デプロイ済みMCP**セクションに移動します
|
||||
3. **MCPサーバーを追加**をクリックします
|
||||
4. サーバー構成の詳細を入力します
|
||||
5. 構成を保存します
|
||||
4. サーバー設定の詳細を入力します
|
||||
5. 設定を保存します
|
||||
|
||||
<Callout type="info">
|
||||
エージェントブロックのツールバーから直接MCPサーバーを構成することもできます(クイックセットアップ)。
|
||||
</Callout>
|
||||
|
||||
### ツールの更新
|
||||
|
||||
サーバーの**更新**をクリックすると、最新のツールスキーマを取得し、それらのツールを使用しているエージェントブロックを新しいパラメータ定義で自動的に更新します。
|
||||
|
||||
## エージェントでのMCPツールの使用
|
||||
|
||||
MCPサーバーが構成されると、そのツールはエージェントブロック内で利用可能になります:
|
||||
MCPサーバーが設定されると、そのツールがエージェントブロック内で利用可能になります:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
@@ -54,14 +54,14 @@ MCPサーバーが構成されると、そのツールはエージェントブ
|
||||
/>
|
||||
</div>
|
||||
|
||||
1. **エージェント**ブロックを開きます
|
||||
1. **エージェント**ブロックを開く
|
||||
2. **ツール**セクションで、利用可能なMCPツールが表示されます
|
||||
3. エージェントに使用させたいツールを選択します
|
||||
4. これでエージェントは実行中にこれらのツールにアクセスできるようになります
|
||||
3. エージェントに使用させたいツールを選択
|
||||
4. エージェントは実行中にこれらのツールにアクセスできるようになります
|
||||
|
||||
## スタンドアロンMCPツールブロック
|
||||
|
||||
より細かい制御のために、特定のMCPツールを実行するための専用MCPツールブロックを使用できます:
|
||||
より細かい制御が必要な場合は、専用のMCPツールブロックを使用して特定のMCPツールを実行できます:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
@@ -73,18 +73,18 @@ MCPサーバーが構成されると、そのツールはエージェントブ
|
||||
/>
|
||||
</div>
|
||||
|
||||
MCPツールブロックでは以下のことが可能です:
|
||||
- 構成済みのMCPツールを直接実行する
|
||||
MCPツールブロックでは次のことができます:
|
||||
- 設定済みのMCPツールを直接実行
|
||||
- ツールに特定のパラメータを渡す
|
||||
- ツールの出力を後続のワークフローステップで使用する
|
||||
- ツールの出力を後続のワークフローステップで使用
|
||||
- 複数のMCPツールを連鎖させる
|
||||
|
||||
### MCPツールとエージェントの使い分け
|
||||
|
||||
**エージェントとMCPツールを使用する場合:**
|
||||
- AIにどのツールを使用するか決定させたい場合
|
||||
- ツールをいつどのように使用するかについて複雑な推論が必要な場合
|
||||
- ツールと自然言語でのやり取りが必要な場合
|
||||
**MCPツールを使用したエージェントを使用する場合:**
|
||||
- AIにどのツールを使用するか決定させたい
|
||||
- ツールをいつどのように使用するかについて複雑な推論が必要
|
||||
- ツールとの自然言語による対話が必要
|
||||
|
||||
**MCPツールブロックを使用する場合:**
|
||||
- 決定論的なツール実行が必要な場合
|
||||
@@ -97,34 +97,34 @@ MCP機能には特定のワークスペース権限が必要です:
|
||||
|
||||
| アクション | 必要な権限 |
|
||||
|--------|-------------------|
|
||||
| 設定でMCPサーバーを構成する | **管理者** |
|
||||
| エージェントでMCPツールを使用する | **書き込み** または **管理者** |
|
||||
| 利用可能なMCPツールを表示する | **読み取り**、**書き込み**、または **管理者** |
|
||||
| MCPツールブロックを実行する | **書き込み** または **管理者** |
|
||||
| 設定でMCPサーバーを構成 | **管理者** |
|
||||
| エージェントでMCPツールを使用 | **書き込み**または**管理者** |
|
||||
| 利用可能なMCPツールを表示 | **読み取り**、**書き込み**、または**管理者** |
|
||||
| MCPツールブロックを実行 | **書き込み**または**管理者** |
|
||||
|
||||
## 一般的なユースケース
|
||||
## 一般的な使用例
|
||||
|
||||
### データベース統合
|
||||
ワークフロー内でデータのクエリ、挿入、更新を行うためにデータベースに接続します。
|
||||
データベースに接続して、ワークフロー内でデータのクエリ、挿入、更新を行います。
|
||||
|
||||
### API統合
|
||||
組み込みのSim統合がない外部APIやWebサービスにアクセスします。
|
||||
Simに組み込まれていない外部APIやWebサービスにアクセスします。
|
||||
|
||||
### ファイルシステムアクセス
|
||||
ローカルまたはリモートファイルシステム上のファイルの読み取り、書き込み、操作を行います。
|
||||
ローカルまたはリモートのファイルシステム上のファイルの読み取り、書き込み、操作を行います。
|
||||
|
||||
### カスタムビジネスロジック
|
||||
組織のニーズに特化したカスタムスクリプトやツールを実行します。
|
||||
組織固有のニーズに合わせたカスタムスクリプトやツールを実行します。
|
||||
|
||||
### リアルタイムデータアクセス
|
||||
ワークフロー実行中に外部システムからライブデータを取得します。
|
||||
|
||||
## セキュリティに関する考慮事項
|
||||
|
||||
- MCPサーバーは構成したユーザーの権限で実行されます
|
||||
- MCPサーバーは、それを構成したユーザーの権限で実行されます
|
||||
- インストール前に必ずMCPサーバーのソースを確認してください
|
||||
- 機密性の高い構成データには環境変数を使用してください
|
||||
- エージェントにアクセス権を付与する前にMCPサーバーの機能を確認してください
|
||||
- エージェントにアクセスを許可する前にMCPサーバーの機能を確認してください
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
@@ -139,6 +139,6 @@ MCP機能には特定のワークスペース権限が必要です:
|
||||
- 必要な認証が構成されていることを確認してください
|
||||
|
||||
### 権限エラー
|
||||
- ワークスペースの権限レベルを確認する
|
||||
- MCPサーバーが追加認証を必要としているか確認する
|
||||
- サーバーがワークスペース用に適切に構成されているか確認する
|
||||
- ワークスペースの権限レベルを確認してください
|
||||
- MCPサーバーが追加の認証を必要としているか確認してください
|
||||
- サーバーがワークスペースに対して適切に設定されているか確認してください
|
||||
233
apps/docs/content/docs/ja/tools/fireflies.mdx
Normal file
233
apps/docs/content/docs/ja/tools/fireflies.mdx
Normal file
@@ -0,0 +1,233 @@
|
||||
---
|
||||
title: Fireflies
|
||||
description: Fireflies.aiの会議文字起こしと録画を操作
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="fireflies"
|
||||
color="#100730"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Fireflies.ai](https://fireflies.ai/)は、会議の文字起こしとインテリジェンスプラットフォームで、Simと統合されており、エージェントがノーコード自動化を通じて会議の録画、文字起こし、インサイトを直接操作できます。
|
||||
|
||||
SimのFireflies統合は以下のツールを提供します。
|
||||
|
||||
- **会議文字起こしの一覧表示:** チームまたはアカウントの複数の会議とその要約情報を取得します。
|
||||
- **完全な文字起こし詳細の取得:** 任意の会議について、要約、アクションアイテム、トピック、参加者分析を含む詳細な文字起こしにアクセスします。
|
||||
- **音声または動画のアップロード:** 音声/動画ファイルをアップロードするか、文字起こし用のURLを提供します。オプションで言語、タイトル、参加者を設定し、自動化された会議メモを受け取ることができます。
|
||||
- **文字起こしの検索:** キーワード、参加者、ホスト、または期間で会議を検索し、関連する議論を素早く見つけます。
|
||||
- **文字起こしの削除:** Firefliesワークスペースから特定の会議文字起こしを削除します。
|
||||
- **サウンドバイト(Bites)の作成:** 文字起こしから重要な瞬間を音声または動画クリップとして抽出してハイライトします。
|
||||
- **文字起こし完了時のワークフロートリガー:** Firefliesの会議文字起こしが完了したときに、提供されたWebhookトリガーを使用してSimワークフローを自動的に起動します。これにより、新しい会議データに基づくリアルタイムの自動化と通知が可能になります。
|
||||
|
||||
これらの機能を組み合わせることで、会議後のアクションを効率化し、構造化されたインサイトを抽出し、通知を自動化し、録画を管理し、組織の通話に関するカスタムワークフローを調整できます。すべてAPIキーとFirefliesの認証情報を使用して安全に実行されます。
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## 使用方法
|
||||
|
||||
Fireflies.aiをワークフローに統合します。会議の文字起こしを管理し、ライブ会議にボットを追加し、サウンドバイトを作成するなどの操作が可能です。文字起こしが完了したときにワークフローをトリガーすることもできます。
|
||||
|
||||
## ツール
|
||||
|
||||
### `fireflies_list_transcripts`
|
||||
|
||||
Fireflies.aiからミーティングの文字起こしをオプションのフィルタリング付きで一覧表示
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `keyword` | string | いいえ | ミーティングタイトルまたは文字起こし内の検索キーワード |
|
||||
| `fromDate` | string | いいえ | この日付以降の文字起こしをフィルタリング(ISO 8601形式) |
|
||||
| `toDate` | string | いいえ | この日付までの文字起こしをフィルタリング(ISO 8601形式) |
|
||||
| `hostEmail` | string | いいえ | ミーティングホストのメールアドレスでフィルタリング |
|
||||
| `participants` | string | いいえ | 参加者のメールアドレスでフィルタリング(カンマ区切り) |
|
||||
| `limit` | number | いいえ | 返す文字起こしの最大数(最大50) |
|
||||
| `skip` | number | いいえ | ページネーションのためにスキップする文字起こしの数 |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcripts` | array | 文字起こしのリスト |
|
||||
| `count` | number | 返された文字起こしの数 |
|
||||
|
||||
### `fireflies_get_transcript`
|
||||
|
||||
要約、アクションアイテム、分析を含む完全な詳細情報を持つ単一の文字起こしを取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `transcriptId` | string | はい | 取得する文字起こしID |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | 完全な詳細情報を持つ文字起こし |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
Fireflies.aiからユーザー情報を取得します。IDが指定されていない場合は現在のユーザーを返します。
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `userId` | string | いいえ | 取得するユーザーID(オプション、デフォルトはAPIキー所有者) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | ユーザー情報 |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
Fireflies.aiチーム内のすべてのユーザーを一覧表示します
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | チームユーザーのリスト |
|
||||
|
||||
### `fireflies_upload_audio`
|
||||
|
||||
音声ファイルのURLをFireflies.aiにアップロードして文字起こしを行います
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `audioFile` | file | いいえ | 文字起こし用にアップロードする音声/動画ファイル |
|
||||
| `audioUrl` | string | いいえ | 音声/動画ファイルの公開HTTPS URL(MP3、MP4、WAV、M4A、OGG) |
|
||||
| `title` | string | いいえ | ミーティング/文字起こしのタイトル |
|
||||
| `webhook` | string | いいえ | 文字起こし完了時に通知するWebhook URL |
|
||||
| `language` | string | いいえ | 文字起こしの言語コード(例:スペイン語は「es」、ドイツ語は「de」) |
|
||||
| `attendees` | string | いいえ | JSON形式の参加者:\[\{"displayName": "名前", "email": "email@example.com"\}\] |
|
||||
| `clientReferenceId` | string | いいえ | 追跡用のカスタム参照ID |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | アップロードが成功したかどうか |
|
||||
| `title` | string | アップロードされたミーティングのタイトル |
|
||||
| `message` | string | Firefliesからのステータスメッセージ |
|
||||
|
||||
### `fireflies_delete_transcript`
|
||||
|
||||
Fireflies.aiからトランスクリプトを削除する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `transcriptId` | string | はい | 削除するトランスクリプトID |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | トランスクリプトが正常に削除されたかどうか |
|
||||
|
||||
### `fireflies_add_to_live_meeting`
|
||||
|
||||
進行中のミーティングにFireflies.aiボットを追加して録音および文字起こしを行う
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `meetingLink` | string | はい | 有効なミーティングURL(Zoom、Google Meet、Microsoft Teamsなど) |
|
||||
| `title` | string | いいえ | ミーティングのタイトル(最大256文字) |
|
||||
| `meetingPassword` | string | いいえ | 必要な場合のミーティングパスワード(最大32文字) |
|
||||
| `duration` | number | いいえ | ミーティングの長さ(分単位、15-120、デフォルト:60) |
|
||||
| `language` | string | いいえ | 文字起こしの言語コード(例:"en"、"es"、"de") |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | ボットがミーティングに正常に追加されたかどうか |
|
||||
|
||||
### `fireflies_create_bite`
|
||||
|
||||
トランスクリプトの特定の時間範囲からサウンドバイト/ハイライトを作成します
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `transcriptId` | string | はい | バイトを作成するトランスクリプトのID |
|
||||
| `startTime` | number | はい | バイトの開始時間(秒) |
|
||||
| `endTime` | number | はい | バイトの終了時間(秒) |
|
||||
| `name` | string | いいえ | バイトの名前(最大256文字) |
|
||||
| `mediaType` | string | いいえ | メディアタイプ:「video」または「audio」 |
|
||||
| `summary` | string | いいえ | バイトの概要(最大500文字) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | 作成されたバイトの詳細 |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
Fireflies.aiからサウンドバイト/ハイライトを一覧表示します
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
| `transcriptId` | string | いいえ | 特定のトランスクリプトのバイトをフィルタリング |
|
||||
| `mine` | boolean | いいえ | APIキー所有者が所有するバイトのみを返す(デフォルト:true) |
|
||||
| `limit` | number | いいえ | 返すバイトの最大数(最大50) |
|
||||
| `skip` | number | いいえ | ページネーションのためにスキップするバイトの数 |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bites` | array | バイト/サウンドバイトのリスト |
|
||||
|
||||
### `fireflies_list_contacts`
|
||||
|
||||
Fireflies.aiミーティングからすべての連絡先をリスト表示
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | はい | Fireflies APIキー |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | ミーティングからの連絡先のリスト |
|
||||
|
||||
## 注記
|
||||
|
||||
- カテゴリ: `tools`
|
||||
- タイプ: `fireflies`
|
||||
@@ -1,230 +0,0 @@
|
||||
---
|
||||
title: Webhook
|
||||
description: カスタムウェブフックを設定して、任意のサービスからウェブフックを受信します。
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
<BlockInfoCard
|
||||
type="generic_webhook"
|
||||
color="#10B981"
|
||||
/>
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Webhookブロックの設定"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## 概要
|
||||
|
||||
汎用Webhookブロックを使用すると、任意の外部サービスからWebhookを受信できます。これは柔軟なトリガーであり、あらゆるJSONペイロードを処理できるため、専用のSimブロックがないサービスとの統合に最適です。
|
||||
|
||||
## 基本的な使用方法
|
||||
|
||||
### シンプルなパススルーモード
|
||||
|
||||
入力フォーマットを定義しない場合、Webhookはリクエスト本文全体をそのまま渡します:
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Test webhook trigger",
|
||||
"data": {
|
||||
"key": "value"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
下流のブロックでデータにアクセスする方法:
|
||||
- `<webhook1.message>` → "Test webhook trigger"
|
||||
- `<webhook1.data.key>` → "value"
|
||||
|
||||
### 構造化入力フォーマット(オプション)
|
||||
|
||||
入力スキーマを定義して、型付きフィールドを取得し、ファイルアップロードなどの高度な機能を有効にします:
|
||||
|
||||
**入力フォーマット設定:**
|
||||
|
||||
```json
|
||||
[
|
||||
{ "name": "message", "type": "string" },
|
||||
{ "name": "priority", "type": "number" },
|
||||
{ "name": "documents", "type": "files" }
|
||||
]
|
||||
```
|
||||
|
||||
**Webhookリクエスト:**
|
||||
|
||||
```bash
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"message": "Invoice submission",
|
||||
"priority": 1,
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:application/pdf;base64,JVBERi0xLjQK...",
|
||||
"name": "invoice.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## ファイルアップロード
|
||||
|
||||
### サポートされているファイル形式
|
||||
|
||||
Webhookは2つのファイル入力形式をサポートしています:
|
||||
|
||||
#### 1. Base64エンコードファイル
|
||||
ファイルコンテンツを直接アップロードする場合:
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
|
||||
"name": "screenshot.png",
|
||||
"mime": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **最大サイズ**: ファイルあたり20MB
|
||||
- **フォーマット**: Base64エンコーディングを使用した標準データURL
|
||||
- **ストレージ**: ファイルは安全な実行ストレージにアップロードされます
|
||||
|
||||
#### 2. URL参照
|
||||
既存のファイルURLを渡す場合:
|
||||
|
||||
```json
|
||||
{
|
||||
"documents": [
|
||||
{
|
||||
"type": "url",
|
||||
"data": "https://example.com/files/document.pdf",
|
||||
"name": "document.pdf",
|
||||
"mime": "application/pdf"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 下流のブロックでファイルにアクセスする
|
||||
|
||||
ファイルは以下のプロパティを持つ `UserFile` オブジェクトに処理されます:
|
||||
|
||||
```typescript
|
||||
{
|
||||
id: string, // Unique file identifier
|
||||
name: string, // Original filename
|
||||
url: string, // Presigned URL (valid for 5 minutes)
|
||||
size: number, // File size in bytes
|
||||
type: string, // MIME type
|
||||
key: string, // Storage key
|
||||
uploadedAt: string, // ISO timestamp
|
||||
expiresAt: string // ISO timestamp (5 minutes)
|
||||
}
|
||||
```
|
||||
|
||||
**ブロック内でのアクセス:**
|
||||
- `<webhook1.documents[0].url>` → ダウンロードURL
|
||||
- `<webhook1.documents[0].name>` → "invoice.pdf"
|
||||
- `<webhook1.documents[0].size>` → 524288
|
||||
- `<webhook1.documents[0].type>` → "application/pdf"
|
||||
|
||||
### ファイルアップロードの完全な例
|
||||
|
||||
```bash
|
||||
# Create a base64-encoded file
|
||||
echo "Hello World" | base64
|
||||
# SGVsbG8gV29ybGQK
|
||||
|
||||
# Send webhook with file
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret" \
|
||||
-d '{
|
||||
"subject": "Document for review",
|
||||
"attachments": [
|
||||
{
|
||||
"type": "file",
|
||||
"data": "data:text/plain;base64,SGVsbG8gV29ybGQK",
|
||||
"name": "sample.txt",
|
||||
"mime": "text/plain"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## 認証
|
||||
|
||||
### 認証の設定(オプション)
|
||||
|
||||
ウェブフック設定で:
|
||||
1. 「認証を要求する」を有効にする
|
||||
2. シークレットトークンを設定する
|
||||
3. ヘッダータイプを選択する:
|
||||
- **カスタムヘッダー**: `X-Sim-Secret: your-token`
|
||||
- **認証ベアラー**: `Authorization: Bearer your-token`
|
||||
|
||||
### 認証の使用
|
||||
|
||||
```bash
|
||||
# With custom header
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Sim-Secret: your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
|
||||
# With bearer token
|
||||
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer your-secret-token" \
|
||||
-d '{"message": "Authenticated request"}'
|
||||
```
|
||||
|
||||
## ベストプラクティス
|
||||
|
||||
1. **構造化のための入力フォーマットの使用**: 予想されるスキーマがわかっている場合は入力フォーマットを定義してください。これにより以下が提供されます:
|
||||
- 型の検証
|
||||
- エディタでのより良いオートコンプリート
|
||||
- ファイルアップロード機能
|
||||
|
||||
2. **認証**: 不正アクセスを防ぐため、本番環境のウェブフックには常に認証を有効にしてください。
|
||||
|
||||
3. **ファイルサイズの制限**: ファイルは20MB未満に保ってください。より大きなファイルの場合は、代わりにURL参照を使用してください。
|
||||
|
||||
4. **ファイルの有効期限**: ダウンロードされたファイルのURLは5分間有効です。すぐに処理するか、長期間必要な場合は別の場所に保存してください。
|
||||
|
||||
5. **エラー処理**: ウェブフック処理は非同期です。エラーについては実行ログを確認してください。
|
||||
|
||||
6. **テスト**: 設定をデプロイする前に、エディタの「ウェブフックをテスト」ボタンを使用して設定を検証してください。
|
||||
|
||||
## ユースケース
|
||||
|
||||
- **フォーム送信**: ファイルアップロード機能を持つカスタムフォームからデータを受け取る
|
||||
- **サードパーティ連携**: ウェブフックを送信するサービス(Stripe、GitHubなど)と接続する
|
||||
- **ドキュメント処理**: 外部システムからドキュメントを受け取って処理する
|
||||
- **イベント通知**: さまざまなソースからイベントデータを受け取る
|
||||
- **カスタムAPI**: アプリケーション用のカスタムAPIエンドポイントを構築する
|
||||
|
||||
## 注意事項
|
||||
|
||||
- カテゴリ:`triggers`
|
||||
- タイプ:`generic_webhook`
|
||||
- **ファイルサポート**:入力フォーマット設定で利用可能
|
||||
- **最大ファイルサイズ**:ファイルあたり20MB
|
||||
136
apps/docs/content/docs/ja/tools/greptile.mdx
Normal file
136
apps/docs/content/docs/ja/tools/greptile.mdx
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Greptile
|
||||
description: AI搭載のコードベース検索とQ&A
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="greptile"
|
||||
color="#e5e5e5"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Greptile](https://greptile.com/)は、1つまたは複数のリポジトリにわたってソースコードを検索およびクエリするためのAI搭載開発者ツールです。Greptileを使用すると、エンジニアは自然言語で複雑なコードベースの質問に素早く回答し、関連するファイルやシンボルを見つけ、馴染みのないコードやレガシーコードについての洞察を得ることができます。
|
||||
|
||||
Greptileでできること:
|
||||
|
||||
- **自然言語でコードベースについて複雑な質問をする**: アーキテクチャ、使用パターン、または特定の実装についてAIが生成した回答を取得します。
|
||||
- **関連するコード、ファイル、または関数を即座に見つける**: キーワードまたは自然言語クエリを使用して検索し、一致する行、ファイル、またはコードブロックに直接ジャンプします。
|
||||
- **依存関係と関連性を理解する**: 大規模なコードベース全体で、関数がどこで呼び出されているか、モジュールがどのように関連しているか、またはAPIがどこで使用されているかを明らかにします。
|
||||
- **オンボーディングとコード探索を加速する**: 深い事前知識がなくても、新しいプロジェクトを素早く立ち上げたり、厄介な問題をデバッグしたりできます。
|
||||
|
||||
Sim Greptile統合により、AIエージェントは次のことが可能になります:
|
||||
|
||||
- Greptileの高度な言語モデルを使用して、プライベートおよびパブリックリポジトリをクエリおよび検索します。
|
||||
- コンテキストに関連するコードスニペット、ファイル参照、および説明を取得して、コードレビュー、ドキュメント、および開発ワークフローをサポートします。
|
||||
- 検索/クエリ結果に基づいてSimワークフローで自動化をトリガーするか、コードインテリジェンスをプロセスに直接埋め込みます。
|
||||
|
||||
開発者の生産性を加速したり、ドキュメントを自動化したり、複雑なコードベースに対するチームの理解を強化したりする場合でも、GreptileとSimは、必要な場所でコードインテリジェンスと検索へのシームレスなアクセスを提供します。
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## 使用方法
|
||||
|
||||
Greptileを使用して自然言語でコードベースをクエリおよび検索します。コードについてAIが生成した回答を取得し、関連するファイルを見つけ、複雑なコードベースを理解します。
|
||||
|
||||
## ツール
|
||||
|
||||
### `greptile_query`
|
||||
|
||||
自然言語でリポジトリを検索し、関連するコード参照とともに回答を取得します。Greptileは、AIを使用してコードベースを理解し、質問に答えます。
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | はい | コードベースに関する自然言語の質問 |
|
||||
| `repositories` | string | はい | カンマ区切りのリポジトリリスト。形式:「github:branch:owner/repo」または「owner/repo」のみ(デフォルトはgithub:main) |
|
||||
| `sessionId` | string | いいえ | 会話の継続性を保つためのセッションID |
|
||||
| `genius` | boolean | いいえ | より徹底的な分析のためのジーニアスモードを有効化(遅いがより正確) |
|
||||
| `apiKey` | string | はい | Greptile APIキー |
|
||||
| `githubToken` | string | はい | リポジトリ読み取りアクセス権を持つGitHub個人アクセストークン |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | クエリに対するAI生成の回答 |
|
||||
| `sources` | array | 回答を裏付ける関連コード参照 |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
自然言語でリポジトリを検索し、回答を生成せずに関連するコード参照を取得します。特定のコードの場所を見つけるのに便利です。
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | はい | 関連するコードを見つけるための自然言語検索クエリ |
|
||||
| `repositories` | string | はい | カンマ区切りのリポジトリリスト。形式:「github:branch:owner/repo」または「owner/repo」のみ(デフォルトはgithub:main) |
|
||||
| `sessionId` | string | いいえ | 会話の継続性を保つためのセッションID |
|
||||
| `genius` | boolean | いいえ | より徹底的な検索のためのジーニアスモードを有効化(遅いがより正確) |
|
||||
| `apiKey` | string | はい | Greptile APIキー |
|
||||
| `githubToken` | string | はい | リポジトリ読み取りアクセス権を持つGitHub個人アクセストークン |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | 検索クエリに一致する関連コード参照 |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
Greptileでインデックス化するリポジトリを送信します。リポジトリをクエリする前に、インデックス化を完了する必要があります。小規模なリポジトリは3〜5分、大規模なものは1時間以上かかる場合があります。
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | はい | Gitリモートタイプ: githubまたはgitlab |
|
||||
| `repository` | string | はい | owner/repo形式のリポジトリ(例:「facebook/react」) |
|
||||
| `branch` | string | はい | インデックス化するブランチ(例:「main」または「master」) |
|
||||
| `reload` | boolean | いいえ | すでにインデックス化されている場合でも強制的に再インデックス化 |
|
||||
| `notify` | boolean | いいえ | インデックス化完了時にメール通知を送信 |
|
||||
| `apiKey` | string | はい | Greptile APIキー |
|
||||
| `githubToken` | string | はい | リポジトリ読み取りアクセス権を持つGitHub Personal Access Token |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repositoryId` | string | インデックス化されたリポジトリの一意の識別子(形式: remote:branch:owner/repo) |
|
||||
| `statusEndpoint` | string | インデックス化ステータスを確認するためのURLエンドポイント |
|
||||
| `message` | string | インデックス化操作に関するステータスメッセージ |
|
||||
|
||||
### `greptile_status`
|
||||
|
||||
リポジトリのインデックス化ステータスを確認します。リポジトリがクエリ可能な状態かどうかを確認したり、インデックス化の進行状況を監視したりするために使用します。
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | はい | Gitリモートタイプ: githubまたはgitlab |
|
||||
| `repository` | string | はい | owner/repo形式のリポジトリ \(例: "facebook/react"\) |
|
||||
| `branch` | string | はい | ブランチ名 \(例: "main"または"master"\) |
|
||||
| `apiKey` | string | はい | Greptile APIキー |
|
||||
| `githubToken` | string | はい | リポジトリ読み取りアクセス権を持つGitHub Personal Access Token |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repository` | string | リポジトリ名 \(owner/repo\) |
|
||||
| `remote` | string | Gitリモート \(github/gitlab\) |
|
||||
| `branch` | string | ブランチ名 |
|
||||
| `private` | boolean | リポジトリがプライベートかどうか |
|
||||
| `status` | string | インデックス作成ステータス: submitted、cloning、processing、completed、またはfailed |
|
||||
| `filesProcessed` | number | これまでに処理されたファイル数 |
|
||||
| `numFiles` | number | リポジトリ内のファイルの総数 |
|
||||
| `sampleQuestions` | array | インデックス化されたリポジトリのサンプル質問 |
|
||||
| `sha` | string | インデックス化されたバージョンのGitコミットSHA |
|
||||
|
||||
## 注記
|
||||
|
||||
- カテゴリ: `tools`
|
||||
- タイプ: `greptile`
|
||||
35
apps/docs/content/docs/ja/tools/imap.mdx
Normal file
35
apps/docs/content/docs/ja/tools/imap.mdx
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: IMAPメール
|
||||
description: IMAP経由で新しいメールが届いたときにワークフローをトリガー(すべてのメールプロバイダーで動作)
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="imap"
|
||||
color="#6366F1"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
IMAPメールトリガーを使用すると、IMAPプロトコルをサポートする任意のメールボックスで新しいメールを受信したときに、Simワークフローを自動的に開始できます。Gmail、Outlook、Yahoo、その他ほとんどのメールプロバイダーで動作します。
|
||||
|
||||
IMAPトリガーでできること:
|
||||
|
||||
- **メール処理の自動化**:受信トレイに新しいメッセージが届いたときにリアルタイムでワークフローを開始します。
|
||||
- **送信者、件名、フォルダーでフィルタリング**:特定の条件に一致するメールにのみ反応するようにトリガーを設定します。
|
||||
- **添付ファイルの抽出と処理**:自動化フローでファイル添付を自動的にダウンロードして使用します。
|
||||
- **メールコンテンツの解析と使用**:件名、送信者、受信者、本文全体、その他のメタデータに、ワークフローの後続ステップでアクセスします。
|
||||
- **あらゆるメールプロバイダーとの統合**:ベンダーロックインなしで、標準のIMAPアクセスを提供する任意のサービスで動作します。
|
||||
- **未読、フラグ付き、カスタム条件でトリガー**:ワークフローを開始するメールの種類に対して高度なフィルターを設定します。
|
||||
|
||||
Simを使用すると、IMAP統合により、メールを実行可能な自動化ソースに変える力が得られます。顧客からの問い合わせへの対応、通知の処理、データパイプラインの開始など、手動操作なしで、メール受信トレイから直接実行できます。
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## 使用方法
|
||||
|
||||
IMAPプロトコル経由で任意のメールサーバーに接続し、新しいメールを受信したときにワークフローをトリガーします。Gmail、Outlook、Yahoo、その他のIMAP互換メールプロバイダーをサポートします。
|
||||
|
||||
## 注意事項
|
||||
|
||||
- カテゴリ: `triggers`
|
||||
- タイプ: `imap`
|
||||
486
apps/docs/content/docs/ja/tools/jira_service_management.mdx
Normal file
486
apps/docs/content/docs/ja/tools/jira_service_management.mdx
Normal file
@@ -0,0 +1,486 @@
|
||||
---
|
||||
title: Jira Service Management
|
||||
description: Jira Service Managementと連携する
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="jira_service_management"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
## 使用方法
|
||||
|
||||
ITサービス管理のためにJira Service Managementと統合します。サービスリクエストの作成と管理、顧客と組織の処理、SLAの追跡、キューの管理を行います。
|
||||
|
||||
## ツール
|
||||
|
||||
### `jsm_get_service_desks`
|
||||
|
||||
Jira Service Managementからすべてのサービスデスクを取得する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `serviceDesks` | json | サービスデスクの配列 |
|
||||
| `total` | number | サービスデスクの総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_get_request_types`
|
||||
|
||||
Jira Service Managementのサービスデスクのリクエストタイプを取得する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | リクエストタイプを取得するサービスデスクID |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `requestTypes` | json | リクエストタイプの配列 |
|
||||
| `total` | number | リクエストタイプの総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_create_request`
|
||||
|
||||
Jira Service Managementで新しいサービスリクエストを作成
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | リクエストを作成するサービスデスクID |
|
||||
| `requestTypeId` | string | はい | 新しいリクエストのリクエストタイプID |
|
||||
| `summary` | string | はい | サービスリクエストの概要/タイトル |
|
||||
| `description` | string | いいえ | サービスリクエストの説明 |
|
||||
| `raiseOnBehalfOf` | string | いいえ | 代理でリクエストを作成する顧客のアカウントID |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueId` | string | 作成されたリクエストの課題ID |
|
||||
| `issueKey` | string | 作成されたリクエストの課題キー(例:SD-123) |
|
||||
| `requestTypeId` | string | リクエストタイプID |
|
||||
| `serviceDeskId` | string | サービスデスクID |
|
||||
| `success` | boolean | リクエストが正常に作成されたかどうか |
|
||||
| `url` | string | 作成されたリクエストのURL |
|
||||
|
||||
### `jsm_get_request`
|
||||
|
||||
Jira Service Managementから単一のサービスリクエストを取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例:SD-123) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
|
||||
### `jsm_get_requests`
|
||||
|
||||
Jira Service Managementから複数のサービスリクエストを取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | いいえ | サービスデスクIDでフィルタ |
|
||||
| `requestOwnership` | string | いいえ | 所有権でフィルタ:OWNED_REQUESTS、PARTICIPATED_REQUESTS、ORGANIZATION、ALL_REQUESTS |
|
||||
| `requestStatus` | string | いいえ | ステータスでフィルタ:OPEN、CLOSED、ALL |
|
||||
| `searchTerm` | string | いいえ | リクエストをフィルタする検索語 |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `requests` | json | サービスリクエストの配列 |
|
||||
| `total` | number | リクエストの総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_add_comment`
|
||||
|
||||
Jira Service Managementのサービスリクエストにコメント(公開または内部)を追加する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例:SD-123) |
|
||||
| `body` | string | はい | コメント本文 |
|
||||
| `isPublic` | boolean | はい | コメントが公開(顧客に表示)か内部かを指定 |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `commentId` | string | 作成されたコメントID |
|
||||
| `body` | string | コメント本文 |
|
||||
| `isPublic` | boolean | コメントが公開かどうか |
|
||||
| `success` | boolean | コメントが正常に追加されたかどうか |
|
||||
|
||||
### `jsm_get_comments`
|
||||
|
||||
Jira Service Managementのサービスリクエストのコメントを取得する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例:SD-123) |
|
||||
| `isPublic` | boolean | いいえ | 公開コメントのみにフィルタ |
|
||||
| `internal` | boolean | いいえ | 内部コメントのみにフィルタ |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `comments` | json | コメントの配列 |
|
||||
| `total` | number | コメントの総数 |
|
||||
| `isLastPage` | boolean | 最後のページかどうか |
|
||||
|
||||
### `jsm_get_customers`
|
||||
|
||||
Jira Service Managementのサービスデスクの顧客を取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | 顧客を取得するサービスデスクID |
|
||||
| `query` | string | いいえ | 顧客をフィルタリングする検索クエリ |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト: 0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト: 50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `customers` | json | 顧客の配列 |
|
||||
| `total` | number | 顧客の総数 |
|
||||
| `isLastPage` | boolean | 最後のページかどうか |
|
||||
|
||||
### `jsm_add_customer`
|
||||
|
||||
Jira Service Managementのサービスデスクに顧客を追加
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | 顧客を追加するサービスデスクID |
|
||||
| `emails` | string | はい | 顧客として追加するメールアドレス(カンマ区切り) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `serviceDeskId` | string | サービスデスクID |
|
||||
| `success` | boolean | 顧客が正常に追加されたかどうか |
|
||||
|
||||
### `jsm_get_organizations`
|
||||
|
||||
Jira Service Managementのサービスデスクの組織を取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | 組織を取得するサービスデスクID |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `organizations` | json | 組織の配列 |
|
||||
| `total` | number | 組織の総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_create_organization`
|
||||
|
||||
Jira Service Managementで新しい組織を作成する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `name` | string | はい | 作成する組織の名前 |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `organizationId` | string | 作成された組織のID |
|
||||
| `name` | string | 作成された組織の名前 |
|
||||
| `success` | boolean | 操作が成功したかどうか |
|
||||
|
||||
### `jsm_add_organization`
|
||||
|
||||
Jira Service Managementのサービスデスクに組織を追加する
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | 組織を追加するサービスデスクID |
|
||||
| `organizationId` | string | はい | サービスデスクに追加する組織ID |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `serviceDeskId` | string | サービスデスクID |
|
||||
| `organizationId` | string | 追加された組織ID |
|
||||
| `success` | boolean | 操作が成功したかどうか |
|
||||
|
||||
### `jsm_get_queues`
|
||||
|
||||
Jira Service Managementでサービスデスクのキューを取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `serviceDeskId` | string | はい | キューを取得するサービスデスクID |
|
||||
| `includeCount` | boolean | いいえ | 各キューの課題数を含める |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `queues` | json | キューの配列 |
|
||||
| `total` | number | キューの総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_get_sla`
|
||||
|
||||
Jira Service ManagementでサービスリクエストのSLA情報を取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例:SD-123) |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `slas` | json | SLA情報の配列 |
|
||||
| `total` | number | SLAの総数 |
|
||||
| `isLastPage` | boolean | 最後のページかどうか |
|
||||
|
||||
### `jsm_get_transitions`
|
||||
|
||||
Jira Service Managementのサービスリクエストで利用可能なトランジションを取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例: SD-123) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `transitions` | json | 利用可能なトランジションの配列 |
|
||||
|
||||
### `jsm_transition_request`
|
||||
|
||||
Jira Service Managementでサービスリクエストを新しいステータスにトランジション
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例: SD-123) |
|
||||
| `transitionId` | string | はい | 適用するトランジションID |
|
||||
| `comment` | string | いいえ | トランジション時に追加するオプションのコメント |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `transitionId` | string | 適用されたトランジションID |
|
||||
| `success` | boolean | トランジションが成功したかどうか |
|
||||
|
||||
### `jsm_get_participants`
|
||||
|
||||
Jira Service Managementのリクエストの参加者を取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例: SD-123) |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト: 0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト: 50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `participants` | json | 参加者の配列 |
|
||||
| `total` | number | 参加者の総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_add_participants`
|
||||
|
||||
Jira Service Managementのリクエストに参加者を追加
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例: yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例: SD-123) |
|
||||
| `accountIds` | string | はい | 参加者として追加するアカウントIDのカンマ区切りリスト |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `participants` | json | 追加された参加者の配列 |
|
||||
| `success` | boolean | 操作が成功したかどうか |
|
||||
|
||||
### `jsm_get_approvals`
|
||||
|
||||
Jira Service Managementでリクエストの承認を取得
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例:SD-123) |
|
||||
| `start` | number | いいえ | ページネーションの開始インデックス(デフォルト:0) |
|
||||
| `limit` | number | いいえ | 返す最大結果数(デフォルト:50) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `approvals` | json | 承認の配列 |
|
||||
| `total` | number | 承認の総数 |
|
||||
| `isLastPage` | boolean | これが最後のページかどうか |
|
||||
|
||||
### `jsm_answer_approval`
|
||||
|
||||
Jira Service Managementで承認リクエストを承認または却下
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | Jiraドメイン(例:yourcompany.atlassian.net) |
|
||||
| `cloudId` | string | いいえ | インスタンスのJira Cloud ID |
|
||||
| `issueIdOrKey` | string | はい | 課題IDまたはキー(例:SD-123) |
|
||||
| `approvalId` | string | はい | 回答する承認ID |
|
||||
| `decision` | string | はい | 決定:「approve」または「decline」 |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 操作のタイムスタンプ |
|
||||
| `issueIdOrKey` | string | 課題IDまたはキー |
|
||||
| `approvalId` | string | 承認ID |
|
||||
| `decision` | string | 決定内容(承認/却下) |
|
||||
| `success` | boolean | 操作が成功したかどうか |
|
||||
|
||||
## 注意事項
|
||||
|
||||
- カテゴリ: `tools`
|
||||
- タイプ: `jira_service_management`
|
||||
@@ -121,10 +121,8 @@ Kalshiからアカウント残高とポートフォリオ価値を取得
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `balance` | number | セント単位のアカウント残高 |
|
||||
| `portfolioValue` | number | セント単位のポートフォリオ価値 |
|
||||
| `balanceDollars` | number | ドル単位のアカウント残高 |
|
||||
| `portfolioValueDollars` | number | ドル単位のポートフォリオ価値 |
|
||||
| `balance` | number | アカウント残高(セント単位) |
|
||||
| `portfolioValue` | number | ポートフォリオ価値(セント単位) |
|
||||
|
||||
### `kalshi_get_positions`
|
||||
|
||||
|
||||
@@ -49,7 +49,8 @@ Supabaseテーブルからデータを照会する
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | はい | あなたのSupabaseプロジェクトID(例:jdrkgepadsdopsntdlom) |
|
||||
| `table` | string | はい | クエリするSupabaseテーブルの名前 |
|
||||
| `schema` | string | いいえ | クエリするデータベーススキーマ(デフォルト:public)。他のスキーマのテーブルにアクセスする場合に使用します。 |
|
||||
| `schema` | string | いいえ | クエリ元のデータベーススキーマ(デフォルト:public)。他のスキーマのテーブルにアクセスする場合に使用します。 |
|
||||
| `select` | string | いいえ | 返す列(カンマ区切り)。デフォルトは*(すべての列) |
|
||||
| `filter` | string | いいえ | PostgRESTフィルター(例:"id=eq.123") |
|
||||
| `orderBy` | string | いいえ | 並べ替える列(降順の場合はDESCを追加) |
|
||||
| `limit` | number | いいえ | 返す最大行数 |
|
||||
@@ -93,7 +94,8 @@ Supabaseテーブルにデータを挿入する
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | はい | あなたのSupabaseプロジェクトID(例:jdrkgepadsdopsntdlom) |
|
||||
| `table` | string | はい | クエリするSupabaseテーブルの名前 |
|
||||
| `schema` | string | いいえ | クエリするデータベーススキーマ(デフォルト:public)。他のスキーマのテーブルにアクセスする場合に使用します。 |
|
||||
| `schema` | string | いいえ | クエリ元のデータベーススキーマ(デフォルト:public)。他のスキーマのテーブルにアクセスする場合に使用します。 |
|
||||
| `select` | string | いいえ | 返す列(カンマ区切り)。デフォルトは*(すべての列) |
|
||||
| `filter` | string | はい | 特定の行を見つけるためのPostgRESTフィルター(例:"id=eq.123") |
|
||||
| `apiKey` | string | はい | あなたのSupabaseサービスロールシークレットキー |
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user