Compare commits

..

149 Commits

Author SHA1 Message Date
Waleed
b7e377ec4b v0.5.91: docs i18n, turborepo upgrade 2026-02-16 00:36:05 -08:00
waleed
8ebe753bd8 Merge remote-tracking branch 'origin/main' into staging
# Conflicts:
#	apps/docs/content/docs/fr/tools/onepassword.mdx
#	apps/docs/content/docs/ja/tools/enrich.mdx
#	apps/docs/content/docs/ja/tools/google_maps.mdx
#	apps/docs/content/docs/ja/tools/onepassword.mdx
#	apps/docs/content/docs/zh/tools/enrich.mdx
#	apps/docs/content/docs/zh/tools/google_forms.mdx
#	apps/docs/content/docs/zh/tools/google_maps.mdx
#	apps/docs/content/docs/zh/tools/notion.mdx
#	apps/docs/content/docs/zh/tools/onepassword.mdx
#	apps/docs/content/docs/zh/tools/tinybird.mdx
2026-02-16 00:25:04 -08:00
Waleed
40a3962c1e fix(docs): update docs and disable i18n action, upgrade turborepo (#3227)
* feat(i18n): change lockfile (#3216)

* fix: update i18n.lock

* feat(docs): enhance documentation with new sections on file handling, form deployment, quick reference, agent skills, and A2A integration

* fix(docs): update docs and disable i18n action

* fix build

---------

Co-authored-by: cherkanov_art <45258907+cherkanovart@users.noreply.github.com>
2026-02-16 00:20:25 -08:00
cherkanov_art
d1d43b27bd feat(i18n): change lockfile (#3216)
* fix: update i18n.lock

* feat(docs): enhance documentation with new sections on file handling, form deployment, quick reference, agent skills, and A2A integration
2026-02-16 00:00:12 -08:00
Waleed
e204628a12 v0.5.90: workflow duplication improvements, model allowlist, logs performance, i18n 2026-02-15 23:42:42 -08:00
cherkanov_art
6f595f6a2c feat(i18n): change lockfile (#3216)
* fix: update i18n.lock

* feat(docs): enhance documentation with new sections on file handling, form deployment, quick reference, agent skills, and A2A integration
2026-02-15 23:41:56 -08:00
Waleed
92b4f77228 fix(logs): stabilize callbacks and memo-wrap components to eliminate re-render cascade (#3222) 2026-02-14 18:04:32 -08:00
Vikhyath Mondreti
c44211a936 fix(workflow-vars): duplicate, export/import copies (#3224) 2026-02-14 16:02:25 -08:00
Waleed
5b0532d473 refactor(tool-input): replace bidirectional effects with zustand subscription (#3215)
* refactor(tool-input): replace bidirectional effects with zustand subscription

* added wand for custom cron, fixed slack inconsistency

* fix slack
2026-02-14 11:19:51 -08:00
Waleed
3ef6b05035 fix(model): validate default model against available options 2026-02-13 15:16:20 -08:00
Waleed
b45f3962fc v0.5.89: resume execution on refresh, google books, tool input subblock improvements 2026-02-13 00:36:54 -08:00
Waleed
7fbbc7ba7a fix(tool-input): sync cleared subblock values to tool params (#3214) 2026-02-13 00:18:25 -08:00
Waleed
a337aa7dfe feat(internal): added internal api base url for internal calls (#3212)
* feat(internal): added internal api base url for internal calls

* make validation on http more lax
2026-02-12 23:56:35 -08:00
Waleed
022e84c4b1 feat(creators): added referrers, code redemption, campaign tracking, etc (#3198)
* feat(creators): added referrers, code redemption, campaign tracking, etc

* more

* added zod

* remove default

* remove duplicate index

* update admin routes

* reran migrations

* lint

* move userstats record creation inside tx

* added reason for already attributed case

* cleanup referral attributes
2026-02-12 20:07:40 -08:00
Waleed
602e371a7a refactor(tool-input): subblock-first rendering, component extraction, bug fixes (#3207)
* refactor(tool-input): eliminate SyncWrappers, add canonical toggle and dependsOn gating

Replace 17+ individual SyncWrapper components with a single centralized
ToolSubBlockRenderer that bridges the subblock store with StoredTool.params
via synthetic store keys. This reduces ~1000 lines of duplicated wrapper
code and ensures tool-input renders subblock components identically to
the standalone SubBlock path.

- Add ToolSubBlockRenderer with bidirectional store sync
- Add basic/advanced mode toggle (ArrowLeftRight) using collaborative functions
- Add dependsOn gating via useDependsOnGate (fields disable instead of hiding)
- Add paramVisibility field to SubBlockConfig for tool-input visibility control
- Pass canonicalModeOverrides through getSubBlocksForToolInput
- Show (optional) label for non-user-only fields (LLM can inject at runtime)

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

* fix(tool-input): restore optional indicator, fix folder selector and canonical toggle, extract components

- Attach resolved paramVisibility to subblocks from getSubBlocksForToolInput
- Add labelSuffix prop to SubBlock for "(optional)" badge on user-or-llm params
- Fix folder selector missing for tools with canonicalParamId (e.g. Google Drive)
- Fix canonical toggle not clickable by letting SubBlock handle dependsOn internally
- Extract ParameterWithLabel, ToolSubBlockRenderer, ToolCredentialSelector to components/tools/
- Extract StoredTool interface to types.ts, selection helpers to utils.ts
- Remove dead code (mcpError, refreshTools, oldParamIds, initialParams)
- Strengthen typing: replace any with proper types on icon components and evaluateParameterCondition

* add sibling values to subblock context since subblock store isn't relevant in tool input, and removed unused param

* cleanup

* fix(tool-input): render uncovered tool params alongside subblocks

The SubBlock-first rendering path was hard-returning after rendering
subblocks, so tool params without matching subblocks (like inputMapping
for workflow tools) were never rendered. Now renders subblocks first,
then any remaining displayParams not covered by subblocks via the legacy
ParameterWithLabel fallback.

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

* fix(tool-input): auto-refresh workflow inputs after redeploy

After redeploying a child workflow via the stale badge, the workflow
state cache was not invalidated, so WorkflowInputMapperInput kept
showing stale input fields until page refresh. Now invalidates
workflowKeys.state on deploy success.

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

* fix(tool-input): correct workflow selector visibility and tighten (optional) spacing

- Set workflowId param to user-only in workflow_executor tool config
  so "Select Workflow" no longer shows "(optional)" indicator
- Tighten (optional) label spacing with -ml-[3px] to counteract
  parent Label's gap-[6px], making it feel inline with the label text

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

* fix(tool-input): align (optional) text to baseline instead of center

Use items-baseline instead of items-center on Label flex containers
so the smaller (optional) text aligns with the label text baseline
rather than sitting slightly below it.

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

* fix(tool-input): increase top padding of expanded tool body

Bump the expanded tool body container's top padding from 8px to 12px
for more breathing room between the header bar and the first parameter.

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

* fix(tool-input): apply extra top padding only to SubBlock-first path

Revert container padding to py-[8px] (MCP tools were correct).
Wrap SubBlock-first output in a div with pt-[4px] so only registry
tools get extra breathing room from the container top.

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

* fix(tool-input): increase gap between SubBlock params for visual clarity

SubBlock's internal gap (10px between label and input) matched the
between-parameter gap (10px), making them indistinguishable. Increase
the between-parameter gap to 14px so consecutive parameters are
visually distinct, matching the separation seen in ParameterWithLabel.

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

* fix spacing and optional tag

* update styling + move predeploy checks earlier for first time deploys

* update change detection to account for synthetic tool ids

* fix remaining blocks who had files visibility set to hidden

* cleanup

* add catch

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:01:04 -08:00
Theodore Li
9a06cae591 Merge pull request #3210 from simstudioai/feat/google-books
feat(google books): Add google books integration
2026-02-12 16:18:42 -08:00
Theodore Li
dce47a101c Migrate last response to types 2026-02-12 15:45:00 -08:00
Theodore Li
1130f8ddb2 Remove redundant error handling, move volume item to types file 2026-02-12 15:31:12 -08:00
Waleed
ebc2ffa1c5 fix(agent): always fetch latest custom tool from DB when customToolId is present (#3208)
* fix(agent): always fetch latest custom tool from DB when customToolId is present

* test(agent): use generic test data for customToolId resolution tests

* fix(agent): mock buildAuthHeaders in tests for CI compatibility

* remove inline mocks in favor of sim/testing ones
2026-02-12 15:31:11 -08:00
Theodore Li
fc97ce007d Correct error handling, specify auth mode as api key 2026-02-12 15:26:13 -08:00
Theodore Li
6c006cdfec feat(google books): Add google books integration 2026-02-12 15:01:33 -08:00
Siddharth Ganesan
c380e59cb3 fix(copilot): make default model opus 4.5 (#3209)
* Fix default model

* Fix
2026-02-12 13:17:45 -08:00
Waleed
2944579d21 fix(s3): support get-object region override and robust S3 URL parsing (#3206)
* fix(s3): support get-object region override and robust S3 URL parsing

* ack pr comments
2026-02-12 10:59:22 -08:00
Waleed
81dfeb0bb0 fix(terminal): reconnect to running executions after page refresh (#3200)
* fix(terminal): reconnect to running executions after page refresh

* fix(terminal): use ExecutionEvent type instead of any in reconnection stream

* fix(execution): type event buffer with ExecutionEvent instead of Record<string, unknown>

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

* fix(execution): validate fromEventId query param in reconnection endpoint

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

* Fix some bugs

* fix(variables): fix tag dropdown and cursor alignment in variables block (#3199)

* feat(confluence): added list space labels, delete label, delete page prop (#3201)

* updated route

* ack comments

* fix(execution): reset execution state in reconnection cleanup to unblock re-entry

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

* fix(execution): restore running entries when reconnection is interrupted by navigation

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

* done

* remove cast in ioredis types

* ack PR comments

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Siddharth Ganesan <siddharthganesan@gmail.com>
2026-02-11 19:31:29 -08:00
Waleed
01577a18b4 fix(change-detection): resolve false positive trigger block change detection (#3204) 2026-02-11 17:24:17 -08:00
Waleed
07d50f8fe1 v0.5.88: interactions api for gemini, trigger machine size increase, confluence ops 2026-02-11 15:36:55 -08:00
Vikhyath Mondreti
52aff4d60b fix build 2026-02-11 15:33:22 -08:00
Waleed
3a3bddd6f8 fix(confl): use recommended query param pattern for confluence route (#3202)
* fix(confl): use recommended query param pattern for confluence route

* use unused var
2026-02-11 14:59:26 -08:00
Waleed
639d50d6b9 feat(confluence): added list space labels, delete label, delete page prop (#3201) 2026-02-11 14:40:31 -08:00
Waleed
cec74e09c2 fix(variables): fix tag dropdown and cursor alignment in variables block (#3199) 2026-02-11 14:40:31 -08:00
Waleed
d5a756c9f2 fix(hotkeys): remove C, T, E tab-switching hotkeys (#3197) 2026-02-11 13:24:00 -08:00
Waleed
f3e994baf0 improvement(oom): increase trigger machine size (#3196) 2026-02-11 13:11:28 -08:00
Waleed
2f492cacc1 feat(providers): add Gemini Deep Research via Interactions API (#3192)
* feat(providers): add Gemini Deep Research via Interactions API

* fix(providers): hide memory UI for deep research models

* feat(providers): add multi-turn support and token logging for deep research

* fix(providers): only collect user messages as deep research input

* fix(providers): forward previousInteractionId to provider request

* fix(blocks): hide memory child fields for deep research models

* remove memory params from models that don't support it in provider requests

* update blog
2026-02-11 01:01:59 -08:00
Vikhyath Mondreti
27973953f6 v0.5.87: workflow block auth fix 2026-02-10 22:33:55 -08:00
Vikhyath Mondreti
5792e7e5f9 fix(auth): workflow system handler (#3193) 2026-02-10 22:25:48 -08:00
Waleed
50585273ce v0.5.86: server side copilot, copilot mcp, error notifications, jira outputs destructuring, slack trigger improvements 2026-02-10 21:49:58 -08:00
Waleed
3d5bd003ef fix(triggers): add copilot as a trigger type (#3191)
* fix(triggers): add copilot as a trigger type

* update color
2026-02-10 21:36:38 -08:00
Waleed
13a91113fd fix(logs): surface handled errors as info in logs (#3190)
* fix(logs): surface handled errors as info in logs

* pr comments
2026-02-10 21:21:45 -08:00
Vikhyath Mondreti
af01dce2c3 fix(terminal): subflow logs rendering (#3189) 2026-02-10 21:16:05 -08:00
Waleed
8a24b56f51 improvement(terminal): increase workflow logs limit from 1k to 5k per workflow (#3188) 2026-02-10 20:11:49 -08:00
Waleed
c471627ce1 fix(posthog): replace proxy rewrite with route handler for reliable body streaming (#3187)
* fix(posthog): replace proxy rewrite with route handler for reliable body streaming

* fix posthog
2026-02-10 20:05:38 -08:00
Waleed
f5dc180d9f fix(memory): upgrade bun from 1.3.3 to 1.3.9 (#3186) 2026-02-10 19:30:31 -08:00
Waleed
78fef22d0e fix(execution): scope execution state per workflow to prevent cross-workflow bleed (#3183)
* fix(execution): scope execution state per workflow to prevent cross-workflow bleed

* fix(execution): use validated workflowId param instead of non-null assertion in handleRunUntilBlock

* improvement(execution): use individual selectors to avoid unnecessary re-renders from unselectored store hook

* improvement(execution): use useShallow selector in workflow.tsx to avoid re-renders from lastRunPath/lastRunEdges changes
2026-02-10 18:17:50 -08:00
Waleed
6d16f216c8 improvement(mcp): improved mcp sse events notifs, update jira to handle files, fix UI issues in settings modal, fix org and workspace invitations when bundled (#3182)
* improvement(mcp): improved mcp sse events notifs, update jira to handle files, fix UI issues in settings modal, fix org and workspace invitations when bundled

* added back useMcpToolsEvents for event-driven discovery

* ack PR comments

* updated placeholder

* updated colors, error throwing in mcp modal

* ack comments

* updated error msg
2026-02-10 17:08:57 -08:00
Waleed
f8e9614c9c improvement(helm): support copilot-only deployments (#3185) 2026-02-10 17:03:11 -08:00
Siddharth Ganesan
c5dd90e79d feat(copilot): enterprise configuration (#3184)
* Copilot enterprise models

* Fix azure anthropic

* Fix

* Consolidation

* Cleanup

* Clean up code

* Fix lint

* cleanup

* Fix greptile
2026-02-10 16:37:30 -08:00
Vikhyath Mondreti
20b230d1aa improvement(schema): centralize derivation of block schemas (#3175)
* improvement(schema): centralize derivation of block schemas

* address bugbot comments

* remove unused code

* address greptile comments

* merge conflict resolution

* fix

* update tests

* address greptile comments

* make evaluator metrics only

* return base and metrics for evaluator
2026-02-10 16:31:50 -08:00
Vikhyath Mondreti
be3cdcf981 Merge pull request #3179 from simstudioai/improvement/file-download-timeouts
improvement(timeouts): files/base64 should use max timeouts + auth centralization
2026-02-10 15:57:06 -08:00
Emir Karabeg
73540e3936 feat(logs): add skill icon to trace spans (#3181)
Adds the AgentSkillsIcon to trace spans in logs when displaying the
load_skill tool. Previously, skills appeared with a default gray color.
Now they display with the proper skill icon and a purple (#8B5CF6)
background color, consistent with the skills icon used in the settings
modal and skill input components.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Emir Karabeg <emir-karabeg@users.noreply.github.com>
2026-02-10 12:46:21 -08:00
Waleed
e321f883b0 improvement(preview): added trigger mode context for deploy preview (#3177)
* improvement(preview): added trigger mode context for deploy preview

* use existing helper

* enhance disabled mode for subblocks

* update

* update all subblocks to allow scrolling in read only mode

* updated short and long input to match others, reverted triggerutils change
2026-02-09 20:32:30 -08:00
Waleed
8b4b3af120 fix(mcp): harden notification system against race conditions (#3168)
* fix(mcp): harden notification system against race conditions

- Guard concurrent connect() calls in connection manager with connectingServers Set
- Suppress post-disconnect notification handler firing in MCP client
- Clean up Redis event listeners in pub/sub dispose()
- Add tests for all three hardening fixes (11 new tests)

* updated tests

* plugged in new mcp event based system and create sse route to publish notifs

* ack commetns

* fix reconnect timer

* cleanup when running onClose

* fixed spacing on mcp settings tab

* keep error listeners before quiet in redis
2026-02-09 19:36:01 -08:00
Siddharth Ganesan
190f12fd77 feat(copilot): copilot mcp + server side copilot execution (#3173)
* v0

* v1

* Basic ss tes

* Ss tests

* Stuff

* Add mcp

* mcp v1

* Improvement

* Fix

* BROKEN

* Checkpoint

* Streaming

* Fix abort

* Things are broken

* Streaming seems to work but copilot is dumb

* Fix edge issue

* LUAAAA

* Fix stream buffer

* Fix lint

* Checkpoint

* Initial temp state, in the middle of a refactor

* Initial test shows diff store still working

* Tool refactor

* First cleanup pass complete - untested

* Continued cleanup

* Refactor

* Refactor complete - no testing yet

* Fix - cursor makes me sad

* Fix mcp

* Clean up mcp

* Updated mcp

* Add respond to subagents

* Fix definitions

* Add tools

* Add tools

* Add copilot mcp tracking

* Fix lint

* Fix mcp

* Fix

* Updates

* Clean up mcp

* Fix copilot mcp tool names to be sim prefixed

* Add opus 4.6

* Fix discovery tool

* Fix

* Remove logs

* Fix go side tool rendering

* Update docs

* Fix hydration

* Fix tool call resolution

* Fix

* Fix lint

* Fix superagent and autoallow integrations

* Fix always allow

* Update block

* Remove plan docs

* Fix hardcoded ff

* Fix dropped provider

* Fix lint

* Fix tests

* Fix dead messages array

* Fix discovery

* Fix run workflow

* Fix run block

* Fix run from block in copilot

* Fix lint

* Fix skip and mtb

* Fix typing

* Fix tool call

* Bump api version

* Fix bun lock

* Nuke bad files
2026-02-09 19:33:29 -08:00
Waleed
e5d30494cb fix(slack): resolve file metadata via files.info when event payload is partial (#3176) 2026-02-09 19:29:38 -08:00
Waleed
b3dbb4487f improvement(jsm): destructured outputs for jsm, jira, and added 1password integration (#3174)
* improvement(jsm): destructured outputs for jsm, jira, and added 1password integration

* update 1password to support cloud & locally hosted

* updated & tested 1pass

* added an additional wandConfig for OnePassword & jira search issues

* finished jira

* removed unused route

* updated types

* restore old outputs

* updated types
2026-02-09 19:28:34 -08:00
Waleed
622d0cad22 Merge pull request #3172 from simstudioai/fix/notifs
fix(notifications): throw notification on runtime errors, move predeploy checks to update in deploy modal
2026-02-09 11:49:58 -08:00
Vikhyath Mondreti
654cb2b407 v0.5.85: deployment improvements 2026-02-09 10:49:33 -08:00
Vikhyath Mondreti
c74922997c fix(triggers): id resolution for tools with trigger mode (#3170) 2026-02-09 10:28:34 -08:00
Emir Karabeg
4193007ab7 improvement(ui): deploy modal, terminal (#3167)
* improvement(deploy-modal): error and warning ui

* fix(ui): terminal top border render
2026-02-08 11:08:54 -08:00
Waleed
6c66521d64 v0.5.84: model request sanitization 2026-02-07 19:06:53 -08:00
Waleed
f9b885f6d5 fix(models): add request sanitization (#3165) 2026-02-07 19:04:15 -08:00
Vikhyath Mondreti
479cd347ad v0.5.83: agent skills, concurrent workers for v8s, airweave integration 2026-02-07 12:27:11 -08:00
Vikhyath Mondreti
0cb6714496 fix(rooms): cleanup edge case for 1hr ttl (#3163)
* fix(rooms): cleanup edge case for 1hr ttl

* revert feature flags

* address comments

* remove console log
2026-02-07 12:18:07 -08:00
Waleed
7b36f9257e improvement(models): reorder models dropdown (#3164) 2026-02-07 12:05:10 -08:00
Waleed
99ae5435e3 feat(models): updated model configs, updated anthropic provider to propagate errors back to user if any (#3159)
* feat(models): updated model configs, updated anthropic provider to propagate errors back to user if any

* moved max tokens to advanced

* updated model configs and testesd

* removed default in max config for output tokens

* moved more stuff to advanced mode in the agent block

* stronger typing

* move api key under model, update mistral and groq

* update openrouter, fixed serializer to allow ollama/vllm models without api key

* removed ollama handling
2026-02-06 22:35:57 -08:00
Vikhyath Mondreti
925f06add7 improvement(preview): render nested values like input format correctly in workflow execution preview (#3154)
* improvement(preview): nested workflow snapshots/preview when not executed

* improvements to resolve nested subblock values

* few more things

* add try catch

* fix fallback case

* deps
2026-02-06 22:12:40 -08:00
Vikhyath Mondreti
193b95cfec fix(auth): swap out hybrid auth in relevant callsites (#3160)
* fix(logs): execution files should always use our internal route

* correct degree of access control

* fix tests

* fix tag defs flag

* fix type check

* fix mcp tools

* make webhooks consistent

* fix ollama and vllm visibility

* remove dup test
2026-02-06 22:07:55 -08:00
Waleed
0ca25bbab6 fix(function): isolated-vm worker pool to prevent single-worker bottleneck + execution user id resolution (#3155)
* fix(executor): isolated-vm worker pool to prevent single-worker bottleneck

* chore(helm): add isolated-vm worker pool env vars to values.yaml

* fix(userid): resolution for fair scheduling

* add fallback back

* add to helm charts

* remove constant fallbacks

* fix

* address bugbot comments

* fix fallbacks

* one more bugbot comment

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2026-02-06 18:34:03 -08:00
Waleed
1edaf197b2 fix(azure): add azure-anthropic support to router, evaluator, copilot, and tokenization (#3158)
* fix(azure): add azure-anthropic support to router, evaluator, copilot, and tokenization

* added azure anthropic values to env

* fix(azure): make anthropic-version configurable for azure-anthropic provider

* fix(azure): thread provider credentials through guardrails and fix translate missing bedrockAccessKeyId

* updated guardrails

* ack'd PR comments

* fix(azure): unify credential passing pattern across all LLM handlers

- Pass all provider credentials unconditionally in router, evaluator (matching agent pattern)
- Remove conditional if-branching on providerId for credential fields
- Thread workspaceId through guardrails → hallucination validator for BYOK key resolution
- Remove getApiKey() from hallucination validator, let executeProviderRequest handle it
- Resolve vertex OAuth credentials in hallucination validator matching agent handler pattern

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 15:26:10 -08:00
Waleed
474b1af145 improvement(ui): improved skills UI, validation, and permissions (#3156)
* improvement(ui): improved skills UI, validation, and permissions

* stronger typing for Skill interface

* added missing docs description

* ack comment
2026-02-06 13:11:56 -08:00
Ewan Tauran
1e21ec1fa3 feat(airweave): add airweave block (#3079)
* feat(icons): add Airweave icon and update registry with Airweave block and tool

* feat(icons): add Airweave icon and update icon mapping and metadata

* fix(search): update API key header from Authorization to X-API-Key for Airweave search tool

* refactor(icon-mapping): reorder icon imports for consistency and formatting improvements; update airweave block retrieval strategy description formatting; add newline at end of meta.json

* refactor(search): update visibility settings for retrieval strategy and query options to allow access for both users and LLMs
2026-02-06 11:43:06 -08:00
Waleed
71bd535d04 feat(skills): added skills to agent block (#3149)
* feat(skills): added skills to agent block

* improvement(skills): audit fixes, docs, icon, and UX polish

* fix(skills): consolidate redundant permission checks in POST and DELETE

* more friendly error for duplicate skills in the same workspace

* fix(executor):  loop sentinel-end wrongly queued (#3148)

* fix(executor):  loop sentinel-end wrongly queued

* fix nested subflow error highlighting

* fix(linear): align tool outputs, queries, and pagination with API (#3150)

* fix(linear): align tool outputs, queries, and pagination with API

* fix(linear): coerce first param to number, remove duplicate conditions, add null guard

* fix(resolver): response format and evaluator metrics in deactivated branch (#3152)

* fix(resolver): response format in deactivated branch

* add evaluator metrics too

* add child workflow id to the workflow block outputs

* cleanup typing

* feat(slack): add file attachment support to slack webhook trigger (#3151)

* feat(slack): add file attachment support to slack webhook trigger

* additional file handling

* lint

* ack comment

* fix(skills): hide skill selection when disabled, remove dead code

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
2026-02-06 11:38:38 -08:00
Waleed
a3a99eda19 v0.5.82: slack trigger files, pagination for linear, executor fixes 2026-02-06 00:41:52 -08:00
Waleed
ed5ed97c07 feat(slack): add file attachment support to slack webhook trigger (#3151)
* feat(slack): add file attachment support to slack webhook trigger

* additional file handling

* lint

* ack comment
2026-02-06 00:27:17 -08:00
Vikhyath Mondreti
65de27330e fix(resolver): response format and evaluator metrics in deactivated branch (#3152)
* fix(resolver): response format in deactivated branch

* add evaluator metrics too

* add child workflow id to the workflow block outputs

* cleanup typing
2026-02-06 00:14:43 -08:00
Waleed
c0b22a6490 fix(linear): align tool outputs, queries, and pagination with API (#3150)
* fix(linear): align tool outputs, queries, and pagination with API

* fix(linear): coerce first param to number, remove duplicate conditions, add null guard
2026-02-05 18:44:24 -08:00
Vikhyath Mondreti
9dcf92bd14 fix(executor): loop sentinel-end wrongly queued (#3148)
* fix(executor):  loop sentinel-end wrongly queued

* fix nested subflow error highlighting
2026-02-05 15:31:15 -08:00
Waleed
1a66d48add v0.5.81: traces fix, additional confluence tools, azure anthropic support, opus 4.6 2026-02-05 11:28:54 -08:00
Waleed
1d4d61a10a feat(azure): added azure anthropic, added backwards compat support for chat completions API, added opus 4.6 (#3145)
* feat(azure): added azure anthropic, added backwards compat support for chat completions API, added opus 4.6

* added max thinking level

* update tests

* ack comments

* update cql validation
2026-02-05 10:52:18 -08:00
Vikhyath Mondreti
2d7e6c9796 fix(client-exec): send correct client workflow state override (#3143) 2026-02-04 23:53:09 -08:00
Vikhyath Mondreti
ea3bab1f76 fix(inputs): canonical params + manual validations + params resolution cleanups (#3141)
* fix(onedrive): canonical param required validation

* fix onedrive

* cleanup canonical tool param resolution code

* fix type

* fix jira type checks

* remove manual validations
2026-02-04 22:58:51 -08:00
Waleed
552dc56fc3 feat(confluence): added more confluence endpoints (#3139)
* feat(confluence): added more confluence endpoints

* update license

* updated

* updated docs
2026-02-04 19:46:28 -08:00
Waleed
2147309365 fix(tracespans): update tracespans tool calls to accurately display inputs for successive identical tool calls (#3140) 2026-02-04 19:32:18 -08:00
Waleed
46822e91f3 v0.5.80: lock feature, enterprise modules, time formatting consolidation, files, UX and UI improvements, longer timeouts 2026-02-04 18:27:05 -08:00
Waleed
36ec68d93e fix(serializer): validate required fields for blocks without tools (#3137) 2026-02-04 16:47:18 -08:00
Vikhyath Mondreti
fce566cc2f fix(mistral): restore mistral configs for v2 version (#3138) 2026-02-04 16:03:04 -08:00
Siddharth Ganesan
1933e1aad5 improvement(openai): migrate to responses api (#3135)
* Migrate openai to use responses api

* Consolidate azure

* Fix streaming

* Bug fixes

* Bug fixes

* Fix responseformat

* Refactor

* Fix bugs

* Fix

* Fix azure openai response format with tool calls

* Fixes

* Fixes

* Fix temp
2026-02-04 15:50:18 -08:00
Waleed
793adda986 fix(limits): updated rate limiter to match execution timeouts, adjusted timeouts fallback to be free plan (#3136)
* fix(limits): updated rate limiter to match execution timeouts, adjusted timeouts fallback to be free plan

* upgrade turborepo
2026-02-04 15:31:53 -08:00
Waleed
8d846c5983 feat(async-jobs): async execution with job queue backends (#3134)
* feat(async-jobs): async execution with job queue backends

* added migration

* remove unused envvar, remove extraneous comments

* ack comment

* same for db

* added dedicated async envvars for timeouts, updated helm

* updated comment

* ack comment

* migrated routes to be more restful

* ack comments

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 14:52:33 -08:00
Vikhyath Mondreti
362f4c2918 improvement(timeouts): sync to 50 min, self-hosted maxed out (#3133)
* improvement(timeouts): sync to 50 min, self-hosted maxed out

* update env vars
2026-02-04 11:27:41 -08:00
Waleed
c77e351067 fix(providers): correct tool calling message format across all providers (#3132)
* fix(providers): correct tool calling message format across all providers

* fix(bedrock): correct timestamp char count in comment

* chore(gemini): remove dead executeToolCall function

* remove unused var
2026-02-04 11:02:49 -08:00
Vikhyath Mondreti
a627faabe7 feat(timeouts): execution timeout limits (#3120)
* feat(timeouts): execution timeout limits

* fix type issues

* add to docs

* update stale exec cleanup route

* update more callsites

* update tests

* address bugbot comments

* remove import expression

* support streaming and async paths'

* fix streaming path

* add hitl and workflow handler

* make sync path match

* consolidate

* timeout errors

* validation errors typed

* import order

* Merge staging into feat/timeout-lims

Resolved conflicts:
- stt/route.ts: Keep both execution timeout and security imports
- textract/parse/route.ts: Keep both execution timeout and validation imports
- use-workflow-execution.ts: Keep cancellation console entry from feature branch
- input-validation.ts: Remove server functions (moved to .server.ts in staging)
- tools/index.ts: Keep execution timeout, use .server import for security

* make run from block consistent

* revert console update change

* fix subflow errors

* clean up base 64 cache correctly

* update docs

* consolidate workflow execution and run from block hook code

* remove unused constant

* fix cleanup base64 sse

* fix run from block tracespan
2026-02-04 10:26:36 -08:00
Vikhyath Mondreti
f811594875 improvement(rooms): redis client closed should fail with indicator (#3115)
* improvement(rooms): redis client closed should fail fast

* bugbot comment

* consolidate
2026-02-03 23:48:46 -08:00
Emir Karabeg
0bc245b7a9 feat(note-block): note block preview newlines (#3127)
* feat(note-block): add single newline support in preview

Add remark-breaks plugin to the note block markdown renderer to convert
single newlines into line breaks. This fixes the issue where users had
to use double newlines (\n\n) to create visible line breaks in the
note block preview.

Co-authored-by: Emir Karabeg <emir-karabeg@users.noreply.github.com>

* Revert "feat(note-block): add single newline support in preview"

This reverts commit 049b42502a.

* feat(note-block): add single newline support in preview

Add a preprocessor function that converts single newlines to markdown
hard breaks (two trailing spaces + newline) before rendering. This
ensures that when users press Enter in the note block editor, the
line break shows up in the preview.

The function preserves:
- Double newlines (paragraph breaks)
- Code block formatting (fenced and inline)

Co-authored-by: Emir Karabeg <emir-karabeg@users.noreply.github.com>

* refactor(note-block): simplify comments

Co-authored-by: Emir Karabeg <emir-karabeg@users.noreply.github.com>

* added remark-breaks to allow single new line

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Emir Karabeg <emir-karabeg@users.noreply.github.com>
Co-authored-by: waleed <walif6@gmail.com>
2026-02-03 20:30:39 -08:00
Waleed
0a08ac03b9 fix(import): preserve workflow colors during import (#3130)
* fix(import): preserve workflow colors during import

* cleanup
2026-02-03 20:18:08 -08:00
Waleed
7977ac88ca fix(editor): block rename applies to correct block when selection changes (#3129) 2026-02-03 20:06:03 -08:00
Vikhyath Mondreti
5b0c2156e0 improvement(files): pass user file objects around consistently (#3119)
* improvement(collab): do not refetch active workflow id

* progress on files

* more integrations

* separate server and client logic

* consolidate more code

* fix integrations

* fix types

* consolidate more code

* fix tests

* fix more bugbot comments

* fix type check

* fix circular impport

* address more bugbot comments

* fix ocr integrations

* fix typing

* remove leftover type

* address bugbot comment

* fix file block adv mode

* fix

* normalize file input

* fix v2 blocmks for ocr

* fix for v2 versions

* fix more v2 blocks

* update single file blocks

* make interface simpler

* cleanup fireflies

* remove file only annotation

* accept all types

* added wand to ssh block

* user files should be passed through

* improve docs

* fix slack to include successful execs

* fix dropbox upload file

* fix sendgrid

* fix dropbox

* fix

* fix

* update skills

* fix uploaded file

---------

Co-authored-by: waleed <walif6@gmail.com>
2026-02-03 19:50:23 -08:00
Waleed
4db6e556b7 feat(canvas): added the ability to lock blocks (#3102)
* feat(canvas): added the ability to lock blocks

* unlock duplicates of locked blocks

* fix(duplicate): place duplicate outside locked container

When duplicating a block that's inside a locked loop/parallel,
the duplicate is now placed outside the container since nothing
should be added to a locked container.

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

* fix(duplicate): unlock all blocks when duplicating workflow

- Server-side workflow duplication now sets locked: false for all blocks
- regenerateWorkflowStateIds also unlocks blocks for templates
- Client-side regenerateBlockIds already handled this (for paste/import)

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

* fix code block disabled state, allow unlock from editor

* fix(lock): address code review feedback

- Fix toggle enabled using first toggleable block, not first block
- Delete button now checks isParentLocked
- Lock button now has disabled state
- Editor lock icon distinguishes block vs parent lock state

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

* fix(lock): prevent unlocking blocks inside locked containers

- Editor: can't unlock block if parent container is locked
- Action bar: can't unlock block if parent container is locked
- Shows "Parent container is locked" tooltip in both cases

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

* fix(lock): ensure consistent behavior across all UIs

Block Menu, Editor, Action Bar now all have identical behavior:
- Enable/Disable: disabled when locked OR parent locked
- Flip Handles: disabled when locked OR parent locked
- Delete: disabled when locked OR parent locked
- Remove from Subflow: disabled when locked OR parent locked
- Lock: always available for admins
- Unlock: disabled when parent is locked (unlock parent first)

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

* fix(enable): consistent behavior - can't enable if parent disabled

Same pattern as lock: must enable parent container first before
enabling children inside it.

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

* docs(quick-reference): add lock block action

Added documentation for the lock/unlock block feature (admin only).
Note: Image placeholder added, pending actual screenshot.

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

* remove prefix square brackets in error notif

* add lock block image

* fix(block-menu): paste should not be disabled for locked selection

Paste creates new blocks, doesn't modify selected ones. Changed from
disableEdit (includes lock state) to !userCanEdit (permission only),
matching the Duplicate action behavior.

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

* refactor(workflow): extract block deletion protection into shared utility

Extract duplicated block protection logic from workflow.tsx into
a reusable filterProtectedBlocks helper in utils/block-protection-utils.ts.
This ensures consistent behavior between context menu delete and
keyboard delete operations.

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

* refactor(workflow): extend block protection utilities for edge protection

Add isEdgeProtected, filterUnprotectedEdges, and hasProtectedBlocks
utilities. Refactor workflow.tsx to use these helpers for:
- onEdgesChange edge removal filtering
- onConnect connection prevention
- onNodeDragStart drag prevention
- Keyboard edge deletion
- Block menu disableEdit calculation

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

* fix(lock): address review comments for lock feature

1. Store batchToggleEnabled now uses continue to skip locked blocks
   entirely, matching database operation behavior

2. Copilot add operation now checks if parent container is locked
   before adding nested nodes (defensive check for consistency)

3. Remove unused filterUnprotectedEdges function

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

* fix(copilot): add lock checks for insert and extract operations

- insert_into_subflow: Check if existing block being moved is locked
- extract_from_subflow: Check if block or parent subflow is locked

These operations now match the UI behavior where locked blocks
cannot be moved into/out of containers.

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

* fix(lock): prevent duplicates inside locked containers via regenerateBlockIds

1. regenerateBlockIds now checks if existing parent is locked before
   keeping the block inside it. If parent is locked, the duplicate
   is placed outside (parentId cleared) instead of creating an
   inconsistent state.

2. Remove unnecessary effectivePermissions.canAdmin and potentialParentId
   from onNodeDragStart dependency array.

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

* fix(lock): fix toggle locked target state and draggable check

1. BATCH_TOGGLE_LOCKED now uses first block from blocksToToggle set
   instead of blockIds[0], matching BATCH_TOGGLE_ENABLED pattern.
   Also added early exit if blocksToToggle is empty.

2. Blocks inside locked containers are now properly non-draggable.
   Changed draggable check from !block.locked to use isBlockProtected()
   which checks both block lock and parent container lock.

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

* fix(copilot): check parent lock in edit and delete operations

Both edit and delete operations now check if the block's parent
container is locked, not just if the block itself is locked. This
ensures consistent behavior with the UI which uses isBlockProtected
utility that checks both direct lock and parent lock.

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

* fix(socket): add server-side lock validation and admin-only permissions

1. BATCH_TOGGLE_LOCKED now requires admin role - non-admin users with
   write role can no longer bypass UI restriction via direct socket
   messages

2. BATCH_REMOVE_BLOCKS now validates lock status server-side - filters
   out protected blocks (locked or inside locked parent) before deletion

3. Remove duplicate/outdated comment in regenerateBlockIds

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

* test(socket): update permission test for admin-only lock toggle

batch-toggle-locked is now admin-only, so write role should be denied.

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

* fix(undo-redo): use consistent target state for toggle redo

The redo logic for BATCH_TOGGLE_ENABLED and BATCH_TOGGLE_LOCKED was
incorrectly computing each block's new state as !previousStates[blockId].
However, the store's batchToggleEnabled/batchToggleLocked set ALL blocks
to the SAME target state based on the first block's previous state.

Now redo computes targetState = !previousStates[firstBlockId] and applies
it to all blocks, matching the store's behavior.

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

* fix(socket): add comprehensive lock validation across operations

Based on audit findings, adds lock validation to multiple operations:

1. BATCH_TOGGLE_HANDLES - now skips locked/protected blocks at:
   - Store layer (batchToggleHandles)
   - Collaborative hook (collaborativeBatchToggleBlockHandles)
   - Server socket handler

2. BATCH_ADD_BLOCKS - server now filters blocks being added to
   locked parent containers

3. BATCH_UPDATE_PARENT - server now:
   - Skips protected blocks (locked or inside locked container)
   - Prevents moving blocks into locked containers

All validations use consistent isProtected() helper that checks both
direct lock and parent container lock.

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

* refactor(workflow): use pre-computed lock state from contextMenuBlocks

contextMenuBlocks already has locked and isParentLocked properties
computed in use-canvas-context-menu.ts, so there's no need to look
up blocks again via hasProtectedBlocks.

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

* fix(lock): add lock validation to block rename operations

Defense-in-depth: although the UI disables rename for locked blocks,
the collaborative layer and server now also validate locks.

- collaborativeUpdateBlockName: checks if block is locked or inside
  locked container before attempting rename
- UPDATE_NAME server handler: checks lock status and parent lock
  before performing database update

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

* added defense in depth for renaming locked blocks

* fix(socket): add server-side lock validation for edges and subblocks

Defense-in-depth: adds lock checks to server-side handlers that were
previously relying only on client-side validation.

Edge operations (ADD, REMOVE, BATCH_ADD, BATCH_REMOVE):
- Check if source or target blocks are protected before modifying edges

Subblock updates:
- Check if parent block is protected before updating subblock values

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

* fix(lock): fetch parent blocks for edge protection checks and consistent tooltip

- Fixed edge operations to fetch parent blocks before checking lock status
  - Previously, isBlockProtected checked if parent was locked, but the parent
    wasn't in blocksById because only source/target blocks were fetched
  - Now fetches parent blocks for all four edge operations: ADD, REMOVE,
    BATCH_ADD_EDGES, BATCH_REMOVE_EDGES
- Fixed tooltip inconsistency: changed "Run previous blocks first" to
  "Run upstream blocks first" in action-bar to match workflow.tsx

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

* updated tooltip text for run from block

* fix(lock): add lock check to duplicate button and clean up drag handler

- Added lock check to duplicate button in action bar to prevent
  duplicating locked blocks (consistent with other edit operations)
- Removed ineffective early return in onNodeDragStart since the
  `draggable` property on nodes already prevents dragging protected
  blocks - the early return was misleading as it couldn't actually
  stop a drag operation

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

* fix(lock): use disableEdit for duplicate in block menu

Changed duplicate menu item to use disableEdit (which includes lock
check) instead of !userCanEdit for consistency with action bar and
other edit operations.

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 19:15:04 -08:00
Waleed
4ba22527b6 improvement(tag-dropdown): removed custom styling on tag dropdown popover, fixed execution ordering in terminal and loops entries (#3126)
* improvement(tag-dropdown): removeed custom styling on tag dropdown popover, fixed execution ordering in terminal and loops entries

* ack pr comments

* handle old records
2026-02-03 18:32:40 -08:00
Waleed
c51f266ad7 fix(logs): use formatDuration utility and align file cards styling (#3125) 2026-02-03 15:26:09 -08:00
Waleed
4ca00810b2 fix(http): serialize nested objects in form-urlencoded body (#3124) 2026-02-03 10:58:01 -08:00
Waleed
710bf75bca fix(sidebar): right-click replaces selection, reset popover hover state (#3123)
* fix(sidebar): right-click replaces selection, reset popover hover state

* fix(queries): add userId to superuser query key for cache isolation
2026-02-03 10:09:03 -08:00
Waleed
f21fe2309c fix(formatting): consolidate duration formatting into shared utility (#3118)
* fix(formatting): consolidate duration formatting into shared utility

* fix(formatting): preserve original precision and rounding behavior

* fix(logs): add precision to logs list duration formatting

* fix(formatting): use parseFloat to preserve fractional milliseconds

* feat(ee): add enterprise modules (#3121)

* fix(formatting): return null for missing values, strip trailing zeros
2026-02-02 23:57:08 -08:00
Waleed
9c3fd1f7af feat(ee): add enterprise modules (#3121) 2026-02-02 23:40:18 -08:00
Waleed
2bb68335ee v0.5.79: longer MCP tools timeout, optimize loop/parallel regeneration, enrich.so integration 2026-01-31 21:57:56 -08:00
Waleed
8528fbe2d2 v0.5.78: billing fixes, mcp timeout increase, reactquery migrations, updated tool param visibilities, DSPy and Google Maps integrations 2026-01-31 13:48:22 -08:00
Waleed
31fdd2be13 v0.5.77: room manager redis migration, tool outputs, ui fixes 2026-01-30 14:57:17 -08:00
Waleed
028bc652c2 v0.5.76: posthog improvements, readme updates 2026-01-29 00:13:19 -08:00
Waleed
c6bf5cd58c v0.5.75: search modal overhaul, helm chart updates, run from block, terminal and visual debugging improvements 2026-01-28 22:54:13 -08:00
Vikhyath Mondreti
11dc18a80d v0.5.74: autolayout improvements, clerk integration, auth enforcements 2026-01-27 20:37:39 -08:00
Waleed
ab4e9dc72f v0.5.73: ci, helm updates, kb, ui fixes, note block enhancements 2026-01-26 22:04:35 -08:00
Vikhyath Mondreti
1c58c35bd8 v0.5.72: azure connection string, supabase improvement, multitrigger resolution, docs quick reference 2026-01-25 23:42:27 -08:00
Waleed
d63a5cb504 v0.5.71: ux, ci improvements, docs updates 2026-01-25 03:08:08 -08:00
Waleed
8bd5d41723 v0.5.70: router fix, anthropic agent response format adherence 2026-01-24 20:57:02 -08:00
Waleed
c12931bc50 v0.5.69: kb upgrades, blog, copilot improvements, auth consolidation (#2973)
* fix(subflows): tag dropdown + resolution logic (#2949)

* fix(subflows): tag dropdown + resolution logic

* fixes;

* revert parallel change

* chore(deps): bump posthog-js to 1.334.1 (#2948)

* fix(idempotency): add conflict target to atomicallyClaimDb query + remove redundant db namespace tracking (#2950)

* fix(idempotency): add conflict target to atomicallyClaimDb query

* delete needs to account for namespace

* simplify namespace filtering logic

* fix cleanup

* consistent target

* improvement(kb): add document filtering, select all, and React Query migration (#2951)

* improvement(kb): add document filtering, select all, and React Query migration

* test(kb): update tests for enabledFilter and removed userId params

* fix(kb): remove non-null assertion, add explicit guard

* improvement(logs): trace span, details (#2952)

* improvement(action-bar): ordering

* improvement(logs): details, trace span

* feat(blog): v0.5 release post (#2953)

* feat(blog): v0.5 post

* improvement(blog): simplify title and remove code block header

- Simplified blog title from Introducing Sim Studio v0.5 to Introducing Sim v0.5
- Removed language label header and copy button from code blocks for cleaner appearance

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

* ack PR comments

* small styling improvements

* created system to create post-specific components

* updated componnet

* cache invalidation

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat(admin): add credits endpoint to issue credits to users (#2954)

* feat(admin): add credits endpoint to issue credits to users

* fix(admin): use existing credit functions and handle enterprise seats

* fix(admin): reject NaN and Infinity in amount validation

* styling

* fix(admin): validate userId and email are strings

* improvement(copilot): fast mode, subagent tool responses and allow preferences (#2955)

* Improvements

* Fix actions mapping

* Remove console logs

* fix(billing): handle missing userStats and prevent crashes (#2956)

* fix(billing): handle missing userStats and prevent crashes

* fix(billing): correct import path for getFilledPillColor

* fix(billing): add Number.isFinite check to lastPeriodCost

* fix(logs): refresh logic to refresh logs details (#2958)

* fix(security): add authentication and input validation to API routes (#2959)

* fix(security): add authentication and input validation to API routes

* moved utils

* remove extraneous commetns

* removed unused dep

* improvement(helm): add internal ingress support and same-host path consolidation (#2960)

* improvement(helm): add internal ingress support and same-host path consolidation

* improvement(helm): clean up ingress template comments

Simplify verbose inline Helm comments and section dividers to match the
minimal style used in services.yaml.

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

* fix(helm): add missing copilot path consolidation for realtime host

When copilot.host equals realtime.host but differs from app.host,
copilot paths were not being routed. Added logic to consolidate
copilot paths into the realtime rule for this scenario.

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

* improvement(helm): follow ingress best practices

- Remove orphan comments that appeared when services were disabled
- Add documentation about path ordering requirements
- Paths rendered in order: realtime, copilot, app (specific before catch-all)
- Clean template output matching industry Helm chart standards

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat(blog): enterprise post (#2961)

* feat(blog): enterprise post

* added more images, styling

* more content

* updated v0-5 post

* remove unused transition

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>

* fix(envvars): resolution standardized (#2957)

* fix(envvars): resolution standardized

* remove comments

* address bugbot

* fix highlighting for env vars

* remove comments

* address greptile

* address bugbot

* fix(copilot): mask credentials fix (#2963)

* Fix copilot masking

* Clean up

* Lint

* improvement(webhooks): remove dead code (#2965)

* fix(webhooks): subscription recreation path

* improvement(webhooks): remove dead code

* fix tests

* address bugbot comments

* fix restoration edge case

* fix more edge cases

* address bugbot comments

* fix gmail polling

* add warnings for UI indication for credential sets

* fix(preview): subblock values (#2969)

* fix(child-workflow): nested spans handoff (#2966)

* fix(child-workflow): nested spans handoff

* remove overly defensive programming

* update type check

* type more code

* remove more dead code

* address bugbot comments

* fix(security): restrict API key access on internal-only routes (#2964)

* fix(security): restrict API key access on internal-only routes

* test(security): update function execute tests for checkInternalAuth

* updated agent handler

* move session check higher in checkSessionOrInternalAuth

* extracted duplicate code into helper for resolving user from jwt

* fix(copilot): update copilot chat title (#2968)

* fix(hitl): fix condition blocks after hitl (#2967)

* fix(notes): ghost edges (#2970)

* fix(notes): ghost edges

* fix deployed state fallback

* fallback

* remove UI level checks

* annotation missing from autoconnect source check

* improvement(docs): loop and parallel var reference syntax (#2975)

* fix(blog): slash actions description (#2976)

* improvement(docs): loop and parallel var reference syntax

* fix(blog): slash actions description

* fix(auth): copilot routes (#2977)

* Fix copilot auth

* Fix

* Fix

* Fix

* fix(copilot): fix edit summary for loops/parallels (#2978)

* fix(integrations): hide from tool bar (#2544)

* fix(landing): ui (#2979)

* fix(edge-validation): race condition on collaborative add (#2980)

* fix(variables): boolean type support and input improvements (#2981)

* fix(variables): boolean type support and input improvements

* fix formatting

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2026-01-24 14:29:53 -08:00
Waleed
e9c4251c1c v0.5.68: router block reasoning, executor improvements, variable resolution consolidation, helm updates (#2946)
* improvement(workflow-item): stabilize avatar layout and fix name truncation (#2939)

* improvement(workflow-item): stabilize avatar layout and fix name truncation

* fix(avatars): revert overflow bg to hardcoded color for contrast

* fix(executor): stop parallel execution when block errors (#2940)

* improvement(helm): add per-deployment extraVolumes support (#2942)

* fix(gmail): expose messageId field in read email block (#2943)

* fix(resolver): consolidate reference resolution  (#2941)

* fix(resolver): consolidate code to resolve references

* fix edge cases

* use already formatted error

* fix multi index

* fix backwards compat reachability

* handle backwards compatibility accurately

* use shared constant correctly

* feat(router): expose reasoning output in router v2 block (#2945)

* fix(copilot): always allow, credential masking (#2947)

* Fix always allow, credential validation

* Credential masking

* Autoload

* fix(executor): handle condition dead-end branches in loops (#2944)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
2026-01-22 13:48:15 -08:00
Waleed
cc2be33d6b v0.5.67: loading, password reset, ui improvements, helm updates (#2928)
* fix(zustand): updated to useShallow from deprecated createWithEqualityFn (#2919)

* fix(logger): use direct env access for webpack inlining (#2920)

* fix(notifications): text overflow with line-clamp (#2921)

* chore(helm): add env vars for Vertex AI, orgs, and telemetry (#2922)

* fix(auth): improve reset password flow and consolidate brand detection (#2924)

* fix(auth): improve reset password flow and consolidate brand detection

* fix(auth): set errorHandled for EMAIL_NOT_VERIFIED to prevent duplicate error

* fix(auth): clear success message on login errors

* chore(auth): fix import order per lint

* fix(action-bar): duplicate subflows with children (#2923)

* fix(action-bar): duplicate subflows with children

* fix(action-bar): add validateTriggerPaste for subflow duplicate

* fix(resolver): agent response format, input formats, root level (#2925)

* fix(resolvers): agent response format, input formats, root level

* fix response block initial seeding

* fix tests

* fix(messages-input): fix cursor alignment and auto-resize with overlay (#2926)

* fix(messages-input): fix cursor alignment and auto-resize with overlay

* fixed remaining zustand warnings

* fix(stores): remove dead code causing log spam on startup (#2927)

* fix(stores): remove dead code causing log spam on startup

* fix(stores): replace custom tools zustand store with react query cache

* improvement(ui): use BrandedButton and BrandedLink components (#2930)

- Refactor auth forms to use BrandedButton component
- Add BrandedLink component for changelog page
- Reduce code duplication in login, signup, reset-password forms
- Update star count default value

* fix(custom-tools): remove unsafe title fallback in getCustomTool (#2929)

* fix(custom-tools): remove unsafe title fallback in getCustomTool

* fix(custom-tools): restore title fallback in getCustomTool lookup

Custom tools are referenced by title (custom_${title}), not database ID.
The title fallback is required for client-side tool resolution to work.

* fix(null-bodies): empty bodies handling (#2931)

* fix(null-statuses): empty bodies handling

* address bugbot comment

* fix(token-refresh): microsoft, notion, x, linear (#2933)

* fix(microsoft): proactive refresh needed

* fix(x): missing token refresh flag

* notion and linear missing flag too

* address bugbot comment

* fix(auth): handle EMAIL_NOT_VERIFIED in onError callback (#2932)

* fix(auth): handle EMAIL_NOT_VERIFIED in onError callback

* refactor(auth): extract redirectToVerify helper to reduce duplication

* fix(workflow-selector): use dedicated selector for workflow dropdown (#2934)

* feat(workflow-block): preview (#2935)

* improvement(copilot): tool configs to show nested props (#2936)

* fix(auth): add genericOAuth providers to trustedProviders (#2937)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
2026-01-21 22:53:25 -08:00
Vikhyath Mondreti
45371e521e v0.5.66: external http requests fix, ring highlighting 2026-01-21 02:55:39 -08:00
Waleed
0ce0f98aa5 v0.5.65: gemini updates, textract integration, ui updates (#2909)
* fix(google): wrap primitive tool responses for Gemini API compatibility (#2900)

* fix(canonical): copilot path + update parent (#2901)

* fix(rss): add top-level title, link, pubDate fields to RSS trigger output (#2902)

* fix(rss): add top-level title, link, pubDate fields to RSS trigger output

* fix(imap): add top-level fields to IMAP trigger output

* improvement(browseruse): add profile id param (#2903)

* improvement(browseruse): add profile id param

* make request a stub since we have directExec

* improvement(executor): upgraded abort controller to handle aborts for loops and parallels (#2880)

* improvement(executor): upgraded abort controller to handle aborts for loops and parallels

* comments

* improvement(files): update execution for passing base64 strings (#2906)

* progress

* improvement(execution): update execution for passing base64 strings

* fix types

* cleanup comments

* path security vuln

* reject promise correctly

* fix redirect case

* remove proxy routes

* fix tests

* use ipaddr

* feat(tools): added textract, added v2 for mistral, updated tag dropdown (#2904)

* feat(tools): added textract

* cleanup

* ack pr comments

* reorder

* removed upload for textract async version

* fix additional fields dropdown in editor, update parser to leave validation to be done on the server

* added mistral v2, files v2, and finalized textract

* updated the rest of the old file patterns, updated mistral outputs for v2

* updated tag dropdown to parse non-operation fields as well

* updated extension finder

* cleanup

* added description for inputs to workflow

* use helper for internal route check

* fix tag dropdown merge conflict change

* remove duplicate code

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>

* fix(ui): change add inputs button to match output selector (#2907)

* fix(canvas): removed invite to workspace from canvas popover (#2908)

* fix(canvas): removed invite to workspace

* removed unused props

* fix(copilot): legacy tool display names (#2911)

* fix(a2a): canonical merge  (#2912)

* fix canonical merge

* fix empty array case

* fix(change-detection): copilot diffs have extra field (#2913)

* improvement(logs): improved logs ui bugs, added subflow disable UI (#2910)

* improvement(logs): improved logs ui bugs, added subflow disable UI

* added duplicate to action bar for subflows

* feat(broadcast): email v0.5 (#2905)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
2026-01-20 23:54:55 -08:00
Waleed
dff1c9d083 v0.5.64: unsubscribe, search improvements, metrics, additional SSO configuration 2026-01-20 00:34:11 -08:00
Vikhyath Mondreti
b09f683072 v0.5.63: ui and performance improvements, more google tools 2026-01-18 15:22:42 -08:00
Vikhyath Mondreti
a8bb0db660 v0.5.62: webhook bug fixes, seeding default subblock values, block selection fixes 2026-01-16 20:27:06 -08:00
Waleed
af82820a28 v0.5.61: webhook improvements, workflow controls, react query for deployment status, chat fixes, reducto and pulse OCR, linear fixes 2026-01-16 18:06:23 -08:00
Waleed
4372841797 v0.5.60: invitation flow improvements, chat fixes, a2a improvements, additional copilot actions 2026-01-15 00:02:18 -08:00
Waleed
5e8c843241 v0.5.59: a2a support, documentation 2026-01-13 13:21:21 -08:00
Waleed
7bf3d73ee6 v0.5.58: export folders, new tools, permissions groups enhancements 2026-01-13 00:56:59 -08:00
Vikhyath Mondreti
7ffc11a738 v0.5.57: subagents, context menu improvements, bug fixes 2026-01-11 11:38:40 -08:00
Waleed
be578e2ed7 v0.5.56: batch operations, access control and permission groups, billing fixes 2026-01-10 00:31:34 -08:00
Waleed
f415e5edc4 v0.5.55: polling groups, bedrock provider, devcontainer fixes, workflow preview enhancements 2026-01-08 23:36:56 -08:00
Waleed
13a6e6c3fa v0.5.54: seo, model blacklist, helm chart updates, fireflies integration, autoconnect improvements, billing fixes 2026-01-07 16:09:45 -08:00
Waleed
f5ab7f21ae v0.5.53: hotkey improvements, added redis fallback, fixes for workflow tool 2026-01-06 23:34:52 -08:00
Waleed
bfb6fffe38 v0.5.52: new port-based router block, combobox expression and variable support 2026-01-06 16:14:10 -08:00
Waleed
4fbec0a43f v0.5.51: triggers, kb, condition block improvements, supabase and grain integration updates 2026-01-06 14:26:46 -08:00
Waleed
585f5e365b v0.5.50: import improvements, ui upgrades, kb styling and performance improvements 2026-01-05 00:35:55 -08:00
Waleed
3792bdd252 v0.5.49: hitl improvements, new email styles, imap trigger, logs context menu (#2672)
* feat(logs-context-menu): consolidated logs utils and types, added logs record context menu (#2659)

* feat(email): welcome email; improvement(emails): ui/ux (#2658)

* feat(email): welcome email; improvement(emails): ui/ux

* improvement(emails): links, accounts, preview

* refactor(emails): file structure and wrapper components

* added envvar for personal emails sent, added isHosted gate

* fixed failing tests, added env mock

* fix: removed comment

---------

Co-authored-by: waleed <walif6@gmail.com>

* fix(logging): hitl + trigger dev crash protection (#2664)

* hitl gaps

* deal with trigger worker crashes

* cleanup import strcuture

* feat(imap): added support for imap trigger (#2663)

* feat(tools): added support for imap trigger

* feat(imap): added parity, tested

* ack PR comments

* final cleanup

* feat(i18n): update translations (#2665)

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* fix(grain): updated grain trigger to auto-establish trigger (#2666)

Co-authored-by: aadamgough <adam@sim.ai>

* feat(admin): routes to manage deployments (#2667)

* feat(admin): routes to manage deployments

* fix naming fo deployed by

* feat(time-picker): added timepicker emcn component, added to playground, added searchable prop for dropdown, added more timezones for schedule, updated license and notice date (#2668)

* feat(time-picker): added timepicker emcn component, added to playground, added searchable prop for dropdown, added more timezones for schedule, updated license and notice date

* removed unused params, cleaned up redundant utils

* improvement(invite): aligned styling (#2669)

* improvement(invite): aligned with rest of app

* fix(invite): error handling

* fix: addressed comments

---------

Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
Co-authored-by: Adam Gough <77861281+aadamgough@users.noreply.github.com>
Co-authored-by: aadamgough <adam@sim.ai>
2026-01-03 13:19:18 -08:00
Waleed
eb5d1f3e5b v0.5.48: copy-paste workflow blocks, docs updates, mcp tool fixes 2025-12-31 18:00:04 -08:00
Waleed
54ab82c8dd v0.5.47: deploy workflow as mcp, kb chunks tokenizer, UI improvements, jira service management tools 2025-12-30 23:18:58 -08:00
Waleed
f895bf469b v0.5.46: build improvements, greptile, light mode improvements 2025-12-29 02:17:52 -08:00
Waleed
dd3209af06 v0.5.45: light mode fixes, realtime usage indicator, docker build improvements 2025-12-27 19:57:42 -08:00
Waleed
b6ba3b50a7 v0.5.44: keyboard shortcuts, autolayout, light mode, byok, testing improvements 2025-12-26 21:25:19 -08:00
Waleed
b304233062 v0.5.43: export logs, circleback, grain, vertex, code hygiene, schedule improvements 2025-12-23 19:19:18 -08:00
Vikhyath Mondreti
57e4b49bd6 v0.5.42: fix memory migration 2025-12-23 01:24:54 -08:00
Vikhyath Mondreti
e12dd204ed v0.5.41: memory fixes, copilot improvements, knowledgebase improvements, LLM providers standardization 2025-12-23 00:15:18 -08:00
Vikhyath Mondreti
3d9d9cbc54 v0.5.40: supabase ops to allow non-public schemas, jira uuid 2025-12-21 22:28:05 -08:00
Waleed
0f4ec962ad v0.5.39: notion, workflow variables fixes 2025-12-20 20:44:00 -08:00
Waleed
4827866f9a v0.5.38: snap to grid, copilot ux improvements, billing line items 2025-12-20 17:24:38 -08:00
Waleed
3e697d9ed9 v0.5.37: redaction utils consolidation, logs updates, autoconnect improvements, additional kb tag types 2025-12-19 22:31:55 -08:00
Martin Yankov
4431a1a484 fix(helm): add custom egress rules to realtime network policy (#2481)
The realtime service network policy was missing the custom egress rules section
that allows configuration of additional egress rules via values.yaml. This caused
the realtime pods to be unable to connect to external databases (e.g., PostgreSQL
on port 5432) when using external database configurations.

The app network policy already had this section, but the realtime network policy
was missing it, creating an inconsistency and preventing the realtime service
from accessing external databases configured via networkPolicy.egress values.

This fix adds the same custom egress rules template section to the realtime
network policy, matching the app network policy behavior and allowing users to
configure database connectivity via values.yaml.
2025-12-19 18:59:08 -08:00
Waleed
4d1a9a3f22 v0.5.36: hitl improvements, opengraph, slack fixes, one-click unsubscribe, auth checks, new db indexes 2025-12-19 01:27:49 -08:00
Vikhyath Mondreti
eb07a080fb v0.5.35: helm updates, copilot improvements, 404 for docs, salesforce fixes, subflow resize clamping 2025-12-18 16:23:19 -08:00
1877 changed files with 177043 additions and 41868 deletions

View File

@@ -183,6 +183,109 @@ export const {ServiceName}Block: BlockConfig = {
} }
``` ```
## File Input Handling
When your block accepts file uploads, use the basic/advanced mode pattern with `normalizeFileInput`.
### Basic/Advanced File Pattern
```typescript
// Basic mode: Visual file upload
{
id: 'uploadFile',
title: 'File',
type: 'file-upload',
canonicalParamId: 'file', // Both map to 'file' param
placeholder: 'Upload file',
mode: 'basic',
multiple: false,
required: true,
condition: { field: 'operation', value: 'upload' },
},
// Advanced mode: Reference from other blocks
{
id: 'fileRef',
title: 'File',
type: 'short-input',
canonicalParamId: 'file', // Both map to 'file' param
placeholder: 'Reference file (e.g., {{file_block.output}})',
mode: 'advanced',
required: true,
condition: { field: 'operation', value: 'upload' },
},
```
**Critical constraints:**
- `canonicalParamId` must NOT match any subblock's `id` in the same block
- Values are stored under subblock `id`, not `canonicalParamId`
### Normalizing File Input in tools.config
Use `normalizeFileInput` to handle all input variants:
```typescript
import { normalizeFileInput } from '@/blocks/utils'
tools: {
access: ['service_upload'],
config: {
tool: (params) => {
// Check all field IDs: uploadFile (basic), fileRef (advanced), fileContent (legacy)
const normalizedFile = normalizeFileInput(
params.uploadFile || params.fileRef || params.fileContent,
{ single: true }
)
if (normalizedFile) {
params.file = normalizedFile
}
return `service_${params.operation}`
},
},
}
```
**Why this pattern?**
- Values come through as `params.uploadFile` or `params.fileRef` (the subblock IDs)
- `canonicalParamId` only controls UI/schema mapping, not runtime values
- `normalizeFileInput` handles JSON strings from advanced mode template resolution
### File Input Types in `inputs`
Use `type: 'json'` for file inputs:
```typescript
inputs: {
uploadFile: { type: 'json', description: 'Uploaded file (UserFile)' },
fileRef: { type: 'json', description: 'File reference from previous block' },
// Legacy field for backwards compatibility
fileContent: { type: 'string', description: 'Legacy: base64 encoded content' },
}
```
### Multiple Files
For multiple file uploads:
```typescript
{
id: 'attachments',
title: 'Attachments',
type: 'file-upload',
multiple: true, // Allow multiple files
maxSize: 25, // Max size in MB per file
acceptedTypes: 'image/*,application/pdf,.doc,.docx',
}
// In tools.config:
const normalizedFiles = normalizeFileInput(
params.attachments || params.attachmentRefs,
// No { single: true } - returns array
)
if (normalizedFiles) {
params.files = normalizedFiles
}
```
## Condition Syntax ## Condition Syntax
Controls when a field is shown based on other field values. Controls when a field is shown based on other field values.

View File

@@ -206,10 +206,15 @@ export const {Service}Block: BlockConfig = {
} }
``` ```
**Critical:** **Critical Canonical Param Rules:**
- `canonicalParamId` must NOT match any other subblock's `id`, must be unique per block, and should only be used to link basic/advanced alternatives for the same parameter. - `canonicalParamId` must NOT match any subblock's `id` in the block
- `mode` only controls UI visibility, NOT serialization. Without `canonicalParamId`, both basic and advanced field values would be sent. - `canonicalParamId` must be unique per operation/condition context
- Every subblock `id` must be unique within the block. Duplicate IDs cause conflicts even with different conditions. - Only use `canonicalParamId` to link basic/advanced alternatives for the same logical parameter
- `mode` only controls UI visibility, NOT serialization. Without `canonicalParamId`, both basic and advanced field values would be sent
- Every subblock `id` must be unique within the block. Duplicate IDs cause conflicts even with different conditions
- **Required consistency:** If one subblock in a canonical group has `required: true`, ALL subblocks in that group must have `required: true` (prevents bypassing validation by switching modes)
- **Inputs section:** Must list canonical param IDs (e.g., `fileId`), NOT raw subblock IDs (e.g., `fileSelector`, `manualFileId`)
- **Params function:** Must use canonical param IDs, NOT raw subblock IDs (raw IDs are deleted after canonical transformation)
## Step 4: Add Icon ## Step 4: Add Icon
@@ -457,7 +462,230 @@ You can usually find this in the service's brand/press kit page, or copy it from
Paste the SVG code here and I'll convert it to a React component. Paste the SVG code here and I'll convert it to a React component.
``` ```
## Common Gotchas ## File Handling
When your integration handles file uploads or downloads, follow these patterns to work with `UserFile` objects consistently.
### What is a UserFile?
A `UserFile` is the standard file representation in Sim:
```typescript
interface UserFile {
id: string // Unique identifier
name: string // Original filename
url: string // Presigned URL for download
size: number // File size in bytes
type: string // MIME type (e.g., 'application/pdf')
base64?: string // Optional base64 content (if small file)
key?: string // Internal storage key
context?: object // Storage context metadata
}
```
### File Input Pattern (Uploads)
For tools that accept file uploads, **always route through an internal API endpoint** rather than calling external APIs directly. This ensures proper file content retrieval.
#### 1. Block SubBlocks for File Input
Use the basic/advanced mode pattern:
```typescript
// Basic mode: File upload UI
{
id: 'uploadFile',
title: 'File',
type: 'file-upload',
canonicalParamId: 'file', // Maps to 'file' param
placeholder: 'Upload file',
mode: 'basic',
multiple: false,
required: true,
condition: { field: 'operation', value: 'upload' },
},
// Advanced mode: Reference from previous block
{
id: 'fileRef',
title: 'File',
type: 'short-input',
canonicalParamId: 'file', // Same canonical param
placeholder: 'Reference file (e.g., {{file_block.output}})',
mode: 'advanced',
required: true,
condition: { field: 'operation', value: 'upload' },
},
```
**Critical:** `canonicalParamId` must NOT match any subblock `id`.
#### 2. Normalize File Input in Block Config
In `tools.config.tool`, use `normalizeFileInput` to handle all input variants:
```typescript
import { normalizeFileInput } from '@/blocks/utils'
tools: {
config: {
tool: (params) => {
// Normalize file from basic (uploadFile), advanced (fileRef), or legacy (fileContent)
const normalizedFile = normalizeFileInput(
params.uploadFile || params.fileRef || params.fileContent,
{ single: true }
)
if (normalizedFile) {
params.file = normalizedFile
}
return `{service}_${params.operation}`
},
},
}
```
#### 3. Create Internal API Route
Create `apps/sim/app/api/tools/{service}/{action}/route.ts`:
```typescript
import { createLogger } from '@sim/logger'
import { NextResponse, type NextRequest } from 'next/server'
import { z } from 'zod'
import { checkInternalAuth } from '@/lib/auth/hybrid'
import { generateRequestId } from '@/lib/core/utils/request'
import { FileInputSchema, type RawFileInput } from '@/lib/uploads/utils/file-schemas'
import { processFilesToUserFiles } from '@/lib/uploads/utils/file-utils'
import { downloadFileFromStorage } from '@/lib/uploads/utils/file-utils.server'
const logger = createLogger('{Service}UploadAPI')
const RequestSchema = z.object({
accessToken: z.string(),
file: FileInputSchema.optional().nullable(),
// Legacy field for backwards compatibility
fileContent: z.string().optional().nullable(),
// ... other params
})
export async function POST(request: NextRequest) {
const requestId = generateRequestId()
const authResult = await checkInternalAuth(request, { requireWorkflowId: false })
if (!authResult.success) {
return NextResponse.json({ success: false, error: 'Unauthorized' }, { status: 401 })
}
const body = await request.json()
const data = RequestSchema.parse(body)
let fileBuffer: Buffer
let fileName: string
// Prefer UserFile input, fall back to legacy base64
if (data.file) {
const userFiles = processFilesToUserFiles([data.file as RawFileInput], requestId, logger)
if (userFiles.length === 0) {
return NextResponse.json({ success: false, error: 'Invalid file' }, { status: 400 })
}
const userFile = userFiles[0]
fileBuffer = await downloadFileFromStorage(userFile, requestId, logger)
fileName = userFile.name
} else if (data.fileContent) {
// Legacy: base64 string (backwards compatibility)
fileBuffer = Buffer.from(data.fileContent, 'base64')
fileName = 'file'
} else {
return NextResponse.json({ success: false, error: 'File required' }, { status: 400 })
}
// Now call external API with fileBuffer
const response = await fetch('https://api.{service}.com/upload', {
method: 'POST',
headers: { Authorization: `Bearer ${data.accessToken}` },
body: new Uint8Array(fileBuffer), // Convert Buffer for fetch
})
// ... handle response
}
```
#### 4. Update Tool to Use Internal Route
```typescript
export const {service}UploadTool: ToolConfig<Params, Response> = {
id: '{service}_upload',
// ...
params: {
file: { type: 'file', required: false, visibility: 'user-or-llm' },
fileContent: { type: 'string', required: false, visibility: 'hidden' }, // Legacy
},
request: {
url: '/api/tools/{service}/upload', // Internal route
method: 'POST',
body: (params) => ({
accessToken: params.accessToken,
file: params.file,
fileContent: params.fileContent,
}),
},
}
```
### File Output Pattern (Downloads)
For tools that return files, use `FileToolProcessor` to store files and return `UserFile` objects.
#### In Tool transformResponse
```typescript
import { FileToolProcessor } from '@/executor/utils/file-tool-processor'
transformResponse: async (response, context) => {
const data = await response.json()
// Process file outputs to UserFile objects
const fileProcessor = new FileToolProcessor(context)
const file = await fileProcessor.processFileData({
data: data.content, // base64 or buffer
mimeType: data.mimeType,
filename: data.filename,
})
return {
success: true,
output: { file },
}
}
```
#### In API Route (for complex file handling)
```typescript
// Return file data that FileToolProcessor can handle
return NextResponse.json({
success: true,
output: {
file: {
data: base64Content,
mimeType: 'application/pdf',
filename: 'document.pdf',
},
},
})
```
### Key Helpers Reference
| Helper | Location | Purpose |
|--------|----------|---------|
| `normalizeFileInput` | `@/blocks/utils` | Normalize file params in block config |
| `processFilesToUserFiles` | `@/lib/uploads/utils/file-utils` | Convert raw inputs to UserFile[] |
| `downloadFileFromStorage` | `@/lib/uploads/utils/file-utils.server` | Get file Buffer from UserFile |
| `FileToolProcessor` | `@/executor/utils/file-tool-processor` | Process tool output files |
| `isUserFile` | `@/lib/core/utils/user-file` | Type guard for UserFile objects |
| `FileInputSchema` | `@/lib/uploads/utils/file-schemas` | Zod schema for file validation |
### Common Gotchas
1. **OAuth serviceId must match** - The `serviceId` in oauth-input must match the OAuth provider configuration 1. **OAuth serviceId must match** - The `serviceId` in oauth-input must match the OAuth provider configuration
2. **Tool IDs are snake_case** - `stripe_create_payment`, not `stripeCreatePayment` 2. **Tool IDs are snake_case** - `stripe_create_payment`, not `stripeCreatePayment`
@@ -465,3 +693,5 @@ Paste the SVG code here and I'll convert it to a React component.
4. **Alphabetical ordering** - Keep imports and registry entries alphabetically sorted 4. **Alphabetical ordering** - Keep imports and registry entries alphabetically sorted
5. **Required can be conditional** - Use `required: { field: 'op', value: 'create' }` instead of always true 5. **Required can be conditional** - Use `required: { field: 'op', value: 'create' }` instead of always true
6. **DependsOn clears options** - When a dependency changes, selector options are refetched 6. **DependsOn clears options** - When a dependency changes, selector options are refetched
7. **Never pass Buffer directly to fetch** - Convert to `new Uint8Array(buffer)` for TypeScript compatibility
8. **Always handle legacy file params** - Keep hidden `fileContent` params for backwards compatibility

View File

@@ -157,6 +157,36 @@ dependsOn: { all: ['authMethod'], any: ['credential', 'botToken'] }
- `'both'` - Show in both modes (default) - `'both'` - Show in both modes (default)
- `'trigger'` - Only when block is used as trigger - `'trigger'` - Only when block is used as trigger
### `canonicalParamId` - Link basic/advanced alternatives
Use to map multiple UI inputs to a single logical parameter:
```typescript
// Basic mode: Visual selector
{
id: 'fileSelector',
type: 'file-selector',
mode: 'basic',
canonicalParamId: 'fileId',
required: true,
},
// Advanced mode: Manual input
{
id: 'manualFileId',
type: 'short-input',
mode: 'advanced',
canonicalParamId: 'fileId',
required: true,
},
```
**Critical Rules:**
- `canonicalParamId` must NOT match any subblock's `id`
- `canonicalParamId` must be unique per operation/condition context
- **Required consistency:** All subblocks in a canonical group must have the same `required` status
- **Inputs section:** Must list canonical param IDs (e.g., `fileId`), NOT raw subblock IDs
- **Params function:** Must use canonical param IDs (raw IDs are deleted after canonical transformation)
**Register in `blocks/registry.ts`:** **Register in `blocks/registry.ts`:**
```typescript ```typescript
@@ -195,6 +225,52 @@ import { {service}WebhookTrigger } from '@/triggers/{service}'
{service}_webhook: {service}WebhookTrigger, {service}_webhook: {service}WebhookTrigger,
``` ```
## File Handling
When integrations handle file uploads/downloads, use `UserFile` objects consistently.
### File Input (Uploads)
1. **Block subBlocks:** Use basic/advanced mode pattern with `canonicalParamId`
2. **Normalize in block config:** Use `normalizeFileInput` from `@/blocks/utils`
3. **Internal API route:** Create route that uses `downloadFileFromStorage` to get file content
4. **Tool routes to internal API:** Don't call external APIs directly with files
```typescript
// In block tools.config:
import { normalizeFileInput } from '@/blocks/utils'
const normalizedFile = normalizeFileInput(
params.uploadFile || params.fileRef || params.fileContent,
{ single: true }
)
if (normalizedFile) params.file = normalizedFile
```
### File Output (Downloads)
Use `FileToolProcessor` in tool `transformResponse` to store files:
```typescript
import { FileToolProcessor } from '@/executor/utils/file-tool-processor'
const processor = new FileToolProcessor(context)
const file = await processor.processFileData({
data: base64Content,
mimeType: 'application/pdf',
filename: 'doc.pdf',
})
```
### Key Helpers
| Helper | Location | Purpose |
|--------|----------|---------|
| `normalizeFileInput` | `@/blocks/utils` | Normalize file params in block config |
| `processFilesToUserFiles` | `@/lib/uploads/utils/file-utils` | Convert raw inputs to UserFile[] |
| `downloadFileFromStorage` | `@/lib/uploads/utils/file-utils.server` | Get Buffer from UserFile |
| `FileToolProcessor` | `@/executor/utils/file-tool-processor` | Process tool output files |
## Checklist ## Checklist
- [ ] Look up API docs for the service - [ ] Look up API docs for the service
@@ -207,3 +283,5 @@ import { {service}WebhookTrigger } from '@/triggers/{service}'
- [ ] Register block in `blocks/registry.ts` - [ ] Register block in `blocks/registry.ts`
- [ ] (Optional) Create triggers in `triggers/{service}/` - [ ] (Optional) Create triggers in `triggers/{service}/`
- [ ] (Optional) Register triggers in `triggers/registry.ts` - [ ] (Optional) Register triggers in `triggers/registry.ts`
- [ ] (If file uploads) Create internal API route with `downloadFileFromStorage`
- [ ] (If file uploads) Use `normalizeFileInput` in block config

View File

@@ -155,6 +155,36 @@ dependsOn: { all: ['authMethod'], any: ['credential', 'botToken'] }
- `'both'` - Show in both modes (default) - `'both'` - Show in both modes (default)
- `'trigger'` - Only when block is used as trigger - `'trigger'` - Only when block is used as trigger
### `canonicalParamId` - Link basic/advanced alternatives
Use to map multiple UI inputs to a single logical parameter:
```typescript
// Basic mode: Visual selector
{
id: 'fileSelector',
type: 'file-selector',
mode: 'basic',
canonicalParamId: 'fileId',
required: true,
},
// Advanced mode: Manual input
{
id: 'manualFileId',
type: 'short-input',
mode: 'advanced',
canonicalParamId: 'fileId',
required: true,
},
```
**Critical Rules:**
- `canonicalParamId` must NOT match any subblock's `id`
- `canonicalParamId` must be unique per operation/condition context
- **Required consistency:** All subblocks in a canonical group must have the same `required` status
- **Inputs section:** Must list canonical param IDs (e.g., `fileId`), NOT raw subblock IDs
- **Params function:** Must use canonical param IDs (raw IDs are deleted after canonical transformation)
**Register in `blocks/registry.ts`:** **Register in `blocks/registry.ts`:**
```typescript ```typescript
@@ -193,6 +223,52 @@ import { {service}WebhookTrigger } from '@/triggers/{service}'
{service}_webhook: {service}WebhookTrigger, {service}_webhook: {service}WebhookTrigger,
``` ```
## File Handling
When integrations handle file uploads/downloads, use `UserFile` objects consistently.
### File Input (Uploads)
1. **Block subBlocks:** Use basic/advanced mode pattern with `canonicalParamId`
2. **Normalize in block config:** Use `normalizeFileInput` from `@/blocks/utils`
3. **Internal API route:** Create route that uses `downloadFileFromStorage` to get file content
4. **Tool routes to internal API:** Don't call external APIs directly with files
```typescript
// In block tools.config:
import { normalizeFileInput } from '@/blocks/utils'
const normalizedFile = normalizeFileInput(
params.uploadFile || params.fileRef || params.fileContent,
{ single: true }
)
if (normalizedFile) params.file = normalizedFile
```
### File Output (Downloads)
Use `FileToolProcessor` in tool `transformResponse` to store files:
```typescript
import { FileToolProcessor } from '@/executor/utils/file-tool-processor'
const processor = new FileToolProcessor(context)
const file = await processor.processFileData({
data: base64Content,
mimeType: 'application/pdf',
filename: 'doc.pdf',
})
```
### Key Helpers
| Helper | Location | Purpose |
|--------|----------|---------|
| `normalizeFileInput` | `@/blocks/utils` | Normalize file params in block config |
| `processFilesToUserFiles` | `@/lib/uploads/utils/file-utils` | Convert raw inputs to UserFile[] |
| `downloadFileFromStorage` | `@/lib/uploads/utils/file-utils.server` | Get Buffer from UserFile |
| `FileToolProcessor` | `@/executor/utils/file-tool-processor` | Process tool output files |
## Checklist ## Checklist
- [ ] Look up API docs for the service - [ ] Look up API docs for the service
@@ -205,3 +281,5 @@ import { {service}WebhookTrigger } from '@/triggers/{service}'
- [ ] Register block in `blocks/registry.ts` - [ ] Register block in `blocks/registry.ts`
- [ ] (Optional) Create triggers in `triggers/{service}/` - [ ] (Optional) Create triggers in `triggers/{service}/`
- [ ] (Optional) Register triggers in `triggers/registry.ts` - [ ] (Optional) Register triggers in `triggers/registry.ts`
- [ ] (If file uploads) Create internal API route with `downloadFileFromStorage`
- [ ] (If file uploads) Use `normalizeFileInput` in block config

View File

@@ -1,4 +1,4 @@
FROM oven/bun:1.3.3-alpine FROM oven/bun:1.3.9-alpine
# Install necessary packages for development # Install necessary packages for development
RUN apk add --no-cache \ RUN apk add --no-cache \

View File

@@ -20,7 +20,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v4

View File

@@ -1,10 +1,7 @@
name: 'Auto-translate Documentation' name: 'Auto-translate Documentation'
on: on:
schedule: workflow_dispatch: # Manual trigger only (scheduled runs disabled)
# Run every Sunday at midnight UTC
- cron: '0 0 * * 0'
workflow_dispatch: # Allow manual triggers
permissions: permissions:
contents: write contents: write
@@ -26,7 +23,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Cache Bun dependencies - name: Cache Bun dependencies
uses: actions/cache@v4 uses: actions/cache@v4
@@ -125,7 +122,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Cache Bun dependencies - name: Cache Bun dependencies
uses: actions/cache@v4 uses: actions/cache@v4

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Cache Bun dependencies - name: Cache Bun dependencies
uses: actions/cache@v4 uses: actions/cache@v4

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Setup Node.js for npm publishing - name: Setup Node.js for npm publishing
uses: actions/setup-node@v4 uses: actions/setup-node@v4

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Setup Node.js for npm publishing - name: Setup Node.js for npm publishing
uses: actions/setup-node@v4 uses: actions/setup-node@v4

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
with: with:
bun-version: 1.3.3 bun-version: 1.3.9
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v4

View File

@@ -265,6 +265,23 @@ Register in `blocks/registry.ts` (alphabetically).
**dependsOn:** `['field']` or `{ all: ['a'], any: ['b', 'c'] }` **dependsOn:** `['field']` or `{ all: ['a'], any: ['b', 'c'] }`
**File Input Pattern (basic/advanced mode):**
```typescript
// Basic: file-upload UI
{ id: 'uploadFile', type: 'file-upload', canonicalParamId: 'file', mode: 'basic' },
// Advanced: reference from other blocks
{ id: 'fileRef', type: 'short-input', canonicalParamId: 'file', mode: 'advanced' },
```
In `tools.config.tool`, normalize with:
```typescript
import { normalizeFileInput } from '@/blocks/utils'
const file = normalizeFileInput(params.uploadFile || params.fileRef, { single: true })
if (file) params.file = file
```
For file uploads, create an internal API route (`/api/tools/{service}/upload`) that uses `downloadFileFromStorage` to get file content from `UserFile` objects.
### 3. Icon (`components/icons.tsx`) ### 3. Icon (`components/icons.tsx`)
```typescript ```typescript
@@ -293,3 +310,5 @@ Register in `triggers/registry.ts`.
- [ ] Create block in `blocks/blocks/{service}.ts` - [ ] Create block in `blocks/blocks/{service}.ts`
- [ ] Register block in `blocks/registry.ts` - [ ] Register block in `blocks/registry.ts`
- [ ] (Optional) Create and register triggers - [ ] (Optional) Create and register triggers
- [ ] (If file uploads) Create internal API route with `downloadFileFromStorage`
- [ ] (If file uploads) Use `normalizeFileInput` in block config

View File

@@ -1131,6 +1131,47 @@ export function AirtableIcon(props: SVGProps<SVGSVGElement>) {
) )
} }
export function AirweaveIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
width='143'
height='143'
viewBox='0 0 143 143'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M89.8854 128.872C79.9165 123.339 66.7502 115.146 60.5707 107.642L60.0432 107.018C58.7836 105.5 57.481 104.014 56.1676 102.593C51.9152 97.9641 47.3614 93.7978 42.646 90.2021C40.7405 88.7487 38.7704 87.3492 36.8111 86.0789C35.7991 85.4222 34.8302 84.8193 33.9151 84.2703C31.6221 82.903 28.8338 82.5263 26.2716 83.2476C23.8385 83.9366 21.89 85.5406 20.7596 87.7476C18.5634 92.0323 20.0814 97.3289 24.2046 99.805C27.5204 101.786 30.7608 104.111 33.8398 106.717C34.2381 107.05 34.3996 107.578 34.2596 108.062C33.1292 112.185 31.9989 118.957 31.5682 121.67C30.6424 127.429 33.4737 133.081 38.5982 135.751L38.7812 135.848C41.0204 137 43.6472 136.946 45.8219 135.697C47.9858 134.459 49.353 132.231 49.4822 129.733C49.536 128.657 49.6006 127.58 49.676 126.59C49.719 126.062 50.042 125.632 50.5264 125.459C50.6772 125.406 50.8494 125.373 51.0001 125.373C51.3554 125.373 51.6784 125.513 51.9475 125.782C56.243 130.185 60.8829 134.169 65.7167 137.625C70.3674 140.951 75.8686 142.706 81.639 142.706C83.7383 142.706 85.8376 142.469 87.8938 141.995L88.1199 141.942C90.9943 141.274 93.029 139.024 93.4488 136.085C93.8687 133.146 92.4476 130.315 89.8747 128.883H89.8639L89.8854 128.872Z'
fill='currentColor'
/>
<path
d='M142.551 58.1747L142.529 58.0563C142.045 55.591 140.118 53.7069 137.598 53.2548C135.112 52.8134 132.754 53.8577 131.484 55.9893L131.408 56.1077C126.704 64.1604 120.061 71.6101 111.653 78.2956C109.446 80.0504 107.293 81.902 105.226 83.8075C103.644 85.2717 101.265 85.53 99.4452 84.4212C97.6474 83.3339 95.8495 82.1389 94.1055 80.8686C90.3268 78.1233 86.6772 74.9475 83.2753 71.4271C81.4989 69.597 79.798 67.6915 78.1939 65.7321C76.0408 63.1161 73.7477 60.5539 71.3685 58.1316C66.3195 52.9857 56.6089 45.9127 53.7453 43.878C53.3792 43.6304 53.1639 43.2428 53.0993 42.8014C53.0455 42.3601 53.1639 41.9509 53.4546 41.6064C55.274 39.4318 56.9965 37.1818 58.5683 34.921C60.2369 32.5311 60.786 29.6028 60.0862 26.8899C59.408 24.2523 57.6424 22.11 55.134 20.8827C50.9139 18.7942 45.8972 20.0968 43.2273 23.9293C40.8373 27.3636 38.0167 30.7332 34.8732 33.9306C34.5718 34.232 34.1304 34.3397 33.7213 34.1889C30.5239 33.1447 27.2296 32.2942 23.9461 31.659C23.7093 31.616 23.354 31.5514 22.9126 31.4975C16.4102 30.5286 10.1123 33.7798 7.21639 39.5717L7.1195 39.7548C6.18289 41.628 6.26902 43.8349 7.32405 45.6651C8.40061 47.5167 10.3277 48.701 12.4592 48.8194C13.4604 48.8732 14.4401 48.9378 15.3659 49.0024C15.7966 49.0347 16.1411 49.2823 16.3025 49.6914C16.4533 50.1112 16.3671 50.5419 16.0657 50.8541C12.147 54.8804 8.60515 59.1974 5.5262 63.6867C1.1446 70.0814 -0.481008 78.2095 1.08 85.9822L1.10154 86.1006C1.70441 89.0719 4.05131 91.2035 7.07644 91.5264C9.98315 91.8386 12.6099 90.3208 13.7619 87.6724L13.8265 87.5109C18.6925 75.8625 26.7559 65.5168 37.7907 56.7536C38.3182 56.3445 39.0072 56.28 39.567 56.5922C45.3373 59.768 50.8601 63.902 55.9738 68.8864C56.5982 69.4893 56.6089 70.5013 56.0168 71.1257C53.4761 73.8063 51.0862 76.6054 48.9115 79.469C47.2106 81.7083 47.5335 84.8949 49.6221 86.7358L53.3254 89.9977L53.2824 90.0409C53.8637 90.5576 54.445 91.0744 55.0264 91.5911L55.8123 92.194C56.9319 93.1844 58.3529 93.6365 59.8386 93.4858C61.3027 93.3351 62.67 92.56 63.5635 91.3758C65.1353 89.2873 66.8578 87.2525 68.6556 85.304C68.957 84.9702 69.3661 84.798 69.8075 84.7872C70.2705 84.7872 70.6257 84.9379 70.9164 85.2286C75.8147 90.0624 81.1114 94.3686 86.6772 97.9966C88.8626 99.4176 89.4978 102.26 88.1306 104.477C86.9248 106.448 85.7729 108.493 84.7179 110.539C83.5014 112.918 83.2968 115.738 84.1688 118.257C84.9978 120.68 86.7095 122.585 88.981 123.64C90.2514 124.232 91.5971 124.534 92.9859 124.534C96.5062 124.534 99.682 122.596 101.286 119.452C102.729 116.61 104.419 113.8 106.281 111.131C107.369 109.559 109.36 108.838 111.255 109.322C115.26 110.355 120.643 111.421 124.454 112.143C128.308 112.864 132.119 111.023 133.96 107.578L134.143 107.233C135.521 104.628 135.531 101.506 134.164 98.8901C132.786 96.2526 130.181 94.4655 127.21 94.121C126.478 94.0349 125.778 93.9488 125.11 93.8626C124.97 93.8411 124.852 93.8196 124.744 93.798L123.356 93.4751L124.357 92.4523C124.432 92.377 124.529 92.2801 124.658 92.194C128.771 88.8028 132.571 85.1963 135.962 81.4714C141.668 75.1951 144.122 66.4965 142.518 58.1747H142.529H142.551Z'
fill='currentColor'
/>
<path
d='M56.6506 14.3371C65.5861 19.6338 77.4067 27.3743 82.9833 34.1674C83.64 34.9532 84.2967 35.7391 84.9534 36.4927C86.1591 37.8815 86.2991 39.8731 85.2979 41.4233C83.4892 44.2116 81.4115 46.9569 79.1399 49.5945C77.4713 51.5107 77.4067 54.3098 78.9785 56.2476L79.0431 56.323C79.2261 56.5598 79.4306 56.8074 79.6136 57.0442C81.2931 59.1758 83.0801 61.2213 84.9211 63.1375C85.9007 64.1603 87.2249 64.7309 88.6352 64.7309L88.7644 65.5275L88.7429 64.7309C90.207 64.6986 91.6173 64.0526 92.5969 62.933C94.8362 60.4031 96.9247 57.744 98.8302 55.0633C100.133 53.2224 102.63 52.8026 104.525 54.1052C106.463 55.4402 108.465 56.7105 110.457 57.8839C112.793 59.2511 115.614 59.5095 118.165 58.5621C120.749 57.604 122.762 55.5694 123.656 52.9533C125.055 48.9055 123.257 44.2547 119.382 41.9078C116.755 40.3145 114.15 38.5166 111.674 36.5788C110.382 35.5561 109.833 33.8767 110.296 32.2941C111.437 28.3001 112.481 23.1218 113.148 19.4831C113.837 15.7259 112.147 11.8826 108.939 9.94477L108.562 9.72944C105.871 8.12537 102.587 8.00696 99.7668 9.40649C96.9247 10.8168 95.03 13.5405 94.6855 16.6733L94.6639 16.867C94.6209 17.2546 94.384 17.5453 94.018 17.6637C93.652 17.7821 93.2859 17.6852 93.0168 17.4269C89.0012 13.1422 84.738 9.25576 80.3134 5.8646C74.3708 1.31075 66.7811 -0.583999 59.4928 0.675575L59.1805 0.729423C56.1124 1.2677 53.7547 3.60383 53.1949 6.68279C52.6351 9.72946 53.9915 12.7223 56.6722 14.3048H56.6614L56.6506 14.3371Z'
fill='currentColor'
/>
</svg>
)
}
export function GoogleBooksIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 478.633 540.068'>
<path
fill='#1C51A4'
d='M449.059,218.231L245.519,99.538l-0.061,193.23c0.031,1.504-0.368,2.977-1.166,4.204c-0.798,1.258-1.565,1.995-2.915,2.547c-1.35,0.552-2.792,0.706-4.204,0.399c-1.412-0.307-2.7-1.043-3.713-2.117l-69.166-70.609l-69.381,70.179c-1.013,0.982-2.301,1.657-3.652,1.903c-1.381,0.246-2.792,0.092-4.081-0.491c-1.289-0.583-1.626-0.522-2.394-1.749c-0.767-1.197-1.197-2.608-1.197-4.081L85.031,6.007l-2.915-1.289C43.973-11.638,0,16.409,0,59.891v420.306c0,46.029,49.312,74.782,88.775,51.767l360.285-210.138C488.491,298.782,488.491,241.246,449.059,218.231z'
/>
<path
fill='#80D7FB'
d='M88.805,8.124c-2.179-1.289-4.419-2.363-6.659-3.345l0.123,288.663c0,1.442,0.43,2.854,1.197,4.081c0.767,1.197,1.872,2.148,3.161,2.731c1.289,0.583,2.7,0.736,4.081,0.491c1.381-0.246,2.639-0.921,3.652-1.903l69.749-69.688l69.811,69.749c1.013,1.074,2.301,1.81,3.713,2.117c1.412,0.307,2.884,0.153,4.204-0.399c1.319-0.552,2.455-1.565,3.253-2.792c0.798-1.258,1.197-2.731,1.166-4.204V99.998L88.805,8.124z'
/>
</svg>
)
}
export function GoogleDocsIcon(props: SVGProps<SVGSVGElement>) { export function GoogleDocsIcon(props: SVGProps<SVGSVGElement>) {
return ( return (
<svg <svg
@@ -5436,3 +5477,58 @@ export function EnrichSoIcon(props: SVGProps<SVGSVGElement>) {
</svg> </svg>
) )
} }
export function AgentSkillsIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
width='16'
height='16'
viewBox='0 0 16 16'
fill='none'
>
<path
d='M8 1L14.0622 4.5V11.5L8 15L1.93782 11.5V4.5L8 1Z'
stroke='currentColor'
strokeWidth='1.5'
fill='none'
/>
<path d='M8 4.5L11 6.25V9.75L8 11.5L5 9.75V6.25L8 4.5Z' fill='currentColor' />
</svg>
)
}
export function OnePasswordIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none'>
<circle
cx='24'
cy='24'
r='21.5'
stroke='#000000'
strokeLinecap='round'
strokeLinejoin='round'
/>
<path
d='M28.083,17.28a7.8633,7.8633,0,0,1,0,13.44'
stroke='#000000'
strokeLinecap='round'
strokeLinejoin='round'
/>
<path
d='M19.917,30.72a7.8633,7.8633,0,0,1,0-13.44'
stroke='#000000'
strokeLinecap='round'
strokeLinejoin='round'
/>
<path
d='M26.067,10.43H21.933a2.0172,2.0172,0,0,0-2.016,2.016v6.36c2.358,1.281,2.736,2.562,0,3.843V35.574a2.0169,2.0169,0,0,0,2.016,2.015h4.134a2.0169,2.0169,0,0,0,2.016-2.015V29.213c-2.358-1.281-2.736-2.562,0-3.842V12.446A2.0172,2.0172,0,0,0,26.067,10.43Z'
fill='#000000'
stroke='#000000'
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
)
}

View File

@@ -7,6 +7,7 @@ import {
A2AIcon, A2AIcon,
AhrefsIcon, AhrefsIcon,
AirtableIcon, AirtableIcon,
AirweaveIcon,
ApifyIcon, ApifyIcon,
ApolloIcon, ApolloIcon,
ArxivIcon, ArxivIcon,
@@ -37,6 +38,7 @@ import {
GithubIcon, GithubIcon,
GitLabIcon, GitLabIcon,
GmailIcon, GmailIcon,
GoogleBooksIcon,
GoogleCalendarIcon, GoogleCalendarIcon,
GoogleDocsIcon, GoogleDocsIcon,
GoogleDriveIcon, GoogleDriveIcon,
@@ -79,6 +81,7 @@ import {
MySQLIcon, MySQLIcon,
Neo4jIcon, Neo4jIcon,
NotionIcon, NotionIcon,
OnePasswordIcon,
OpenAIIcon, OpenAIIcon,
OutlookIcon, OutlookIcon,
PackageSearchIcon, PackageSearchIcon,
@@ -141,6 +144,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
a2a: A2AIcon, a2a: A2AIcon,
ahrefs: AhrefsIcon, ahrefs: AhrefsIcon,
airtable: AirtableIcon, airtable: AirtableIcon,
airweave: AirweaveIcon,
apify: ApifyIcon, apify: ApifyIcon,
apollo: ApolloIcon, apollo: ApolloIcon,
arxiv: ArxivIcon, arxiv: ArxivIcon,
@@ -163,12 +167,13 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
elevenlabs: ElevenLabsIcon, elevenlabs: ElevenLabsIcon,
enrich: EnrichSoIcon, enrich: EnrichSoIcon,
exa: ExaAIIcon, exa: ExaAIIcon,
file_v2: DocumentIcon, file_v3: DocumentIcon,
firecrawl: FirecrawlIcon, firecrawl: FirecrawlIcon,
fireflies: FirefliesIcon, fireflies_v2: FirefliesIcon,
github_v2: GithubIcon, github_v2: GithubIcon,
gitlab: GitLabIcon, gitlab: GitLabIcon,
gmail_v2: GmailIcon, gmail_v2: GmailIcon,
google_books: GoogleBooksIcon,
google_calendar_v2: GoogleCalendarIcon, google_calendar_v2: GoogleCalendarIcon,
google_docs: GoogleDocsIcon, google_docs: GoogleDocsIcon,
google_drive: GoogleDriveIcon, google_drive: GoogleDriveIcon,
@@ -177,7 +182,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
google_maps: GoogleMapsIcon, google_maps: GoogleMapsIcon,
google_search: GoogleIcon, google_search: GoogleIcon,
google_sheets_v2: GoogleSheetsIcon, google_sheets_v2: GoogleSheetsIcon,
google_slides: GoogleSlidesIcon, google_slides_v2: GoogleSlidesIcon,
google_vault: GoogleVaultIcon, google_vault: GoogleVaultIcon,
grafana: GrafanaIcon, grafana: GrafanaIcon,
grain: GrainIcon, grain: GrainIcon,
@@ -206,12 +211,13 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
microsoft_excel_v2: MicrosoftExcelIcon, microsoft_excel_v2: MicrosoftExcelIcon,
microsoft_planner: MicrosoftPlannerIcon, microsoft_planner: MicrosoftPlannerIcon,
microsoft_teams: MicrosoftTeamsIcon, microsoft_teams: MicrosoftTeamsIcon,
mistral_parse_v2: MistralIcon, mistral_parse_v3: MistralIcon,
mongodb: MongoDBIcon, mongodb: MongoDBIcon,
mysql: MySQLIcon, mysql: MySQLIcon,
neo4j: Neo4jIcon, neo4j: Neo4jIcon,
notion_v2: NotionIcon, notion_v2: NotionIcon,
onedrive: MicrosoftOneDriveIcon, onedrive: MicrosoftOneDriveIcon,
onepassword: OnePasswordIcon,
openai: OpenAIIcon, openai: OpenAIIcon,
outlook: OutlookIcon, outlook: OutlookIcon,
parallel_ai: ParallelIcon, parallel_ai: ParallelIcon,
@@ -221,11 +227,11 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
polymarket: PolymarketIcon, polymarket: PolymarketIcon,
postgresql: PostgresIcon, postgresql: PostgresIcon,
posthog: PosthogIcon, posthog: PosthogIcon,
pulse: PulseIcon, pulse_v2: PulseIcon,
qdrant: QdrantIcon, qdrant: QdrantIcon,
rds: RDSIcon, rds: RDSIcon,
reddit: RedditIcon, reddit: RedditIcon,
reducto: ReductoIcon, reducto_v2: ReductoIcon,
resend: ResendIcon, resend: ResendIcon,
s3: S3Icon, s3: S3Icon,
salesforce: SalesforceIcon, salesforce: SalesforceIcon,
@@ -244,11 +250,11 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
ssh: SshIcon, ssh: SshIcon,
stagehand: StagehandIcon, stagehand: StagehandIcon,
stripe: StripeIcon, stripe: StripeIcon,
stt: STTIcon, stt_v2: STTIcon,
supabase: SupabaseIcon, supabase: SupabaseIcon,
tavily: TavilyIcon, tavily: TavilyIcon,
telegram: TelegramIcon, telegram: TelegramIcon,
textract: TextractIcon, textract_v2: TextractIcon,
tinybird: TinybirdIcon, tinybird: TinybirdIcon,
translate: TranslateIcon, translate: TranslateIcon,
trello: TrelloIcon, trello: TrelloIcon,
@@ -257,7 +263,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
twilio_voice: TwilioIcon, twilio_voice: TwilioIcon,
typeform: TypeformIcon, typeform: TypeformIcon,
video_generator_v2: VideoIcon, video_generator_v2: VideoIcon,
vision: EyeIcon, vision_v2: EyeIcon,
wealthbox: WealthboxIcon, wealthbox: WealthboxIcon,
webflow: WebflowIcon, webflow: WebflowIcon,
whatsapp: WhatsAppIcon, whatsapp: WhatsAppIcon,

View File

@@ -152,3 +152,9 @@ Input → Agent (Google Search, Notion) → Function (Compile Report)
- **Sei spezifisch in System-Prompts**: Definiere die Rolle, den Ton und die Einschränkungen des Agenten klar. Je spezifischer deine Anweisungen sind, desto besser kann der Agent seinen vorgesehenen Zweck erfüllen. - **Sei spezifisch in System-Prompts**: Definiere die Rolle, den Ton und die Einschränkungen des Agenten klar. Je spezifischer deine Anweisungen sind, desto besser kann der Agent seinen vorgesehenen Zweck erfüllen.
- **Wähle die richtige Temperatureinstellung**: Verwende niedrigere Temperatureinstellungen (0-0,3), wenn Genauigkeit wichtig ist, oder erhöhe die Temperatur (0,7-2,0) für kreativere oder vielfältigere Antworten - **Wähle die richtige Temperatureinstellung**: Verwende niedrigere Temperatureinstellungen (0-0,3), wenn Genauigkeit wichtig ist, oder erhöhe die Temperatur (0,7-2,0) für kreativere oder vielfältigere Antworten
- **Nutze Tools effektiv**: Integriere Tools, die den Zweck des Agenten ergänzen und seine Fähigkeiten erweitern. Sei selektiv bei der Auswahl der Tools, um den Agenten nicht zu überfordern. Für Aufgaben mit wenig Überschneidung verwende einen anderen Agent-Block für die besten Ergebnisse. - **Nutze Tools effektiv**: Integriere Tools, die den Zweck des Agenten ergänzen und seine Fähigkeiten erweitern. Sei selektiv bei der Auswahl der Tools, um den Agenten nicht zu überfordern. Für Aufgaben mit wenig Überschneidung verwende einen anderen Agent-Block für die besten Ergebnisse.
## Best Practices
- **Seien Sie spezifisch in System-Prompts**: Definieren Sie die Rolle, den Ton und die Grenzen des Agenten klar. Je spezifischer Ihre Anweisungen sind, desto besser kann der Agent seinen beabsichtigten Zweck erfüllen.
- **Wählen Sie die richtige Temperatureinstellung**: Verwenden Sie niedrigere Temperatureinstellungen (00,3), wenn Genauigkeit wichtig ist, oder erhöhen Sie die Temperatur (0,72,0) für kreativere oder vielfältigere Antworten
- **Nutzen Sie Tools effektiv**: Integrieren Sie Tools, die den Zweck des Agenten ergänzen und seine Fähigkeiten erweitern. Seien Sie selektiv bei der Auswahl der Tools, um den Agenten nicht zu überfordern. Verwenden Sie für Aufgaben mit geringer Überschneidung einen weiteren Agent-Block für die besten Ergebnisse.

View File

@@ -255,3 +255,57 @@ console.log(`${processedItems} gültige Elemente verarbeitet`);
- **Setzen Sie vernünftige Grenzen**: Halten Sie die Anzahl der Iterationen in einem vernünftigen Rahmen, um lange Ausführungszeiten zu vermeiden - **Setzen Sie vernünftige Grenzen**: Halten Sie die Anzahl der Iterationen in einem vernünftigen Rahmen, um lange Ausführungszeiten zu vermeiden
- **Verwenden Sie ForEach für Sammlungen**: Verwenden Sie beim Verarbeiten von Arrays oder Objekten ForEach anstelle von For-Schleifen - **Verwenden Sie ForEach für Sammlungen**: Verwenden Sie beim Verarbeiten von Arrays oder Objekten ForEach anstelle von For-Schleifen
- **Behandeln Sie Fehler elegant**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen hinzuzufügen, um robuste Workflows zu gewährleisten - **Behandeln Sie Fehler elegant**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen hinzuzufügen, um robuste Workflows zu gewährleisten
## Eingaben und Ausgaben
<Tabs items={['Configuration', 'Variables', 'Results']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Schleifentyp</strong>: Wählen Sie zwischen 'for', 'forEach', 'while' oder 'doWhile'
</li>
<li>
<strong>Iterationen</strong>: Anzahl der Ausführungen (für for-Schleifen)
</li>
<li>
<strong>Sammlung</strong>: Array oder Objekt zum Durchlaufen (für forEach-Schleifen)
</li>
<li>
<strong>Bedingung</strong>: Boolescher Ausdruck zur Auswertung (für while/do-while-Schleifen)
</li>
</ul>
</Tab>
<Tab>
Verfügbar **innerhalb** der Schleife:
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>{"<loop.index>"}</strong>: Aktuelle Iterationsnummer (0-basiert)
</li>
<li>
<strong>{"<loop.currentItem>"}</strong>: Aktuell verarbeitetes Element (nur forEach)
</li>
<li>
<strong>{"<loop.items>"}</strong>: Vollständige Sammlung (nur forEach)
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>{"<blockname.results>"}</strong>: Array aller Iterationsergebnisse (Zugriff über Blocknamen)
</li>
<li>
<strong>Struktur</strong>: Ergebnisse behalten die Iterationsreihenfolge bei
</li>
<li>
<strong>Zugriff</strong>: Verfügbar in Blöcken nach Abschluss der Schleife
</li>
</ul>
</Tab>
</Tabs>
## Best Practices
- **Setzen Sie vernünftige Grenzen**: Halten Sie die Iterationsanzahl angemessen, um lange Ausführungszeiten zu vermeiden
- **Verwenden Sie ForEach für Sammlungen**: Verwenden Sie beim Verarbeiten von Arrays oder Objekten ForEach anstelle von For-Schleifen
- **Behandeln Sie Fehler elegant**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen hinzuzufügen, um robuste Workflows zu gewährleisten

View File

@@ -214,3 +214,51 @@ Wann Sie welche Methode verwenden sollten:
- **Nur unabhängige Operationen**: Stellen Sie sicher, dass Operationen nicht voneinander abhängen - **Nur unabhängige Operationen**: Stellen Sie sicher, dass Operationen nicht voneinander abhängen
- **Ratenbegrenzungen berücksichtigen**: Fügen Sie Verzögerungen oder Drosselungen für API-intensive Workflows hinzu - **Ratenbegrenzungen berücksichtigen**: Fügen Sie Verzögerungen oder Drosselungen für API-intensive Workflows hinzu
- **Fehlerbehandlung**: Jede Instanz sollte ihre eigenen Fehler angemessen behandeln - **Fehlerbehandlung**: Jede Instanz sollte ihre eigenen Fehler angemessen behandeln
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Parallel-Typ</strong>: Wählen Sie zwischen „count" oder „collection"
</li>
<li>
<strong>Anzahl</strong>: Anzahl der auszuführenden Instanzen (anzahlbasiert)
</li>
<li>
<strong>Collection</strong>: Array oder Objekt zur Verteilung (sammlungsbasiert)
</li>
</ul>
</Tab>
<Tab>
Verfügbar **innerhalb** der Parallelverarbeitung:
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>{"<parallel.index>"}</strong>: Instanznummer (0-basiert)
</li>
<li>
<strong>{"<parallel.currentItem>"}</strong>: Element für diese Instanz (nur sammlungsbasiert)
</li>
<li>
<strong>{"<parallel.items>"}</strong>: Vollständige Sammlung (nur sammlungsbasiert)
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>{"<blockname.results>"}</strong>: Array aller Instanzergebnisse (Zugriff über Blockname)
</li>
<li>
<strong>Zugriff</strong>: Verfügbar in Blöcken nach Abschluss der Parallelverarbeitung
</li>
</ul>
</Tab>
</Tabs>
## Best Practices
- **Nur unabhängige Operationen**: Stellen Sie sicher, dass Operationen nicht voneinander abhängen
- **Rate Limits beachten**: Fügen Sie Verzögerungen oder Drosselung für API-intensive Workflows hinzu
- **Fehlerbehandlung**: Jede Instanz sollte ihre eigenen Fehler ordnungsgemäß behandeln

View File

@@ -100,3 +100,18 @@ Input (Lead) → Router → Agent (Enterprise Sales) or Workflow (Self-serve)
- **Mit verschiedenen Eingaben testen**: Stellen Sie sicher, dass der Router verschiedene Eingabetypen, Grenzfälle und unerwartete Inhalte verarbeiten kann - **Mit verschiedenen Eingaben testen**: Stellen Sie sicher, dass der Router verschiedene Eingabetypen, Grenzfälle und unerwartete Inhalte verarbeiten kann
- **Routing-Leistung überwachen**: Überprüfen Sie Routing-Entscheidungen regelmäßig und verfeinern Sie Kriterien basierend auf tatsächlichen Nutzungsmustern - **Routing-Leistung überwachen**: Überprüfen Sie Routing-Entscheidungen regelmäßig und verfeinern Sie Kriterien basierend auf tatsächlichen Nutzungsmustern
- **Geeignete Modelle auswählen**: Verwenden Sie Modelle mit starken Argumentationsfähigkeiten für komplexe Routing-Entscheidungen - **Geeignete Modelle auswählen**: Verwenden Sie Modelle mit starken Argumentationsfähigkeiten für komplexe Routing-Entscheidungen
Wenn der Router keine geeignete Route für den gegebenen Kontext ermitteln kann, leitet er stattdessen zum **Fehlerpfad** weiter, anstatt willkürlich eine Route auszuwählen. Dies geschieht, wenn:
- Der Kontext keiner der definierten Routenbeschreibungen eindeutig entspricht
- Die KI feststellt, dass keine der verfügbaren Routen geeignet ist
## Best Practices
- **Klare Routenbeschreibungen verfassen**: Jede Routenbeschreibung sollte klar erklären, wann diese Route ausgewählt werden sollte. Seien Sie spezifisch bezüglich der Kriterien.
- **Routen gegenseitig ausschließend gestalten**: Stellen Sie nach Möglichkeit sicher, dass sich Routenbeschreibungen nicht überschneiden, um mehrdeutige Routing-Entscheidungen zu vermeiden.
- **Einen Fehlerpfad verbinden**: Behandeln Sie Fälle, in denen keine Route passt, indem Sie einen Fehlerbehandler für ein elegantes Fallback-Verhalten verbinden.
- **Aussagekräftige Routentitel verwenden**: Routentitel erscheinen im Workflow-Canvas, machen Sie sie daher für bessere Lesbarkeit aussagekräftig.
- **Mit verschiedenen Eingaben testen**: Stellen Sie sicher, dass der Router verschiedene Eingabetypen, Grenzfälle und unerwartete Inhalte verarbeitet.
- **Routing-Performance überwachen**: Überprüfen Sie Routing-Entscheidungen regelmäßig und verfeinern Sie Routenbeschreibungen basierend auf tatsächlichen Nutzungsmustern.
- **Geeignete Modelle wählen**: Verwenden Sie Modelle mit starken Reasoning-Fähigkeiten für komplexe Routing-Entscheidungen.

View File

@@ -169,3 +169,175 @@ copilotCost = (inputTokens × inputPrice + outputTokens × (outputPrice × 1.5))
<Callout type="info"> <Callout type="info">
Modellpreise werden pro Million Tokens angegeben. Die Berechnung teilt durch 1.000.000, um die tatsächlichen Kosten zu ermitteln. Siehe <a href="/execution/costs">die Seite zur Kostenberechnung</a> für Hintergründe und Beispiele. Modellpreise werden pro Million Tokens angegeben. Die Berechnung teilt durch 1.000.000, um die tatsächlichen Kosten zu ermitteln. Siehe <a href="/execution/costs">die Seite zur Kostenberechnung</a> für Hintergründe und Beispiele.
</Callout> </Callout>
Fahre mit der Maus über eine deiner Nachrichten und klicke auf **Bearbeiten**, um sie zu ändern und erneut zu senden. Dies ist nützlich, um deine Eingaben zu verfeinern.
### Nachrichtenwarteschlange
Wenn du eine Nachricht sendest, während Copilot noch antwortet, wird sie in die Warteschlange gestellt. Du kannst:
- Warteschlangennachrichten im erweiterbaren Warteschlangenpanel anzeigen
- Eine Nachricht aus der Warteschlange sofort senden (bricht die aktuelle Antwort ab)
- Nachrichten aus der Warteschlange entfernen
## Dateianhänge
Klicke auf das Anhang-Symbol, um Dateien mit deiner Nachricht hochzuladen. Unterstützte Dateitypen umfassen:
- Bilder (Vorschau-Thumbnails werden angezeigt)
- PDFs
- Textdateien, JSON, XML
- Andere Dokumentformate
Dateien werden als anklickbare Thumbnails angezeigt, die in einem neuen Tab geöffnet werden.
## Checkpoints & Änderungen
Wenn Copilot Änderungen an deinem Workflow vornimmt, speichert es Checkpoints, damit du bei Bedarf zurückkehren kannst.
### Checkpoints anzeigen
Fahre mit der Maus über eine Copilot-Nachricht und klicke auf das Checkpoints-Symbol, um gespeicherte Workflow-Zustände für diese Nachricht anzuzeigen.
### Änderungen rückgängig machen
Klicke bei jedem Checkpoint auf **Rückgängig machen**, um deinen Workflow auf diesen Zustand zurückzusetzen. Ein Bestätigungsdialog warnt dich, dass diese Aktion nicht rückgängig gemacht werden kann.
### Änderungen akzeptieren
Wenn Copilot Änderungen vorschlägt, kannst du:
- **Akzeptieren**: Die vorgeschlagenen Änderungen anwenden (`Mod+Shift+Enter`)
- **Ablehnen**: Die Änderungen verwerfen und deinen aktuellen Workflow beibehalten
## Denkblöcke
Bei komplexen Anfragen kann Copilot seinen Denkprozess in erweiterbaren Denkblöcken anzeigen:
- Blöcke werden automatisch erweitert, während Copilot denkt
- Klicken zum manuellen Erweitern/Reduzieren
- Zeigt die Dauer des Denkprozesses an
- Hilft dir zu verstehen, wie Copilot zu seiner Lösung gekommen ist
## Optionsauswahl
Wenn Copilot mehrere Optionen präsentiert, kannst du auswählen mit:
| Steuerung | Aktion |
|---------|--------|
| **1-9** | Option nach Nummer auswählen |
| **Pfeiltaste auf/ab** | Zwischen Optionen navigieren |
| **Eingabetaste** | Hervorgehobene Option auswählen |
Ausgewählte Optionen sind hervorgehoben; nicht ausgewählte Optionen erscheinen durchgestrichen.
## Tastenkombinationen
| Tastenkombination | Aktion |
|----------|--------|
| `@` | Kontextmenü öffnen |
| `/` | Slash-Befehle öffnen |
| `Arrow Up/Down` | Menüelemente navigieren |
| `Enter` | Menüelement auswählen |
| `Esc` | Menüs schließen |
| `Mod+Shift+Enter` | Copilot-Änderungen akzeptieren |
## Nutzungslimits
Die Copilot-Nutzung wird pro Token des zugrunde liegenden LLM abgerechnet. Wenn Sie Ihr Nutzungslimit erreichen, fordert Copilot Sie auf, Ihr Limit zu erhöhen. Sie können die Nutzung in Schritten (50 $, 100 $) von Ihrer aktuellen Basis aus hinzufügen.
<Callout type="info">
Siehe die [Seite zur Kostenberechnung](/execution/costs) für Abrechnungsdetails.
</Callout>
## Copilot MCP
Sie können Copilot als MCP-Server in Ihrem bevorzugten Editor oder AI-Client verwenden. Damit können Sie Sim-Workflows direkt aus Tools wie Cursor, Claude Code, Claude Desktop und VS Code erstellen, testen, bereitstellen und verwalten.
### Generieren eines Copilot-API-Schlüssels
Um sich mit dem Copilot-MCP-Server zu verbinden, benötigen Sie einen **Copilot-API-Schlüssel**:
1. Gehen Sie zu [sim.ai](https://sim.ai) und melden Sie sich an
2. Navigieren Sie zu **Einstellungen** → **Copilot**
3. Klicken Sie auf **API-Schlüssel generieren**
4. Kopieren Sie den Schlüssel er wird nur einmal angezeigt
Der Schlüssel sieht aus wie `sk-sim-copilot-...`. Sie werden ihn in der folgenden Konfiguration verwenden.
### Cursor
Fügen Sie Folgendes zu Ihrer `.cursor/mcp.json` (Projektebene) oder den globalen Cursor-MCP-Einstellungen hinzu:
```json
{
"mcpServers": {
"sim-copilot": {
"url": "https://www.sim.ai/api/mcp/copilot",
"headers": {
"X-API-Key": "YOUR_COPILOT_API_KEY"
}
}
}
}
```
Ersetzen Sie `YOUR_COPILOT_API_KEY` durch den oben generierten Schlüssel.
### Claude Code
Führen Sie den folgenden Befehl aus, um den Copilot MCP-Server hinzuzufügen:
```bash
claude mcp add sim-copilot \
--transport http \
https://www.sim.ai/api/mcp/copilot \
--header "X-API-Key: YOUR_COPILOT_API_KEY"
```
Ersetzen Sie `YOUR_COPILOT_API_KEY` durch Ihren Schlüssel.
### Claude Desktop
Claude Desktop benötigt [`mcp-remote`](https://www.npmjs.com/package/mcp-remote), um sich mit HTTP-basierten MCP-Servern zu verbinden. Fügen Sie Folgendes zu Ihrer Claude Desktop-Konfigurationsdatei hinzu (`~/Library/Application Support/Claude/claude_desktop_config.json` unter macOS):
```json
{
"mcpServers": {
"sim-copilot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://www.sim.ai/api/mcp/copilot",
"--header",
"X-API-Key: YOUR_COPILOT_API_KEY"
]
}
}
}
```
Ersetzen Sie `YOUR_COPILOT_API_KEY` durch Ihren Schlüssel.
### VS Code
Fügen Sie Folgendes zu Ihrer VS Code `settings.json` oder Workspace `.vscode/settings.json` hinzu:
```json
{
"mcp": {
"servers": {
"sim-copilot": {
"type": "http",
"url": "https://www.sim.ai/api/mcp/copilot",
"headers": {
"X-API-Key": "YOUR_COPILOT_API_KEY"
}
}
}
}
}
```
Ersetzen Sie `YOUR_COPILOT_API_KEY` durch Ihren Schlüssel.
<Callout type="info">
Für selbst gehostete Deployments ersetzen Sie `https://www.sim.ai` durch Ihre selbst gehostete Sim-URL.
</Callout>

View File

@@ -75,3 +75,40 @@ Für selbst gehostete Bereitstellungen können Enterprise-Funktionen über Umgeb
<Callout type="warn"> <Callout type="warn">
BYOK ist nur im gehosteten Sim verfügbar. Selbst gehostete Deployments konfigurieren AI-Provider-Schlüssel direkt über Umgebungsvariablen. BYOK ist nur im gehosteten Sim verfügbar. Selbst gehostete Deployments konfigurieren AI-Provider-Schlüssel direkt über Umgebungsvariablen.
</Callout> </Callout>
Wenn die Abrechnung deaktiviert ist, verwenden Sie die Admin-API zur Verwaltung von Organisationen:
```bash
# Create an organization
curl -X POST https://your-instance/api/v1/admin/organizations \
-H "x-admin-key: YOUR_ADMIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "My Organization", "ownerId": "user-id-here"}'
# Add a member
curl -X POST https://your-instance/api/v1/admin/organizations/{orgId}/members \
-H "x-admin-key: YOUR_ADMIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "user-id-here", "role": "admin"}'
```
### Workspace-Mitglieder
Wenn Einladungen deaktiviert sind, verwenden Sie die Admin-API zur direkten Verwaltung von Workspace-Mitgliedschaften:
```bash
# Add a user to a workspace
curl -X POST https://your-instance/api/v1/admin/workspaces/{workspaceId}/members \
-H "x-admin-key: YOUR_ADMIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "user-id-here", "permissions": "write"}'
# Remove a user from a workspace
curl -X DELETE "https://your-instance/api/v1/admin/workspaces/{workspaceId}/members?userId=user-id-here" \
-H "x-admin-key: YOUR_ADMIN_API_KEY"
```
### Hinweise
- Die Aktivierung von `ACCESS_CONTROL_ENABLED` aktiviert automatisch Organisationen, da die Zugriffskontrolle eine Organisationsmitgliedschaft erfordert.
- Wenn `DISABLE_INVITATIONS` gesetzt ist, können Benutzer keine Einladungen versenden. Verwenden Sie stattdessen die Admin-API zur Verwaltung von Workspace- und Organisationsmitgliedschaften.

View File

@@ -241,4 +241,45 @@ Dies verteilt große Mehrverbrauchsgebühren über den Monat, anstatt einer gro
- Überprüfen Sie Ihre aktuelle Nutzung unter [Einstellungen → Abonnement](https://sim.ai/settings/subscription) - Überprüfen Sie Ihre aktuelle Nutzung unter [Einstellungen → Abonnement](https://sim.ai/settings/subscription)
- Erfahren Sie mehr über [Protokollierung](/execution/logging), um Ausführungsdetails zu verfolgen - Erfahren Sie mehr über [Protokollierung](/execution/logging), um Ausführungsdetails zu verfolgen
- Entdecken Sie die [externe API](/execution/api) für programmatische Kostenüberwachung - Entdecken Sie die [externe API](/execution/api) für programmatische Kostenüberwachung
- Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) an, um Kosten zu reduzieren - Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) an, um Kosten zu reduzieren
**Pro-Tarif (20 $/Monat):**
- Monatliches Abonnement beinhaltet 20 $ Nutzung
- Nutzung unter 20 $ → Keine zusätzlichen Gebühren
- Nutzung über 20 $ → Mehrverbrauch wird am Monatsende abgerechnet
- Beispiel: 35 $ Nutzung = 20 $ (Abonnement) + 15 $ (Mehrverbrauch)
**Team-Tarif (40 $/Platz/Monat):**
- Gemeinsame Nutzung über alle Teammitglieder hinweg
- Mehrverbrauch wird aus der gesamten Teamnutzung berechnet
- Der Organisationsinhaber erhält eine Rechnung
**Enterprise-Tarife:**
- Fester Monatspreis, keine Mehrverbräuche
- Individuelle Nutzungslimits gemäß Vereinbarung
### Schwellenwertabrechnung
Wenn der nicht abgerechnete Mehrverbrauch 50 $ erreicht, rechnet Sim automatisch den gesamten nicht abgerechneten Betrag ab.
**Beispiel:**
- Tag 10: 70 $ Mehrverbrauch → 70 $ sofort abrechnen
- Tag 15: Weitere 35 $ Nutzung (105 $ gesamt) → Bereits abgerechnet, keine Aktion
- Tag 20: Weitere 50 $ Nutzung (155 $ gesamt, 85 $ nicht abgerechnet) → 85 $ sofort abrechnen
Dies verteilt hohe Mehrverbrauchsgebühren über den Monat hinweg, anstatt einer großen Rechnung am Periodenende.
## Best Practices für das Kostenmanagement
1. **Regelmäßig überwachen**: Überprüfen Sie Ihr Nutzungs-Dashboard häufig, um Überraschungen zu vermeiden
2. **Budgets festlegen**: Nutzen Sie Tariflimits als Leitplanken für Ihre Ausgaben
3. **Workflows optimieren**: Überprüfen Sie kostenintensive Ausführungen und optimieren Sie Prompts oder Modellauswahl
4. **Passende Modelle verwenden**: Stimmen Sie die Modellkomplexität auf die Aufgabenanforderungen ab
5. **Ähnliche Aufgaben bündeln**: Kombinieren Sie mehrere Anfragen, wenn möglich, um den Overhead zu reduzieren
## Nächste Schritte
- Überprüfen Sie Ihre aktuelle Nutzung unter [Einstellungen → Abonnement](https://sim.ai/settings/subscription)
- Erfahren Sie mehr über [Protokollierung](/execution/logging), um Ausführungsdetails zu verfolgen
- Erkunden Sie die [externe API](/execution/api) für programmatische Kostenüberwachung
- Informieren Sie sich über [Workflow-Optimierungstechniken](/blocks), um Kosten zu reduzieren

View File

@@ -0,0 +1,172 @@
---
title: Dateien übergeben
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
Sim macht es einfach, mit Dateien in Ihren Workflows zu arbeiten. Blöcke können Dateien empfangen, verarbeiten und nahtlos an andere Blöcke weitergeben.
## Dateiobjekte
Wenn Blöcke Dateien ausgeben (wie Gmail-Anhänge, generierte Bilder oder geparste Dokumente), geben sie ein standardisiertes Dateiobjekt zurück:
```json
{
"name": "report.pdf",
"url": "https://...",
"base64": "JVBERi0xLjQK...",
"type": "application/pdf",
"size": 245678
}
```
Sie können auf alle diese Eigenschaften zugreifen, wenn Sie auf Dateien aus vorherigen Blöcken verweisen.
## Der Datei-Block
Der **Datei-Block** ist der universelle Einstiegspunkt für Dateien in Ihren Workflows. Er akzeptiert Dateien aus jeder Quelle und gibt standardisierte Dateiobjekte aus, die mit allen Integrationen funktionieren.
**Eingaben:**
- **Hochgeladene Dateien** - Dateien direkt per Drag & Drop oder Auswahl hinzufügen
- **Externe URLs** - Jede öffentlich zugängliche Datei-URL
- **Dateien von anderen Blöcken** - Dateien von Gmail-Anhängen, Slack-Downloads usw. übergeben
**Ausgaben:**
- Eine Liste von `UserFile`-Objekten mit konsistenter Struktur (`name`, `url`, `base64`, `type`, `size`)
- `combinedContent` - Extrahierter Textinhalt aus allen Dateien (für Dokumente)
**Beispielverwendung:**
```
// Get all files from the File block
<file.files>
// Get the first file
<file.files[0]>
// Get combined text content from parsed documents
<file.combinedContent>
```
Der Datei-Block führt automatisch folgende Aktionen aus:
- Erkennt Dateitypen aus URLs und Erweiterungen
- Extrahiert Text aus PDFs, CSVs und Dokumenten
- Generiert Base64-Kodierung für Binärdateien
- Erstellt vorsignierte URLs für sicheren Zugriff
Verwenden Sie den Datei-Block, wenn Sie Dateien aus verschiedenen Quellen normalisieren müssen, bevor Sie sie an andere Blöcke wie Vision, STT oder E-Mail-Integrationen übergeben.
## Dateien zwischen Blöcken übergeben
Verweisen Sie auf Dateien aus vorherigen Blöcken über das Tag-Dropdown. Klicken Sie in ein beliebiges Dateieingabefeld und geben Sie `<` ein, um verfügbare Ausgaben anzuzeigen.
**Häufige Muster:**
```
// Single file from a block
<gmail.attachments[0]>
// Pass the whole file object
<file_parser.files[0]>
// Access specific properties
<gmail.attachments[0].name>
<gmail.attachments[0].base64>
```
Die meisten Blöcke akzeptieren das vollständige Dateiobjekt und extrahieren automatisch, was sie benötigen. Sie müssen `base64` oder `url` in den meisten Fällen nicht manuell extrahieren.
## Workflows mit Dateien auslösen
Wenn Sie einen Workflow über die API aufrufen, der Dateieingaben erwartet, fügen Sie Dateien in Ihre Anfrage ein:
<Tabs items={['Base64', 'URL']}>
<Tab value="Base64">
```bash
curl -X POST "https://sim.ai/api/workflows/YOUR_WORKFLOW_ID/execute" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"document": {
"name": "report.pdf",
"base64": "JVBERi0xLjQK...",
"type": "application/pdf"
}
}'
```
</Tab>
<Tab value="URL">
```bash
curl -X POST "https://sim.ai/api/workflows/YOUR_WORKFLOW_ID/execute" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"document": {
"name": "report.pdf",
"url": "https://example.com/report.pdf",
"type": "application/pdf"
}
}'
```
</Tab>
</Tabs>
Der Start-Block des Workflows sollte ein Eingabefeld haben, das für den Empfang des Dateiparameters konfiguriert ist.
## Dateien in API-Antworten empfangen
Wenn ein Workflow Dateien ausgibt, sind diese in der Antwort enthalten:
```json
{
"success": true,
"output": {
"generatedFile": {
"name": "output.png",
"url": "https://...",
"base64": "iVBORw0KGgo...",
"type": "image/png",
"size": 34567
}
}
}
```
Verwenden Sie `url` für direkte Downloads oder `base64` für Inline-Verarbeitung.
## Blöcke, die mit Dateien arbeiten
**Dateieingaben:**
- **File** - Dokumente, Bilder und Textdateien parsen
- **Vision** - Bilder mit KI-Modellen analysieren
- **Mistral Parser** - Text aus PDFs extrahieren
**Dateiausgaben:**
- **Gmail** - E-Mail-Anhänge
- **Slack** - Heruntergeladene Dateien
- **TTS** - Generierte Audiodateien
- **Video Generator** - Generierte Videos
- **Image Generator** - Generierte Bilder
**Dateispeicherung:**
- **Supabase** - Upload/Download aus dem Speicher
- **S3** - AWS S3-Operationen
- **Google Drive** - Drive-Dateioperationen
- **Dropbox** - Dropbox-Dateioperationen
<Callout type="info">
Dateien sind automatisch für nachgelagerte Blöcke verfügbar. Die Ausführungs-Engine übernimmt die gesamte Dateiübertragung und Formatkonvertierung.
</Callout>
## Best Practices
1. **Dateiobjekte direkt verwenden** - Übergeben Sie das vollständige Dateiobjekt, anstatt einzelne Eigenschaften zu extrahieren. Blöcke übernehmen die Konvertierung automatisch.
2. **Dateitypen prüfen** - Stellen Sie sicher, dass der Dateityp mit dem übereinstimmt, was der empfangende Block erwartet. Der Vision-Block benötigt Bilder, der File-Block verarbeitet Dokumente.
3. **Dateigröße beachten** Große Dateien erhöhen die Ausführungszeit. Bei sehr großen Dateien sollten Sie Storage-Blöcke (S3, Supabase) für die Zwischenspeicherung verwenden.

View File

@@ -0,0 +1,142 @@
---
title: Formular-Bereitstellung
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
Stellen Sie Ihren Workflow als einbettbares Formular bereit, das Benutzer auf Ihrer Website ausfüllen oder per Link teilen können. Formularübermittlungen lösen Ihren Workflow mit dem `form` Trigger-Typ aus.
## Übersicht
Die Formular-Bereitstellung verwandelt das Eingabeformat Ihres Workflows in ein responsives Formular, das:
- Per Direktlink geteilt werden kann (z. B. `https://sim.ai/form/my-survey`)
- Mit einem iframe in jede Website eingebettet werden kann
Wenn ein Benutzer das Formular absendet, wird Ihr Workflow mit den Formulardaten ausgelöst.
<Callout type="info">
Formulare leiten ihre Felder vom Eingabeformat des Start-Blocks Ihres Workflows ab. Jedes Feld wird zu einer Formulareingabe mit dem entsprechenden Typ.
</Callout>
## Erstellen eines Formulars
1. Öffnen Sie Ihren Workflow und klicken Sie auf **Bereitstellen**
2. Wählen Sie den Tab **Formular**
3. Konfigurieren Sie:
- **URL**: Eindeutige Kennung (z. B. `contact-form` → `sim.ai/form/contact-form`)
- **Titel**: Formularüberschrift
- **Beschreibung**: Optionaler Untertitel
- **Formularfelder**: Passen Sie Beschriftungen und Beschreibungen für jedes Feld an
- **Authentifizierung**: Öffentlich, passwortgeschützt oder E-Mail-Whitelist
- **Dankesnachricht**: Wird nach der Übermittlung angezeigt
4. Klicken Sie auf **Starten**
## Feldzuordnung
| Eingabeformat-Typ | Formularfeld |
|------------------|------------|
| `string` | Texteingabe |
| `number` | Zahleneingabe |
| `boolean` | Umschalter |
| `object` | JSON-Editor |
| `array` | JSON-Array-Editor |
| `files` | Datei-Upload |
## Zugriffskontrolle
| Modus | Beschreibung |
|------|-------------|
| **Öffentlich** | Jeder mit dem Link kann absenden |
| **Passwort** | Benutzer müssen ein Passwort eingeben |
| **E-Mail-Whitelist** | Nur angegebene E-Mails/Domains können absenden |
Für E-Mail-Whitelist:
- Exakt: `user@example.com`
- Domain: `@example.com` (alle E-Mails von der Domain)
## Einbettung
### Direkter Link
```
https://sim.ai/form/your-identifier
```
### Iframe
```html
<iframe
src="https://sim.ai/form/your-identifier"
width="100%"
height="600"
frameborder="0"
title="Form"
></iframe>
```
## API-Übermittlung
Formulare programmatisch übermitteln:
<Tabs items={['cURL', 'TypeScript']}>
<Tab value="cURL">
```bash
curl -X POST https://sim.ai/api/form/your-identifier \
-H "Content-Type: application/json" \
-d '{
"formData": {
"name": "John Doe",
"email": "john@example.com"
}
}'
```
</Tab>
<Tab value="TypeScript">
```typescript
const response = await fetch('https://sim.ai/api/form/your-identifier', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
formData: {
name: 'John Doe',
email: 'john@example.com'
}
})
});
const result = await response.json();
// { success: true, data: { executionId: '...' } }
```
</Tab>
</Tabs>
### Geschützte Formulare
Für passwortgeschützte Formulare:
```bash
curl -X POST https://sim.ai/api/form/your-identifier \
-H "Content-Type: application/json" \
-d '{ "password": "secret", "formData": { "name": "John" } }'
```
Für E-Mail-geschützte Formulare:
```bash
curl -X POST https://sim.ai/api/form/your-identifier \
-H "Content-Type: application/json" \
-d '{ "email": "allowed@example.com", "formData": { "name": "John" } }'
```
## Fehlerbehebung
**"Keine Eingabefelder konfiguriert"** - Fügen Sie Eingabeformat-Felder zu Ihrem Start-Block hinzu.
**Formular lädt nicht im Iframe** - Überprüfen Sie, ob die CSP Ihrer Website Iframes von `sim.ai` erlaubt.
**Übermittlungen schlagen fehl** - Überprüfen Sie, ob die Kennung korrekt ist und erforderliche Felder ausgefüllt sind.

View File

@@ -41,9 +41,6 @@ Diese Tastenkombinationen wechseln zwischen den Panel-Tabs auf der rechten Seite
| Tastenkombination | Aktion | | Tastenkombination | Aktion |
|----------|--------| |----------|--------|
| `C` | Copilot-Tab fokussieren |
| `T` | Toolbar-Tab fokussieren |
| `E` | Editor-Tab fokussieren |
| `Mod` + `F` | Toolbar-Suche fokussieren | | `Mod` + `F` | Toolbar-Suche fokussieren |
## Globale Navigation ## Globale Navigation

View File

@@ -0,0 +1,394 @@
---
title: Kurzreferenz
description: Wesentliche Aktionen zum Navigieren und Verwenden des Sim-Workflow-Editors
---
import { Callout } from 'fumadocs-ui/components/callout'
import { ActionImage, ActionVideo } from '@/components/ui/action-media'
Eine schnelle Übersicht für alltägliche Aktionen im Sim-Workflow-Editor. Für Tastaturkürzel siehe [Tastaturkürzel](/keyboard-shortcuts).
<Callout type="info">
**Mod** bezieht sich auf `Cmd` unter macOS und `Ctrl` unter Windows/Linux.
</Callout>
## Arbeitsbereiche
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Arbeitsbereich erstellen</td>
<td>Arbeitsbereich-Dropdown anklicken → **Neuer Arbeitsbereich**</td>
<td><ActionVideo src="quick-reference/create-workspace.mp4" alt="Arbeitsbereich erstellen" /></td>
</tr>
<tr>
<td>Arbeitsbereiche wechseln</td>
<td>Arbeitsbereich-Dropdown anklicken → Arbeitsbereich auswählen</td>
<td><ActionVideo src="quick-reference/switch-workspace.mp4" alt="Arbeitsbereiche wechseln" /></td>
</tr>
<tr>
<td>Teammitglieder einladen</td>
<td>Seitenleiste → **Einladen**</td>
<td><ActionVideo src="quick-reference/invite.mp4" alt="Teammitglieder einladen" /></td>
</tr>
<tr>
<td>Arbeitsbereich umbenennen</td>
<td>Rechtsklick auf Arbeitsbereich → **Umbenennen**</td>
<td rowSpan={4}><ActionImage src="/static/quick-reference/workspace-context-menu.png" alt="Arbeitsbereich-Kontextmenü" /></td>
</tr>
<tr>
<td>Arbeitsbereich duplizieren</td>
<td>Rechtsklick auf Arbeitsbereich → **Duplizieren**</td>
</tr>
<tr>
<td>Arbeitsbereich exportieren</td>
<td>Rechtsklick auf Arbeitsbereich → **Exportieren**</td>
</tr>
<tr>
<td>Arbeitsbereich löschen</td>
<td>Rechtsklick auf Arbeitsbereich → **Löschen**</td>
</tr>
</tbody>
</table>
## Workflows
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Workflow erstellen</td>
<td>**+**-Schaltfläche in der Seitenleiste anklicken</td>
<td><ActionImage src="/static/quick-reference/create-workflow.png" alt="Workflow erstellen" /></td>
</tr>
<tr>
<td>Workflows neu anordnen / verschieben</td>
<td>Workflow nach oben/unten oder auf einen Ordner ziehen</td>
<td><ActionVideo src="quick-reference/reordering.mp4" alt="Workflows neu anordnen" /></td>
</tr>
<tr>
<td>Workflow importieren</td>
<td>Import-Schaltfläche in der Seitenleiste anklicken → Datei auswählen</td>
<td><ActionImage src="/static/quick-reference/import-workflow.png" alt="Workflow importieren" /></td>
</tr>
<tr>
<td>Mehrere Workflows auswählen</td>
<td>`Mod+Click` oder `Shift+Click` Workflows in der Seitenleiste</td>
<td><ActionVideo src="quick-reference/multiselect.mp4" alt="Mehrere Workflows auswählen" /></td>
</tr>
<tr>
<td>In neuem Tab öffnen</td>
<td>Rechtsklick auf Workflow → **In neuem Tab öffnen**</td>
<td rowSpan={6}><ActionImage src="/static/quick-reference/workflow-context-menu.png" alt="Workflow-Kontextmenü" /></td>
</tr>
<tr>
<td>Workflow umbenennen</td>
<td>Rechtsklick auf Workflow → **Umbenennen**</td>
</tr>
<tr>
<td>Workflow-Farbe zuweisen</td>
<td>Rechtsklick auf Workflow → **Farbe ändern**</td>
</tr>
<tr>
<td>Workflow duplizieren</td>
<td>Rechtsklick auf Workflow → **Duplizieren**</td>
</tr>
<tr>
<td>Workflow exportieren</td>
<td>Rechtsklick auf Workflow → **Exportieren**</td>
</tr>
<tr>
<td>Workflow löschen</td>
<td>Rechtsklick auf Workflow → **Löschen**</td>
</tr>
<tr>
<td>Ordner umbenennen</td>
<td>Rechtsklick auf Ordner → **Umbenennen**</td>
<td rowSpan={6}><ActionImage src="/static/quick-reference/folder-context-menu.png" alt="Ordner-Kontextmenü" /></td>
</tr>
<tr>
<td>Workflow in Ordner erstellen</td>
<td>Rechtsklick auf Ordner → **Workflow erstellen**</td>
</tr>
<tr>
<td>Ordner in Ordner erstellen</td>
<td>Rechtsklick auf Ordner → **Ordner erstellen**</td>
</tr>
<tr>
<td>Ordner duplizieren</td>
<td>Rechtsklick auf Ordner → **Duplizieren**</td>
</tr>
<tr>
<td>Ordner exportieren</td>
<td>Rechtsklick auf Ordner → **Exportieren**</td>
</tr>
<tr>
<td>Ordner löschen</td>
<td>Rechtsklick auf Ordner → **Löschen**</td>
</tr>
</tbody>
</table>
## Blöcke
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Block hinzufügen</td>
<td>Aus Toolbar-Panel ziehen oder Rechtsklick auf Canvas → **Block hinzufügen**</td>
<td><ActionVideo src="quick-reference/add-block.mp4" alt="Block hinzufügen" /></td>
</tr>
<tr>
<td>Mehrere Blöcke auswählen</td>
<td>`Mod+Click` zusätzliche Blöcke oder Shift-Ziehen für Auswahlrahmen</td>
<td><ActionVideo src="quick-reference/multiselect-blocks.mp4" alt="Mehrere Blöcke auswählen" /></td>
</tr>
<tr>
<td>Blöcke kopieren</td>
<td>`Mod+C` mit ausgewählten Blöcken</td>
<td rowSpan={2}><ActionVideo src="quick-reference/copy-paste.mp4" alt="Blöcke kopieren und einfügen" /></td>
</tr>
<tr>
<td>Blöcke einfügen</td>
<td>`Mod+V` zum Einfügen kopierter Blöcke</td>
</tr>
<tr>
<td>Blöcke duplizieren</td>
<td>Rechtsklick → **Duplizieren**</td>
<td><ActionVideo src="quick-reference/duplicate-block.mp4" alt="Blöcke duplizieren" /></td>
</tr>
<tr>
<td>Blöcke löschen</td>
<td>`Delete` oder `Backspace` Taste oder Rechtsklick → **Löschen**</td>
<td><ActionImage src="/static/quick-reference/delete-block.png" alt="Block löschen" /></td>
</tr>
<tr>
<td>Block umbenennen</td>
<td>Auf Blocknamen im Header klicken oder im Editor-Panel bearbeiten</td>
<td><ActionVideo src="quick-reference/rename-block.mp4" alt="Block umbenennen" /></td>
</tr>
<tr>
<td>Block aktivieren/deaktivieren</td>
<td>Rechtsklick → **Aktivieren/Deaktivieren**</td>
<td><ActionImage src="/static/quick-reference/disable-block.png" alt="Block deaktivieren" /></td>
</tr>
<tr>
<td>Block sperren/entsperren</td>
<td>Über Block hovern → Auf Schloss-Symbol klicken (nur Admin)</td>
<td><ActionImage src="/static/quick-reference/lock-block.png" alt="Block sperren" /></td>
</tr>
<tr>
<td>Handle-Ausrichtung umschalten</td>
<td>Rechtsklick → **Handles umschalten**</td>
<td><ActionVideo src="quick-reference/toggle-handles.mp4" alt="Handle-Ausrichtung umschalten" /></td>
</tr>
<tr>
<td>Block konfigurieren</td>
<td>Block auswählen → Editor-Panel rechts verwenden</td>
<td><ActionVideo src="quick-reference/configure-block.mp4" alt="Block konfigurieren" /></td>
</tr>
</tbody>
</table>
## Verbindungen
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Verbindung erstellen</td>
<td>Vom Ausgangs-Handle zum Eingangs-Handle ziehen</td>
<td><ActionVideo src="quick-reference/connect-blocks.mp4" alt="Blöcke verbinden" /></td>
</tr>
<tr>
<td>Verbindung löschen</td>
<td>Auf Kante klicken zum Auswählen → `Delete` Taste</td>
<td><ActionVideo src="quick-reference/delete-connection.mp4" alt="Verbindung löschen" /></td>
</tr>
<tr>
<td>Ausgabe in anderem Block verwenden</td>
<td>Verbindungs-Tag in Eingabefeld ziehen</td>
<td><ActionVideo src="quick-reference/connection-tag.mp4" alt="Verbindungs-Tag verwenden" /></td>
</tr>
</tbody>
</table>
## Panels und Ansichten
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Symbolleiste durchsuchen</td>
<td>`Mod+F`</td>
<td><ActionVideo src="quick-reference/search-toolbar.mp4" alt="Symbolleiste durchsuchen" /></td>
</tr>
<tr>
<td>Alles durchsuchen</td>
<td>`Mod+K`</td>
<td><ActionImage src="/static/quick-reference/search-everything.png" alt="Alles durchsuchen" /></td>
</tr>
<tr>
<td>Manuellen Modus umschalten</td>
<td>Klicken Sie auf die Umschalt-Schaltfläche, um zwischen manuell und Selektor zu wechseln</td>
<td><ActionImage src="/static/quick-reference/toggle-manual-mode.png" alt="Manuellen Modus umschalten" /></td>
</tr>
<tr>
<td>Seitenleiste ein-/ausklappen</td>
<td>Klicken Sie auf die Einklappen-Schaltfläche in der Seitenleiste</td>
<td><ActionVideo src="quick-reference/collapse-sidebar.mp4" alt="Seitenleiste einklappen" /></td>
</tr>
</tbody>
</table>
## Ausführen und Testen
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Workflow ausführen</td>
<td>Klicken Sie auf die Schaltfläche Workflow ausführen oder `Mod+Enter`</td>
<td><ActionImage src="/static/quick-reference/run-workflow.png" alt="Workflow ausführen" /></td>
</tr>
<tr>
<td>Workflow stoppen</td>
<td>Klicken Sie auf die Stopp-Schaltfläche oder `Mod+Enter` während der Ausführung</td>
<td><ActionImage src="/static/quick-reference/stop-workflow.png" alt="Workflow stoppen" /></td>
</tr>
<tr>
<td>Mit Chat testen</td>
<td>Verwenden Sie das Chat-Panel auf der rechten Seite</td>
<td><ActionImage src="/static/quick-reference/test-chat.png" alt="Mit Chat testen" /></td>
</tr>
<tr>
<td>Ausgabe zum Anzeigen auswählen</td>
<td>Klicken Sie auf das Dropdown-Menü im Chat-Panel → Wählen Sie Block-Ausgabe aus</td>
<td><ActionImage src="/static/quick-reference/output-select.png" alt="Ausgabe zum Anzeigen auswählen" /></td>
</tr>
<tr>
<td>Chat-Verlauf löschen</td>
<td>Klicken Sie auf die Löschen-Schaltfläche im Chat-Panel</td>
<td><ActionImage src="/static/quick-reference/clear-chat.png" alt="Chat-Verlauf löschen" /></td>
</tr>
<tr>
<td>Ab Block ausführen</td>
<td>Bewegen Sie den Mauszeiger über den Block → Klicken Sie auf die Wiedergabe-Schaltfläche oder Rechtsklick → **Ab Block ausführen**</td>
<td><ActionImage src="/static/quick-reference/run-from-block.png" alt="Ab Block ausführen" /></td>
</tr>
<tr>
<td>Bis Block ausführen</td>
<td>Rechtsklick auf Block → **Bis Block ausführen**</td>
<td><ActionImage src="/static/quick-reference/run-until-block.png" alt="Bis Block ausführen" /></td>
</tr>
<tr>
<td>Ausführungsprotokolle anzeigen</td>
<td>Öffnen Sie das Terminal-Panel unten oder `Mod+L`</td>
<td><ActionImage src="/static/quick-reference/terminal.png" alt="Terminal für Ausführungsprotokolle" /></td>
</tr>
<tr>
<td>Protokolle filtern</td>
<td>Klicken Sie auf das Filter-Symbol im Terminal → Filtern Sie nach Block oder Status</td>
<td><ActionImage src="/static/quick-reference/filter-block.png" alt="Protokolle nach Block filtern" /></td>
</tr>
<tr>
<td>Protokolle durchsuchen</td>
<td>Verwenden Sie das Suchfeld im Terminal oder Rechtsklick auf Protokolleintrag → **Suchen**</td>
<td><ActionImage src="/static/quick-reference/terminal-search.png" alt="Protokolle durchsuchen" /></td>
</tr>
<tr>
<td>Protokolleintrag kopieren</td>
<td>Zwischenablage-Symbol oder Rechtsklick auf Protokolleintrag → **Kopieren**</td>
<td><ActionImage src="/static/quick-reference/copy-log.png" alt="Protokolleintrag kopieren" /></td>
</tr>
<tr>
<td>Terminal leeren</td>
<td>Papierkorb-Symbol oder `Mod+D`</td>
<td><ActionImage src="/static/quick-reference/clear-terminal.png" alt="Terminal leeren" /></td>
</tr>
</tbody>
</table>
## Bereitstellung
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Workflow bereitstellen</td>
<td>Klicken Sie auf die Schaltfläche **Bereitstellen** im Panel</td>
<td><ActionImage src="/static/quick-reference/deploy.png" alt="Workflow bereitstellen" /></td>
</tr>
<tr>
<td>Bereitstellung aktualisieren</td>
<td>Klicken Sie auf **Aktualisieren**, wenn Änderungen erkannt werden</td>
<td><ActionImage src="/static/quick-reference/update-deployment.png" alt="Bereitstellung aktualisieren" /></td>
</tr>
<tr>
<td>Bereitstellungsstatus anzeigen</td>
<td>Überprüfen Sie die Statusanzeige (Live/Aktualisieren/Bereitstellen) im Tab „Bereitstellen"</td>
<td><ActionImage src="/static/quick-reference/view-deployment.png" alt="Bereitstellungsstatus anzeigen" /></td>
</tr>
<tr>
<td>Bereitstellung zurücksetzen</td>
<td>Greifen Sie auf frühere Versionen im Tab „Bereitstellen" zu → **Zu Live befördern**</td>
<td><ActionImage src="/static/quick-reference/promote-deployment.png" alt="Bereitstellung zu Live befördern" /></td>
</tr>
<tr>
<td>Versionsbeschreibung hinzufügen</td>
<td>Tab „Bereitstellen" → Klicken Sie auf das Beschreibungssymbol → Beschreibung hinzufügen oder generieren</td>
<td><ActionVideo src="quick-reference/deployment-description.mp4" alt="Versionsbeschreibung für Bereitstellung hinzufügen" /></td>
</tr>
<tr>
<td>API-Endpunkt kopieren</td>
<td>Tab „Bereitstellen" → API → API-cURL kopieren</td>
<td><ActionImage src="/static/quick-reference/copy-api.png" alt="API-Endpunkt kopieren" /></td>
</tr>
</tbody>
</table>
## Variablen
<table>
<thead>
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
</thead>
<tbody>
<tr>
<td>Workflow-Variable hinzufügen / bearbeiten / löschen</td>
<td>Panel → Variablen → **Variable hinzufügen**, zum Bearbeiten klicken oder Löschsymbol verwenden</td>
<td><ActionImage src="/static/quick-reference/variables.png" alt="Variablen-Panel" /></td>
</tr>
<tr>
<td>Umgebungsvariable hinzufügen</td>
<td>Einstellungen → **Umgebungsvariablen** → **Hinzufügen**</td>
<td><ActionImage src="/static/quick-reference/add-env-variable.png" alt="Umgebungsvariable hinzufügen" /></td>
</tr>
<tr>
<td>Auf Workflow-Variable verweisen</td>
<td>Verwenden Sie die Syntax `<blockName.itemName>` in Block-Eingaben</td>
<td><ActionImage src="/static/quick-reference/variable-reference.png" alt="Auf Workflow-Variable verweisen" /></td>
</tr>
<tr>
<td>Auf Umgebungsvariable verweisen</td>
<td>Verwenden Sie die Syntax `{{ENV_VAR}}` in Block-Eingaben</td>
<td><ActionImage src="/static/quick-reference/env-variable-reference.png" alt="Auf Umgebungsvariable verweisen" /></td>
</tr>
</tbody>
</table>

View File

@@ -7,10 +7,10 @@ import { Card, Cards } from 'fumadocs-ui/components/card'
import { Step, Steps } from 'fumadocs-ui/components/steps' import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs' import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
Das offizielle Python SDK für Sim ermöglicht es Ihnen, Workflows programmatisch aus Ihren Python-Anwendungen mithilfe des offiziellen Python SDKs auszuführen. Das offizielle Python SDK für Sim ermöglicht es Ihnen, Workflows programmatisch aus Ihren Python-Anwendungen heraus mit dem offiziellen Python SDK auszuführen.
<Callout type="info"> <Callout type="info">
Das Python SDK unterstützt Python 3.8+ mit asynchroner Ausführungsunterstützung, automatischer Ratenbegrenzung mit exponentiellem Backoff und Nutzungsverfolgung. Das Python SDK unterstützt Python 3.8+ mit Unterstützung für asynchrone Ausführung, automatischer Ratenbegrenzung mit exponentiellem Backoff und Nutzungsverfolgung.
</Callout> </Callout>
## Installation ## Installation
@@ -75,16 +75,16 @@ result = client.execute_workflow(
- `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden - `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden
- `timeout` (float, optional): Timeout in Sekunden (Standard: 30.0) - `timeout` (float, optional): Timeout in Sekunden (Standard: 30.0)
- `stream` (bool, optional): Streaming-Antworten aktivieren (Standard: False) - `stream` (bool, optional): Streaming-Antworten aktivieren (Standard: False)
- `selected_outputs` (list[str], optional): Block-Ausgaben, die im `blockName.attribute`Format gestreamt werden sollen (z.B. `["agent1.content"]`) - `selected_outputs` (list[str], optional): Block-Ausgaben zum Streamen im Format `blockName.attribute` (z. B. `["agent1.content"]`)
- `async_execution` (bool, optional): Asynchron ausführen (Standard: False) - `async_execution` (bool, optional): Asynchron ausführen (Standard: False)
**Rückgabe:** `WorkflowExecutionResult | AsyncExecutionResult` **Rückgabewert:** `WorkflowExecutionResult | AsyncExecutionResult`
Wenn `async_execution=True`, wird sofort mit einer Task-ID zum Abfragen zurückgegeben. Andernfalls wird auf den Abschluss gewartet. Wenn `async_execution=True`, wird sofort mit einer Task-ID zum Polling zurückgegeben. Andernfalls wird auf die Fertigstellung gewartet.
##### get_workflow_status() ##### get_workflow_status()
Den Status eines Workflows abrufen (Bereitstellungsstatus usw.). Ruft den Status eines Workflows ab (Deployment-Status usw.).
```python ```python
status = client.get_workflow_status("workflow-id") status = client.get_workflow_status("workflow-id")
@@ -98,7 +98,7 @@ print("Is deployed:", status.is_deployed)
##### validate_workflow() ##### validate_workflow()
Überprüfen, ob ein Workflow für die Ausführung bereit ist. Überprüft, ob ein Workflow zur Ausführung bereit ist.
```python ```python
is_ready = client.validate_workflow("workflow-id") is_ready = client.validate_workflow("workflow-id")
@@ -114,7 +114,7 @@ if is_ready:
##### get_job_status() ##### get_job_status()
Den Status einer asynchronen Job-Ausführung abrufen. Ruft den Status einer asynchronen Job-Ausführung ab.
```python ```python
status = client.get_job_status("task-id-from-async-execution") status = client.get_job_status("task-id-from-async-execution")
@@ -131,7 +131,7 @@ if status["status"] == "completed":
**Antwortfelder:** **Antwortfelder:**
- `success` (bool): Ob die Anfrage erfolgreich war - `success` (bool): Ob die Anfrage erfolgreich war
- `taskId` (str): Die Task-ID - `taskId` (str): Die Task-ID
- `status` (str): Einer der Werte `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'` - `status` (str): Einer von `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'`
- `metadata` (dict): Enthält `startedAt`, `completedAt` und `duration` - `metadata` (dict): Enthält `startedAt`, `completedAt` und `duration`
- `output` (any, optional): Die Workflow-Ausgabe (wenn abgeschlossen) - `output` (any, optional): Die Workflow-Ausgabe (wenn abgeschlossen)
- `error` (any, optional): Fehlerdetails (wenn fehlgeschlagen) - `error` (any, optional): Fehlerdetails (wenn fehlgeschlagen)
@@ -139,7 +139,7 @@ if status["status"] == "completed":
##### execute_with_retry() ##### execute_with_retry()
Einen Workflow mit automatischer Wiederholung bei Ratenbegrenzungsfehlern unter Verwendung von exponentiellem Backoff ausführen. Führt einen Workflow mit automatischer Wiederholung bei Rate-Limit-Fehlern unter Verwendung von exponentiellem Backoff aus.
```python ```python
result = client.execute_with_retry( result = client.execute_with_retry(
@@ -161,13 +161,13 @@ result = client.execute_with_retry(
- `selected_outputs` (list, optional): Block-Ausgaben zum Streamen - `selected_outputs` (list, optional): Block-Ausgaben zum Streamen
- `async_execution` (bool, optional): Asynchron ausführen - `async_execution` (bool, optional): Asynchron ausführen
- `max_retries` (int, optional): Maximale Anzahl von Wiederholungen (Standard: 3) - `max_retries` (int, optional): Maximale Anzahl von Wiederholungen (Standard: 3)
- `initial_delay` (float, optional): Anfängliche Verzögerung in Sekunden (Standard: 1.0) - `initial_delay` (float, optional): Anfangsverzögerung in Sekunden (Standard: 1.0)
- `max_delay` (float, optional): Maximale Verzögerung in Sekunden (Standard: 30.0) - `max_delay` (float, optional): Maximale Verzögerung in Sekunden (Standard: 30.0)
- `backoff_multiplier` (float, optional): Backoff-Multiplikator (Standard: 2.0) - `backoff_multiplier` (float, optional): Backoff-Multiplikator (Standard: 2.0)
**Rückgabewert:** `WorkflowExecutionResult | AsyncExecutionResult` **Rückgabe:** `WorkflowExecutionResult | AsyncExecutionResult`
Die Wiederholungslogik verwendet exponentielles Backoff (1s → 2s → 4s → 8s...) mit ±25% Jitter, um den Thundering-Herd-Effekt zu vermeiden. Wenn die API einen `retry-after` Header bereitstellt, wird dieser stattdessen verwendet. Die Wiederholungslogik verwendet exponentielles Backoff (1s → 2s → 4s → 8s...) mit ±25% Jitter, um Thundering Herd zu verhindern. Wenn die API einen `retry-after`-Header bereitstellt, wird dieser stattdessen verwendet.
##### get_rate_limit_info() ##### get_rate_limit_info()
@@ -185,7 +185,7 @@ if rate_limit_info:
##### get_usage_limits() ##### get_usage_limits()
Ruft aktuelle Nutzungslimits und Kontingentinformationen für dein Konto ab. Ruft aktuelle Nutzungslimits und Kontingentinformationen für Ihr Konto ab.
```python ```python
limits = client.get_usage_limits() limits = client.get_usage_limits()
@@ -320,9 +320,9 @@ class SimStudioError(Exception):
**Häufige Fehlercodes:** **Häufige Fehlercodes:**
- `UNAUTHORIZED`: Ungültiger API-Schlüssel - `UNAUTHORIZED`: Ungültiger API-Schlüssel
- `TIMEOUT`: Zeitüberschreitung bei der Anfrage - `TIMEOUT`: Zeitüberschreitung der Anfrage
- `RATE_LIMIT_EXCEEDED`: Ratengrenze überschritten - `RATE_LIMIT_EXCEEDED`: Ratenlimit überschritten
- `USAGE_LIMIT_EXCEEDED`: Nutzungsgrenze überschritten - `USAGE_LIMIT_EXCEEDED`: Nutzungslimit überschritten
- `EXECUTION_ERROR`: Workflow-Ausführung fehlgeschlagen - `EXECUTION_ERROR`: Workflow-Ausführung fehlgeschlagen
## Beispiele ## Beispiele
@@ -334,7 +334,7 @@ class SimStudioError(Exception):
Richten Sie den SimStudioClient mit Ihrem API-Schlüssel ein. Richten Sie den SimStudioClient mit Ihrem API-Schlüssel ein.
</Step> </Step>
<Step title="Workflow validieren"> <Step title="Workflow validieren">
Prüfen Sie, ob der Workflow bereitgestellt und für die Ausführung bereit ist. Prüfen Sie, ob der Workflow bereitgestellt und zur Ausführung bereit ist.
</Step> </Step>
<Step title="Workflow ausführen"> <Step title="Workflow ausführen">
Führen Sie den Workflow mit Ihren Eingabedaten aus. Führen Sie den Workflow mit Ihren Eingabedaten aus.
@@ -386,7 +386,7 @@ Behandeln Sie verschiedene Fehlertypen, die während der Workflow-Ausführung au
from simstudio import SimStudioClient, SimStudioError from simstudio import SimStudioClient, SimStudioError
import os import os
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY")) client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
def execute_with_error_handling(): def execute_with_error_handling():
try: try:
@@ -409,11 +409,20 @@ def execute_with_error_handling():
raise raise
``` ```
### Verwendung des Kontextmanagers ### Verwendung des Context-Managers
Verwenden Sie den Client als Kontextmanager, um die Ressourcenbereinigung automatisch zu handhaben: Verwenden Sie den Client als Context-Manager, um die Ressourcenbereinigung automatisch zu handhaben:
---CODE-PLACEHOLDER-ef99d3dd509e04865d5b6b0e0e03d3f8--- ```python
from simstudio import SimStudioClient
import os
# Using context manager to automatically close the session
with SimStudioClient(api_key=os.getenv("SIM_API_KEY")) as client:
result = client.execute_workflow("workflow-id")
print("Result:", result)
# Session is automatically closed here
```
### Batch-Workflow-Ausführung ### Batch-Workflow-Ausführung
@@ -466,7 +475,7 @@ for result in results:
### Asynchrone Workflow-Ausführung ### Asynchrone Workflow-Ausführung
Führen Sie Workflows asynchron für lang laufende Aufgaben aus: Führen Sie Workflows asynchron für langwierige Aufgaben aus:
```python ```python
import os import os
@@ -510,9 +519,9 @@ def execute_async():
execute_async() execute_async()
``` ```
### Rate-Limiting und Wiederholungsversuche ### Ratenlimitierung und Wiederholung
Behandle Rate-Limits automatisch mit exponentiellem Backoff: Behandeln Sie Ratenbegrenzungen automatisch mit exponentiellem Backoff:
```python ```python
import os import os
@@ -549,7 +558,7 @@ execute_with_retry_handling()
### Nutzungsüberwachung ### Nutzungsüberwachung
Überwache deine Kontonutzung und -limits: Überwachen Sie die Nutzung und Limits Ihres Kontos:
```python ```python
import os import os
@@ -593,13 +602,13 @@ check_usage()
### Streaming-Workflow-Ausführung ### Streaming-Workflow-Ausführung
Führe Workflows mit Echtzeit-Streaming-Antworten aus: Führen Sie Workflows mit Echtzeit-Streaming-Antworten aus:
```python ```python
from simstudio import SimStudioClient from simstudio import SimStudioClient
import os import os
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY")) client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
def execute_with_streaming(): def execute_with_streaming():
"""Execute workflow with streaming enabled.""" """Execute workflow with streaming enabled."""
@@ -619,7 +628,7 @@ def execute_with_streaming():
execute_with_streaming() execute_with_streaming()
``` ```
Die Streaming-Antwort folgt dem Server-Sent Events (SSE) Format: Die Streaming-Antwort folgt dem Server-Sent-Events- (SSE-) Format:
``` ```
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"} data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
@@ -688,9 +697,9 @@ if __name__ == '__main__':
app.run(debug=True) app.run(debug=True)
``` ```
### Umgebungskonfiguration ### Umgebungs­konfiguration
Konfiguriere den Client mit Umgebungsvariablen: Konfigurieren Sie den Client mit Umgebungsvariablen:
<Tabs items={['Development', 'Production']}> <Tabs items={['Development', 'Production']}>
<Tab value="Development"> <Tab value="Development">
@@ -727,27 +736,27 @@ Konfiguriere den Client mit Umgebungsvariablen:
</Tab> </Tab>
</Tabs> </Tabs>
## API-Schlüssel erhalten ## Ihren API-Schlüssel erhalten
<Steps> <Steps>
<Step title="Bei Sim anmelden"> <Step title="Bei Sim anmelden">
Navigiere zu [Sim](https://sim.ai) und melde dich bei deinem Konto an. Navigieren Sie zu [Sim](https://sim.ai) und melden Sie sich in Ihrem Konto an.
</Step> </Step>
<Step title="Öffne deinen Workflow"> <Step title="Workflow öffnen">
Navigiere zu dem Workflow, den du programmatisch ausführen möchtest. Navigieren Sie zu dem Workflow, den Sie programmatisch ausführen möchten.
</Step> </Step>
<Step title="Deploye deinen Workflow"> <Step title="Workflow bereitstellen">
Klicke auf "Deploy", um deinen Workflow zu deployen, falls dies noch nicht geschehen ist. Klicken Sie auf "Bereitstellen", um Ihren Workflow bereitzustellen, falls dies noch nicht geschehen ist.
</Step> </Step>
<Step title="Erstelle oder wähle einen API-Schlüssel"> <Step title="API-Schlüssel erstellen oder auswählen">
Wähle während des Deployment-Prozesses einen API-Schlüssel aus oder erstelle einen neuen. Wählen oder erstellen Sie während des Bereitstellungsprozesses einen API-Schlüssel.
</Step> </Step>
<Step title="Kopiere den API-Schlüssel"> <Step title="API-Schlüssel kopieren">
Kopiere den API-Schlüssel zur Verwendung in deiner Python-Anwendung. Kopieren Sie den API-Schlüssel, um ihn in Ihrer Python-Anwendung zu verwenden.
</Step> </Step>
</Steps> </Steps>
## Anforderungen ## Voraussetzungen
- Python 3.8+ - Python 3.8+
- requests >= 2.25.0 - requests >= 2.25.0

View File

@@ -56,3 +56,10 @@ docker compose -f docker-compose.prod.yml up -d
| realtime | 3002 | WebSocket-Server | | realtime | 3002 | WebSocket-Server |
| db | 5432 | PostgreSQL mit pgvector | | db | 5432 | PostgreSQL mit pgvector |
| migrations | - | Datenbank-Migrationen (werden einmal ausgeführt) | | migrations | - | Datenbank-Migrationen (werden einmal ausgeführt) |
| Komponente | Port | Beschreibung |
|-----------|------|-------------|
| simstudio | 3000 | Hauptanwendung |
| realtime | 3002 | WebSocket-Server |
| db | 5432 | PostgreSQL mit pgvector |
| migrations | - | Datenbankmigrationen (wird einmal ausgeführt) |

View File

@@ -0,0 +1,134 @@
---
title: Agent-Fähigkeiten
---
import { Callout } from 'fumadocs-ui/components/callout'
Agent-Fähigkeiten sind wiederverwendbare Anweisungspakete, die Ihren KI-Agenten spezialisierte Funktionen verleihen. Basierend auf dem offenen [Agent Skills](https://agentskills.io)-Format ermöglichen Fähigkeiten Ihnen, Fachwissen, Arbeitsabläufe und Best Practices zu erfassen, die Agenten bei Bedarf laden können.
## Wie Fähigkeiten funktionieren
Fähigkeiten nutzen **progressive Offenlegung**, um den Kontext des Agenten schlank zu halten:
1. **Entdeckung** — Nur Fähigkeitsnamen und Beschreibungen werden in den System-Prompt des Agenten aufgenommen (~50-100 Token jeweils)
2. **Aktivierung** — Wenn der Agent entscheidet, dass eine Fähigkeit relevant ist, ruft er das `load_skill`-Tool auf, um die vollständigen Anweisungen in den Kontext zu laden
3. **Ausführung** — Der Agent folgt den geladenen Anweisungen, um die Aufgabe zu erledigen
Das bedeutet, Sie können viele Fähigkeiten an einen Agenten anhängen, ohne dessen Kontextfenster aufzublähen. Der Agent lädt nur das, was er benötigt.
## Fähigkeiten erstellen
Gehen Sie zu **Einstellungen** und wählen Sie **Fähigkeiten** im Bereich Tools aus.
![Manage Skills](/static/skills/manage-skills.png)
Klicken Sie auf **Hinzufügen**, um eine neue Fähigkeit mit drei Feldern zu erstellen:
| Feld | Beschreibung |
|-------|-------------|
| **Name** | Eine Kennung im Kebab-Case-Format (z. B. `sql-expert`, `code-reviewer`). Maximal 64 Zeichen. |
| **Beschreibung** | Eine kurze Erklärung, was die Fähigkeit tut und wann sie verwendet werden soll. Dies liest der Agent, um zu entscheiden, ob er die Fähigkeit aktiviert. Maximal 1024 Zeichen. |
| **Inhalt** | Die vollständigen Fähigkeitsanweisungen in Markdown. Diese werden geladen, wenn der Agent die Fähigkeit aktiviert. |
<Callout type="info">
Die Beschreibung ist entscheidend — sie ist das Einzige, was der Agent sieht, bevor er entscheidet, eine Fähigkeit zu laden. Seien Sie spezifisch darüber, wann und warum die Fähigkeit verwendet werden sollte.
</Callout>
### Gute Skill-Inhalte schreiben
Skill-Inhalte folgen denselben Konventionen wie [SKILL.md-Dateien](https://agentskills.io/specification):
```markdown
# SQL Expert
## When to use this skill
Use when the user asks you to write, optimize, or debug SQL queries.
## Instructions
1. Always ask which database engine (PostgreSQL, MySQL, SQLite)
2. Use CTEs over subqueries for readability
3. Add index recommendations when relevant
4. Explain query plans for optimization requests
## Common Patterns
...
```
**Empfohlene Struktur:**
- **Wann verwenden** — Spezifische Auslöser und Szenarien
- **Anweisungen** — Schritt-für-Schritt-Anleitung mit nummerierten Listen
- **Beispiele** — Eingabe-/Ausgabe-Beispiele, die das erwartete Verhalten zeigen
- **Häufige Muster** — Wiederverwendbare Ansätze für häufige Aufgaben
- **Sonderfälle** — Fallstricke und besondere Überlegungen
Halten Sie Skills fokussiert und unter 500 Zeilen. Wenn ein Skill zu groß wird, teilen Sie ihn in mehrere spezialisierte Skills auf.
## Skills zu einem Agenten hinzufügen
Öffnen Sie einen beliebigen **Agent**-Block und finden Sie das **Skills**-Dropdown unterhalb des Tool-Bereichs. Wählen Sie die Skills aus, auf die der Agent Zugriff haben soll.
![Skill hinzufügen](/static/skills/add-skill.png)
Ausgewählte Skills erscheinen als Karten, die Sie anklicken können, um sie zu bearbeiten oder zu entfernen.
### Was zur Laufzeit passiert
Wenn der Workflow ausgeführt wird:
1. Der System-Prompt des Agenten enthält einen `<available_skills>`-Abschnitt, der Name und Beschreibung jedes Skills auflistet
2. Ein `load_skill`-Tool wird automatisch zu den verfügbaren Tools des Agenten hinzugefügt
3. Wenn der Agent feststellt, dass ein Skill für die aktuelle Aufgabe relevant ist, ruft er `load_skill` mit dem Skill-Namen auf
4. Der vollständige Skill-Inhalt wird als Tool-Antwort zurückgegeben und gibt dem Agenten detaillierte Anweisungen
Dies funktioniert über alle unterstützten LLM-Anbieter hinweg — das `load_skill`-Tool verwendet standardmäßiges Tool-Calling, sodass keine anbieterspezifische Konfiguration erforderlich ist.
## Häufige Anwendungsfälle
Skills sind besonders wertvoll, wenn Agenten spezialisiertes Wissen oder mehrstufige Workflows benötigen:
**Domain-Expertise**
- `api-integration-expert` — Best Practices für den Aufruf spezifischer APIs (Authentifizierung, Rate Limiting, Fehlerbehandlung)
- `data-transformation` — ETL-Muster, Datenbereinigung und Validierungsregeln
- `code-reviewer` — Code-Review-Richtlinien spezifisch für die Standards Ihres Teams
**Workflow-Vorlagen**
- `bug-investigation` — Schritt-für-Schritt-Debugging-Methodik (reproduzieren → isolieren → testen → beheben)
- `feature-implementation` — Entwicklungs-Workflow von Anforderungen bis zur Bereitstellung
- `document-generator` — Vorlagen und Formatierungsregeln für technische Dokumentation
**Unternehmensspezifisches Wissen**
- `our-architecture` — Systemarchitekturdiagramme, Service-Abhängigkeiten und Bereitstellungsprozesse
- `style-guide` — Markenrichtlinien, Schreibstil, UI/UX-Muster
- `customer-onboarding` — Standardverfahren und häufige Kundenfragen
**Wann Skills vs. Agentenanweisungen verwendet werden sollten:**
- Verwenden Sie **Skills** für Wissen, das über mehrere Workflows hinweg gilt oder sich häufig ändert
- Verwenden Sie **Agentenanweisungen** für aufgabenspezifischen Kontext, der für einen einzelnen Agenten einzigartig ist
## Best Practices
**Effektive Beschreibungen schreiben**
- **Seien Sie spezifisch und keyword-reich** — Statt "Hilft bei SQL", schreiben Sie "Optimierte SQL-Abfragen für PostgreSQL, MySQL und SQLite schreiben, einschließlich Index-Empfehlungen und Abfrageplan-Analyse"
- **Aktivierungstrigger einbeziehen** — Erwähnen Sie spezifische Wörter oder Phrasen, die den Skill auslösen sollten (z. B. "Verwenden, wenn der Benutzer PDFs, Formulare oder Dokumentenextraktion erwähnt")
- **Unter 200 Wörtern halten** — Agenten scannen Beschreibungen schnell; jedes Wort zählt
**Skill-Umfang und Organisation**
- **Ein Skill pro Domäne** — Ein fokussierter `sql-expert`-Skill funktioniert besser als ein breiter `database-everything`-Skill
- **Auf 5-10 Skills pro Agent begrenzen** — Mehr Skills = mehr Entscheidungsaufwand; klein anfangen und bei Bedarf erweitern
- **Große Skills aufteilen** — Wenn ein Skill 500 Zeilen überschreitet, in fokussierte Sub-Skills aufteilen
**Inhaltsstruktur**
- **Markdown-Formatierung verwenden** — Überschriften, Listen und Code-Blöcke helfen Agenten beim Parsen und Befolgen von Anweisungen
- **Beispiele bereitstellen** — Input/Output-Paare zeigen, damit Agenten das erwartete Verhalten verstehen
- **Explizit über Sonderfälle sein** — Gehen Sie nicht davon aus, dass Agenten spezielle Behandlung ableiten werden
**Testen und Iteration**
- **Aktivierung testen** — Führen Sie Ihren Workflow aus und überprüfen Sie, ob der Agent die Skill lädt, wenn erwartet
- **Auf Fehlalarme prüfen** — Stellen Sie sicher, dass Skills nicht aktiviert werden, wenn sie es nicht sollten
- **Beschreibungen verfeinern** — Wenn eine Skill nicht geladen wird, wenn sie benötigt wird, fügen Sie der Beschreibung weitere Schlüsselwörter hinzu
## Mehr erfahren
- [Agent Skills Spezifikation](https://agentskills.io) — Das offene Format für portable Agent-Skills
- [Beispiel-Skills](https://github.com/anthropics/skills) — Community-Skill-Beispiele durchsuchen
- [Best Practices](https://agentskills.io/what-are-skills) — Effektive Skills schreiben

View File

@@ -0,0 +1,207 @@
---
title: A2A
description: Interagiere mit externen A2A-kompatiblen Agenten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="a2a"
color="#4151B5"
/>
{/* MANUAL-CONTENT-START:intro */}
Das A2A-Protokoll (Agent-to-Agent) ermöglicht es Sim, mit externen KI-Agenten und Systemen zu interagieren, die A2A-kompatible APIs implementieren. Mit A2A kannst du Sims Automatisierungen und Workflows mit Remote-Agenten verbinden wie LLM-gestützten Bots, Microservices und anderen KI-basierten Tools unter Verwendung eines standardisierten Nachrichtenformats.
Mit den A2A-Tools in Sim kannst du:
- **Nachrichten an externe Agenten senden**: Kommuniziere direkt mit Remote-Agenten und übermittle Prompts, Befehle oder Daten.
- **Antworten empfangen und streamen**: Erhalte strukturierte Antworten, Artefakte oder Echtzeit-Updates vom Agenten, während die Aufgabe fortschreitet.
- **Gespräche oder Aufgaben fortsetzen**: Führe mehrstufige Konversationen oder Workflows fort, indem du auf Aufgaben- und Kontext-IDs verweist.
- **Drittanbieter-KI und Automatisierung integrieren**: Nutze externe A2A-kompatible Dienste als Teil deiner Sim-Workflows.
Diese Funktionen ermöglichen es dir, fortgeschrittene Workflows zu erstellen, die Sims native Fähigkeiten mit der Intelligenz und Automatisierung externer KIs oder benutzerdefinierter Agenten kombinieren. Um A2A-Integrationen zu nutzen, benötigst du die Endpunkt-URL des externen Agenten und, falls erforderlich, einen API-Schlüssel oder Zugangsdaten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Verwende das A2A-Protokoll (Agent-to-Agent), um mit externen KI-Agenten zu interagieren.
## Tools
### `a2a_send_message`
Sende eine Nachricht an einen externen A2A-kompatiblen Agenten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die A2A-Agenten-Endpunkt-URL |
| `message` | string | Ja | Nachricht, die an den Agenten gesendet werden soll |
| `taskId` | string | Nein | Aufgaben-ID zum Fortsetzen einer bestehenden Aufgabe |
| `contextId` | string | Nein | Kontext-ID für Gesprächskontinuität |
| `data` | string | Nein | Strukturierte Daten, die mit der Nachricht einbezogen werden sollen \(JSON-String\) |
| `files` | array | Nein | Dateien, die mit der Nachricht einbezogen werden sollen |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Textantwort-Inhalt vom Agenten |
| `taskId` | string | Eindeutige Aufgabenkennung |
| `contextId` | string | Gruppiert zusammenhängende Aufgaben/Nachrichten |
| `state` | string | Aktueller Lebenszyklus-Status \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
| `artifacts` | array | Ausgabe-Artefakte der Aufgabe |
| `history` | array | Gesprächsverlauf \(Message-Array\) |
### `a2a_get_task`
Abfrage des Status einer bestehenden A2A-Aufgabe.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die A2A-Agenten-Endpunkt-URL |
| `taskId` | string | Ja | Abzufragende Aufgaben-ID |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung |
| `historyLength` | number | Nein | Anzahl der einzubeziehenden Verlaufsnachrichten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `taskId` | string | Eindeutige Aufgabenkennung |
| `contextId` | string | Gruppiert zusammenhängende Aufgaben/Nachrichten |
| `state` | string | Aktueller Lebenszyklus-Status \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
| `artifacts` | array | Ausgabe-Artefakte der Aufgabe |
| `history` | array | Gesprächsverlauf \(Message-Array\) |
### `a2a_cancel_task`
Abbrechen einer laufenden A2A-Aufgabe.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die A2A-Agenten-Endpunkt-URL |
| `taskId` | string | Ja | Abzubrechende Aufgaben-ID |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `cancelled` | boolean | Ob die Stornierung erfolgreich war |
| `state` | string | Aktueller Lebenszyklus-Status \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
### `a2a_get_agent_card`
Ruft die Agent Card (Discovery-Dokument) für einen A2A-Agenten ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die Endpunkt-URL des A2A-Agenten |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `name` | string | Anzeigename des Agenten |
| `description` | string | Zweck/Fähigkeiten des Agenten |
| `url` | string | Service-Endpunkt-URL |
| `provider` | object | Details zur Ersteller-Organisation |
| `capabilities` | object | Feature-Support-Matrix |
| `skills` | array | Verfügbare Operationen |
| `version` | string | Vom Agenten unterstützte A2A-Protokollversion |
| `defaultInputModes` | array | Standard-Eingabe-Inhaltstypen, die vom Agenten akzeptiert werden |
| `defaultOutputModes` | array | Standard-Ausgabe-Inhaltstypen, die vom Agenten produziert werden |
### `a2a_resubscribe`
Stellt die Verbindung zu einem laufenden A2A-Task-Stream nach einer Verbindungsunterbrechung wieder her.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die Endpunkt-URL des A2A-Agenten |
| `taskId` | string | Ja | Task-ID, zu der erneut abonniert werden soll |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `taskId` | string | Eindeutige Aufgabenkennung |
| `contextId` | string | Gruppiert zusammenhängende Aufgaben/Nachrichten |
| `state` | string | Aktueller Lebenszyklusstatus \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
| `isRunning` | boolean | Ob die Aufgabe noch läuft |
| `artifacts` | array | Ausgabeartefakte der Aufgabe |
| `history` | array | Gesprächsverlauf \(Message-Array\) |
### `a2a_set_push_notification`
Konfigurieren Sie einen Webhook, um Benachrichtigungen über Aufgabenaktualisierungen zu erhalten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die A2A-Agent-Endpunkt-URL |
| `taskId` | string | Ja | Aufgaben-ID, für die Benachrichtigungen konfiguriert werden sollen |
| `webhookUrl` | string | Ja | HTTPS-Webhook-URL zum Empfang von Benachrichtigungen |
| `token` | string | Nein | Token zur Webhook-Validierung |
| `apiKey` | string | Nein | API-Schlüssel zur Authentifizierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `url` | string | HTTPS-Webhook-URL für Benachrichtigungen |
| `token` | string | Authentifizierungstoken zur Webhook-Validierung |
| `success` | boolean | Ob der Vorgang erfolgreich war |
### `a2a_get_push_notification`
Rufen Sie die Push-Benachrichtigungs-Webhook-Konfiguration für eine Aufgabe ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die A2A-Agent-Endpunkt-URL |
| `taskId` | string | Ja | Aufgaben-ID, für die die Benachrichtigungskonfiguration abgerufen werden soll |
| `apiKey` | string | Nein | API-Schlüssel zur Authentifizierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `token` | string | Authentifizierungstoken für Webhook-Validierung |
| `exists` | boolean | Ob die Ressource existiert |
### `a2a_delete_push_notification`
Löscht die Push-Benachrichtigungs-Webhook-Konfiguration für eine Aufgabe.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `agentUrl` | string | Ja | Die A2A-Agent-Endpunkt-URL |
| `taskId` | string | Ja | Aufgaben-ID, für die die Benachrichtigungskonfiguration gelöscht werden soll |
| `pushNotificationConfigId` | string | Nein | Push-Benachrichtigungskonfigurations-ID zum Löschen \(optional - Server kann aus taskId ableiten\) |
| `apiKey` | string | Nein | API-Schlüssel für Authentifizierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Operation erfolgreich war |

View File

@@ -193,8 +193,3 @@ Erhalte eine Liste defekter Backlinks, die auf eine Zieldomäne oder URL verweis
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `brokenBacklinks` | array | Liste defekter Backlinks | | `brokenBacklinks` | array | Liste defekter Backlinks |
## Hinweise
- Kategorie: `tools`
- Typ: `ahrefs`

View File

@@ -123,8 +123,3 @@ Mehrere vorhandene Datensätze in einer Airtable-Tabelle aktualisieren
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `records` | json | Array der aktualisierten Airtable-Datensätze | | `records` | json | Array der aktualisierten Airtable-Datensätze |
## Hinweise
- Kategorie: `tools`
- Typ: `airtable`

View File

@@ -0,0 +1,63 @@
---
title: Airweave
description: Durchsuchen Sie Ihre synchronisierten Datensammlungen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="airweave"
color="#6366F1"
/>
{/* MANUAL-CONTENT-START:intro */}
[Airweave](https://airweave.ai/) ist eine KI-gestützte semantische Suchplattform, die Ihnen hilft, Wissen über alle Ihre synchronisierten Datenquellen hinweg zu entdecken und abzurufen. Airweave wurde für moderne Teams entwickelt und ermöglicht schnelle, relevante Suchergebnisse mithilfe neuraler, hybrider oder schlüsselwortbasierter Strategien, die auf Ihre Bedürfnisse zugeschnitten sind.
Mit Airweave können Sie:
- **Intelligenter suchen**: Verwenden Sie natürlichsprachliche Abfragen, um Informationen aufzudecken, die in Ihren verbundenen Tools und Datenbanken gespeichert sind
- **Ihre Daten vereinheitlichen**: Greifen Sie nahtlos auf Inhalte aus Quellen wie Code, Dokumenten, Chat, E-Mails, Cloud-Dateien und mehr zu
- **Abruf anpassen**: Wählen Sie zwischen hybriden (semantisch + Schlüsselwort), neuralen oder Schlüsselwort-Suchstrategien für optimale Ergebnisse
- **Recall steigern**: Erweitern Sie Suchanfragen mit KI, um umfassendere Antworten zu finden
- **Ergebnisse mit KI neu ordnen**: Priorisieren Sie die relevantesten Antworten mit leistungsstarken Sprachmodellen
- **Sofortige Antworten erhalten**: Generieren Sie klare, KI-gestützte Antworten, die aus Ihren Daten synthetisiert werden
In Sim ermöglicht die Airweave-Integration Ihren Agenten, alle Daten Ihrer Organisation über ein einziges Tool zu durchsuchen, zusammenzufassen und Erkenntnisse zu extrahieren. Nutzen Sie Airweave, um umfassenden, kontextbezogenen Wissensabruf in Ihren Workflows zu ermöglichen sei es beim Beantworten von Fragen, Erstellen von Zusammenfassungen oder Unterstützen dynamischer Entscheidungsfindung.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Durchsuchen Sie Ihre synchronisierten Datenquellen mit Airweave. Unterstützt semantische Suche mit hybriden, neuralen oder schlüsselwortbasierten Abrufstrategien. Optional können KI-gestützte Antworten aus Suchergebnissen generiert werden.
## Tools
### `airweave_search`
Durchsuchen Sie Ihre synchronisierten Datensammlungen mit Airweave. Unterstützt semantische Suche mit hybriden, neuralen oder schlüsselwortbasierten Abrufstrategien. Optional können KI-gestützte Antworten aus Suchergebnissen generiert werden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Airweave API-Schlüssel für die Authentifizierung |
| `collectionId` | string | Ja | Die lesbare ID der zu durchsuchenden Sammlung |
| `query` | string | Ja | Der Suchanfragetext |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
| `retrievalStrategy` | string | Nein | Abrufstrategie: hybrid \(Standard\), neural oder keyword |
| `expandQuery` | boolean | Nein | Abfragevariationen generieren, um die Trefferquote zu verbessern |
| `rerank` | boolean | Nein | Ergebnisse für verbesserte Relevanz mithilfe von LLM neu ordnen |
| `generateAnswer` | boolean | Nein | Eine natürlichsprachliche Antwort auf die Abfrage generieren |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Suchergebnisse mit Inhalten, Scores und Metadaten aus Ihren synchronisierten Daten |
| ↳ `entity_id` | string | Eindeutige Kennung für die Suchergebnisentität |
| ↳ `source_name` | string | Name der Datenquelle \(z. B. "GitHub", "Slack"\) |
| ↳ `md_content` | string | Markdown-formatierter Inhalt des Ergebnisses |
| ↳ `score` | number | Relevanz-Score aus der Suche |
| ↳ `metadata` | object | Zusätzliche Metadaten, die mit dem Ergebnis verknüpft sind |
| ↳ `breadcrumbs` | array | Navigationspfad zum Ergebnis innerhalb seiner Quelle |
| ↳ `url` | string | URL zum Originalinhalt |
| `completion` | string | KI-generierte Antwort auf die Abfrage \(wenn generateAnswer aktiviert ist\) |

View File

@@ -81,8 +81,3 @@ Führe einen APIFY-Aktor asynchron mit Polling für lang laufende Aufgaben aus
| `status` | string | Laufstatus \(SUCCEEDED, FAILED, usw.\) | | `status` | string | Laufstatus \(SUCCEEDED, FAILED, usw.\) |
| `datasetId` | string | Dataset-ID mit Ergebnissen | | `datasetId` | string | Dataset-ID mit Ergebnissen |
| `items` | array | Dataset-Elemente \(falls abgeschlossen\) | | `items` | array | Dataset-Elemente \(falls abgeschlossen\) |
## Hinweise
- Kategorie: `tools`
- Typ: `apify`

View File

@@ -567,8 +567,3 @@ Liste des Teams abrufen
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `email_accounts` | json | Array von Team-E-Mail-Konten, die in Apollo verknüpft sind | | `email_accounts` | json | Array von Team-E-Mail-Konten, die in Apollo verknüpft sind |
| `metadata` | json | Metadaten einschließlich der Gesamtanzahl von E-Mail-Konten | | `metadata` | json | Metadaten einschließlich der Gesamtanzahl von E-Mail-Konten |
## Notizen
- Kategorie: `tools`
- Typ: `apollo`

View File

@@ -82,8 +82,3 @@ Suche nach Artikeln eines bestimmten Autors auf ArXiv.
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `authorPapers` | json | Array von Publikationen, die vom angegebenen Autor verfasst wurden | | `authorPapers` | json | Array von Publikationen, die vom angegebenen Autor verfasst wurden |
## Hinweise
- Kategorie: `tools`
- Typ: `arxiv`

View File

@@ -163,3 +163,16 @@ Einen Kommentar (Story) zu einer Asana-Aufgabe hinzufügen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `asana` - Typ: `asana`
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `gid` | string | Global eindeutige Kennung des Kommentars |
| `text` | string | Textinhalt des Kommentars |
| `created_at` | string | Erstellungszeitstempel des Kommentars |
| `created_by` | object | Details zum Kommentarautor |
| ↳ `gid` | string | Autor-GID |
| ↳ `name` | string | Name des Autors |

View File

@@ -53,8 +53,3 @@ Führt eine Browser-Automatisierungsaufgabe mit BrowserUse aus
| `success` | boolean | Status der Aufgabenfertigstellung | | `success` | boolean | Status der Aufgabenfertigstellung |
| `output` | json | Ausgabedaten der Aufgabe | | `output` | json | Ausgabedaten der Aufgabe |
| `steps` | json | Ausgeführte Schritte | | `steps` | json | Ausgeführte Schritte |
## Hinweise
- Kategorie: `tools`
- Typ: `browser_use`

View File

@@ -0,0 +1,785 @@
---
title: Cal Com
description: Verwalten Sie Cal.com-Buchungen, Veranstaltungstypen, Zeitpläne und
Verfügbarkeiten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="calcom"
color="#FFFFFE"
/>
{/* MANUAL-CONTENT-START:intro */}
[Cal.com](https://cal.com/) ist eine flexible und quelloffene Planungsplattform, die es einfach macht, Termine, Buchungen, Veranstaltungstypen und Teamverfügbarkeiten zu verwalten.
Mit Cal.com können Sie:
- **Planung automatisieren**: Ermöglichen Sie Nutzern, Ihre verfügbaren Zeitfenster einzusehen und Meetings automatisch zu buchen, ohne E-Mail-Pingpong.
- **Veranstaltungen verwalten**: Erstellen und passen Sie Veranstaltungstypen, Dauern und Regeln für Einzel- oder Gruppenmeetings an.
- **Kalender integrieren**: Verbinden Sie sich nahtlos mit Google, Outlook, Apple oder anderen Kalenderanbietern, um Doppelbuchungen zu vermeiden.
- **Teilnehmer und Gäste verwalten**: Erfassen Sie Teilnehmerinformationen, verwalten Sie Gäste und versenden Sie Einladungen oder Erinnerungen.
- **Verfügbarkeit steuern**: Definieren Sie individuelle Arbeitszeiten, Pufferzeiten und Storno-/Umbuchungsregeln.
- **Workflows automatisieren**: Lösen Sie benutzerdefinierte Aktionen über Webhooks aus, wenn eine Buchung erstellt, storniert oder umgebucht wird.
In Sim ermöglicht die Cal.com-Integration Ihren Agenten, Meetings zu buchen, Verfügbarkeiten zu prüfen, Veranstaltungstypen zu verwalten und Planungsaufgaben programmatisch zu automatisieren. Dies hilft Agenten, Meetings zu koordinieren, Buchungen im Namen von Nutzern zu versenden, Zeitpläne zu prüfen oder auf Buchungsereignisse zu reagieren alles ohne manuelle Eingriffe. Durch die Verbindung von Sim mit Cal.com erschließen Sie hochautomatisierte und intelligente Planungs-Workflows, die sich nahtlos in Ihre umfassenderen Automatisierungsanforderungen integrieren lassen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Cal.com in Ihren Workflow. Erstellen und verwalten Sie Buchungen, Veranstaltungstypen, Zeitpläne und prüfen Sie Verfügbarkeitsfenster. Unterstützt das Erstellen, Auflisten, Umbuchen und Stornieren von Buchungen sowie die Verwaltung von Veranstaltungstypen und Zeitplänen. Kann auch Workflows basierend auf Cal.com-Webhook-Ereignissen auslösen (Buchung erstellt, storniert, umgebucht). Verbinden Sie Ihr Cal.com-Konto über OAuth.
## Tools
### `calcom_create_booking`
Eine neue Buchung auf Cal.com erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Ja | Die ID des zu buchenden Ereignistyps |
| `start` | string | Ja | Startzeit im UTC ISO 8601-Format \(z. B. 2024-01-15T09:00:00Z\) |
| `attendee` | object | Ja | Teilnehmerinformationsobjekt mit Name, E-Mail, Zeitzone und optionaler Telefonnummer \(zusammengestellt aus einzelnen Teilnehmerfeldern\) |
| `guests` | array | Nein | Array von Gast-E-Mail-Adressen |
| `items` | string | Nein | Gast-E-Mail-Adresse |
| `lengthInMinutes` | number | Nein | Dauer der Buchung in Minuten \(überschreibt die Standardeinstellung des Ereignistyps\) |
| `metadata` | object | Nein | Benutzerdefinierte Metadaten, die an die Buchung angehängt werden |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details der erstellten Buchung |
| ↳ `eventType` | object | Details des Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
| ↳ `title` | string | Titel der Buchung |
| ↳ `status` | string | Buchungsstatus \(z. B. akzeptiert, ausstehend, storniert\) |
| ↳ `start` | string | Startzeit im ISO 8601-Format |
| ↳ `end` | string | Endzeit im ISO 8601-Format |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `meetingUrl` | string | URL zum Beitritt zum Meeting |
| ↳ `location` | string | Ort der Buchung |
| ↳ `absentHost` | boolean | Ob der Gastgeber abwesend war |
| ↳ `guests` | array | Gast-E-Mail-Adressen |
| ↳ `bookingFieldsResponses` | json | Benutzerdefinierte Buchungsfeldantworten \(dynamische Schlüssel basierend auf der Ereignistyp-Konfiguration\) |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die an die Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
| ↳ `icsUid` | string | ICS-Kalender-UID |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
### `calcom_get_booking`
Details einer bestimmten Buchung anhand ihrer UID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der Buchung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Buchungsdetails |
| ↳ `eventType` | object | Details zum Ereignistyp |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
| ↳ `title` | string | Titel der Buchung |
| ↳ `description` | string | Beschreibung der Buchung |
| ↳ `status` | string | Buchungsstatus \(z. B. akzeptiert, ausstehend, storniert\) |
| ↳ `start` | string | Startzeit im ISO-8601-Format |
| ↳ `end` | string | Endzeit im ISO-8601-Format |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `meetingUrl` | string | URL zum Beitritt zum Meeting |
| ↳ `location` | string | Ort der Buchung |
| ↳ `absentHost` | boolean | Ob der Gastgeber abwesend war |
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
| ↳ `bookingFieldsResponses` | json | Benutzerdefinierte Buchungsfeld-Antworten \(dynamische Schlüssel basierend auf der Ereignistyp-Konfiguration\) |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
| ↳ `rating` | number | Buchungsbewertung |
| ↳ `icsUid` | string | ICS-Kalender-UID |
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
| ↳ `reschedulingReason` | string | Grund für die Umbuchung, falls umgebucht |
| ↳ `rescheduledFromUid` | string | Ursprüngliche Buchungs-UID, falls diese Buchung umgebucht wurde |
| ↳ `rescheduledToUid` | string | Neue Buchungs-UID nach Umbuchung |
| ↳ `cancelledByEmail` | string | E-Mail der Person, die die Buchung storniert hat |
| ↳ `rescheduledByEmail` | string | E-Mail der Person, die die Buchung umgebucht hat |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
| ↳ `updatedAt` | string | Zeitpunkt der letzten Aktualisierung der Buchung |
### `calcom_list_bookings`
Alle Buchungen mit optionalem Statusfilter auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `status` | string | Nein | Buchungen nach Status filtern: upcoming, recurring, past, cancelled oder unconfirmed |
| `take` | number | Nein | Anzahl der zurückzugebenden Buchungen \(Paginierungslimit\) |
| `skip` | number | Nein | Anzahl der zu überspringenden Buchungen \(Paginierungsoffset\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | array | Array von Buchungen |
| ↳ `eventType` | object | Details zum Ereignistyp |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
| ↳ `title` | string | Titel der Buchung |
| ↳ `description` | string | Beschreibung der Buchung |
| ↳ `status` | string | Buchungsstatus \(z. B. accepted, pending, cancelled\) |
| ↳ `start` | string | Startzeit im ISO-8601-Format |
| ↳ `end` | string | Endzeit im ISO-8601-Format |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `meetingUrl` | string | URL zum Beitritt zum Meeting |
| ↳ `location` | string | Ort der Buchung |
| ↳ `absentHost` | boolean | Ob der Gastgeber abwesend war |
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
| ↳ `bookingFieldsResponses` | json | Antworten auf benutzerdefinierte Buchungsfelder \(dynamische Schlüssel basierend auf der Ereignistyp-Konfiguration\) |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung zugeordnet sind \(dynamische Schlüssel-Wert-Paare\) |
| ↳ `rating` | number | Buchungsbewertung |
| ↳ `icsUid` | string | ICS-Kalender-UID |
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
| ↳ `cancelledByEmail` | string | E-Mail der Person, die die Buchung storniert hat |
| ↳ `reschedulingReason` | string | Grund für die Umbuchung, falls umgebucht |
| ↳ `rescheduledByEmail` | string | E-Mail der Person, die die Buchung umgebucht hat |
| ↳ `rescheduledFromUid` | string | Ursprüngliche Buchungs-UID, falls diese Buchung umgebucht wurde |
| ↳ `rescheduledToUid` | string | Neue Buchungs-UID nach Umbuchung |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
| ↳ `updatedAt` | string | Zeitpunkt der letzten Aktualisierung der Buchung |
| `pagination` | object | Paginierungs-Metadaten |
| ↳ `totalItems` | number | Gesamtanzahl der Elemente |
| ↳ `remainingItems` | number | Verbleibende Elemente nach der aktuellen Seite |
| ↳ `returnedItems` | number | Anzahl der in dieser Antwort zurückgegebenen Elemente |
| ↳ `itemsPerPage` | number | Elemente pro Seite |
| ↳ `currentPage` | number | Aktuelle Seitennummer |
| ↳ `totalPages` | number | Gesamtanzahl der Seiten |
| ↳ `hasNextPage` | boolean | Ob es eine nächste Seite gibt |
| ↳ `hasPreviousPage` | boolean | Ob es eine vorherige Seite gibt |
### `calcom_cancel_booking`
Eine bestehende Buchung stornieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der zu stornierenden Buchung |
| `cancellationReason` | string | Nein | Grund für die Stornierung der Buchung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details der stornierten Buchung |
| ↳ `eventType` | object | Details des Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
| ↳ `title` | string | Titel der Buchung |
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
| ↳ `cancelledByEmail` | string | E-Mail der Person, die die Buchung storniert hat |
| ↳ `start` | string | Startzeit im ISO-8601-Format |
| ↳ `end` | string | Endzeit im ISO-8601-Format |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `location` | string | Ort der Buchung |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung zugeordnet sind \(dynamische Schlüssel-Wert-Paare\) |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
| ↳ `status` | string | Buchungsstatus \(sollte storniert sein\) |
### `calcom_reschedule_booking`
Eine bestehende Buchung auf einen neuen Zeitpunkt verschieben
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der zu verschiebenden Buchung |
| `start` | string | Ja | Neue Startzeit im UTC ISO 8601-Format \(z. B. 2024-01-15T09:00:00Z\) |
| `reschedulingReason` | string | Nein | Grund für die Verschiebung der Buchung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details der verschobenen Buchung |
| ↳ `eventType` | object | Details des Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `title` | string | Titel der Buchung |
| ↳ `status` | string | Buchungsstatus \(z. B. akzeptiert, ausstehend, storniert\) |
| ↳ `reschedulingReason` | string | Grund für die Verschiebung, falls verschoben |
| ↳ `rescheduledFromUid` | string | Ursprüngliche Buchungs-UID, falls diese Buchung verschoben wurde |
| ↳ `rescheduledByEmail` | string | E-Mail der Person, die die Buchung verschoben hat |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `meetingUrl` | string | URL zum Beitreten des Meetings |
| ↳ `location` | string | Ort der Buchung |
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die an die Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
| ↳ `icsUid` | string | ICS-Kalender-UID |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
| ↳ `uid` | string | Eindeutige Kennung für die neue Buchung |
| ↳ `start` | string | Neue Startzeit im ISO 8601-Format |
| ↳ `end` | string | Neue Endzeit im ISO 8601-Format |
### `calcom_confirm_booking`
Eine ausstehende Buchung bestätigen, die eine Bestätigung erfordert
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der zu bestätigenden Buchung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details der bestätigten Buchung |
| ↳ `eventType` | object | Details des Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
| ↳ `title` | string | Titel der Buchung |
| ↳ `start` | string | Startzeit im ISO-8601-Format |
| ↳ `end` | string | Endzeit im ISO-8601-Format |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `meetingUrl` | string | URL zum Beitreten des Meetings |
| ↳ `location` | string | Ort der Buchung |
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
| ↳ `icsUid` | string | ICS-Kalender-UID |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
| ↳ `status` | string | Buchungsstatus \(sollte akzeptiert/bestätigt sein\) |
### `calcom_decline_booking`
Eine ausstehende Buchungsanfrage ablehnen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bookingUid` | string | Ja | Eindeutige Kennung (UID) der abzulehnenden Buchung |
| `reason` | string | Nein | Grund für die Ablehnung der Buchung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details der abgelehnten Buchung |
| ↳ `eventType` | object | Details des Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `attendees` | array | Liste der Teilnehmer |
| ↳ `name` | string | Name des Teilnehmers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail (kann von der tatsächlichen E-Mail abweichen) |
| ↳ `timeZone` | string | Zeitzone des Teilnehmers (IANA-Format) |
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
| ↳ `language` | string | Sprachpräferenz des Teilnehmers (ISO-Code) |
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
| ↳ `hosts` | array | Liste der Gastgeber |
| ↳ `id` | number | Benutzer-ID des Gastgebers |
| ↳ `name` | string | Anzeigename des Gastgebers |
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail (kann von der tatsächlichen E-Mail abweichen) |
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
| ↳ `timeZone` | string | Zeitzone des Gastgebers (IANA-Format) |
| ↳ `id` | number | Numerische Buchungs-ID |
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
| ↳ `title` | string | Titel der Buchung |
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
| ↳ `start` | string | Startzeit im ISO-8601-Format |
| ↳ `end` | string | Endzeit im ISO-8601-Format |
| ↳ `duration` | number | Dauer in Minuten |
| ↳ `eventTypeId` | number | Ereignistyp-ID |
| ↳ `location` | string | Ort der Buchung |
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung angehängt sind (dynamische Schlüssel-Wert-Paare) |
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
| ↳ `status` | string | Buchungsstatus (sollte storniert/abgelehnt sein) |
### `calcom_create_event_type`
Einen neuen Ereignistyp in Cal.com erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Titel des Ereignistyps |
| `slug` | string | Ja | Eindeutiger Slug für die Ereignistyp-URL |
| `lengthInMinutes` | number | Ja | Dauer des Ereignisses in Minuten |
| `description` | string | Nein | Beschreibung des Ereignistyps |
| `slotInterval` | number | Nein | Intervall zwischen verfügbaren Buchungsslots in Minuten |
| `minimumBookingNotice` | number | Nein | Erforderliche Mindestvorlaufzeit vor der Buchung in Minuten |
| `beforeEventBuffer` | number | Nein | Pufferzeit vor dem Ereignis in Minuten |
| `afterEventBuffer` | number | Nein | Pufferzeit nach dem Ereignis in Minuten |
| `scheduleId` | number | Nein | ID des Zeitplans für die Verfügbarkeit |
| `disableGuests` | boolean | Nein | Ob das Hinzufügen von Gästen zu Buchungen deaktiviert ist |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details des erstellten Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `title` | string | Ereignistyp-Titel |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `description` | string | Ereignistyp-Beschreibung |
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
| ↳ `slotInterval` | number | Slot-Intervall in Minuten |
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchung in Minuten |
| ↳ `beforeEventBuffer` | number | Puffer vor Ereignis in Minuten |
| ↳ `afterEventBuffer` | number | Puffer nach Ereignis in Minuten |
| ↳ `scheduleId` | number | Zeitplan-ID |
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
### `calcom_get_event_type`
Detaillierte Informationen über einen bestimmten Ereignistyp abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Ja | Ereignistyp-ID zum Abrufen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details zum Ereignistyp |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `title` | string | Titel des Ereignistyps |
| ↳ `slug` | string | Slug des Ereignistyps |
| ↳ `description` | string | Beschreibung des Ereignistyps |
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
| ↳ `slotInterval` | number | Zeitfensterintervall in Minuten |
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchungen in Minuten |
| ↳ `beforeEventBuffer` | number | Puffer vor dem Ereignis in Minuten |
| ↳ `afterEventBuffer` | number | Puffer nach dem Ereignis in Minuten |
| ↳ `scheduleId` | number | Zeitplan-ID |
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
### `calcom_list_event_types`
Eine Liste aller Ereignistypen abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `sortCreatedAt` | string | Nein | Sortierung nach Erstellungsdatum: "asc" oder "desc" |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | array | Array von Ereignistypen |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `title` | string | Ereignistyp-Titel |
| ↳ `slug` | string | Ereignistyp-Slug |
| ↳ `description` | string | Ereignistyp-Beschreibung |
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
| ↳ `slotInterval` | number | Zeitfensterintervall in Minuten |
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchungen in Minuten |
| ↳ `beforeEventBuffer` | number | Pufferzeit vor dem Ereignis in Minuten |
| ↳ `afterEventBuffer` | number | Pufferzeit nach dem Ereignis in Minuten |
| ↳ `scheduleId` | number | Zeitplan-ID |
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
### `calcom_update_event_type`
Einen bestehenden Ereignistyp in Cal.com aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Ja | Zu aktualisierende Ereignistyp-ID \(z. B. 12345\) |
| `title` | string | Nein | Titel des Ereignistyps |
| `slug` | string | Nein | Eindeutiger Slug für die Ereignistyp-URL |
| `lengthInMinutes` | number | Nein | Dauer des Ereignisses in Minuten |
| `description` | string | Nein | Beschreibung des Ereignistyps |
| `slotInterval` | number | Nein | Intervall zwischen verfügbaren Buchungszeitfenstern in Minuten |
| `minimumBookingNotice` | number | Nein | Erforderliche Mindestvorlaufzeit vor der Buchung in Minuten |
| `beforeEventBuffer` | number | Nein | Pufferzeit vor dem Ereignis in Minuten |
| `afterEventBuffer` | number | Nein | Pufferzeit nach dem Ereignis in Minuten |
| `scheduleId` | number | Nein | ID des Zeitplans für die Verfügbarkeit |
| `disableGuests` | boolean | Nein | Ob das Hinzufügen von Gästen zu Buchungen deaktiviert werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Aktualisierte Details des Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `title` | string | Titel des Ereignistyps |
| ↳ `slug` | string | Slug des Ereignistyps |
| ↳ `description` | string | Beschreibung des Ereignistyps |
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
| ↳ `slotInterval` | number | Zeitfensterintervall in Minuten |
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchungen in Minuten |
| ↳ `beforeEventBuffer` | number | Puffer vor dem Ereignis in Minuten |
| ↳ `afterEventBuffer` | number | Puffer nach dem Ereignis in Minuten |
| ↳ `scheduleId` | number | Zeitplan-ID |
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
### `calcom_delete_event_type`
Einen Ereignistyp aus Cal.com löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `eventTypeId` | number | Ja | Zu löschende Ereignistyp-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Details des gelöschten Ereignistyps |
| ↳ `id` | number | Ereignistyp-ID |
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
| ↳ `title` | string | Titel des Ereignistyps |
| ↳ `slug` | string | Slug des Ereignistyps |
### `calcom_create_schedule`
Einen neuen Verfügbarkeitsplan in Cal.com erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `name` | string | Ja | Name des Plans |
| `timeZone` | string | Ja | Zeitzone für den Plan \(z. B. America/New_York\) |
| `isDefault` | boolean | Ja | Ob dieser Plan als Standard festgelegt werden soll |
| `availability` | array | Nein | Verfügbarkeitsintervalle für den Plan |
| `items` | object | Nein | Verfügbarkeitsintervall |
| `properties` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
| `days` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
| `startTime` | string | Nein | Startzeit im Format HH:MM |
| `endTime` | string | Nein | Endzeit im Format HH:MM |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Erstellte Plandaten |
| ↳ `id` | number | Plan-ID |
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
| ↳ `name` | string | Planname |
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
| ↳ `isDefault` | boolean | Ob dies der Standardplan ist |
| ↳ `availability` | array | Verfügbarkeitsfenster |
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
### `calcom_get_schedule`
Einen bestimmten Zeitplan anhand der ID von Cal.com abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `scheduleId` | string | Ja | ID des abzurufenden Zeitplans |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Zeitplandaten |
| ↳ `id` | number | Zeitplan-ID |
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
| ↳ `name` | string | Zeitplanname |
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
| ↳ `availability` | array | Verfügbarkeitsfenster |
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
### `calcom_list_schedules`
Alle Verfügbarkeitszeitpläne von Cal.com auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | array | Array von Zeitplanobjekten |
| ↳ `id` | number | Zeitplan-ID |
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
| ↳ `name` | string | Zeitplanname |
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
| ↳ `availability` | array | Verfügbarkeitsfenster |
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
### `calcom_update_schedule`
Einen bestehenden Zeitplan in Cal.com aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `scheduleId` | string | Ja | ID des zu aktualisierenden Zeitplans |
| `name` | string | Nein | Neuer Name für den Zeitplan |
| `timeZone` | string | Nein | Neue Zeitzone für den Zeitplan \(z. B. America/New_York\) |
| `isDefault` | boolean | Nein | Ob dieser Zeitplan als Standard festgelegt werden soll |
| `availability` | array | Nein | Neue Verfügbarkeitsintervalle für den Zeitplan |
| `items` | object | Nein | Verfügbarkeitsintervall |
| `properties` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
| `days` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
| `startTime` | string | Nein | Startzeit im Format HH:MM |
| `endTime` | string | Nein | Endzeit im Format HH:MM |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Aktualisierte Zeitplandaten |
| ↳ `id` | number | Zeitplan-ID |
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
| ↳ `name` | string | Zeitplanname |
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
| ↳ `availability` | array | Verfügbarkeitsfenster |
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
### `calcom_delete_schedule`
Einen Zeitplan aus Cal.com löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `scheduleId` | string | Ja | ID des zu löschenden Zeitplans |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus \(Erfolg oder Fehler\) |
### `calcom_get_default_schedule`
Den Standard-Verfügbarkeitszeitplan aus Cal.com abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | object | Standard-Zeitplandaten |
| ↳ `id` | number | Zeitplan-ID |
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
| ↳ `name` | string | Zeitplanname |
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
| ↳ `availability` | array | Verfügbarkeitsfenster |
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
| ↳ `startTime` | string | Startzeit im Format HH:MM |
| ↳ `endTime` | string | Endzeit im Format HH:MM |
### `calcom_get_slots`
Verfügbare Buchungsslots für einen Cal.com-Ereignistyp innerhalb eines Zeitraums abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `start` | string | Ja | Beginn des Zeitraums im UTC ISO 8601-Format \(z. B. 2024-01-15T00:00:00Z\) |
| `end` | string | Ja | Ende des Zeitraums im UTC ISO 8601-Format \(z. B. 2024-01-22T00:00:00Z\) |
| `eventTypeId` | number | Nein | Ereignistyp-ID für direkte Suche |
| `eventTypeSlug` | string | Nein | Ereignistyp-Slug \(erfordert, dass der Benutzername gesetzt ist\) |
| `username` | string | Nein | Benutzername für persönliche Ereignistypen \(erforderlich bei Verwendung von eventTypeSlug\) |
| `timeZone` | string | Nein | Zeitzone für zurückgegebene Slots \(Standard ist UTC\) |
| `duration` | number | Nein | Slot-Länge in Minuten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Antwortstatus |
| `data` | json | Verfügbare Zeitslots gruppiert nach Datum \(Schlüssel im Format JJJJ-MM-TT\). Jedes Datum ist einem Array von Slot-Objekten mit Startzeit, optionaler Endzeit und Informationen zu Sitzplatz-Events zugeordnet. |

View File

@@ -165,8 +165,3 @@ Ein geplantes Ereignis stornieren
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `resource` | object | Stornierungsdetails | | `resource` | object | Stornierungsdetails |
## Hinweise
- Kategorie: `tools`
- Typ: `calendly`

View File

@@ -52,8 +52,3 @@ Egal, ob Sie sofortige Zusammenfassungen verteilen, Aufgaben protokollieren oder
## Nutzungsanleitung ## Nutzungsanleitung
Erhalten Sie Meeting-Notizen, Aufgaben, Transkripte und Aufzeichnungen, wenn Meetings verarbeitet werden. Circleback nutzt Webhooks, um Daten an Ihre Workflows zu übermitteln. Erhalten Sie Meeting-Notizen, Aufgaben, Transkripte und Aufzeichnungen, wenn Meetings verarbeitet werden. Circleback nutzt Webhooks, um Daten an Ihre Workflows zu übermitteln.
## Hinweise
- Kategorie: `triggers`
- Typ: `circleback`

View File

@@ -53,13 +53,3 @@ Populate Clay with data from a JSON file. Enables direct communication and notif
| `authToken` | string | Nein | Optionaler Auth-Token für die Clay-Webhook-Authentifizierung \(die meisten Webhooks benötigen dies nicht\) | | `authToken` | string | Nein | Optionaler Auth-Token für die Clay-Webhook-Authentifizierung \(die meisten Webhooks benötigen dies nicht\) |
#### Output #### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | json | Antwortdaten vom Clay-Webhook |
| `metadata` | object | Webhook-Antwort-Metadaten |
## Notes
- Category: `tools`
- Type: `clay`

View File

@@ -0,0 +1,437 @@
---
title: Clerk
description: Verwalten Sie Benutzer, Organisationen und Sitzungen in Clerk
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="clerk"
color="#131316"
/>
{/* MANUAL-CONTENT-START:intro */}
[Clerk](https://clerk.com/) ist eine umfassende Identitätsinfrastruktur-Plattform, die Ihnen hilft, Benutzer, Authentifizierung und Sitzungen für Ihre Anwendungen zu verwalten.
In Sim ermöglicht die Clerk-Integration Ihren Agenten, die Benutzer- und Sitzungsverwaltung durch einfach zu bedienende API-basierte Tools zu automatisieren. Agenten können sicher Benutzer auflisten, Benutzerprofile aktualisieren, Organisationen verwalten, Sitzungen überwachen und den Zugriff direkt in Ihrem Workflow widerrufen.
Mit Clerk können Sie:
- **Benutzer authentifizieren und Sitzungen verwalten**: Steuern Sie nahtlos Anmeldung, Registrierung und den Sitzungslebenszyklus für Ihre Benutzer.
- **Benutzer auflisten und aktualisieren**: Rufen Sie automatisch Benutzerlisten ab, aktualisieren Sie Benutzerattribute oder zeigen Sie Profildetails als Teil Ihrer Agentenaufgaben an.
- **Organisationen und Mitgliedschaften verwalten**: Fügen Sie Organisationen hinzu oder aktualisieren Sie diese und verwalten Sie Benutzermitgliedschaften übersichtlich.
- **Sitzungen überwachen und widerrufen**: Sehen Sie aktive oder vergangene Benutzersitzungen ein und widerrufen Sie bei Bedarf sofort den Zugriff aus Sicherheitsgründen.
Die Integration ermöglicht eine Echtzeit- und nachvollziehbare Verwaltung Ihrer Benutzerbasis alles innerhalb von Sim. Verbundene Agenten können das Onboarding automatisieren, Richtlinien durchsetzen, Verzeichnisse aktuell halten und auf Authentifizierungsereignisse oder organisatorische Änderungen reagieren, sodass Sie sichere und flexible Prozesse mit Clerk als Ihrer Identitäts-Engine betreiben können.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Clerk-Authentifizierung und Benutzerverwaltung in Ihren Workflow. Erstellen, aktualisieren, löschen und listen Sie Benutzer auf. Verwalten Sie Organisationen und deren Mitgliedschaften. Überwachen und steuern Sie Benutzersitzungen.
## Tools
### `clerk_list_users`
Listen Sie alle Benutzer in Ihrer Clerk-Anwendung mit optionaler Filterung und Paginierung auf
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `limit` | number | Nein | Anzahl der Ergebnisse pro Seite \(z. B. 10, 50, 100; Bereich: 1-500, Standard: 10\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung \(z. B. 0, 10, 20\) |
| `orderBy` | string | Nein | Sortierfeld mit optionalem +/- Präfix für die Richtung \(Standard: -created_at\) |
| `emailAddress` | string | Nein | Filtern nach E-Mail-Adresse \(z. B. user@example.com oder user1@example.com,user2@example.com\) |
| `phoneNumber` | string | Nein | Filtern nach Telefonnummer \(durch Komma getrennt für mehrere\) |
| `externalId` | string | Nein | Filtern nach externer ID \(durch Komma getrennt für mehrere\) |
| `username` | string | Nein | Filtern nach Benutzername \(durch Komma getrennt für mehrere\) |
| `userId` | string | Nein | Filtern nach Benutzer-ID \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC oder durch Komma getrennt für mehrere\) |
| `query` | string | Nein | Suchanfrage zur Übereinstimmung über E-Mail, Telefon, Benutzername und Namen \(z. B. john oder john@example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `users` | array | Array von Clerk-Benutzerobjekten |
| ↳ `id` | string | Benutzer-ID |
| ↳ `username` | string | Benutzername |
| ↳ `firstName` | string | Vorname |
| ↳ `lastName` | string | Nachname |
| ↳ `imageUrl` | string | Profilbild-URL |
| ↳ `hasImage` | boolean | Ob Benutzer ein Profilbild hat |
| ↳ `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
| ↳ `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
| ↳ `emailAddresses` | array | E-Mail-Adressen des Benutzers |
| ↳ `id` | string | E-Mail-Adressen-ID |
| ↳ `emailAddress` | string | E-Mail-Adresse |
| ↳ `phoneNumbers` | array | Telefonnummern des Benutzers |
| ↳ `id` | string | Telefonnummer-ID |
| ↳ `phoneNumber` | string | Telefonnummer |
| ↳ `externalId` | string | Externe System-ID |
| ↳ `passwordEnabled` | boolean | Ob Passwort aktiviert ist |
| ↳ `twoFactorEnabled` | boolean | Ob 2FA aktiviert ist |
| ↳ `banned` | boolean | Ob Benutzer gesperrt ist |
| ↳ `locked` | boolean | Ob Benutzer blockiert ist |
| ↳ `lastSignInAt` | number | Zeitstempel der letzten Anmeldung |
| ↳ `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
| ↳ `createdAt` | number | Erstellungszeitstempel |
| ↳ `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| ↳ `publicMetadata` | json | Öffentliche Metadaten |
| `totalCount` | number | Gesamtanzahl der Benutzer, die der Abfrage entsprechen |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_get_user`
Einen einzelnen Benutzer anhand seiner ID von Clerk abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `userId` | string | Ja | Die ID des abzurufenden Benutzers \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Benutzer-ID |
| `username` | string | Benutzername |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `imageUrl` | string | Profilbild-URL |
| `hasImage` | boolean | Ob der Benutzer ein Profilbild hat |
| `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
| `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
| `primaryWeb3WalletId` | string | Primäre Web3-Wallet-ID |
| `emailAddresses` | array | E-Mail-Adressen des Benutzers |
| ↳ `id` | string | E-Mail-Adressen-ID |
| ↳ `emailAddress` | string | E-Mail-Adresse |
| ↳ `verified` | boolean | Ob die E-Mail verifiziert ist |
| `phoneNumbers` | array | Telefonnummern des Benutzers |
| ↳ `id` | string | Telefonnummer-ID |
| ↳ `phoneNumber` | string | Telefonnummer |
| ↳ `verified` | boolean | Ob die Telefonnummer verifiziert ist |
| `externalId` | string | Externe System-ID |
| `passwordEnabled` | boolean | Ob das Passwort aktiviert ist |
| `twoFactorEnabled` | boolean | Ob 2FA aktiviert ist |
| `totpEnabled` | boolean | Ob TOTP aktiviert ist |
| `backupCodeEnabled` | boolean | Ob Backup-Codes aktiviert sind |
| `banned` | boolean | Ob der Benutzer gesperrt ist |
| `locked` | boolean | Ob der Benutzer blockiert ist |
| `deleteSelfEnabled` | boolean | Ob der Benutzer sich selbst löschen kann |
| `createOrganizationEnabled` | boolean | Ob der Benutzer Organisationen erstellen kann |
| `lastSignInAt` | number | Zeitstempel der letzten Anmeldung |
| `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `publicMetadata` | json | Öffentliche Metadaten \(vom Frontend lesbar\) |
| `privateMetadata` | json | Private Metadaten \(nur Backend\) |
| `unsafeMetadata` | json | Unsichere Metadaten \(vom Frontend änderbar\) |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_create_user`
Erstellen Sie einen neuen Benutzer in Ihrer Clerk-Anwendung
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `emailAddress` | string | Nein | E-Mail-Adressen für den Benutzer \(durch Komma getrennt für mehrere\) |
| `phoneNumber` | string | Nein | Telefonnummern für den Benutzer \(durch Komma getrennt für mehrere\) |
| `username` | string | Nein | Benutzername für den Benutzer \(muss eindeutig sein\) |
| `password` | string | Nein | Passwort für den Benutzer \(mindestens 8 Zeichen\) |
| `firstName` | string | Nein | Vorname des Benutzers |
| `lastName` | string | Nein | Nachname des Benutzers |
| `externalId` | string | Nein | Externe System-ID \(muss eindeutig sein\) |
| `publicMetadata` | json | Nein | Öffentliche Metadaten \(JSON-Objekt, lesbar vom Frontend\) |
| `privateMetadata` | json | Nein | Private Metadaten \(JSON-Objekt, nur Backend\) |
| `unsafeMetadata` | json | Nein | Unsichere Metadaten \(JSON-Objekt, änderbar vom Frontend\) |
| `skipPasswordChecks` | boolean | Nein | Passwortvalidierungsprüfungen überspringen |
| `skipPasswordRequirement` | boolean | Nein | Passwort optional machen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Erstellte Benutzer-ID |
| `username` | string | Benutzername |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `imageUrl` | string | Profilbild-URL |
| `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
| `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
| `emailAddresses` | array | E-Mail-Adressen des Benutzers |
| ↳ `id` | string | E-Mail-Adressen-ID |
| ↳ `emailAddress` | string | E-Mail-Adresse |
| ↳ `verified` | boolean | Ob die E-Mail verifiziert ist |
| `phoneNumbers` | array | Telefonnummern des Benutzers |
| ↳ `id` | string | Telefonnummer-ID |
| ↳ `phoneNumber` | string | Telefonnummer |
| ↳ `verified` | boolean | Ob die Telefonnummer verifiziert ist |
| `externalId` | string | Externe System-ID |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Letzter Aktualisierungszeitstempel |
| `publicMetadata` | json | Öffentliche Metadaten |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_update_user`
Aktualisieren Sie einen bestehenden Benutzer in Ihrer Clerk-Anwendung
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `userId` | string | Ja | Die ID des zu aktualisierenden Benutzers \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
| `firstName` | string | Nein | Vorname des Benutzers |
| `lastName` | string | Nein | Nachname des Benutzers |
| `username` | string | Nein | Benutzername \(muss eindeutig sein\) |
| `password` | string | Nein | Neues Passwort \(mindestens 8 Zeichen\) |
| `externalId` | string | Nein | Externe System-ID |
| `primaryEmailAddressId` | string | Nein | ID der verifizierten E-Mail, die als primär festgelegt werden soll |
| `primaryPhoneNumberId` | string | Nein | ID der verifizierten Telefonnummer, die als primär festgelegt werden soll |
| `publicMetadata` | json | Nein | Öffentliche Metadaten \(JSON-Objekt\) |
| `privateMetadata` | json | Nein | Private Metadaten \(JSON-Objekt\) |
| `unsafeMetadata` | json | Nein | Unsichere Metadaten \(JSON-Objekt\) |
| `skipPasswordChecks` | boolean | Nein | Passwortvalidierungsprüfungen überspringen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Aktualisierte Benutzer-ID |
| `username` | string | Benutzername |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `imageUrl` | string | Profilbild-URL |
| `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
| `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
| `emailAddresses` | array | E-Mail-Adressen des Benutzers |
| ↳ `id` | string | E-Mail-Adressen-ID |
| ↳ `emailAddress` | string | E-Mail-Adresse |
| ↳ `verified` | boolean | Ob die E-Mail verifiziert ist |
| `phoneNumbers` | array | Telefonnummern des Benutzers |
| ↳ `id` | string | Telefonnummer-ID |
| ↳ `phoneNumber` | string | Telefonnummer |
| ↳ `verified` | boolean | Ob die Telefonnummer verifiziert ist |
| `externalId` | string | Externe System-ID |
| `banned` | boolean | Ob der Benutzer gesperrt ist |
| `locked` | boolean | Ob der Benutzer blockiert ist |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `publicMetadata` | json | Öffentliche Metadaten |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_delete_user`
Einen Benutzer aus Ihrer Clerk-Anwendung löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `userId` | string | Ja | Die ID des zu löschenden Benutzers (z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | ID des gelöschten Benutzers |
| `object` | string | Objekttyp (user) |
| `deleted` | boolean | Ob der Benutzer gelöscht wurde |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_list_organizations`
Alle Organisationen in Ihrer Clerk-Anwendung mit optionaler Filterung auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `limit` | number | Nein | Anzahl der Ergebnisse pro Seite (z. B. 10, 50, 100; Bereich: 1500, Standard: 10) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung (z. B. 0, 10, 20) |
| `includeMembersCount` | boolean | Nein | Mitgliederanzahl für jede Organisation einbeziehen |
| `query` | string | Nein | Suche nach Organisations-ID, Name oder Slug (z. B. Acme Corp oder acme-corp) |
| `orderBy` | string | Nein | Sortierfeld (name, created_at, members_count) mit +/- Präfix |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `organizations` | array | Array von Clerk-Organisationsobjekten |
| ↳ `id` | string | Organisations-ID |
| ↳ `name` | string | Organisationsname |
| ↳ `slug` | string | Organisations-Slug |
| ↳ `imageUrl` | string | URL des Organisationsbilds |
| ↳ `hasImage` | boolean | Ob die Organisation ein Bild hat |
| ↳ `membersCount` | number | Anzahl der Mitglieder |
| ↳ `pendingInvitationsCount` | number | Anzahl ausstehender Einladungen |
| ↳ `maxAllowedMemberships` | number | Maximal zulässige Mitgliedschaften |
| ↳ `adminDeleteEnabled` | boolean | Ob Admin-Löschung aktiviert ist |
| ↳ `createdBy` | string | Benutzer-ID des Erstellers |
| ↳ `createdAt` | number | Erstellungszeitstempel |
| ↳ `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| ↳ `publicMetadata` | json | Öffentliche Metadaten |
| `totalCount` | number | Gesamtanzahl der Organisationen |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_get_organization`
Abrufen einer einzelnen Organisation nach ID oder Slug von Clerk
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `organizationId` | string | Ja | Die ID oder der Slug der abzurufenden Organisation \(z. B. org_2NNEqL2nrIRdJ194ndJqAHwEfxC oder my-org-slug\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Organisations-ID |
| `name` | string | Organisationsname |
| `slug` | string | Organisations-Slug |
| `imageUrl` | string | URL des Organisationsbilds |
| `hasImage` | boolean | Ob die Organisation ein Bild hat |
| `membersCount` | number | Anzahl der Mitglieder |
| `pendingInvitationsCount` | number | Anzahl ausstehender Einladungen |
| `maxAllowedMemberships` | number | Maximal zulässige Mitgliedschaften |
| `adminDeleteEnabled` | boolean | Ob Admin-Löschung aktiviert ist |
| `createdBy` | string | Benutzer-ID des Erstellers |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `publicMetadata` | json | Öffentliche Metadaten |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_create_organization`
Erstellen Sie eine neue Organisation in Ihrer Clerk-Anwendung
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `name` | string | Ja | Name der Organisation |
| `createdBy` | string | Ja | Benutzer-ID des Erstellers, der Administrator wird \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
| `slug` | string | Nein | Slug-Identifikator für die Organisation |
| `maxAllowedMemberships` | number | Nein | Maximale Mitgliederkapazität \(0 für unbegrenzt\) |
| `publicMetadata` | json | Nein | Öffentliche Metadaten \(JSON-Objekt\) |
| `privateMetadata` | json | Nein | Private Metadaten \(JSON-Objekt\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Erstellte Organisations-ID |
| `name` | string | Organisationsname |
| `slug` | string | Organisations-Slug |
| `imageUrl` | string | URL des Organisationsbildes |
| `hasImage` | boolean | Ob die Organisation ein Bild hat |
| `membersCount` | number | Anzahl der Mitglieder |
| `pendingInvitationsCount` | number | Anzahl ausstehender Einladungen |
| `maxAllowedMemberships` | number | Maximal zulässige Mitgliedschaften |
| `adminDeleteEnabled` | boolean | Ob das Löschen durch den Administrator aktiviert ist |
| `createdBy` | string | Benutzer-ID des Erstellers |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `publicMetadata` | json | Öffentliche Metadaten |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_list_sessions`
Sitzungen für einen Benutzer oder Client in Ihrer Clerk-Anwendung auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
| `userId` | string | Nein | Benutzer-ID, für die Sitzungen aufgelistet werden sollen \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC; erforderlich, wenn clientId nicht angegeben ist\) |
| `clientId` | string | Nein | Client-ID, für die Sitzungen aufgelistet werden sollen \(erforderlich, wenn userId nicht angegeben ist\) |
| `status` | string | Nein | Nach Sitzungsstatus filtern \(abandoned, active, ended, expired, pending, removed, replaced, revoked\) |
| `limit` | number | Nein | Anzahl der Ergebnisse pro Seite \(z. B. 10, 50, 100; Bereich: 1-500, Standard: 10\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung \(z. B. 0, 10, 20\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `sessions` | array | Array von Clerk-Sitzungsobjekten |
| ↳ `id` | string | Sitzungs-ID |
| ↳ `userId` | string | Benutzer-ID |
| ↳ `clientId` | string | Client-ID |
| ↳ `status` | string | Sitzungsstatus |
| ↳ `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
| ↳ `lastActiveOrganizationId` | string | ID der zuletzt aktiven Organisation |
| ↳ `expireAt` | number | Ablaufzeitstempel |
| ↳ `abandonAt` | number | Abbruchzeitstempel |
| ↳ `createdAt` | number | Erstellungszeitstempel |
| ↳ `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `totalCount` | number | Gesamtanzahl der Sitzungen |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_get_session`
Eine einzelne Sitzung anhand der ID von Clerk abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der geheime Clerk-Schlüssel für die API-Authentifizierung |
| `sessionId` | string | Ja | Die ID der abzurufenden Sitzung \(z. B. sess_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Sitzungs-ID |
| `userId` | string | Benutzer-ID |
| `clientId` | string | Client-ID |
| `status` | string | Sitzungsstatus |
| `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
| `lastActiveOrganizationId` | string | ID der zuletzt aktiven Organisation |
| `expireAt` | number | Ablaufzeitstempel |
| `abandonAt` | number | Zeitstempel für Abbruch |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `success` | boolean | Erfolgsstatus der Operation |
### `clerk_revoke_session`
Eine Sitzung widerrufen, um sie sofort ungültig zu machen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `secretKey` | string | Ja | Der geheime Clerk-Schlüssel für die API-Authentifizierung |
| `sessionId` | string | Ja | Die ID der zu widerrufenden Sitzung \(z. B. sess_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Sitzungs-ID |
| `userId` | string | Benutzer-ID |
| `clientId` | string | Client-ID |
| `status` | string | Sitzungsstatus \(sollte widerrufen sein\) |
| `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
| `lastActiveOrganizationId` | string | ID der zuletzt aktiven Organisation |
| `expireAt` | number | Ablaufzeitstempel |
| `abandonAt` | number | Zeitstempel für Abbruch |
| `createdAt` | number | Erstellungszeitstempel |
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
| `success` | boolean | Erfolgsstatus der Operation |

View File

@@ -354,3 +354,512 @@ Listet alle Confluence-Spaces auf, auf die der Benutzer zugreifen kann.
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `confluence` - Typ: `confluence`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
| `blogPostId` | string | Ja | Die ID des abzurufenden Blogbeitrags |
| `bodyFormat` | string | Nein | Format für den Blogbeitrag-Body: storage, atlas_doc_format oder view |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `id` | string | Blogbeitrag-ID |
| `title` | string | Blogbeitrag-Titel |
| `status` | string | Blogbeitrag-Status |
| `spaceId` | string | Space-ID |
| `authorId` | string | Konto-ID des Autors |
| `createdAt` | string | Erstellungszeitstempel |
| `version` | object | Versionsinformationen |
| ↳ `number` | number | Versionsnummer |
| ↳ `message` | string | Versionsnachricht |
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
| ↳ `authorId` | string | Konto-ID des Versionsautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
| `body` | object | Blogbeitrag-Body-Inhalt im angeforderten Format |
| ↳ `storage` | object | Body im Speicherformat (Confluence-Markup) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `view` | object | Body im Ansichtsformat (gerendertes HTML) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `atlas_doc_format` | object | Body im Atlassian Document Format (ADF) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| `webUrl` | string | URL zum Anzeigen des Blogbeitrags |
### `confluence_create_blogpost`
Erstellen Sie einen neuen Blogbeitrag in einem Confluence-Space.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `spaceId` | string | Ja | Die ID des Spaces, in dem der Blogbeitrag erstellt werden soll |
| `title` | string | Ja | Titel des Blogbeitrags |
| `content` | string | Ja | Blogbeitrag-Inhalt im Confluence-Speicherformat (HTML) |
| `status` | string | Nein | Blogbeitrag-Status: current (Standard) oder draft |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `id` | string | Erstellte Blogbeitrag-ID |
| `title` | string | Blogbeitrag-Titel |
| `status` | string | Blogbeitrag-Status |
| `spaceId` | string | Space-ID |
| `authorId` | string | Konto-ID des Autors |
| `body` | object | Blogbeitrag-Inhalt |
| ↳ `storage` | object | Inhalt im Speicherformat (Confluence-Markup) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `view` | object | Inhalt im Anzeigeformat (gerendertes HTML) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `atlas_doc_format` | object | Inhalt im Atlassian Document Format (ADF) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| `version` | object | Versionsinformationen des Blogbeitrags |
| ↳ `number` | number | Versionsnummer |
| ↳ `message` | string | Versionsnachricht |
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
| ↳ `authorId` | string | Konto-ID des Versionsautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
| `webUrl` | string | URL zum Anzeigen des Blogbeitrags |
### `confluence_list_blogposts_in_space`
Listet alle Blogbeiträge innerhalb eines bestimmten Confluence-Spaces auf.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `spaceId` | string | Ja | Die ID des Confluence-Spaces, aus dem Blogbeiträge aufgelistet werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Blogbeiträge (Standard: 25, max: 250) |
| `status` | string | Nein | Filtern nach Status: current, archived, trashed oder draft |
| `bodyFormat` | string | Nein | Format für den Blogbeitrags-Body: storage, atlas_doc_format oder view |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `blogPosts` | array | Array von Blogbeiträgen im Space |
| ↳ `id` | string | Blogbeitrags-ID |
| ↳ `title` | string | Blogbeitragstitel |
| ↳ `status` | string | Blogbeitragsstatus |
| ↳ `spaceId` | string | Space-ID |
| ↳ `authorId` | string | Konto-ID des Autors |
| ↳ `createdAt` | string | Erstellungszeitstempel |
| ↳ `version` | object | Versionsinformationen |
| ↳ `number` | number | Versionsnummer |
| ↳ `message` | string | Versionsnachricht |
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
| ↳ `authorId` | string | Konto-ID des Versionsautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
| ↳ `body` | object | Blogbeitrags-Body-Inhalt |
| ↳ `storage` | object | Body im Speicherformat (Confluence-Markup) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `view` | object | Body im Ansichtsformat (gerendertes HTML) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `atlas_doc_format` | object | Body im Atlassian Document Format (ADF) |
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
| ↳ `representation` | string | Inhaltsdarstellungstyp |
| ↳ `webUrl` | string | URL zum Anzeigen des Blogbeitrags |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
### `confluence_create_comment`
Fügen Sie einen Kommentar zu einer Confluence-Seite hinzu.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, zu der ein Kommentar hinzugefügt werden soll |
| `comment` | string | Ja | Kommentartext im Confluence-Speicherformat |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel der Erstellung |
| `commentId` | string | Erstellte Kommentar-ID |
| `pageId` | string | Seiten-ID |
### `confluence_list_comments`
Listen Sie alle Kommentare auf einer Confluence-Seite auf.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Kommentare aufgelistet werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare (Standard: 25) |
| `bodyFormat` | string | Nein | Format für den Kommentartext: storage, atlas_doc_format, view oder export_view (Standard: storage) |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `comments` | array | Array von Confluence-Kommentaren |
| ↳ `id` | string | Eindeutige Kommentar-ID |
| ↳ `status` | string | Kommentarstatus (z. B. current) |
| ↳ `title` | string | Kommentartitel |
| ↳ `pageId` | string | ID der Seite, zu der der Kommentar gehört |
| ↳ `blogPostId` | string | ID des Blogposts, zu dem der Kommentar gehört |
| ↳ `parentCommentId` | string | ID des übergeordneten Kommentars |
| ↳ `body` | object | Kommentarinhalt |
| ↳ `value` | string | Kommentarinhalt |
| ↳ `representation` | string | Format der Inhaltsdarstellung (z. B. storage, view) |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Kommentarerstellung |
| ↳ `authorId` | string | Account-ID des Kommentarautors |
| ↳ `version` | object | Versionsinformationen des Kommentars |
| ↳ `number` | number | Versionsnummer |
| ↳ `message` | string | Versionsnachricht |
| ↳ `minorEdit` | boolean | Ob es sich um eine geringfügige Bearbeitung handelt |
| ↳ `authorId` | string | Account-ID des Versionsautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
### `confluence_update_comment`
Aktualisiert einen vorhandenen Kommentar auf einer Confluence-Seite.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `commentId` | string | Ja | Confluence-Kommentar-ID zum Aktualisieren |
| `comment` | string | Ja | Aktualisierter Kommentartext im Confluence-Speicherformat |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel der Aktualisierung |
| `commentId` | string | Aktualisierte Kommentar-ID |
| `updated` | boolean | Aktualisierungsstatus |
### `confluence_delete_comment`
Löscht einen Kommentar von einer Confluence-Seite.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `commentId` | string | Ja | Confluence-Kommentar-ID zum Löschen |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel der Löschung |
| `commentId` | string | Gelöschte Kommentar-ID |
| `deleted` | boolean | Löschstatus |
### `confluence_upload_attachment`
Laden Sie eine Datei als Anhang zu einer Confluence-Seite hoch.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, an die die Datei angehängt werden soll |
| `file` | file | Ja | Die als Anhang hochzuladende Datei |
| `fileName` | string | Nein | Optionaler benutzerdefinierter Dateiname für den Anhang |
| `comment` | string | Nein | Optionaler Kommentar zum Anhang |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel des Uploads |
| `attachmentId` | string | Hochgeladene Anhangs-ID |
| `title` | string | Dateiname des Anhangs |
| `fileSize` | number | Dateigröße in Bytes |
| `mediaType` | string | MIME-Typ des Anhangs |
| `downloadUrl` | string | Download-URL für den Anhang |
| `pageId` | string | Seiten-ID, zu der der Anhang hinzugefügt wurde |
### `confluence_list_attachments`
Listen Sie alle Anhänge auf einer Confluence-Seite auf.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Anhänge aufgelistet werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Anhänge (Standard: 50, max: 250) |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `attachments` | array | Array von Confluence-Anhängen |
| ↳ `id` | string | Eindeutige Anhangs-ID (mit Präfix "att") |
| ↳ `title` | string | Dateiname des Anhangs |
| ↳ `status` | string | Anhangsstatus (z. B. current, archived, trashed) |
| ↳ `mediaType` | string | MIME-Typ des Anhangs |
| ↳ `fileSize` | number | Dateigröße in Bytes |
| ↳ `downloadUrl` | string | URL zum Herunterladen des Anhangs |
| ↳ `webuiUrl` | string | URL zum Anzeigen des Anhangs in der Confluence-Oberfläche |
| ↳ `pageId` | string | ID der Seite, zu der der Anhang gehört |
| ↳ `blogPostId` | string | ID des Blogbeitrags, zu dem der Anhang gehört |
| ↳ `comment` | string | Kommentar/Beschreibung des Anhangs |
| ↳ `version` | object | Versionsinformationen des Anhangs |
| ↳ `number` | number | Versionsnummer |
| ↳ `message` | string | Versionsnachricht |
| ↳ `minorEdit` | boolean | Ob es sich um eine geringfügige Bearbeitung handelt |
| ↳ `authorId` | string | Konto-ID des Versionsautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
### `confluence_delete_attachment`
Löschen eines Anhangs von einer Confluence-Seite (verschiebt ihn in den Papierkorb).
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `attachmentId` | string | Ja | Confluence-Anhangs-ID zum Löschen |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel der Löschung |
| `attachmentId` | string | Gelöschte Anhangs-ID |
| `deleted` | boolean | Löschstatus |
### `confluence_list_labels`
Alle Labels auf einer Confluence-Seite auflisten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Labels aufgelistet werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Labels (Standard: 25, max: 250) |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel des Abrufs |
| `labels` | array | Array von Labels auf der Seite |
| ↳ `id` | string | Eindeutige Label-ID |
| ↳ `name` | string | Label-Name |
| ↳ `prefix` | string | Label-Präfix/Typ (z.B. global, my, team) |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
### `confluence_add_label`
Fügen Sie einer Confluence-Seite ein Label zur Organisation und Kategorisierung hinzu.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, zu der das Label hinzugefügt werden soll |
| `labelName` | string | Ja | Name des hinzuzufügenden Labels |
| `prefix` | string | Nein | Label-Präfix: global (Standard), my, team oder system |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `pageId` | string | Seiten-ID, zu der das Label hinzugefügt wurde |
| `labelName` | string | Name des hinzugefügten Labels |
| `labelId` | string | ID des hinzugefügten Labels |
### `confluence_delete_label`
Entfernen Sie ein Label von einer Confluence-Seite.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, von der das Label entfernt werden soll |
| `labelName` | string | Ja | Name des zu entfernenden Labels |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `pageId` | string | Seiten-ID, von der das Label entfernt wurde |
| `labelName` | string | Name des entfernten Labels |
| `deleted` | boolean | Löschstatus |
### `confluence_get_pages_by_label`
Ruft alle Seiten ab, auf die ein bestimmtes Label angewendet wurde.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
| `labelId` | string | Ja | Die ID des Labels, für das Seiten abgerufen werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Seiten (Standard: 50, max: 250) |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `labelId` | string | ID des Labels |
| `pages` | array | Array von Seiten mit diesem Label |
| ↳ `id` | string | Eindeutige Seitenkennung |
| ↳ `title` | string | Seitentitel |
| ↳ `status` | string | Seitenstatus (z. B. current, archived, trashed, draft) |
| ↳ `spaceId` | string | ID des Spaces, der die Seite enthält |
| ↳ `parentId` | string | ID der übergeordneten Seite (null bei oberster Ebene) |
| ↳ `authorId` | string | Account-ID des Seitenautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Seitenerstellung |
| ↳ `version` | object | Seitenversionsinformationen |
| ↳ `number` | number | Versionsnummer |
| ↳ `message` | string | Versionsnachricht |
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
| ↳ `authorId` | string | Account-ID des Versionsautors |
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
### `confluence_list_space_labels`
Alle Labels auflisten, die mit einem Confluence-Space verknüpft sind.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `spaceId` | string | Ja | Die ID des Confluence-Space, von dem Labels aufgelistet werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Labels (Standard: 25, max: 250) |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `spaceId` | string | ID des Space |
| `labels` | array | Array von Labels im Space |
| ↳ `id` | string | Eindeutige Label-ID |
| ↳ `name` | string | Label-Name |
| ↳ `prefix` | string | Label-Präfix/Typ (z.B. global, my, team) |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
### `confluence_get_space`
Details zu einem bestimmten Confluence-Space abrufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `spaceId` | string | Ja | Confluence-Space-ID zum Abrufen |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `spaceId` | string | Space-ID |
| `name` | string | Space-Name |
| `key` | string | Space-Schlüssel |
| `type` | string | Space-Typ (global, personal) |
| `status` | string | Space-Status (current, archived) |
| `url` | string | URL zum Anzeigen des Space in Confluence |
| `authorId` | string | Account-ID des Space-Erstellers |
| `createdAt` | string | ISO 8601-Zeitstempel der Space-Erstellung |
| `homepageId` | string | ID der Space-Startseite |
| `description` | object | Space-Beschreibungsinhalt |
| ↳ `value` | string | Beschreibungstext |
| ↳ `representation` | string | Format der Inhaltsdarstellung (z. B. plain, view, storage) |
### `confluence_list_spaces`
Listet alle Confluence-Spaces auf, auf die der Benutzer zugreifen kann.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Spaces (Standard: 25, max: 250) |
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO-8601-Zeitstempel der Operation |
| `spaces` | array | Array von Confluence-Spaces |
| ↳ `id` | string | Eindeutige Space-ID |
| ↳ `key` | string | Space-Schlüssel \(Kurzbezeichner für URLs\) |
| ↳ `name` | string | Space-Name |
| ↳ `type` | string | Space-Typ \(z. B. global, personal\) |
| ↳ `status` | string | Space-Status \(z. B. current, archived\) |
| ↳ `authorId` | string | Account-ID des Space-Erstellers |
| ↳ `createdAt` | string | ISO-8601-Zeitstempel der Space-Erstellung |
| ↳ `homepageId` | string | ID der Space-Startseite |
| ↳ `description` | object | Space-Beschreibung |
| ↳ `value` | string | Beschreibungstext |
| ↳ `representation` | string | Format der Inhaltsdarstellung \(z. B. plain, view, storage\) |
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |

View File

@@ -168,15 +168,3 @@ Löscht einen Cloud-Agenten dauerhaft. Diese Aktion kann nicht rückgängig gema
| --------- | ---- | -------- | ----------- | | --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel | | `apiKey` | string | Ja | Cursor API-Schlüssel |
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) | | `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Ergebnis-Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `cursor`

View File

@@ -295,8 +295,3 @@ Eine geplante Ausfallzeit abbrechen.
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Ob die Ausfallzeit erfolgreich abgebrochen wurde | | `success` | boolean | Ob die Ausfallzeit erfolgreich abgebrochen wurde |
## Hinweise
- Kategorie: `tools`
- Typ: `datadog`

View File

@@ -730,8 +730,3 @@ Einen Discord-Webhook löschen
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung | | `message` | string | Erfolgs- oder Fehlermeldung |
## Hinweise
- Kategorie: `tools`
- Typ: `discord`

View File

@@ -212,8 +212,3 @@ Suche nach Dateien und Ordnern in Dropbox
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `matches` | array | Suchergebnisse | | `matches` | array | Suchergebnisse |
## Hinweise
- Kategorie: `tools`
- Typ: `dropbox`

View File

@@ -0,0 +1,107 @@
---
title: DSPy
description: Führen Sie Vorhersagen mit selbst gehosteten DSPy-Programmen aus
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="dspy"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[DSPy](https://github.com/stanford-oval/dspy) ist ein Open-Source-Framework für die Programmierung statt Prompting von Sprachmodellen. DSPy ermöglicht es Ihnen, interpretierbare und modulare LLM-gestützte Agenten mithilfe von Python-Funktionen, strukturierten Modulen und deklarativen Signaturen zu erstellen, wodurch es einfach wird, Sprachmodellanwendungen zu komponieren, zu debuggen und zuverlässig bereitzustellen.
Mit DSPy in Sim können Sie:
- **Benutzerdefinierte Vorhersagen ausführen**: Verbinden Sie Ihren selbst gehosteten DSPy-Server und rufen Sie Vorhersage-Endpunkte für eine Vielzahl von natürlichsprachlichen Aufgaben auf.
- **Chain of Thought und ReAct-Reasoning**: Nutzen Sie fortgeschrittene DSPy-Module für schrittweises Reasoning, mehrstufige Dialoge und Action-Observation-Schleifen.
- **Integration in Ihre Workflows**: Automatisieren Sie LLM-Vorhersagen und Reasoning als Teil jeder Sim-Automatisierung oder Agentenroutine.
- **Benutzerdefinierte Endpunkte und Kontext bereitstellen**: Rufen Sie flexibel Ihre eigenen DSPy-gestützten APIs mit benutzerdefinierter Authentifizierung, Endpunkten, Eingabefeldern und Kontext auf.
Diese Funktionen ermöglichen es Ihren Sim-Agenten, auf modulare, interpretierbare LLM-basierte Programme für Aufgaben wie Fragebeantwortung, Dokumentenanalyse, Entscheidungsunterstützung und mehr zuzugreifen wobei Sie die Kontrolle über das Modell, die Daten und die Logik behalten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie sich mit Ihren selbst gehosteten DSPy-Programmen für LLM-gestützte Vorhersagen. Unterstützt Predict, Chain of Thought und ReAct-Agenten. DSPy ist das Framework für die Programmierung nicht das Prompting von Sprachmodellen.
## Tools
### `dspy_predict`
Führen Sie eine Vorhersage mit einem selbst gehosteten DSPy-Programm-Endpunkt aus
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `baseUrl` | string | Ja | Basis-URL des DSPy-Servers \(z. B. https://your-dspy-server.com\) |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls von Ihrem Server erforderlich\) |
| `endpoint` | string | Nein | API-Endpunkt-Pfad \(Standard ist /predict\) |
| `input` | string | Ja | Der Eingabetext, der an das DSPy-Programm gesendet werden soll |
| `inputField` | string | Nein | Name des Eingabefelds, das vom DSPy-Programm erwartet wird \(Standard ist "text"\) |
| `context` | string | Nein | Zusätzlicher Kontext, der dem DSPy-Programm bereitgestellt werden soll |
| `additionalInputs` | json | Nein | Zusätzliche Schlüssel-Wert-Paare, die in den Request-Body aufgenommen werden sollen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `answer` | string | Die Hauptausgabe/Antwort des DSPy-Programms |
| `reasoning` | string | Die Begründung oder Erklärung hinter der Antwort \(falls verfügbar\) |
| `status` | string | Antwortstatus vom DSPy-Server \(Erfolg oder Fehler\) |
| `rawOutput` | json | Die vollständige Rohausgabe des DSPy-Programms \(result.toDict\(\)\) |
### `dspy_chain_of_thought`
Führen Sie eine Chain of Thought-Vorhersage mit einem selbst gehosteten DSPy ChainOfThought-Programm-Endpunkt aus
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `baseUrl` | string | Ja | Basis-URL des DSPy-Servers \(z. B. https://your-dspy-server.com\) |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls von Ihrem Server erforderlich\) |
| `endpoint` | string | Nein | API-Endpunkt-Pfad \(Standard ist /predict\) |
| `question` | string | Ja | Die Frage, die mithilfe von Chain of Thought-Reasoning beantwortet werden soll |
| `context` | string | Nein | Zusätzlicher Kontext zur Beantwortung der Frage |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `answer` | string | Die durch Chain of Thought-Reasoning generierte Antwort |
| `reasoning` | string | Die schrittweise Begründung, die zur Antwort geführt hat |
| `status` | string | Antwortstatus vom DSPy-Server \(Erfolg oder Fehler\) |
| `rawOutput` | json | Die vollständige Rohausgabe des DSPy-Programms \(result.toDict\(\)\) |
### `dspy_react`
Führen Sie einen ReAct-Agenten mit einem selbst gehosteten DSPy ReAct-Programm-Endpunkt für mehrstufiges Denken und Handeln aus
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `baseUrl` | string | Ja | Basis-URL des DSPy-Servers \(z. B. https://your-dspy-server.com\) |
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls von Ihrem Server erforderlich\) |
| `endpoint` | string | Nein | API-Endpunkt-Pfad \(Standardwert: /predict\) |
| `task` | string | Ja | Die Aufgabe oder Frage, an der der ReAct-Agent arbeiten soll |
| `context` | string | Nein | Zusätzlicher Kontext für die Aufgabe |
| `maxIterations` | number | Nein | Maximale Anzahl von Denkiterationen \(Standardwert: Servereinstellung\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `answer` | string | Die endgültige Antwort oder das Ergebnis des ReAct-Agenten |
| `reasoning` | string | Die Gesamtzusammenfassung des Denkprozesses des Agenten |
| `trajectory` | array | Der schrittweise Verlauf von Gedanken, Aktionen und Beobachtungen |
| ↳ `thought` | string | Der Denkprozess in diesem Schritt |
| ↳ `toolName` | string | Der Name des aufgerufenen Tools/der Aktion |
| ↳ `toolArgs` | json | An das Tool übergebene Argumente |
| ↳ `observation` | string | Die Beobachtung/das Ergebnis der Tool-Ausführung |
| `status` | string | Antwortstatus vom DSPy-Server \(Erfolg oder Fehler\) |
| `rawOutput` | json | Die vollständige Rohausgabe des DSPy-Programms \(result.toDict\(\)\) |

View File

@@ -56,8 +56,3 @@ Durchsuche das Web mit der DuckDuckGo Instant Answers API. Liefert sofortige Ant
| `answerType` | string | Typ der Antwort \(z.B. calc, ip, usw.\) | | `answerType` | string | Typ der Antwort \(z.B. calc, ip, usw.\) |
| `type` | string | Antworttyp: A \(Artikel\), D \(Begriffsklärung\), C \(Kategorie\), N \(Name\), E \(Exklusiv\) | | `type` | string | Antworttyp: A \(Artikel\), D \(Begriffsklärung\), C \(Kategorie\), N \(Name\), E \(Exklusiv\) |
| `relatedTopics` | array | Array verwandter Themen mit URLs und Beschreibungen | | `relatedTopics` | array | Array verwandter Themen mit URLs und Beschreibungen |
## Hinweise
- Kategorie: `tools`
- Typ: `duckduckgo`

View File

@@ -186,3 +186,20 @@ Ein Element aus einer DynamoDB-Tabelle löschen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `dynamodb` - Typ: `dynamodb`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
| `tableName` | string | Nein | Optionaler Tabellenname, um ein detailliertes Schema zu erhalten (z.B. "Users", "Orders"). Wenn nicht angegeben, werden alle Tabellen aufgelistet. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `tables` | array | Liste der Tabellennamen in der Region |
| `tableDetails` | object | Detaillierte Schemainformationen für eine bestimmte Tabelle |

View File

@@ -363,3 +363,22 @@ Erhalte umfassende Statistiken über den Elasticsearch-Cluster.
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `elasticsearch` - Typ: `elasticsearch`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Zusammenfassende Nachricht über die Indizes |
| `indices` | json | Array von Indexinformationsobjekten |

View File

@@ -49,8 +49,3 @@ TTS mit ElevenLabs-Stimmen konvertieren
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `audioUrl` | string | Die URL der generierten Audiodatei | | `audioUrl` | string | Die URL der generierten Audiodatei |
| `audioFile` | file | Die generierte Audiodatei | | `audioFile` | file | Die generierte Audiodatei |
## Hinweise
- Kategorie: `tools`
- Typ: `elevenlabs`

View File

@@ -0,0 +1,925 @@
---
title: Enrich
description: B2B-Datenanreicherung und LinkedIn-Intelligence mit Enrich.so
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="enrich"
color="#E5E5E6"
/>
{/* MANUAL-CONTENT-START:intro */}
[Enrich.so](https://enrich.so/) liefert präzise B2B-Datenanreicherung und LinkedIn-Intelligence in Echtzeit. Die Plattform bietet dynamischen Zugriff auf öffentliche und strukturierte Unternehmens-, Kontakt- und berufliche Informationen und ermöglicht es Teams, umfassendere Profile zu erstellen, die Lead-Qualität zu verbessern und effektivere Kontaktaufnahmen durchzuführen.
Mit Enrich.so können Sie:
- **Kontakt- und Unternehmensprofile anreichern**: Entdecken Sie sofort wichtige Datenpunkte für Leads, Interessenten und Unternehmen nur mit einer E-Mail-Adresse oder einem LinkedIn-Profil.
- **E-Mail-Zustellbarkeit überprüfen**: Prüfen Sie, ob E-Mail-Adressen gültig, zustellbar und sicher zu kontaktieren sind, bevor Sie versenden.
- **Geschäftliche und private E-Mails finden**: Identifizieren Sie fehlende geschäftliche E-Mails aus einem LinkedIn-Profil oder private E-Mails, um Ihre Reichweite zu erweitern.
- **Telefonnummern und Social-Media-Profile aufdecken**: Erschließen Sie zusätzliche Kommunikationskanäle für Kontakte durch Anreicherungstools.
- **LinkedIn-Beiträge und Engagement analysieren**: Extrahieren Sie Erkenntnisse über Reichweite, Reaktionen und Zielgruppe aus öffentlichen LinkedIn-Inhalten.
- **Erweiterte Personen- und Unternehmenssuche durchführen**: Ermöglichen Sie Ihren Agenten, Unternehmen und Fachkräfte anhand detaillierter Filter und Echtzeit-Intelligence zu finden.
Die Sim-Integration mit Enrich.so befähigt Ihre Agenten und Automatisierungen, B2B-Daten sofort abzufragen, anzureichern und zu validieren, wodurch die Produktivität in Workflows wie Vertriebsakquise, Recruiting, Marketing-Operations und mehr gesteigert wird. Die Kombination der Orchestrierungsfähigkeiten von Sim mit Enrich.so ermöglicht intelligentere, datengesteuerte Automatisierungsstrategien, die durch erstklassige B2B-Intelligence unterstützt werden.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Greifen Sie auf B2B-Daten-Intelligence in Echtzeit mit Enrich.so zu. Reichern Sie Profile aus E-Mail-Adressen an, finden Sie geschäftliche E-Mails aus LinkedIn, überprüfen Sie die E-Mail-Zustellbarkeit, suchen Sie nach Personen und Unternehmen und analysieren Sie das Engagement von LinkedIn-Beiträgen.
## Tools
### `enrich_check_credits`
Überprüfen Sie Ihre Enrich API-Guthaben-Nutzung und Ihr verbleibendes Guthaben.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `totalCredits` | number | Dem Konto insgesamt zugewiesene Credits |
| `creditsUsed` | number | Bisher verbrauchte Credits |
| `creditsRemaining` | number | Verbleibende verfügbare Credits |
### `enrich_email_to_profile`
Rufen Sie detaillierte LinkedIn-Profilinformationen über eine E-Mail-Adresse ab, einschließlich Berufserfahrung, Ausbildung und Fähigkeiten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `email` | string | Ja | E-Mail-Adresse für die Suche \(z. B. john.doe@company.com\) |
| `inRealtime` | boolean | Nein | Auf true setzen, um aktuelle Daten abzurufen und zwischengespeicherte Informationen zu umgehen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `displayName` | string | Vollständiger Anzeigename |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `headline` | string | Berufliche Überschrift |
| `occupation` | string | Aktuelle Tätigkeit |
| `summary` | string | Profilzusammenfassung |
| `location` | string | Standort |
| `country` | string | Land |
| `linkedInUrl` | string | LinkedIn-Profil-URL |
| `photoUrl` | string | Profilfoto-URL |
| `connectionCount` | number | Anzahl der Kontakte |
| `isConnectionCountObfuscated` | boolean | Ob die Kontaktanzahl verschleiert ist \(500+\) |
| `positionHistory` | array | Berufserfahrung |
| ↳ `title` | string | Berufsbezeichnung |
| ↳ `company` | string | Firmenname |
| ↳ `startDate` | string | Startdatum |
| ↳ `endDate` | string | Enddatum |
| ↳ `location` | string | Standort |
| `education` | array | Ausbildungsverlauf |
| ↳ `school` | string | Schulname |
| ↳ `degree` | string | Abschluss |
| ↳ `fieldOfStudy` | string | Studienrichtung |
| ↳ `startDate` | string | Startdatum |
| ↳ `endDate` | string | Enddatum |
| `certifications` | array | Berufliche Zertifizierungen |
| ↳ `name` | string | Zertifizierungsname |
| ↳ `authority` | string | Ausstellende Behörde |
| ↳ `url` | string | Zertifizierungs-URL |
| `skills` | array | Liste der Fähigkeiten |
| `languages` | array | Liste der Sprachen |
| `locale` | string | Profil-Locale \(z. B. en_US\) |
| `version` | number | Profilversionsnummer |
### `enrich_email_to_person_lite`
Rufen Sie grundlegende LinkedIn-Profilinformationen über eine E-Mail-Adresse ab. Eine schlankere Version mit nur den wichtigsten Daten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `email` | string | Ja | E-Mail-Adresse für die Suche \(z. B. john.doe@company.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `name` | string | Vollständiger Name |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `email` | string | E-Mail-Adresse |
| `title` | string | Berufsbezeichnung |
| `location` | string | Standort |
| `company` | string | Aktuelles Unternehmen |
| `companyLocation` | string | Unternehmensstandort |
| `companyLinkedIn` | string | LinkedIn-URL des Unternehmens |
| `profileId` | string | LinkedIn-Profil-ID |
| `schoolName` | string | Schulname |
| `schoolUrl` | string | Schul-URL |
| `linkedInUrl` | string | LinkedIn-Profil-URL |
| `photoUrl` | string | Profilfoto-URL |
| `followerCount` | number | Anzahl der Follower |
| `connectionCount` | number | Anzahl der Kontakte |
| `languages` | array | Gesprochene Sprachen |
| `projects` | array | Projekte |
| `certifications` | array | Zertifizierungen |
| `volunteerExperience` | array | Ehrenamtliche Tätigkeiten |
### `enrich_linkedin_profile`
Reichern Sie eine LinkedIn-Profil-URL mit detaillierten Informationen an, einschließlich Positionen, Ausbildung und Social-Media-Kennzahlen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `url` | string | Ja | LinkedIn-Profil-URL \(z. B. linkedin.com/in/williamhgates\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `profileId` | string | LinkedIn-Profil-ID |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `subTitle` | string | Profil-Untertitel/Überschrift |
| `profilePicture` | string | Profilbild-URL |
| `backgroundImage` | string | Hintergrundbild-URL |
| `industry` | string | Branche |
| `location` | string | Standort |
| `followersCount` | number | Anzahl der Follower |
| `connectionsCount` | number | Anzahl der Kontakte |
| `premium` | boolean | Ob das Konto Premium ist |
| `influencer` | boolean | Ob das Konto ein Influencer ist |
| `positions` | array | Berufspositionen |
| ↳ `title` | string | Berufsbezeichnung |
| ↳ `company` | string | Firmenname |
| ↳ `companyLogo` | string | Firmenlogo-URL |
| ↳ `startDate` | string | Startdatum |
| ↳ `endDate` | string | Enddatum |
| ↳ `location` | string | Standort |
| `education` | array | Bildungshistorie |
| ↳ `school` | string | Schulname |
| ↳ `degree` | string | Abschluss |
| ↳ `fieldOfStudy` | string | Studienrichtung |
| ↳ `startDate` | string | Startdatum |
| ↳ `endDate` | string | Enddatum |
| `websites` | array | Persönliche Websites |
### `enrich_find_email`
Person finden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `fullName` | string | Ja | Vollständiger Name der Person \(z. B. Max Mustermann\) |
| `companyDomain` | string | Ja | Unternehmens-Domain \(z. B. beispiel.de\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Gefundene E-Mail-Adresse |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `domain` | string | Unternehmens-Domain |
| `found` | boolean | Ob eine E-Mail gefunden wurde |
| `acceptAll` | boolean | Ob die Domain alle E-Mails akzeptiert |
### `enrich_linkedin_to_work_email`
Geschäftliche E-Mail-Adresse aus einer LinkedIn-Profil-URL finden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `linkedinProfile` | string | Ja | LinkedIn-Profil-URL \(z. B. https://www.linkedin.com/in/williamhgates\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Gefundene geschäftliche E-Mail-Adresse |
| `found` | boolean | Ob eine E-Mail gefunden wurde |
| `status` | string | Anfragestatus \(in_progress oder completed\) |
### `enrich_linkedin_to_personal_email`
Private E-Mail-Adresse aus einer LinkedIn-Profil-URL finden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `linkedinProfile` | string | Ja | LinkedIn-Profil-URL \(z. B. linkedin.com/in/benutzername\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Persönliche E-Mail-Adresse |
| `found` | boolean | Ob eine E-Mail-Adresse gefunden wurde |
| `status` | string | Anfragestatus |
### `enrich_phone_finder`
Finden Sie eine Telefonnummer anhand einer LinkedIn-Profil-URL.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `linkedinProfile` | string | Ja | LinkedIn-Profil-URL \(z. B. linkedin.com/in/williamhgates\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `profileUrl` | string | LinkedIn-Profil-URL |
| `mobileNumber` | string | Gefundene Mobiltelefonnummer |
| `found` | boolean | Ob eine Telefonnummer gefunden wurde |
| `status` | string | Anfragestatus \(in_progress oder completed\) |
### `enrich_email_to_phone`
Finden Sie eine Telefonnummer, die mit einer E-Mail-Adresse verknüpft ist.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `email` | string | Ja | Zu suchende E-Mail-Adresse \(z. B. john.doe@example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Nachgeschlagene E-Mail-Adresse |
| `mobileNumber` | string | Gefundene Mobiltelefonnummer |
| `found` | boolean | Ob eine Telefonnummer gefunden wurde |
| `status` | string | Anfragestatus \(in_progress oder completed\) |
### `enrich_verify_email`
Überprüfen Sie eine E-Mail-Adresse auf Zustellbarkeit, einschließlich Catch-All-Erkennung und Anbieteridentifikation.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `email` | string | Ja | Zu überprüfende E-Mail-Adresse \(z. B. john.doe@example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Überprüfte E-Mail-Adresse |
| `status` | string | Überprüfungsstatus |
| `result` | string | Zustellbarkeitsergebnis \(deliverable, undeliverable usw.\) |
| `confidenceScore` | number | Konfidenzwert \(0-100\) |
| `smtpProvider` | string | E-Mail-Dienstanbieter \(z. B. Google, Microsoft\) |
| `mailDisposable` | boolean | Ob die E-Mail von einem Wegwerf-Anbieter stammt |
| `mailAcceptAll` | boolean | Ob die Domain eine Catch-All-Domain ist |
| `free` | boolean | Ob die E-Mail einen kostenlosen E-Mail-Dienst verwendet |
### `enrich_disposable_email_check`
Überprüfen Sie, ob eine E-Mail-Adresse von einem Wegwerf- oder temporären E-Mail-Anbieter stammt. Gibt einen Score und Validierungsdetails zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `email` | string | Ja | Zu überprüfende E-Mail-Adresse \(z. B. john.doe@example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Geprüfte E-Mail-Adresse |
| `score` | number | Validierungsbewertung \(0-100\) |
| `testsPassed` | string | Anzahl bestandener Tests \(z. B. "3/3"\) |
| `passed` | boolean | Ob die E-Mail alle Validierungstests bestanden hat |
| `reason` | string | Grund für Fehler, falls E-Mail nicht bestanden hat |
| `mailServerIp` | string | IP-Adresse des Mailservers |
| `mxRecords` | array | MX-Einträge für die Domain |
| ↳ `host` | string | MX-Eintrag-Host |
| ↳ `pref` | number | MX-Eintrag-Präferenz |
### `enrich_email_to_ip`
Ermitteln Sie eine IP-Adresse, die mit einer E-Mail-Adresse verknüpft ist.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `email` | string | Ja | Zu suchende E-Mail-Adresse \(z. B. john.doe@example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Gesuchte E-Mail-Adresse |
| `ip` | string | Zugehörige IP-Adresse |
| `found` | boolean | Ob eine IP-Adresse gefunden wurde |
### `enrich_ip_to_company`
Identifizieren Sie ein Unternehmen anhand einer IP-Adresse mit detaillierten firmografischen Informationen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `ip` | string | Ja | Zu suchende IP-Adresse \(z. B. 86.92.60.221\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `name` | string | Firmenname |
| `legalName` | string | Rechtlicher Firmenname |
| `domain` | string | Primäre Domain |
| `domainAliases` | array | Domain-Aliase |
| `sector` | string | Geschäftsbereich |
| `industry` | string | Branche |
| `phone` | string | Telefonnummer |
| `employees` | number | Anzahl der Mitarbeiter |
| `revenue` | string | Geschätzter Umsatz |
| `location` | json | Firmenstandort |
| ↳ `city` | string | Stadt |
| ↳ `state` | string | Bundesland |
| ↳ `country` | string | Land |
| ↳ `timezone` | string | Zeitzone |
| `linkedInUrl` | string | LinkedIn-Unternehmens-URL |
| `twitterUrl` | string | Twitter-URL |
| `facebookUrl` | string | Facebook-URL |
### `enrich_company_lookup`
Umfassende Unternehmensinformationen nach Name oder Domain abrufen, einschließlich Finanzierung, Standort und Social-Media-Profile.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `name` | string | Nein | Firmenname \(z. B. Google\) |
| `domain` | string | Nein | Firmendomain \(z. B. google.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `name` | string | Firmenname |
| `universalName` | string | Universeller Firmenname |
| `companyId` | string | Firmen-ID |
| `description` | string | Firmenbeschreibung |
| `phone` | string | Telefonnummer |
| `linkedInUrl` | string | LinkedIn-Unternehmens-URL |
| `websiteUrl` | string | Firmenwebsite |
| `followers` | number | Anzahl der LinkedIn-Follower |
| `staffCount` | number | Anzahl der Mitarbeiter |
| `foundedDate` | string | Gründungsdatum |
| `type` | string | Unternehmenstyp |
| `industries` | array | Branchen |
| `specialties` | array | Unternehmensspezialisierungen |
| `headquarters` | json | Hauptsitz |
| ↳ `city` | string | Stadt |
| ↳ `country` | string | Land |
| ↳ `postalCode` | string | Postleitzahl |
| ↳ `line1` | string | Adresszeile 1 |
| `logo` | string | Firmenlogo-URL |
| `coverImage` | string | Titelbild-URL |
| `fundingRounds` | array | Finanzierungshistorie |
| ↳ `roundType` | string | Finanzierungsrunde |
| ↳ `amount` | number | Eingeworbener Betrag |
| ↳ `currency` | string | Währung |
| ↳ `investors` | array | Investoren |
### `enrich_company_funding`
Rufen Sie die Finanzierungshistorie, Traffic-Metriken und Führungskräfteinformationen eines Unternehmens nach Domain ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `domain` | string | Ja | Unternehmens-Domain \(z. B. example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `legalName` | string | Rechtlicher Unternehmensname |
| `employeeCount` | number | Anzahl der Mitarbeiter |
| `headquarters` | string | Hauptsitz |
| `industry` | string | Branche |
| `totalFundingRaised` | number | Gesamte eingeworbene Finanzierung |
| `fundingRounds` | array | Finanzierungsrunden |
| ↳ `roundType` | string | Rundentyp |
| ↳ `amount` | number | Eingeworbener Betrag |
| ↳ `date` | string | Datum |
| ↳ `investors` | array | Investoren |
| `monthlyVisits` | number | Monatliche Website-Besuche |
| `trafficChange` | number | Traffic-Veränderung in Prozent |
| `itSpending` | number | Geschätzte IT-Ausgaben in USD |
| `executives` | array | Führungsteam |
| ↳ `name` | string | Name |
| ↳ `title` | string | Titel |
### `enrich_company_revenue`
Rufen Sie Umsatzdaten, CEO-Informationen und Wettbewerbsanalysen eines Unternehmens nach Domain ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `domain` | string | Ja | Unternehmens-Domain \(z. B. clay.io\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `companyName` | string | Firmenname |
| `shortDescription` | string | Kurze Firmenbeschreibung |
| `fullSummary` | string | Vollständige Firmenzusammenfassung |
| `revenue` | string | Firmenumsatz |
| `revenueMin` | number | Minimale Umsatzschätzung |
| `revenueMax` | number | Maximale Umsatzschätzung |
| `employeeCount` | number | Anzahl der Mitarbeiter |
| `founded` | string | Gründungsjahr |
| `ownership` | string | Eigentumsform |
| `status` | string | Firmenstatus \(z. B. Aktiv\) |
| `website` | string | Firmenwebsite-URL |
| `ceo` | json | CEO-Informationen |
| ↳ `name` | string | CEO-Name |
| ↳ `designation` | string | CEO-Bezeichnung/Titel |
| ↳ `rating` | number | CEO-Bewertung |
| `socialLinks` | json | Social-Media-Links |
| ↳ `linkedIn` | string | LinkedIn-URL |
| ↳ `twitter` | string | Twitter-URL |
| ↳ `facebook` | string | Facebook-URL |
| `totalFunding` | string | Gesamte eingeworbene Finanzierung |
| `fundingRounds` | number | Anzahl der Finanzierungsrunden |
| `competitors` | array | Wettbewerber |
| ↳ `name` | string | Name des Wettbewerbers |
| ↳ `revenue` | string | Umsatz |
| ↳ `employeeCount` | number | Mitarbeiterzahl |
| ↳ `headquarters` | string | Hauptsitz |
### `enrich_search_people`
Suche nach Fachkräften anhand verschiedener Kriterien wie Name, Titel, Fähigkeiten, Ausbildung und Unternehmen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `firstName` | string | Nein | Vorname |
| `lastName` | string | Nein | Nachname |
| `summary` | string | Nein | Schlüsselwörter für berufliche Zusammenfassung |
| `subTitle` | string | Nein | Berufsbezeichnung/Untertitel |
| `locationCountry` | string | Nein | Land |
| `locationCity` | string | Nein | Stadt |
| `locationState` | string | Nein | Bundesland/Provinz |
| `influencer` | boolean | Nein | Nur nach Influencern filtern |
| `premium` | boolean | Nein | Nur nach Premium-Konten filtern |
| `language` | string | Nein | Hauptsprache |
| `industry` | string | Nein | Branche |
| `currentJobTitles` | json | Nein | Aktuelle Berufsbezeichnungen \(Array\) |
| `pastJobTitles` | json | Nein | Frühere Berufsbezeichnungen \(Array\) |
| `skills` | json | Nein | Zu suchende Fähigkeiten \(Array\) |
| `schoolNames` | json | Nein | Schulnamen \(Array\) |
| `certifications` | json | Nein | Zertifizierungen zum Filtern \(Array\) |
| `degreeNames` | json | Nein | Abschlussnamen zum Filtern \(Array\) |
| `studyFields` | json | Nein | Studienfächer zum Filtern \(Array\) |
| `currentCompanies` | json | Nein | Aktuelle Unternehmens-IDs zum Filtern \(Array von Zahlen\) |
| `pastCompanies` | json | Nein | Frühere Unternehmens-IDs zum Filtern \(Array von Zahlen\) |
| `currentPage` | number | Nein | Seitennummer \(Standard: 1\) |
| `pageSize` | number | Nein | Ergebnisse pro Seite \(Standard: 20\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `currentPage` | number | Aktuelle Seitennummer |
| `totalPage` | number | Gesamtanzahl der Seiten |
| `pageSize` | number | Ergebnisse pro Seite |
| `profiles` | array | Suchergebnisse |
| ↳ `profileIdentifier` | string | Profil-ID |
| ↳ `givenName` | string | Vorname |
| ↳ `familyName` | string | Nachname |
| ↳ `currentPosition` | string | Aktuelle Berufsbezeichnung |
| ↳ `profileImage` | string | Profilbild-URL |
| ↳ `externalProfileUrl` | string | LinkedIn-URL |
| ↳ `city` | string | Stadt |
| ↳ `country` | string | Land |
| ↳ `expertSkills` | array | Fähigkeiten |
### `enrich_search_company`
Suche nach Unternehmen anhand verschiedener Kriterien wie Name, Branche, Standort und Größe.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `name` | string | Nein | Unternehmensname |
| `website` | string | Nein | Unternehmenswebsite-URL |
| `tagline` | string | Nein | Unternehmens-Slogan |
| `type` | string | Nein | Unternehmenstyp \(z. B. Privat, Öffentlich\) |
| `description` | string | Nein | Schlüsselwörter der Unternehmensbeschreibung |
| `industries` | json | Nein | Branchen zum Filtern \(Array\) |
| `locationCountry` | string | Nein | Land |
| `locationCity` | string | Nein | Stadt |
| `postalCode` | string | Nein | Postleitzahl |
| `locationCountryList` | json | Nein | Mehrere Länder zum Filtern \(Array\) |
| `locationCityList` | json | Nein | Mehrere Städte zum Filtern \(Array\) |
| `specialities` | json | Nein | Unternehmensspezialisierungen \(Array\) |
| `followers` | number | Nein | Mindestanzahl an Followern |
| `staffCount` | number | Nein | Maximale Mitarbeiterzahl |
| `staffCountMin` | number | Nein | Minimale Mitarbeiterzahl |
| `staffCountMax` | number | Nein | Maximale Mitarbeiterzahl |
| `currentPage` | number | Nein | Seitennummer \(Standard: 1\) |
| `pageSize` | number | Nein | Ergebnisse pro Seite \(Standard: 20\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `currentPage` | number | Aktuelle Seitennummer |
| `totalPage` | number | Gesamtanzahl der Seiten |
| `pageSize` | number | Ergebnisse pro Seite |
| `companies` | array | Suchergebnisse |
| ↳ `companyName` | string | Firmenname |
| ↳ `tagline` | string | Firmen-Slogan |
| ↳ `webAddress` | string | Website-URL |
| ↳ `industries` | array | Branchen |
| ↳ `teamSize` | number | Teamgröße |
| ↳ `linkedInProfile` | string | LinkedIn-URL |
### `enrich_search_company_employees`
Suche nach Mitarbeitern in bestimmten Unternehmen nach Standort und Berufsbezeichnung.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `companyIds` | json | Nein | Array von Firmen-IDs, in denen gesucht werden soll |
| `country` | string | Nein | Länderfilter \(z. B. Vereinigte Staaten\) |
| `city` | string | Nein | Stadtfilter \(z. B. San Francisco\) |
| `state` | string | Nein | Bundesland-Filter \(z. B. Kalifornien\) |
| `jobTitles` | json | Nein | Berufsbezeichnungen zum Filtern \(Array\) |
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
| `pageSize` | number | Nein | Ergebnisse pro Seite \(Standard: 10\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `currentPage` | number | Aktuelle Seitennummer |
| `totalPage` | number | Gesamtanzahl der Seiten |
| `pageSize` | number | Anzahl der Ergebnisse pro Seite |
| `profiles` | array | Mitarbeiterprofile |
| ↳ `profileIdentifier` | string | Profil-ID |
| ↳ `givenName` | string | Vorname |
| ↳ `familyName` | string | Nachname |
| ↳ `currentPosition` | string | Aktuelle Berufsbezeichnung |
| ↳ `profileImage` | string | Profilbild-URL |
| ↳ `externalProfileUrl` | string | LinkedIn-URL |
| ↳ `city` | string | Stadt |
| ↳ `country` | string | Land |
| ↳ `expertSkills` | array | Fähigkeiten |
### `enrich_search_similar_companies`
Finden Sie Unternehmen, die einem bestimmten Unternehmen ähnlich sind, anhand der LinkedIn-URL mit Filtern für Standort und Größe.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `url` | string | Ja | LinkedIn-Unternehmens-URL \(z. B. linkedin.com/company/google\) |
| `accountLocation` | json | Nein | Nach Standorten filtern \(Array von Ländernamen\) |
| `employeeSizeType` | string | Nein | Filtertyp für Mitarbeiterzahl \(z. B. RANGE\) |
| `employeeSizeRange` | json | Nein | Bereiche der Mitarbeiterzahl \(Array von \{start, end\}-Objekten\) |
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
| `num` | number | Nein | Anzahl der Ergebnisse pro Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `companies` | array | Ähnliche Unternehmen |
| ↳ `url` | string | LinkedIn-URL |
| ↳ `name` | string | Unternehmensname |
| ↳ `universalName` | string | Universeller Name |
| ↳ `type` | string | Unternehmenstyp |
| ↳ `description` | string | Beschreibung |
| ↳ `phone` | string | Telefonnummer |
| ↳ `website` | string | Website-URL |
| ↳ `logo` | string | Logo-URL |
| ↳ `foundedYear` | number | Gründungsjahr |
| ↳ `staffTotal` | number | Gesamtzahl der Mitarbeiter |
| ↳ `industries` | array | Branchen |
| ↳ `relevancyScore` | number | Relevanzbewertung |
| ↳ `relevancyValue` | string | Relevanzwert |
### `enrich_sales_pointer_people`
Erweiterte Personensuche mit komplexen Filtern für Standort, Unternehmensgröße, Seniorität, Erfahrung und mehr.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `page` | number | Ja | Seitennummer \(beginnt bei 1\) |
| `filters` | json | Ja | Array von Filterobjekten. Jeder Filter hat einen Typ \(z. B. POSTAL_CODE, COMPANY_HEADCOUNT\), Werte \(Array mit id, text, selectionType: INCLUDED/EXCLUDED\) und optional selectedSubFilter |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | array | Personenergebnisse |
| ↳ `name` | string | Vollständiger Name |
| ↳ `summary` | string | Berufliche Zusammenfassung |
| ↳ `location` | string | Standort |
| ↳ `profilePicture` | string | Profilbild-URL |
| ↳ `linkedInUrn` | string | LinkedIn-URN |
| ↳ `positions` | array | Berufspositionen |
| ↳ `education` | array | Ausbildung |
| `pagination` | json | Paginierungsinformationen |
| ↳ `totalCount` | number | Gesamtergebnisse |
| ↳ `returnedCount` | number | Zurückgegebene Anzahl |
| ↳ `start` | number | Startposition |
| ↳ `limit` | number | Limit |
### `enrich_search_posts`
Durchsuchen Sie LinkedIn-Beiträge nach Schlüsselwörtern mit Datumsfilterung.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `keywords` | string | Ja | Suchbegriffe \(z. B. "KI-Automatisierung"\) |
| `datePosted` | string | Nein | Zeitfilter \(z. B. past_week, past_month\) |
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `count` | number | Gesamtanzahl der Ergebnisse |
| `posts` | array | Suchergebnisse |
| ↳ `url` | string | Beitrags-URL |
| ↳ `postId` | string | Beitrags-ID |
| ↳ `author` | object | Autoreninformationen |
| ↳ `name` | string | Autorenname |
| ↳ `headline` | string | Autoren-Headline |
| ↳ `linkedInUrl` | string | LinkedIn-URL des Autors |
| ↳ `profileImage` | string | Profilbild des Autors |
| ↳ `timestamp` | string | Zeitstempel des Beitrags |
| ↳ `textContent` | string | Textinhalt des Beitrags |
| ↳ `hashtags` | array | Hashtags |
| ↳ `mediaUrls` | array | Medien-URLs |
| ↳ `reactions` | number | Anzahl der Reaktionen |
| ↳ `commentsCount` | number | Anzahl der Kommentare |
### `enrich_get_post_details`
Detaillierte Informationen zu einem LinkedIn-Beitrag anhand der URL abrufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `url` | string | Ja | LinkedIn-Beitrags-URL |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `postId` | string | Beitrags-ID |
| `author` | json | Autoreninformationen |
| ↳ `name` | string | Autorenname |
| ↳ `headline` | string | Autoren-Headline |
| ↳ `linkedInUrl` | string | LinkedIn-URL des Autors |
| ↳ `profileImage` | string | Profilbild des Autors |
| `timestamp` | string | Zeitstempel des Beitrags |
| `textContent` | string | Textinhalt des Beitrags |
| `hashtags` | array | Hashtags |
| `mediaUrls` | array | Medien-URLs |
| `reactions` | number | Anzahl der Reaktionen |
| `commentsCount` | number | Anzahl der Kommentare |
### `enrich_search_post_reactions`
Reaktionen auf einen LinkedIn-Beitrag mit Filterung nach Reaktionstyp abrufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `postUrn` | string | Ja | LinkedIn-Aktivitäts-URN \(z. B. urn:li:activity:7231931952839196672\) |
| `reactionType` | string | Ja | Reaktionstyp-Filter: all, like, love, celebrate, insightful oder funny \(Standard: all\) |
| `page` | number | Ja | Seitennummer \(beginnt bei 1\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `page` | number | Aktuelle Seitennummer |
| `totalPage` | number | Gesamtanzahl der Seiten |
| `count` | number | Anzahl der zurückgegebenen Reaktionen |
| `reactions` | array | Reaktionen |
| ↳ `reactionType` | string | Art der Reaktion |
| ↳ `reactor` | object | Person, die reagiert hat |
| ↳ `name` | string | Name |
| ↳ `subTitle` | string | Berufsbezeichnung |
| ↳ `profileId` | string | Profil-ID |
| ↳ `profilePicture` | string | Profilbild-URL |
| ↳ `linkedInUrl` | string | LinkedIn-URL |
### `enrich_search_post_comments`
Kommentare zu einem LinkedIn-Beitrag abrufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `postUrn` | string | Ja | LinkedIn-Aktivitäts-URN \(z. B. urn:li:activity:7191163324208705536\) |
| `page` | number | Nein | Seitennummer \(beginnt bei 1, Standard: 1\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `page` | number | Aktuelle Seitennummer |
| `totalPage` | number | Gesamtanzahl der Seiten |
| `count` | number | Anzahl der zurückgegebenen Kommentare |
| `comments` | array | Kommentare |
| ↳ `activityId` | string | Kommentar-Aktivitäts-ID |
| ↳ `commentary` | string | Kommentartext |
| ↳ `linkedInUrl` | string | Link zum Kommentar |
| ↳ `commenter` | object | Informationen zum Kommentator |
| ↳ `profileId` | string | Profil-ID |
| ↳ `firstName` | string | Vorname |
| ↳ `lastName` | string | Nachname |
| ↳ `subTitle` | string | Untertitel/Überschrift |
| ↳ `profilePicture` | string | Profilbild-URL |
| ↳ `backgroundImage` | string | Hintergrundbild-URL |
| ↳ `entityUrn` | string | Entity-URN |
| ↳ `objectUrn` | string | Objekt-URN |
| ↳ `profileType` | string | Profiltyp |
| ↳ `reactionBreakdown` | object | Reaktionen auf den Kommentar |
| ↳ `likes` | number | Anzahl der Likes |
| ↳ `empathy` | number | Anzahl der Empathie-Reaktionen |
| ↳ `other` | number | Anzahl der sonstigen Reaktionen |
### `enrich_search_people_activities`
Person abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `profileId` | string | Ja | LinkedIn-Profil-ID |
| `activityType` | string | Ja | Aktivitätstyp: posts, comments oder articles |
| `paginationToken` | string | Nein | Paginierungs-Token für die nächste Ergebnisseite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `paginationToken` | string | Token zum Abrufen der nächsten Seite |
| `activityType` | string | Typ der zurückgegebenen Aktivitäten |
| `activities` | array | Aktivitäten |
| ↳ `activityId` | string | Aktivitäts-ID |
| ↳ `commentary` | string | Textinhalt der Aktivität |
| ↳ `linkedInUrl` | string | Link zur Aktivität |
| ↳ `timeElapsed` | string | Verstrichene Zeit seit der Aktivität |
| ↳ `numReactions` | number | Gesamtanzahl der Reaktionen |
| ↳ `author` | object | Informationen zum Autor der Aktivität |
| ↳ `name` | string | Name des Autors |
| ↳ `profileId` | string | Profil-ID |
| ↳ `profilePicture` | string | URL des Profilbilds |
| ↳ `reactionBreakdown` | object | Reaktionen |
| ↳ `likes` | number | Likes |
| ↳ `empathy` | number | Empathie-Reaktionen |
| ↳ `other` | number | Sonstige Reaktionen |
| ↳ `attachments` | array | Anhang-URLs |
### `enrich_search_company_activities`
Unternehmen abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `companyId` | string | Ja | LinkedIn-Unternehmens-ID |
| `activityType` | string | Ja | Aktivitätstyp: Posts, Kommentare oder Artikel |
| `paginationToken` | string | Nein | Paginierungs-Token für die nächste Ergebnisseite |
| `offset` | number | Nein | Anzahl der zu überspringenden Datensätze \(Standard: 0\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `paginationToken` | string | Token zum Abrufen der nächsten Seite |
| `activityType` | string | Typ der zurückgegebenen Aktivitäten |
| `activities` | array | Aktivitäten |
| ↳ `activityId` | string | Aktivitäts-ID |
| ↳ `commentary` | string | Textinhalt der Aktivität |
| ↳ `linkedInUrl` | string | Link zur Aktivität |
| ↳ `timeElapsed` | string | Verstrichene Zeit seit der Aktivität |
| ↳ `numReactions` | number | Gesamtanzahl der Reaktionen |
| ↳ `author` | object | Informationen zum Autor der Aktivität |
| ↳ `name` | string | Name des Autors |
| ↳ `profileId` | string | Profil-ID |
| ↳ `profilePicture` | string | URL des Profilbilds |
| ↳ `reactionBreakdown` | object | Reaktionen |
| ↳ `likes` | number | Likes |
| ↳ `empathy` | number | Empathie-Reaktionen |
| ↳ `other` | number | Sonstige Reaktionen |
| ↳ `attachments` | array | Anhänge |
### `enrich_reverse_hash_lookup`
Wandelt einen MD5-E-Mail-Hash zurück in die ursprüngliche E-Mail-Adresse und den Anzeigenamen um.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
| `hash` | string | Ja | MD5-Hash-Wert zum Nachschlagen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `hash` | string | MD5-Hash, der nachgeschlagen wurde |
| `email` | string | Ursprüngliche E-Mail-Adresse |
| `displayName` | string | Anzeigename, der mit der E-Mail verknüpft ist |
| `found` | boolean | Ob eine E-Mail für den Hash gefunden wurde |
### `enrich_search_logo`
Ruft die URL eines Firmenlogos anhand der Domain ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Enrich API-Schlüssel |
| `url` | string | Ja | Firmendomain \(z. B. google.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `logoUrl` | string | URL zum Abrufen des Firmenlogos |
| `domain` | string | Domain, die nachgeschlagen wurde |

View File

@@ -143,8 +143,3 @@ Führe umfassende Recherchen mit KI durch, um detaillierte Berichte mit Quellena
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `research` | array | Umfassende Forschungsergebnisse mit Quellenangaben und Zusammenfassungen | | `research` | array | Umfassende Forschungsergebnisse mit Quellenangaben und Zusammenfassungen |
## Hinweise
- Kategorie: `tools`
- Typ: `exa`

View File

@@ -6,7 +6,7 @@ description: Mehrere Dateien lesen und parsen
import { BlockInfoCard } from "@/components/ui/block-info-card" import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard <BlockInfoCard
type="file" type="file_v3"
color="#40916C" color="#40916C"
/> />
@@ -47,8 +47,3 @@ Parsen einer oder mehrerer hochgeladener Dateien oder Dateien von URLs (Text, PD
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `files` | array | Array der geparsten Dateien | | `files` | array | Array der geparsten Dateien |
| `combinedContent` | string | Kombinierter Inhalt aller geparsten Dateien | | `combinedContent` | string | Kombinierter Inhalt aller geparsten Dateien |
## Hinweise
- Kategorie: `tools`
- Typ: `file`

View File

@@ -171,8 +171,3 @@ Autonomer Web-Datenextraktions-Agent. Sucht und sammelt Informationen basierend
| `creditsUsed` | number | Anzahl der von dieser Agent-Aufgabe verbrauchten Credits | | `creditsUsed` | number | Anzahl der von dieser Agent-Aufgabe verbrauchten Credits |
| `expiresAt` | string | Zeitstempel, wann die Ergebnisse ablaufen \(24 Stunden\) | | `expiresAt` | string | Zeitstempel, wann die Ergebnisse ablaufen \(24 Stunden\) |
| `sources` | object | Array der vom Agent verwendeten Quell-URLs | | `sources` | object | Array der vom Agent verwendeten Quell-URLs |
## Hinweise
- Kategorie: `tools`
- Typ: `firecrawl`

View File

@@ -6,7 +6,7 @@ description: Interagieren Sie mit Fireflies.ai-Besprechungstranskripten und -auf
import { BlockInfoCard } from "@/components/ui/block-info-card" import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard <BlockInfoCard
type="fireflies" type="fireflies_v2"
color="#100730" color="#100730"
/> />
@@ -226,8 +226,3 @@ Alle Kontakte aus Ihren Fireflies.ai-Meetings auflisten
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `contacts` | array | Liste der Kontakte aus Meetings | | `contacts` | array | Liste der Kontakte aus Meetings |
## Hinweise
- Kategorie: `tools`
- Typ: `fireflies`

File diff suppressed because it is too large Load Diff

View File

@@ -422,8 +422,3 @@ Eine laufende GitLab-Pipeline abbrechen
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `pipeline` | object | Die abgebrochene GitLab-Pipeline | | `pipeline` | object | Die abgebrochene GitLab-Pipeline |
## Hinweise
- Kategorie: `tools`
- Typ: `gitlab`

View File

@@ -264,13 +264,3 @@ Label(s) von einer Gmail-Nachricht entfernen
| `labelIds` | string | Ja | Durch Kommas getrennte Label-IDs zum Entfernen \(z.B. INBOX, Label_123\) | | `labelIds` | string | Ja | Durch Kommas getrennte Label-IDs zum Entfernen \(z.B. INBOX, Label_123\) |
#### Ausgabe #### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `gmail`

View File

@@ -0,0 +1,92 @@
---
title: Google Books
description: Buchinformationen suchen und abrufen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_books"
color="#FFFFFF"
/>
## Nutzungsanleitung
Suchen Sie nach Büchern über die Google Books API. Finden Sie Bände nach Titel, Autor, ISBN oder Stichwörtern und rufen Sie detaillierte Informationen zu bestimmten Büchern ab, einschließlich Beschreibungen, Bewertungen und Veröffentlichungsdetails.
## Tools
### `google_books_volume_search`
Suchen Sie nach Büchern über die Google Books API
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Books API-Schlüssel |
| `query` | string | Ja | Suchanfrage. Unterstützt spezielle Schlüsselwörter: intitle:, inauthor:, inpublisher:, subject:, isbn: |
| `filter` | string | Nein | Ergebnisse nach Verfügbarkeit filtern \(partial, full, free-ebooks, paid-ebooks, ebooks\) |
| `printType` | string | Nein | Auf Drucktyp beschränken \(all, books, magazines\) |
| `orderBy` | string | Nein | Sortierreihenfolge \(relevance, newest\) |
| `startIndex` | number | Nein | Index des ersten zurückzugebenden Ergebnisses \(für Paginierung\) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-40\) |
| `langRestrict` | string | Nein | Ergebnisse auf eine bestimmte Sprache beschränken \(ISO 639-1-Code\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `totalItems` | number | Gesamtanzahl der übereinstimmenden Ergebnisse |
| `volumes` | array | Liste der übereinstimmenden Bände |
| ↳ `id` | string | Band-ID |
| ↳ `title` | string | Buchtitel |
| ↳ `subtitle` | string | Buchuntertitel |
| ↳ `authors` | array | Liste der Autoren |
| ↳ `publisher` | string | Verlagsname |
| ↳ `publishedDate` | string | Veröffentlichungsdatum |
| ↳ `description` | string | Buchbeschreibung |
| ↳ `pageCount` | number | Anzahl der Seiten |
| ↳ `categories` | array | Buchkategorien |
| ↳ `averageRating` | number | Durchschnittliche Bewertung \(1-5\) |
| ↳ `ratingsCount` | number | Anzahl der Bewertungen |
| ↳ `language` | string | Sprachcode |
| ↳ `previewLink` | string | Link zur Vorschau auf Google Books |
| ↳ `infoLink` | string | Link zur Infoseite |
| ↳ `thumbnailUrl` | string | URL des Buchcover-Thumbnails |
| ↳ `isbn10` | string | ISBN-10-Kennung |
| ↳ `isbn13` | string | ISBN-13-Kennung |
### `google_books_volume_details`
Detaillierte Informationen über ein bestimmtes Buchvolumen abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Books API-Schlüssel |
| `volumeId` | string | Ja | Die ID des abzurufenden Volumens |
| `projection` | string | Nein | Projektionsebene \(full, lite\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Volumen-ID |
| `title` | string | Buchtitel |
| `subtitle` | string | Buchuntertitel |
| `authors` | array | Liste der Autoren |
| `publisher` | string | Verlagsname |
| `publishedDate` | string | Veröffentlichungsdatum |
| `description` | string | Buchbeschreibung |
| `pageCount` | number | Anzahl der Seiten |
| `categories` | array | Buchkategorien |
| `averageRating` | number | Durchschnittliche Bewertung \(1-5\) |
| `ratingsCount` | number | Anzahl der Bewertungen |
| `language` | string | Sprachcode |
| `previewLink` | string | Link zur Vorschau auf Google Books |
| `infoLink` | string | Link zur Infoseite |
| `thumbnailUrl` | string | URL des Buchcover-Thumbnails |
| `isbn10` | string | ISBN-10-Kennung |
| `isbn13` | string | ISBN-13-Kennung |

View File

@@ -139,3 +139,145 @@ Teilnehmer zu einem bestehenden Google Kalender-Ereignis einladen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_calendar` - Typ: `google_calendar`
Ein Ereignis in einen anderen Kalender verschieben. Gibt nur API-konforme Felder zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `calendarId` | string | Nein | Quell-Google-Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
| `eventId` | string | Ja | Google-Kalender-Ereignis-ID, die verschoben werden soll |
| `destinationCalendarId` | string | Ja | Ziel-Google-Kalender-ID |
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Ereignis-ID |
| `htmlLink` | string | Ereignis-Link |
| `status` | string | Ereignisstatus |
| `summary` | string | Ereignistitel |
| `description` | string | Ereignisbeschreibung |
| `location` | string | Ereignisort |
| `start` | json | Ereignisstart |
| `end` | json | Ereignisende |
| `attendees` | json | Ereignisteilnehmer |
| `creator` | json | Ereignisersteller |
| `organizer` | json | Ereignisorganisator |
### `google_calendar_instances`
Instanzen eines wiederkehrenden Ereignisses aus Google Kalender abrufen. Gibt nur API-konforme Felder zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `calendarId` | string | Nein | Google-Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
| `eventId` | string | Ja | ID des wiederkehrenden Ereignisses, dessen Instanzen abgerufen werden sollen |
| `timeMin` | string | Nein | Untere Grenze für Instanzen (RFC3339-Zeitstempel, z. B. 2025-06-03T00:00:00Z) |
| `timeMax` | string | Nein | Obere Grenze für Instanzen (RFC3339-Zeitstempel, z. B. 2025-06-04T00:00:00Z) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Instanzen (Standard 250, max. 2500) |
| `pageToken` | string | Nein | Token zum Abrufen nachfolgender Ergebnisseiten |
| `showDeleted` | boolean | Nein | Gelöschte Instanzen einschließen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `nextPageToken` | string | Nächstes Seiten-Token |
| `timeZone` | string | Kalender-Zeitzone |
| `instances` | json | Liste der wiederkehrenden Ereignisinstanzen |
### `google_calendar_list_calendars`
Alle Kalender des Benutzers auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `minAccessRole` | string | Nein | Minimale Zugriffsrolle für zurückgegebene Kalender: freeBusyReader, reader, writer oder owner |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Kalender (Standard 100, max. 250) |
| `pageToken` | string | Nein | Token zum Abrufen nachfolgender Ergebnisseiten |
| `showDeleted` | boolean | Nein | Gelöschte Kalender einschließen |
| `showHidden` | boolean | Nein | Ausgeblendete Kalender einschließen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `nextPageToken` | string | Nächstes Seiten-Token |
| `calendars` | array | Liste der Kalender |
| ↳ `id` | string | Kalender-ID |
| ↳ `summary` | string | Kalendertitel |
| ↳ `description` | string | Kalenderbeschreibung |
| ↳ `location` | string | Kalenderort |
| ↳ `timeZone` | string | Kalender-Zeitzone |
| ↳ `accessRole` | string | Zugriffsrolle für den Kalender |
| ↳ `backgroundColor` | string | Kalender-Hintergrundfarbe |
| ↳ `foregroundColor` | string | Kalender-Vordergrundfarbe |
| ↳ `primary` | boolean | Ob dies der Hauptkalender ist |
| ↳ `hidden` | boolean | Ob der Kalender ausgeblendet ist |
| ↳ `selected` | boolean | Ob der Kalender ausgewählt ist |
### `google_calendar_quick_add`
Ereignisse aus natürlichsprachlichem Text erstellen. Gibt nur API-konforme Felder zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `calendarId` | string | Nein | Google Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
| `text` | string | Ja | Natürlichsprachlicher Text, der das Ereignis beschreibt (z. B. "Meeting mit John morgen um 15 Uhr") |
| `attendees` | array | Nein | Array von E-Mail-Adressen der Teilnehmer (kommagetrennte Zeichenkette wird ebenfalls akzeptiert) |
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Ereignis-ID |
| `htmlLink` | string | Ereignis-Link |
| `status` | string | Ereignisstatus |
| `summary` | string | Ereignistitel |
| `description` | string | Ereignisbeschreibung |
| `location` | string | Ereignisort |
| `start` | json | Ereignisstart |
| `end` | json | Ereignisende |
| `attendees` | json | Ereignisteilnehmer |
| `creator` | json | Ereignisersteller |
| `organizer` | json | Ereignisorganisator |
### `google_calendar_invite`
Teilnehmer zu einem bestehenden Google Kalender-Ereignis einladen. Gibt nur API-konforme Felder zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `calendarId` | string | Nein | Google Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
| `eventId` | string | Ja | Google Kalender-Ereignis-ID, zu der Teilnehmer eingeladen werden sollen |
| `attendees` | array | Ja | Array von E-Mail-Adressen der einzuladenden Teilnehmer |
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
| `replaceExisting` | boolean | Nein | Ob bestehende Teilnehmer ersetzt oder hinzugefügt werden sollen (Standard ist false) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Ereignis-ID |
| `htmlLink` | string | Ereignis-Link |
| `status` | string | Ereignisstatus |
| `summary` | string | Ereignistitel |
| `description` | string | Ereignisbeschreibung |
| `location` | string | Ereignisort |
| `start` | json | Ereignisbeginn |
| `end` | json | Ereignisende |
| `attendees` | json | Ereignisteilnehmer |
| `creator` | json | Ereignisersteller |
| `organizer` | json | Ereignisorganisator |

View File

@@ -102,27 +102,3 @@ Inhalte in einem Google Docs-Dokument schreiben oder aktualisieren
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `updatedContent` | boolean | Gibt an, ob der Dokumentinhalt erfolgreich aktualisiert wurde | | `updatedContent` | boolean | Gibt an, ob der Dokumentinhalt erfolgreich aktualisiert wurde |
| `metadata` | json | Aktualisierte Dokument-Metadaten einschließlich ID, Titel und URL | | `metadata` | json | Aktualisierte Dokument-Metadaten einschließlich ID, Titel und URL |
### `google_docs_create`
Ein neues Google Docs-Dokument erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Der Titel des zu erstellenden Dokuments |
| `content` | string | Nein | Der Inhalt des zu erstellenden Dokuments |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in dem das Dokument erstellt werden soll |
| `folderId` | string | Nein | Die ID des Ordners, in dem das Dokument erstellt werden soll \(interne Verwendung\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | json | Metadaten des erstellten Dokuments einschließlich ID, Titel und URL |
## Hinweise
- Kategorie: `tools`
- Typ: `google_docs`

View File

@@ -124,3 +124,270 @@ Dateien und Ordner in Google Drive auflisten
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_drive` - Typ: `google_drive`
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | file | Heruntergeladene Datei, gespeichert in Ausführungsdateien |
| `metadata` | object | Vollständige Dateimetadaten von Google Drive |
| ↳ `id` | string | Google Drive-Datei-ID |
| ↳ `kind` | string | Ressourcentyp-Kennung |
| ↳ `name` | string | Dateiname |
| ↳ `mimeType` | string | MIME-Typ |
| ↳ `description` | string | Dateibeschreibung |
| ↳ `originalFilename` | string | Original hochgeladener Dateiname |
| ↳ `fullFileExtension` | string | Vollständige Dateierweiterung |
| ↳ `fileExtension` | string | Dateierweiterung |
| ↳ `owners` | json | Liste der Dateieigentümer |
| ↳ `permissions` | json | Dateiberechtigungen |
| ↳ `permissionIds` | json | Berechtigungs-IDs |
| ↳ `shared` | boolean | Ob Datei geteilt ist |
| ↳ `ownedByMe` | boolean | Ob im Besitz des aktuellen Benutzers |
| ↳ `writersCanShare` | boolean | Ob Autoren teilen können |
| ↳ `viewersCanCopyContent` | boolean | Ob Betrachter kopieren können |
| ↳ `copyRequiresWriterPermission` | boolean | Ob Kopieren Autorenberechtigung erfordert |
| ↳ `sharingUser` | json | Benutzer, der die Datei geteilt hat |
| ↳ `starred` | boolean | Ob Datei mit Stern markiert ist |
| ↳ `trashed` | boolean | Ob Datei im Papierkorb ist |
| ↳ `explicitlyTrashed` | boolean | Ob explizit in Papierkorb verschoben |
| ↳ `appProperties` | json | App-spezifische Eigenschaften |
| ↳ `createdTime` | string | Dateierstellungszeit |
| ↳ `modifiedTime` | string | Letzte Änderungszeit |
| ↳ `modifiedByMeTime` | string | Wann vom aktuellen Benutzer geändert |
| ↳ `viewedByMeTime` | string | Wann zuletzt vom aktuellen Benutzer angesehen |
| ↳ `sharedWithMeTime` | string | Wann mit aktuellem Benutzer geteilt |
| ↳ `lastModifyingUser` | json | Benutzer, der die Datei zuletzt geändert hat |
| ↳ `viewedByMe` | boolean | Ob vom aktuellen Benutzer angesehen |
| ↳ `modifiedByMe` | boolean | Ob vom aktuellen Benutzer geändert |
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
| ↳ `webContentLink` | string | Direkte Download-URL |
| ↳ `iconLink` | string | URL zum Dateisymbol |
| ↳ `thumbnailLink` | string | URL zum Vorschaubild |
| ↳ `exportLinks` | json | Exportformat-Links |
| ↳ `size` | string | Dateigröße in Bytes |
| ↳ `quotaBytesUsed` | string | Verwendetes Speicherkontingent |
| ↳ `md5Checksum` | string | MD5-Hash |
| ↳ `sha1Checksum` | string | SHA-1-Hash |
| ↳ `sha256Checksum` | string | SHA-256-Hash |
| ↳ `parents` | json | Übergeordnete Ordner-IDs |
| ↳ `spaces` | json | Bereiche, die Datei enthalten |
| ↳ `driveId` | string | Geteilte Laufwerk-ID |
| ↳ `capabilities` | json | Benutzerfähigkeiten für Datei |
| ↳ `version` | string | Versionsnummer |
| ↳ `headRevisionId` | string | Hauptrevisions-ID |
| ↳ `hasThumbnail` | boolean | Ob Vorschaubild vorhanden |
| ↳ `thumbnailVersion` | string | Vorschaubild-Version |
| ↳ `imageMediaMetadata` | json | Bildspezifische Metadaten |
| ↳ `videoMediaMetadata` | json | Videospezifische Metadaten |
| ↳ `isAppAuthorized` | boolean | Ob von anfragender App erstellt |
| ↳ `contentRestrictions` | json | Inhaltsbeschränkungen |
| ↳ `linkShareMetadata` | json | Link-Freigabe-Metadaten |
| ↳ `revisions` | json | Dateirevisionshistorie \(nur erste 100 Revisionen\) |
### `google_drive_copy`
Erstellen Sie eine Kopie einer Datei in Google Drive
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der zu kopierenden Datei |
| `newName` | string | Nein | Name für die kopierte Datei (Standard: "Kopie von [ursprünglicher Name]") |
| `destinationFolderId` | string | Nein | ID des Ordners, in dem die Kopie abgelegt werden soll (Standard: gleicher Speicherort wie das Original) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | json | Die Metadaten der kopierten Datei |
| ↳ `id` | string | Google Drive-Datei-ID der Kopie |
| ↳ `kind` | string | Ressourcentyp-Kennung |
| ↳ `name` | string | Dateiname |
| ↳ `mimeType` | string | MIME-Typ |
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
| ↳ `parents` | json | IDs der übergeordneten Ordner |
| ↳ `createdTime` | string | Erstellungszeit der Datei |
| ↳ `modifiedTime` | string | Zeitpunkt der letzten Änderung |
| ↳ `owners` | json | Liste der Dateieigentümer |
| ↳ `size` | string | Dateigröße in Bytes |
### `google_drive_update`
Aktualisieren Sie Dateimetadaten in Google Drive (umbenennen, verschieben, mit Stern markieren, Beschreibung hinzufügen)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der zu aktualisierenden Datei |
| `name` | string | Nein | Neuer Name für die Datei |
| `description` | string | Nein | Neue Beschreibung für die Datei |
| `addParents` | string | Nein | Durch Kommas getrennte Liste von IDs übergeordneter Ordner, die hinzugefügt werden sollen (verschiebt die Datei in diese Ordner) |
| `removeParents` | string | Nein | Durch Kommas getrennte Liste von IDs übergeordneter Ordner, die entfernt werden sollen |
| `starred` | boolean | Nein | Ob die Datei mit einem Stern markiert oder die Markierung entfernt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | json | Die aktualisierten Dateimetadaten |
| ↳ `id` | string | Google Drive-Datei-ID |
| ↳ `kind` | string | Ressourcentyp-Kennung |
| ↳ `name` | string | Dateiname |
| ↳ `mimeType` | string | MIME-Typ |
| ↳ `description` | string | Dateibeschreibung |
| ↳ `starred` | boolean | Ob die Datei mit Stern markiert ist |
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
| ↳ `parents` | json | IDs der übergeordneten Ordner |
| ↳ `modifiedTime` | string | Zeitpunkt der letzten Änderung |
### `google_drive_trash`
Eine Datei in den Papierkorb von Google Drive verschieben (kann später wiederhergestellt werden)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der Datei, die in den Papierkorb verschoben werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | json | Die Metadaten der gelöschten Datei |
| ↳ `id` | string | Google Drive-Datei-ID |
| ↳ `kind` | string | Ressourcentyp-Kennung |
| ↳ `name` | string | Dateiname |
| ↳ `mimeType` | string | MIME-Typ |
| ↳ `trashed` | boolean | Ob sich die Datei im Papierkorb befindet (sollte true sein) |
| ↳ `trashedTime` | string | Zeitpunkt, zu dem die Datei gelöscht wurde |
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
### `google_drive_delete`
Eine Datei dauerhaft aus Google Drive löschen (umgeht den Papierkorb)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der Datei, die dauerhaft gelöscht werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob die Datei erfolgreich gelöscht wurde |
| `fileId` | string | Die ID der gelöschten Datei |
### `google_drive_share`
Eine Datei mit einem Benutzer, einer Gruppe, einer Domain teilen oder öffentlich machen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der Datei, die geteilt werden soll |
| `type` | string | Ja | Art des Empfängers: user, group, domain oder anyone |
| `role` | string | Ja | Berechtigungsrolle: owner \(Eigentümerschaft übertragen\), organizer \(nur freigegebenes Laufwerk\), fileOrganizer \(nur freigegebenes Laufwerk\), writer \(bearbeiten\), commenter \(ansehen und kommentieren\), reader \(nur ansehen\) |
| `email` | string | Nein | E-Mail-Adresse des Benutzers oder der Gruppe \(erforderlich für type=user oder type=group\) |
| `domain` | string | Nein | Domain, mit der geteilt werden soll \(erforderlich für type=domain\) |
| `transferOwnership` | boolean | Nein | Erforderlich, wenn die Rolle owner ist. Überträgt die Eigentümerschaft an den angegebenen Benutzer. |
| `moveToNewOwnersRoot` | boolean | Nein | Beim Übertragen der Eigentümerschaft die Datei in den Stammordner von „Meine Ablage" des neuen Eigentümers verschieben. |
| `sendNotification` | boolean | Nein | Ob eine E-Mail-Benachrichtigung gesendet werden soll \(Standard: true\) |
| `emailMessage` | string | Nein | Benutzerdefinierte Nachricht, die in die Benachrichtigungs-E-Mail aufgenommen werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `permission` | json | Die Details der erstellten Berechtigung |
| ↳ `id` | string | Berechtigungs-ID |
| ↳ `type` | string | Empfängertyp \(user, group, domain, anyone\) |
| ↳ `role` | string | Berechtigungsrolle |
| ↳ `emailAddress` | string | E-Mail des Empfängers |
| ↳ `displayName` | string | Anzeigename des Empfängers |
| ↳ `domain` | string | Domain des Empfängers |
| ↳ `expirationTime` | string | Ablaufzeit |
| ↳ `deleted` | boolean | Ob der Empfänger gelöscht wurde |
### `google_drive_unshare`
Eine Berechtigung von einer Datei entfernen (Zugriff widerrufen)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der Datei, deren Berechtigungen geändert werden sollen |
| `permissionId` | string | Ja | Die ID der zu entfernenden Berechtigung \(verwenden Sie list_permissions, um diese zu finden\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `removed` | boolean | Ob die Berechtigung erfolgreich entfernt wurde |
| `fileId` | string | Die ID der Datei |
| `permissionId` | string | Die ID der entfernten Berechtigung |
### `google_drive_list_permissions`
Alle Berechtigungen (wer hat Zugriff) für eine Datei in Google Drive auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der Datei, für die Berechtigungen aufgelistet werden sollen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `permissions` | array | Liste der Berechtigungen für die Datei |
| ↳ `id` | string | Berechtigungs-ID \(zum Entfernen der Berechtigung verwenden\) |
| ↳ `type` | string | Empfängertyp \(user, group, domain, anyone\) |
| ↳ `role` | string | Berechtigungsrolle \(owner, organizer, fileOrganizer, writer, commenter, reader\) |
| ↳ `emailAddress` | string | E-Mail des Empfängers |
| ↳ `displayName` | string | Anzeigename des Empfängers |
| ↳ `photoLink` | string | Foto-URL des Empfängers |
| ↳ `domain` | string | Domain des Empfängers |
| ↳ `expirationTime` | string | Ablaufzeitpunkt der Berechtigung |
| ↳ `deleted` | boolean | Ob das Empfängerkonto gelöscht wurde |
| ↳ `allowFileDiscovery` | boolean | Ob die Datei vom Empfänger auffindbar ist |
| ↳ `pendingOwner` | boolean | Ob eine Eigentumsübertragung aussteht |
| ↳ `permissionDetails` | json | Details zu geerbten Berechtigungen |
| `nextPageToken` | string | Token zum Abrufen der nächsten Seite von Berechtigungen |
### `google_drive_get_about`
Informationen über den Benutzer und sein Google Drive abrufen (Speicherkontingent, Funktionen)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `user` | json | Informationen über den authentifizierten Benutzer |
| ↳ `displayName` | string | Anzeigename des Benutzers |
| ↳ `emailAddress` | string | E-Mail-Adresse des Benutzers |
| ↳ `photoLink` | string | URL zum Profilfoto des Benutzers |
| ↳ `permissionId` | string | Berechtigungs-ID des Benutzers |
| ↳ `me` | boolean | Ob dies der authentifizierte Benutzer ist |
| `storageQuota` | json | Informationen zum Speicherkontingent in Bytes |
| ↳ `limit` | string | Gesamtes Speicherlimit in Bytes \(null für unbegrenzt\) |
| ↳ `usage` | string | Insgesamt verwendeter Speicher in Bytes |
| ↳ `usageInDrive` | string | Von Drive-Dateien verwendeter Speicher in Bytes |
| ↳ `usageInDriveTrash` | string | Von gelöschten Dateien verwendeter Speicher in Bytes |
| `canCreateDrives` | boolean | Ob der Benutzer geteilte Ablagen erstellen kann |
| `importFormats` | json | Zuordnung von MIME-Typen, die importiert werden können, und ihren Zielformaten |
| `exportFormats` | json | Zuordnung von Google Workspace-MIME-Typen und ihren exportierbaren Formaten |
| `maxUploadSize` | string | Maximale Upload-Größe in Bytes |

View File

@@ -52,3 +52,193 @@ Integrieren Sie Google Forms in Ihren Workflow. Geben Sie eine Formular-ID an, u
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_forms` - Typ: `google_forms`
Ruft eine Formularstruktur einschließlich ihrer Elemente, Einstellungen und Metadaten ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Die ID des abzurufenden Google-Formulars |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `formId` | string | Die Formular-ID |
| `title` | string | Der für Befragte sichtbare Formulartitel |
| `description` | string | Die Formularbeschreibung |
| `documentTitle` | string | Der in Drive sichtbare Dokumenttitel |
| `responderUri` | string | Die URI zum Teilen mit Befragten |
| `linkedSheetId` | string | Die ID der verknüpften Google-Tabelle |
| `revisionId` | string | Die Revisions-ID des Formulars |
| `items` | array | Die Formularelemente (Fragen, Abschnitte usw.) |
| ↳ `itemId` | string | Element-ID |
| ↳ `title` | string | Elementtitel |
| ↳ `description` | string | Elementbeschreibung |
| `settings` | json | Formulareinstellungen |
| `publishSettings` | json | Formularveröffentlichungseinstellungen |
### `google_forms_create_form`
Erstellt ein neues Google-Formular mit einem Titel
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Der für Befragte sichtbare Titel des Formulars |
| `documentTitle` | string | Nein | Der in Drive sichtbare Dokumenttitel (standardmäßig der Formulartitel) |
| `unpublished` | boolean | Nein | Falls true, wird ein unveröffentlichtes Formular erstellt, das keine Antworten akzeptiert |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `formId` | string | Die ID des erstellten Formulars |
| `title` | string | Der Formulartitel |
| `documentTitle` | string | Der Dokumenttitel in Drive |
| `responderUri` | string | Die URI zum Teilen mit Befragten |
| `revisionId` | string | Die Revisions-ID des Formulars |
### `google_forms_batch_update`
Mehrere Aktualisierungen auf ein Formular anwenden (Elemente hinzufügen, Informationen aktualisieren, Einstellungen ändern usw.)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Google Forms Formular-ID |
| `requests` | json | Ja | Array von Aktualisierungsanfragen (updateFormInfo, updateSettings, createItem, updateItem, moveItem, deleteItem) |
| `includeFormInResponse` | boolean | Nein | Ob das aktualisierte Formular in der Antwort zurückgegeben werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `replies` | array | Die Antworten von jeder Aktualisierungsanfrage |
| `writeControl` | object | Schreibsteuerungsinformationen mit Revisions-IDs |
| ↳ `requiredRevisionId` | string | Erforderliche Revisions-ID zur Konflikterkennung |
| ↳ `targetRevisionId` | string | Ziel-Revisions-ID |
| `form` | object | Das aktualisierte Formular (falls includeFormInResponse true war) |
| ↳ `formId` | string | Die Formular-ID |
| ↳ `info` | object | Formularinformationen mit Titel und Beschreibung |
| ↳ `title` | string | Der für Befragte sichtbare Formulartitel |
| ↳ `description` | string | Die Formularbeschreibung |
| ↳ `documentTitle` | string | Der in Drive sichtbare Dokumenttitel |
| ↳ `settings` | object | Formulareinstellungen |
| ↳ `quizSettings` | object | Quiz-Einstellungen |
| ↳ `isQuiz` | boolean | Ob das Formular ein Quiz ist |
| ↳ `emailCollectionType` | string | E-Mail-Erfassungstyp |
| ↳ `revisionId` | string | Die Revisions-ID des Formulars |
| ↳ `responderUri` | string | Die URI zum Teilen mit Befragten |
| ↳ `linkedSheetId` | string | Die ID des verknüpften Google Sheets |
| ↳ `publishSettings` | object | Formularveröffentlichungseinstellungen |
| ↳ `publishState` | object | Aktueller Veröffentlichungsstatus |
| ↳ `isPublished` | boolean | Ob das Formular veröffentlicht ist |
| ↳ `isAcceptingResponses` | boolean | Ob das Formular Antworten akzeptiert |
### `google_forms_set_publish_settings`
Aktualisiert die Veröffentlichungseinstellungen eines Formulars (veröffentlichen/zurückziehen, Antworten akzeptieren)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Google Forms Formular-ID |
| `isPublished` | boolean | Ja | Ob das Formular veröffentlicht und für andere sichtbar ist |
| `isAcceptingResponses` | boolean | Nein | Ob das Formular Antworten akzeptiert \(wird auf false gesetzt, wenn isPublished false ist\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `formId` | string | Die Formular-ID |
| `publishSettings` | json | Die aktualisierten Veröffentlichungseinstellungen |
| ↳ `publishState` | object | Der Veröffentlichungsstatus |
| ↳ `isPublished` | boolean | Ob das Formular veröffentlicht ist |
| ↳ `isAcceptingResponses` | boolean | Ob das Formular Antworten akzeptiert |
### `google_forms_create_watch`
Erstellt eine Benachrichtigungsüberwachung für Formularänderungen (Schemaänderungen oder neue Antworten)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Google Forms Formular-ID zur Überwachung |
| `eventType` | string | Ja | Zu überwachender Ereignistyp: SCHEMA \(Formularänderungen\) oder RESPONSES \(neue Einreichungen\) |
| `topicName` | string | Ja | Der Cloud Pub/Sub Topic-Name \(Format: projects/\{project\}/topics/\{topic\}\) |
| `watchId` | string | Nein | Benutzerdefinierte Watch-ID \(4-63 Zeichen, Kleinbuchstaben, Zahlen, Bindestriche\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Die Watch-ID |
| `eventType` | string | Der überwachte Ereignistyp |
| `topicName` | string | Das Cloud Pub/Sub-Thema |
| `createTime` | string | Zeitpunkt der Erstellung der Watch |
| `expireTime` | string | Ablaufzeitpunkt der Watch \(7 Tage nach Erstellung\) |
| `state` | string | Der Watch-Status \(ACTIVE, SUSPENDED\) |
### `google_forms_list_watches`
Alle Benachrichtigungs-Watches für ein Formular auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Google Forms Formular-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `watches` | array | Liste der Watches für das Formular |
| ↳ `id` | string | Watch-ID |
| ↳ `eventType` | string | Ereignistyp \(SCHEMA oder RESPONSES\) |
| ↳ `createTime` | string | Zeitpunkt der Erstellung der Watch |
| ↳ `expireTime` | string | Ablaufzeitpunkt der Watch |
| ↳ `state` | string | Watch-Status |
### `google_forms_delete_watch`
Eine Benachrichtigungs-Watch von einem Formular löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Google Forms Formular-ID |
| `watchId` | string | Ja | Zu löschende Watch-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob die Überwachung erfolgreich gelöscht wurde |
### `google_forms_renew_watch`
Verlängert eine Benachrichtigungsüberwachung um weitere 7 Tage
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `formId` | string | Ja | Google Forms Formular-ID |
| `watchId` | string | Ja | Zu verlängernde Überwachungs-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Die Überwachungs-ID |
| `eventType` | string | Der überwachte Ereignistyp |
| `expireTime` | string | Die neue Ablaufzeit |
| `state` | string | Der Überwachungsstatus |

View File

@@ -217,3 +217,201 @@ Prüfen, ob ein Benutzer Mitglied einer Google-Gruppe ist
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_groups` - Typ: `google_groups`
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
| `memberKey` | string | Ja | Zu prüfende Mitgliederkennung. Kann die E-Mail-Adresse des Mitglieds \(z. B. user@example.com\) oder die eindeutige Mitglieds-ID sein |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `isMember` | boolean | Gibt an, ob der Benutzer ein Mitglied der Gruppe ist |
### `google_groups_list_aliases`
Alle E-Mail-Aliase für eine Google-Gruppe auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `aliases` | array | Liste der E-Mail-Aliase für die Gruppe |
| ↳ `id` | string | Eindeutige Gruppenkennung |
| ↳ `primaryEmail` | string | Primäre E-Mail-Adresse der Gruppe |
| ↳ `alias` | string | Alias-E-Mail-Adresse |
| ↳ `kind` | string | API-Ressourcentyp |
| ↳ `etag` | string | Ressourcenversionskennung |
### `google_groups_add_alias`
Einen E-Mail-Alias zu einer Google-Gruppe hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
| `alias` | string | Ja | Der E-Mail-Alias, der zur Gruppe hinzugefügt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Gruppenkennung |
| `primaryEmail` | string | Primäre E-Mail-Adresse der Gruppe |
| `alias` | string | Der hinzugefügte Alias |
| `kind` | string | API-Ressourcentyp |
| `etag` | string | Ressourcenversionskennung |
### `google_groups_remove_alias`
Einen E-Mail-Alias von einer Google-Gruppe entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
| `alias` | string | Ja | Der E-Mail-Alias, der aus der Gruppe entfernt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Gibt an, ob der Alias erfolgreich gelöscht wurde |
### `google_groups_get_settings`
Die Einstellungen für eine Google-Gruppe abrufen, einschließlich Zugriffsberechtigungen, Moderation und Veröffentlichungsoptionen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupEmail` | string | Ja | Die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Die E-Mail-Adresse der Gruppe |
| `name` | string | Der Gruppenname \(max. 75 Zeichen\) |
| `description` | string | Die Gruppenbeschreibung \(max. 4096 Zeichen\) |
| `whoCanJoin` | string | Wer der Gruppe beitreten kann \(ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN\) |
| `whoCanViewMembership` | string | Wer die Gruppenmitgliedschaft anzeigen kann |
| `whoCanViewGroup` | string | Wer Gruppennachrichten anzeigen kann |
| `whoCanPostMessage` | string | Wer Nachrichten in der Gruppe veröffentlichen kann |
| `allowExternalMembers` | string | Ob externe Benutzer Mitglieder sein können |
| `allowWebPosting` | string | Ob Web-Veröffentlichung erlaubt ist |
| `primaryLanguage` | string | Die primäre Sprache der Gruppe |
| `isArchived` | string | Ob Nachrichten archiviert werden |
| `archiveOnly` | string | Ob die Gruppe nur archiviert ist \(inaktiv\) |
| `messageModerationLevel` | string | Nachrichtenmoderationsebene |
| `spamModerationLevel` | string | Spam-Behandlungsebene \(ALLOW, MODERATE, SILENTLY_MODERATE, REJECT\) |
| `replyTo` | string | Standard-Antwortziel |
| `customReplyTo` | string | Benutzerdefinierte E-Mail für Antworten |
| `includeCustomFooter` | string | Ob eine benutzerdefinierte Fußzeile eingefügt werden soll |
| `customFooterText` | string | Benutzerdefinierter Fußzeilentext \(max. 1000 Zeichen\) |
| `sendMessageDenyNotification` | string | Ob Ablehnungsbenachrichtigungen gesendet werden sollen |
| `defaultMessageDenyNotificationText` | string | Standard-Ablehnungsnachrichtentext |
| `membersCanPostAsTheGroup` | string | Ob Mitglieder als Gruppe veröffentlichen können |
| `includeInGlobalAddressList` | string | Ob in der globalen Adressliste enthalten |
| `whoCanLeaveGroup` | string | Wer die Gruppe verlassen kann |
| `whoCanContactOwner` | string | Wer den Gruppeninhaber kontaktieren kann |
| `favoriteRepliesOnTop` | string | Ob bevorzugte Antworten oben erscheinen |
| `whoCanApproveMembers` | string | Wer neue Mitglieder genehmigen kann |
| `whoCanBanUsers` | string | Wer Benutzer sperren kann |
| `whoCanModerateMembers` | string | Wer Mitglieder verwalten kann |
| `whoCanModerateContent` | string | Wer Inhalte moderieren kann |
| `whoCanAssistContent` | string | Wer bei Inhaltsmetadaten unterstützen kann |
| `enableCollaborativeInbox` | string | Ob der kollaborative Posteingang aktiviert ist |
| `whoCanDiscoverGroup` | string | Wer die Gruppe entdecken kann |
| `defaultSender` | string | Standard-Absenderidentität \(DEFAULT_SELF oder GROUP\) |
### `google_groups_update_settings`
Aktualisieren Sie die Einstellungen für eine Google-Gruppe, einschließlich Zugriffsberechtigungen, Moderation und Veröffentlichungsoptionen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupEmail` | string | Ja | Die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) |
| `name` | string | Nein | Der Gruppenname \(max. 75 Zeichen\) |
| `description` | string | Nein | Die Gruppenbeschreibung \(max. 4096 Zeichen\) |
| `whoCanJoin` | string | Nein | Wer kann beitreten: ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN |
| `whoCanViewMembership` | string | Nein | Wer kann Mitgliedschaft einsehen: ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW |
| `whoCanViewGroup` | string | Nein | Wer kann Gruppennachrichten einsehen: ANYONE_CAN_VIEW, ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW |
| `whoCanPostMessage` | string | Nein | Wer kann posten: NONE_CAN_POST, ALL_MANAGERS_CAN_POST, ALL_MEMBERS_CAN_POST, ALL_OWNERS_CAN_POST, ALL_IN_DOMAIN_CAN_POST, ANYONE_CAN_POST |
| `allowExternalMembers` | string | Nein | Ob externe Benutzer Mitglieder sein können: true oder false |
| `allowWebPosting` | string | Nein | Ob Web-Posting erlaubt ist: true oder false |
| `primaryLanguage` | string | Nein | Die Hauptsprache der Gruppe \(z. B. de\) |
| `isArchived` | string | Nein | Ob Nachrichten archiviert werden: true oder false |
| `archiveOnly` | string | Nein | Ob die Gruppe nur archiviert \(inaktiv\) ist: true oder false |
| `messageModerationLevel` | string | Nein | Nachrichtenmoderation: MODERATE_ALL_MESSAGES, MODERATE_NON_MEMBERS, MODERATE_NEW_MEMBERS, MODERATE_NONE |
| `spamModerationLevel` | string | Nein | Spam-Behandlung: ALLOW, MODERATE, SILENTLY_MODERATE, REJECT |
| `replyTo` | string | Nein | Standard-Antwort: REPLY_TO_CUSTOM, REPLY_TO_SENDER, REPLY_TO_LIST, REPLY_TO_OWNER, REPLY_TO_IGNORE, REPLY_TO_MANAGERS |
| `customReplyTo` | string | Nein | Benutzerdefinierte E-Mail für Antworten \(wenn replyTo REPLY_TO_CUSTOM ist\) |
| `includeCustomFooter` | string | Nein | Ob benutzerdefinierte Fußzeile eingefügt werden soll: true oder false |
| `customFooterText` | string | Nein | Benutzerdefinierter Fußzeilentext \(max. 1000 Zeichen\) |
| `sendMessageDenyNotification` | string | Nein | Ob Ablehnungsbenachrichtigungen gesendet werden sollen: true oder false |
| `defaultMessageDenyNotificationText` | string | Nein | Standard-Ablehnungsnachrichtentext |
| `membersCanPostAsTheGroup` | string | Nein | Ob Mitglieder als Gruppe posten können: true oder false |
| `includeInGlobalAddressList` | string | Nein | Ob in der globalen Adressliste enthalten: true oder false |
| `whoCanLeaveGroup` | string | Nein | Wer kann austreten: ALL_MANAGERS_CAN_LEAVE, ALL_MEMBERS_CAN_LEAVE, NONE_CAN_LEAVE |
| `whoCanContactOwner` | string | Nein | Wer kann Inhaber kontaktieren: ALL_IN_DOMAIN_CAN_CONTACT, ALL_MANAGERS_CAN_CONTACT, ALL_MEMBERS_CAN_CONTACT, ANYONE_CAN_CONTACT |
| `favoriteRepliesOnTop` | string | Nein | Ob bevorzugte Antworten oben erscheinen: true oder false |
| `whoCanApproveMembers` | string | Nein | Wer kann Mitglieder genehmigen: ALL_OWNERS_CAN_APPROVE, ALL_MANAGERS_CAN_APPROVE, ALL_MEMBERS_CAN_APPROVE, NONE_CAN_APPROVE |
| `whoCanBanUsers` | string | Nein | Wer kann Benutzer sperren: OWNERS_ONLY, OWNERS_AND_MANAGERS, NONE |
| `whoCanModerateMembers` | string | Nein | Wer kann Mitglieder verwalten: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
| `whoCanModerateContent` | string | Nein | Wer kann Inhalte moderieren: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
| `whoCanAssistContent` | string | Nein | Wer kann bei Inhaltsmetadaten unterstützen: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
| `enableCollaborativeInbox` | string | Nein | Ob kollaborativer Posteingang aktiviert ist: true oder false |
| `whoCanDiscoverGroup` | string | Nein | Wer kann entdecken: ANYONE_CAN_DISCOVER, ALL_IN_DOMAIN_CAN_DISCOVER, ALL_MEMBERS_CAN_DISCOVER |
| `defaultSender` | string | Nein | Standard-Absender: DEFAULT_SELF oder GROUP |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Die E-Mail-Adresse der Gruppe |
| `name` | string | Der Gruppenname |
| `description` | string | Die Gruppenbeschreibung |
| `whoCanJoin` | string | Wer der Gruppe beitreten kann |
| `whoCanViewMembership` | string | Wer die Gruppenmitgliedschaft einsehen kann |
| `whoCanViewGroup` | string | Wer Gruppennachrichten einsehen kann |
| `whoCanPostMessage` | string | Wer Nachrichten in der Gruppe posten kann |
| `allowExternalMembers` | string | Ob externe Benutzer Mitglieder sein können |
| `allowWebPosting` | string | Ob Web-Posting erlaubt ist |
| `primaryLanguage` | string | Die Hauptsprache der Gruppe |
| `isArchived` | string | Ob Nachrichten archiviert werden |
| `archiveOnly` | string | Ob die Gruppe nur zum Archivieren dient |
| `messageModerationLevel` | string | Moderationsstufe für Nachrichten |
| `spamModerationLevel` | string | Spam-Behandlungsstufe |
| `replyTo` | string | Standard-Antwortziel |
| `customReplyTo` | string | Benutzerdefinierte E-Mail für Antworten |
| `includeCustomFooter` | string | Ob eine benutzerdefinierte Fußzeile eingefügt werden soll |
| `customFooterText` | string | Text der benutzerdefinierten Fußzeile |
| `sendMessageDenyNotification` | string | Ob Ablehnungsbenachrichtigungen gesendet werden sollen |
| `defaultMessageDenyNotificationText` | string | Text der Standard-Ablehnungsnachricht |
| `membersCanPostAsTheGroup` | string | Ob Mitglieder als Gruppe posten können |
| `includeInGlobalAddressList` | string | Ob in der globalen Adressliste enthalten |
| `whoCanLeaveGroup` | string | Wer die Gruppe verlassen kann |
| `whoCanContactOwner` | string | Wer den Gruppeninhaber kontaktieren kann |
| `favoriteRepliesOnTop` | string | Ob bevorzugte Antworten oben erscheinen |
| `whoCanApproveMembers` | string | Wer neue Mitglieder genehmigen kann |
| `whoCanBanUsers` | string | Wer Benutzer sperren kann |
| `whoCanModerateMembers` | string | Wer Mitglieder verwalten kann |
| `whoCanModerateContent` | string | Wer Inhalte moderieren kann |
| `whoCanAssistContent` | string | Wer bei Inhalts-Metadaten unterstützen kann |
| `enableCollaborativeInbox` | string | Ob der gemeinsame Posteingang aktiviert ist |
| `whoCanDiscoverGroup` | string | Wer die Gruppe entdecken kann |
| `defaultSender` | string | Standard-Absenderidentität |

View File

@@ -0,0 +1,445 @@
---
title: Google Maps
description: Geocodierung, Routenplanung, Orte und Entfernungsberechnungen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_maps"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Google Maps](https://maps.google.com) ist eine umfassende Plattform, die eine Vielzahl von APIs für Kartierung, Geocodierung, Routenplanung, Orte, Umweltdaten und mehr bietet. Über Sim können Ihre Agenten wichtige Google Maps Platform APIs nutzen, um eine Vielzahl standortbasierter Workflows zu automatisieren.
**Die folgenden Google Maps APIs sind in dieser Integration enthalten:**
- **Geocoding API:** Wandelt Adressen in Breiten- und Längengrade um und führt Reverse-Geocodierung durch.
- **Directions API:** Berechnet Routen und Wegbeschreibungen für Auto, Fußgänger, Fahrrad oder öffentliche Verkehrsmittel zwischen Standorten.
- **Distance Matrix API:** Berechnet Reiseentfernungen und -zeiten für mehrere Kombinationen von Start- und Zielorten.
- **Places API:** Sucht nach Orten (Unternehmen, Sehenswürdigkeiten, Einrichtungen) nach Name, Typ oder Nähe.
- **Place Details API:** Ruft detaillierte Informationen für einen bestimmten Ort ab, wie Adresse, Bewertungen, Öffnungszeiten und Kontaktinformationen.
- **Elevation API:** Ermittelt Höhendaten (Höhe über dem Meeresspiegel) für beliebige Standorte weltweit.
- **Time Zone API:** Ruft Zeitzoneninformationen für jeden geografischen Standort ab.
- **Air Quality API:** Ruft Echtzeit-Luftqualitätsdaten für bestimmte Koordinaten ab.
Mit diesen APIs können Ihre Sim-Agenten die Standortsuche und -anreicherung automatisieren, optimale Routen und Lieferungen planen, Zeiten und Entfernungen schätzen, Ortsdaten analysieren, Datensätze mit geografischem Kontext anreichern, Umweltbedingungen abrufen und mehr alles ohne manuelle Arbeit oder externe Tools.
Wenn Sie Funktionen benötigen, die über das hier Aufgeführte hinausgehen, oder Unterstützung für zusätzliche Google Maps APIs anfordern möchten, lassen Sie es uns wissen!
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Google Maps Platform APIs in Ihren Workflow. Unterstützt Geocodierung von Adressen zu Koordinaten, Reverse-Geocodierung, Abrufen von Wegbeschreibungen zwischen Standorten, Berechnung von Distanzmatrizen, Suche nach Orten, Abrufen von Ortsdetails, Höhendaten und Zeitzoneninformationen.
## Tools
### `google_maps_air_quality`
Aktuelle Luftqualitätsdaten für einen Standort abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Air Quality API |
| `lat` | number | Ja | Breitengradkoordinate |
| `lng` | number | Ja | Längengradkoordinate |
| `languageCode` | string | Nein | Sprachcode für die Antwort \(z. B. "en", "es"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `dateTime` | string | Zeitstempel der Luftqualitätsdaten |
| `regionCode` | string | Regionscode für den Standort |
| `indexes` | array | Array von Luftqualitätsindizes |
| ↳ `code` | string | Indexcode \(z. B. "uaqi", "usa_epa"\) |
| ↳ `displayName` | string | Anzeigename des Index |
| ↳ `aqi` | number | Luftqualitätsindexwert |
| ↳ `aqiDisplay` | string | Formatierte AQI-Anzeigezeichenfolge |
| ↳ `color` | object | RGB-Farbe für die AQI-Stufe |
| ↳ `category` | string | Kategoriebeschreibung \(z. B. "Gut", "Mäßig"\) |
| ↳ `dominantPollutant` | string | Der dominierende Schadstoff |
| `pollutants` | array | Array von Schadstoffkonzentrationen |
| ↳ `code` | string | Schadstoffcode \(z. B. "pm25", "o3"\) |
| ↳ `displayName` | string | Anzeigename |
| ↳ `fullName` | string | Vollständiger Schadstoffname |
| ↳ `concentration` | object | Konzentrationsinformationen |
| ↳ `value` | number | Konzentrationswert |
| ↳ `units` | string | Einheiten \(z. B. "PARTS_PER_BILLION"\) |
| ↳ `additionalInfo` | object | Zusätzliche Informationen über Quellen und Auswirkungen |
| `healthRecommendations` | object | Gesundheitsempfehlungen für verschiedene Bevölkerungsgruppen |
### `google_maps_directions`
Wegbeschreibung und Routeninformationen zwischen zwei Standorten abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `origin` | string | Ja | Startort \(Adresse oder lat,lng\) |
| `destination` | string | Ja | Zielort \(Adresse oder lat,lng\) |
| `mode` | string | Nein | Reisemodus: driving, walking, bicycling oder transit |
| `avoid` | string | Nein | Zu vermeidende Merkmale: tolls, highways oder ferries |
| `waypoints` | json | Nein | Array von Zwischenwegpunkten |
| `units` | string | Nein | Einheitensystem: metric oder imperial |
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `routes` | array | Alle verfügbaren Routen |
| ↳ `summary` | string | Routenzusammenfassung \(Hauptstraßennamen\) |
| ↳ `legs` | array | Routenabschnitte \(Segmente zwischen Wegpunkten\) |
| ↳ `overviewPolyline` | string | Kodierte Polylinie für die gesamte Route |
| ↳ `warnings` | array | Routenwarnungen |
| ↳ `waypointOrder` | array | Optimierte Wegpunktreihenfolge \(falls angefordert\) |
| `distanceText` | string | Gesamtentfernung als lesbarer Text \(z. B. „5,2 km"\) |
| `distanceMeters` | number | Gesamtentfernung in Metern |
| `durationText` | string | Gesamtdauer als lesbarer Text \(z. B. „15 Min."\) |
| `durationSeconds` | number | Gesamtdauer in Sekunden |
| `startAddress` | string | Aufgelöste Startadresse |
| `endAddress` | string | Aufgelöste Zieladresse |
| `steps` | array | Schritt-für-Schritt-Navigationsanweisungen |
| ↳ `instruction` | string | Navigationsanweisung \(HTML entfernt\) |
| ↳ `distanceText` | string | Schrittentfernung als Text |
| ↳ `distanceMeters` | number | Schrittentfernung in Metern |
| ↳ `durationText` | string | Schrittdauer als Text |
| ↳ `durationSeconds` | number | Schrittdauer in Sekunden |
| ↳ `startLocation` | object | Startkoordinaten des Schritts |
| ↳ `endLocation` | object | Endkoordinaten des Schritts |
| ↳ `travelMode` | string | Reisemodus für diesen Schritt |
| ↳ `maneuver` | string | Manövertyp \(turn-left usw.\) |
| `polyline` | string | Kodierte Polylinie für die Hauptroute |
### `google_maps_distance_matrix`
Berechnung von Reiseentfernung und -zeit zwischen mehreren Start- und Zielorten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `origin` | string | Ja | Startort \(Adresse oder lat,lng\) |
| `destinations` | json | Ja | Array von Zielorten |
| `mode` | string | Nein | Reisemodus: driving, walking, bicycling oder transit |
| `avoid` | string | Nein | Zu vermeidende Merkmale: tolls, highways oder ferries |
| `units` | string | Nein | Einheitensystem: metric oder imperial |
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `originAddresses` | array | Aufgelöste Startadressen |
| `destinationAddresses` | array | Aufgelöste Zieladressen |
| `rows` | array | Distanzmatrix-Zeilen \(eine pro Startort\) |
| ↳ `elements` | array | Elemente \(eines pro Zielort\) |
| ↳ `distanceText` | string | Entfernung als Text \(z. B. "5,2 km"\) |
| ↳ `distanceMeters` | number | Entfernung in Metern |
| ↳ `durationText` | string | Dauer als Text \(z. B. "15 Min."\) |
| ↳ `durationSeconds` | number | Dauer in Sekunden |
| ↳ `durationInTrafficText` | string | Dauer im Verkehr als Text |
| ↳ `durationInTrafficSeconds` | number | Dauer im Verkehr in Sekunden |
| ↳ `status` | string | Elementstatus \(OK, NOT_FOUND, ZERO_RESULTS\) |
### `google_maps_elevation`
Höhendaten für einen Standort abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `lat` | number | Ja | Breitengradkoordinate |
| `lng` | number | Ja | Längengradkoordinate |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `elevation` | number | Höhe in Metern über dem Meeresspiegel \(negativ für darunter\) |
| `lat` | number | Breitengrad der Höhenmessung |
| `lng` | number | Längengrad der Höhenmessung |
| `resolution` | number | Maximale Entfernung zwischen Datenpunkten \(Meter\), aus denen die Höhe interpoliert wurde |
### `google_maps_geocode`
Eine Adresse in geografische Koordinaten (Breiten- und Längengrad) umwandeln
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `address` | string | Ja | Die zu geokodierende Adresse |
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
| `region` | string | Nein | Regionspräferenz als ccTLD-Code \(z. B. us, uk\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `formattedAddress` | string | Die formatierte Adresszeichenfolge |
| `lat` | number | Breitengradkoordinate |
| `lng` | number | Längengradkoordinate |
| `location` | json | Standortobjekt mit lat und lng |
| `placeId` | string | Google Place ID für diesen Standort |
| `addressComponents` | array | Detaillierte Adresskomponenten |
| ↳ `longName` | string | Vollständiger Name der Komponente |
| ↳ `shortName` | string | Abgekürzter Name |
| ↳ `types` | array | Komponententypen |
| `locationType` | string | Standortgenauigkeitstyp \(ROOFTOP, RANGE_INTERPOLATED, etc.\) |
### `google_maps_geolocate`
Geolokalisierung eines Geräts mithilfe von WLAN-Zugangspunkten, Mobilfunkmasten oder IP-Adresse
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Geolocation API |
| `homeMobileCountryCode` | number | Nein | Heimat-Mobilfunkländercode \(MCC\) |
| `homeMobileNetworkCode` | number | Nein | Heimat-Mobilfunknetzcode \(MNC\) |
| `radioType` | string | Nein | Funktyp: lte, gsm, cdma, wcdma oder nr |
| `carrier` | string | Nein | Name des Mobilfunkanbieters |
| `considerIp` | boolean | Nein | Ob IP-Adresse für Geolokalisierung verwendet werden soll \(Standard: true\) |
| `cellTowers` | array | Nein | Array von Mobilfunkmast-Objekten mit cellId, locationAreaCode, mobileCountryCode, mobileNetworkCode |
| `wifiAccessPoints` | array | Nein | Array von WLAN-Zugangspunkt-Objekten mit macAddress \(erforderlich\), signalStrength usw. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `lat` | number | Breitengrad-Koordinate |
| `lng` | number | Längengrad-Koordinate |
| `accuracy` | number | Genauigkeitsradius in Metern |
### `google_maps_place_details`
Detaillierte Informationen über einen bestimmten Ort abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `placeId` | string | Ja | Google Place ID |
| `fields` | string | Nein | Kommagetrennte Liste der zurückzugebenden Felder |
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `placeId` | string | Google Place ID |
| `name` | string | Name des Ortes |
| `formattedAddress` | string | Formatierte Straßenadresse |
| `lat` | number | Breitengrad-Koordinate |
| `lng` | number | Längengrad-Koordinate |
| `types` | array | Ortstypen \(z. B. Restaurant, Café\) |
| `rating` | number | Durchschnittliche Bewertung \(1,0 bis 5,0\) |
| `userRatingsTotal` | number | Gesamtanzahl der Nutzerbewertungen |
| `priceLevel` | number | Preisniveau \(0=Kostenlos, 1=Günstig, 2=Moderat, 3=Teuer, 4=Sehr teuer\) |
| `website` | string | Website-URL des Ortes |
| `phoneNumber` | string | Lokal formatierte Telefonnummer |
| `internationalPhoneNumber` | string | International formatierte Telefonnummer |
| `openNow` | boolean | Ob der Ort derzeit geöffnet ist |
| `weekdayText` | array | Öffnungszeiten formatiert nach Wochentag |
| `reviews` | array | Nutzerbewertungen \(bis zu 5 relevanteste\) |
| ↳ `authorName` | string | Name des Bewerters |
| ↳ `authorUrl` | string | Profil-URL des Bewerters |
| ↳ `profilePhotoUrl` | string | Foto-URL des Bewerters |
| ↳ `rating` | number | Vergebene Bewertung \(1-5\) |
| ↳ `text` | string | Bewertungstext |
| ↳ `time` | number | Zeitstempel der Bewertung \(Unix-Epoche\) |
| ↳ `relativeTimeDescription` | string | Relative Zeit \(z. B. „vor einem Monat"\) |
| `photos` | array | Fotos des Ortes |
| ↳ `photoReference` | string | Foto-Referenz für Place Photos API |
| ↳ `height` | number | Fotohöhe in Pixeln |
| ↳ `width` | number | Fotobreite in Pixeln |
| ↳ `htmlAttributions` | array | Erforderliche Quellenangaben |
| `url` | string | Google Maps-URL für den Ort |
| `utcOffset` | number | UTC-Offset in Minuten |
| `vicinity` | string | Vereinfachte Adresse \(Stadtteil/Straße\) |
| `businessStatus` | string | Geschäftsstatus \(OPERATIONAL, CLOSED_TEMPORARILY, CLOSED_PERMANENTLY\) |
### `google_maps_places_search`
Orte mithilfe einer Textabfrage suchen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `query` | string | Ja | Suchabfrage \(z. B. "Restaurants am Times Square"\) |
| `location` | json | Nein | Standort zur Gewichtung der Ergebnisse \(\{lat, lng\}\) |
| `radius` | number | Nein | Suchradius in Metern |
| `type` | string | Nein | Ortstyp-Filter \(z. B. restaurant, cafe, hotel\) |
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
| `region` | string | Nein | Regionsgewichtung als ccTLD-Code \(z. B. us, uk\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `places` | array | Liste der gefundenen Orte |
| ↳ `placeId` | string | Google Place ID |
| ↳ `name` | string | Ortsname |
| ↳ `formattedAddress` | string | Formatierte Adresse |
| ↳ `lat` | number | Breitengrad |
| ↳ `lng` | number | Längengrad |
| ↳ `types` | array | Ortstypen |
| ↳ `rating` | number | Durchschnittliche Bewertung \(1-5\) |
| ↳ `userRatingsTotal` | number | Anzahl der Bewertungen |
| ↳ `priceLevel` | number | Preisniveau \(0-4\) |
| ↳ `openNow` | boolean | Ob derzeit geöffnet |
| ↳ `photoReference` | string | Fotoreferenz für Photos API |
| ↳ `businessStatus` | string | Geschäftsstatus |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
### `google_maps_reverse_geocode`
Geografische Koordinaten (Breiten- und Längengrad) in eine lesbare Adresse umwandeln
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `lat` | number | Ja | Breitengrad-Koordinate |
| `lng` | number | Ja | Längengrad-Koordinate |
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `formattedAddress` | string | Die formatierte Adresszeichenfolge |
| `placeId` | string | Google Place ID für diesen Standort |
| `addressComponents` | array | Detaillierte Adresskomponenten |
| ↳ `longName` | string | Vollständiger Name der Komponente |
| ↳ `shortName` | string | Abgekürzter Name |
| ↳ `types` | array | Komponententypen |
| `types` | array | Adresstypen \(z. B. street_address, route\) |
### `google_maps_snap_to_roads`
GPS-Koordinaten auf das nächstgelegene Straßensegment ausrichten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Roads API |
| `path` | string | Ja | Durch Pipe getrennte Liste von Breiten-/Längengrad-Koordinaten \(z. B. "60.170880,24.942795\|60.170879,24.942796"\) |
| `interpolate` | boolean | Nein | Ob zusätzliche Punkte entlang der Straße interpoliert werden sollen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `snappedPoints` | array | Array von ausgerichteten Punkten auf Straßen |
| ↳ `location` | object | Ausgerichtete Standortkoordinaten |
| ↳ `lat` | number | Breitengrad |
| ↳ `lng` | number | Längengrad |
| ↳ `originalIndex` | number | Index im ursprünglichen Pfad \(falls nicht interpoliert\) |
| ↳ `placeId` | string | Place ID für dieses Straßensegment |
| `warningMessage` | string | Warnmeldung, falls vorhanden \(z. B. wenn Punkte nicht ausgerichtet werden konnten\) |
### `google_maps_speed_limits`
Geschwindigkeitsbegrenzungen für Straßenabschnitte abrufen. Erfordert entweder Pfadkoordinaten oder placeIds.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Roads API |
| `path` | string | Nein | Pipe-getrennte Liste von Breiten-/Längengrad-Koordinaten \(erforderlich, wenn placeIds nicht angegeben\) |
| `placeIds` | array | Nein | Array von Place-IDs für Straßenabschnitte \(erforderlich, wenn path nicht angegeben\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `speedLimits` | array | Array von Geschwindigkeitsbegrenzungen für Straßenabschnitte |
| ↳ `placeId` | string | Place-ID für den Straßenabschnitt |
| ↳ `speedLimit` | number | Wert der Geschwindigkeitsbegrenzung |
| ↳ `units` | string | Einheit der Geschwindigkeitsbegrenzung \(KPH oder MPH\) |
| `snappedPoints` | array | Array von angepassten Punkten, die den Geschwindigkeitsbegrenzungen entsprechen |
| ↳ `location` | object | Angepasste Standortkoordinaten |
| ↳ `lat` | number | Breitengrad |
| ↳ `lng` | number | Längengrad |
| ↳ `originalIndex` | number | Index im ursprünglichen Pfad |
| ↳ `placeId` | string | Place-ID für diesen Straßenabschnitt |
### `google_maps_timezone`
Zeitzoneninformationen für einen Standort abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
| `lat` | number | Ja | Breitengrad-Koordinate |
| `lng` | number | Ja | Längengrad-Koordinate |
| `timestamp` | number | Nein | Unix-Zeitstempel zur Bestimmung des DST-Offsets \(Standard: aktuelle Zeit\) |
| `language` | string | Nein | Sprachcode für Zeitzonennamen \(z. B. en, es, fr\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `timeZoneId` | string | IANA-Zeitzonen-ID \(z. B. "America/New_York", "Europe/London"\) |
| `timeZoneName` | string | Lokalisierter Zeitzonenname \(z. B. "Östliche Sommerzeit"\) |
| `rawOffset` | number | UTC-Versatz in Sekunden \(ohne Sommerzeit\) |
| `dstOffset` | number | Sommerzeitversatz in Sekunden \(0, wenn keine Sommerzeit\) |
| `totalOffsetSeconds` | number | Gesamter UTC-Versatz in Sekunden \(rawOffset + dstOffset\) |
| `totalOffsetHours` | number | Gesamter UTC-Versatz in Stunden \(z. B. -5 für EST, -4 für EDT\) |
### `google_maps_validate_address`
Postanschrift validieren und standardisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Address Validation API |
| `address` | string | Ja | Die zu validierende Adresse \(als einzelne Zeichenfolge\) |
| `regionCode` | string | Nein | ISO 3166-1 Alpha-2-Ländercode \(z. B. "US", "CA"\) |
| `locality` | string | Nein | Stadt- oder Ortsname |
| `enableUspsCass` | boolean | Nein | USPS CASS-Validierung für US-Adressen aktivieren |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `formattedAddress` | string | Die standardisierte formatierte Adresse |
| `lat` | number | Breitengradkoordinate |
| `lng` | number | Längengradkoordinate |
| `placeId` | string | Google Place ID für diese Adresse |
| `addressComplete` | boolean | Ob die Adresse vollständig und zustellbar ist |
| `hasUnconfirmedComponents` | boolean | Ob einige Adresskomponenten nicht bestätigt werden konnten |
| `hasInferredComponents` | boolean | Ob einige Komponenten abgeleitet wurden \(nicht in der Eingabe\) |
| `hasReplacedComponents` | boolean | Ob einige Komponenten durch kanonische Werte ersetzt wurden |
| `validationGranularity` | string | Granularität der Validierung \(PREMISE, SUB_PREMISE, ROUTE usw.\) |
| `geocodeGranularity` | string | Granularität des Geocode-Ergebnisses |
| `addressComponents` | array | Detaillierte Adresskomponenten |
| ↳ `longName` | string | Vollständiger Name der Komponente |
| ↳ `shortName` | string | Abgekürzter Name |
| ↳ `types` | array | Komponententypen |
| `missingComponentTypes` | array | Typen von Adresskomponenten, die fehlen |
| `unconfirmedComponentTypes` | array | Typen von Komponenten, die nicht bestätigt werden konnten |
| `unresolvedTokens` | array | Eingabe-Tokens, die nicht aufgelöst werden konnten |

View File

@@ -45,23 +45,3 @@ Integriert Google-Suche in den Workflow. Kann im Web suchen. Erfordert API-Schl
### `google_search` ### `google_search`
Durchsuchen des Webs mit der Custom Search API Durchsuchen des Webs mit der Custom Search API
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die auszuführende Suchanfrage |
| `searchEngineId` | string | Ja | Custom Search Engine ID |
| `num` | string | Nein | Anzahl der zurückzugebenden Ergebnisse \(Standard: 10, max: 10\) |
| `apiKey` | string | Ja | Google API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | array | Array von Suchergebnissen von Google |
## Hinweise
- Kategorie: `tools`
- Typ: `google_search`

View File

@@ -176,3 +176,151 @@ Daten am Ende einer Google Sheets-Tabelle anhängen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_sheets` - Typ: `google_sheets`
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Google Sheets-Tabellenkalkulations-ID |
| `includeGridData` | boolean | Nein | Ob Rasterdaten \(Zellwerte\) einbezogen werden sollen. Standardmäßig false. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | Die Tabellenkalkulations-ID |
| `title` | string | Der Titel der Tabellenkalkulation |
| `locale` | string | Das Gebietsschema der Tabellenkalkulation |
| `timeZone` | string | Die Zeitzone der Tabellenkalkulation |
| `spreadsheetUrl` | string | URL zur Tabellenkalkulation |
| `sheets` | array | Liste der Tabellenblätter in der Tabellenkalkulation |
| ↳ `sheetId` | number | Die Tabellenblatt-ID |
| ↳ `title` | string | Der Titel/Name des Tabellenblatts |
| ↳ `index` | number | Der Tabellenblatt-Index \(Position\) |
| ↳ `rowCount` | number | Anzahl der Zeilen im Tabellenblatt |
| ↳ `columnCount` | number | Anzahl der Spalten im Tabellenblatt |
| ↳ `hidden` | boolean | Ob das Tabellenblatt ausgeblendet ist |
### `google_sheets_create_spreadsheet`
Erstellt eine neue Google Sheets-Tabellenkalkulation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Der Titel der neuen Tabellenkalkulation |
| `sheetTitles` | json | Nein | Array von Tabellenblattnamen, die erstellt werden sollen \(z. B. \["Tabelle1", "Daten", "Zusammenfassung"\]\). Standardmäßig ein einzelnes "Tabelle1". |
| `locale` | string | Nein | Das Gebietsschema der Tabellenkalkulation \(z. B. "de_DE"\) |
| `timeZone` | string | Nein | Die Zeitzone der Tabellenkalkulation \(z. B. "Europe/Berlin"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | Die ID der erstellten Tabellenkalkulation |
| `title` | string | Der Titel der erstellten Tabellenkalkulation |
| `spreadsheetUrl` | string | URL zur erstellten Tabellenkalkulation |
| `sheets` | array | Liste der in der Tabellenkalkulation erstellten Tabellenblätter |
| ↳ `sheetId` | number | Die Tabellenblatt-ID |
| ↳ `title` | string | Der Tabellenblatt-Titel/-Name |
| ↳ `index` | number | Der Tabellenblatt-Index \(Position\) |
### `google_sheets_batch_get`
Liest mehrere Bereiche aus einer Google Sheets-Tabellenkalkulation in einer einzigen Anfrage
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Google Sheets-Tabellenkalkulationskennung |
| `ranges` | json | Ja | Array von zu lesenden Bereichen \(z. B. \["Tabelle1!A1:D10", "Tabelle2!A1:B5"\]\). Jeder Bereich sollte den Tabellenblattnamen enthalten. |
| `majorDimension` | string | Nein | Die Hauptdimension der Werte: "ROWS" \(Standard\) oder "COLUMNS" |
| `valueRenderOption` | string | Nein | Wie Werte dargestellt werden sollen: "FORMATTED_VALUE" \(Standard\), "UNFORMATTED_VALUE" oder "FORMULA" |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | Die Tabellenkalkulationskennung |
| `valueRanges` | array | Array von Wertebereichen, die aus der Tabellenkalkulation gelesen wurden |
| ↳ `range` | string | Der Bereich, der gelesen wurde |
| ↳ `majorDimension` | string | Hauptdimension \(ROWS oder COLUMNS\) |
| ↳ `values` | array | Die Zellwerte als 2D-Array |
| `metadata` | json | Tabellenkalkulationsmetadaten einschließlich ID und URL |
| ↳ `spreadsheetId` | string | Google Sheets-Tabellenkalkulationskennung |
| ↳ `spreadsheetUrl` | string | Tabellenkalkulations-URL |
### `google_sheets_batch_update`
Mehrere Bereiche in einer Google Sheets-Tabelle in einer einzigen Anfrage aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Google Sheets-Tabellen-ID |
| `data` | json | Ja | Array von Wertebereichen, die aktualisiert werden sollen. Jedes Element sollte "range" \(z. B. "Sheet1!A1:D10"\) und "values" \(2D-Array\) enthalten. |
| `valueInputOption` | string | Nein | Wie Eingabedaten interpretiert werden sollen: "RAW" oder "USER_ENTERED" \(Standard\). USER_ENTERED analysiert Formeln. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | Die Tabellen-ID |
| `totalUpdatedRows` | number | Gesamtanzahl der aktualisierten Zeilen |
| `totalUpdatedColumns` | number | Gesamtanzahl der aktualisierten Spalten |
| `totalUpdatedCells` | number | Gesamtanzahl der aktualisierten Zellen |
| `totalUpdatedSheets` | number | Gesamtanzahl der aktualisierten Tabellenblätter |
| `responses` | array | Array von Aktualisierungsantworten für jeden Bereich |
| ↳ `spreadsheetId` | string | Die Tabellen-ID |
| ↳ `updatedRange` | string | Der Bereich, der aktualisiert wurde |
| ↳ `updatedRows` | number | Anzahl der in diesem Bereich aktualisierten Zeilen |
| ↳ `updatedColumns` | number | Anzahl der in diesem Bereich aktualisierten Spalten |
| ↳ `updatedCells` | number | Anzahl der in diesem Bereich aktualisierten Zellen |
| `metadata` | json | Tabellenmetadaten einschließlich ID und URL |
| ↳ `spreadsheetId` | string | Google Sheets-Tabellen-ID |
| ↳ `spreadsheetUrl` | string | Tabellen-URL |
### `google_sheets_batch_clear`
Mehrere Bereiche in einer Google Sheets-Tabelle mit einer einzigen Anfrage löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | ----------- | ------------- |
| `spreadsheetId` | string | Ja | Google Sheets-Tabellen-ID |
| `ranges` | json | Ja | Array der zu löschenden Bereiche (z. B. ["Sheet1!A1:D10", "Sheet2!A1:B5"]). Jeder Bereich muss den Blattnamen enthalten. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ------------- |
| `spreadsheetId` | string | Die Tabellen-ID |
| `clearedRanges` | array | Array der gelöschten Bereiche |
| `metadata` | json | Tabellenmetadaten einschließlich ID und URL |
| ↳ `spreadsheetId` | string | Google Sheets-Tabellen-ID |
| ↳ `spreadsheetUrl` | string | Tabellen-URL |
### `google_sheets_copy_sheet`
Ein Blatt von einer Tabelle in eine andere kopieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | ----------- | ------------- |
| `sourceSpreadsheetId` | string | Ja | Quell-Google-Sheets-Tabellen-ID |
| `sheetId` | number | Ja | Die ID des zu kopierenden Blatts (numerische ID, nicht der Blattname). Verwenden Sie "Get Spreadsheet", um Blatt-IDs zu finden. |
| `destinationSpreadsheetId` | string | Ja | Die ID der Zieltabelle, in die das Blatt kopiert wird |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ------------- |
| `sheetId` | number | Die ID des neu erstellten Blatts in der Zieltabelle |
| `title` | string | Der Titel des kopierten Blatts |
| `index` | number | Der Index (Position) des kopierten Blatts |
| `sheetType` | string | Der Typ des Blatts (GRID, CHART usw.) |
| `destinationSpreadsheetId` | string | Die ID der Zieltabelle |
| `destinationSpreadsheetUrl` | string | URL zur Zieltabelle |

View File

@@ -178,3 +178,171 @@ Ein Vorschaubild einer bestimmten Folie in einer Google Slides-Präsentation gen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_slides` - Typ: `google_slides`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation |
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, die abgerufen werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `objectId` | string | Die Objekt-ID der Seite |
| `pageType` | string | Der Typ der Seite \(SLIDE, MASTER, LAYOUT, NOTES, NOTES_MASTER\) |
| `pageElements` | array | Array von Seitenelementen \(Formen, Bilder, Tabellen usw.\) auf dieser Seite |
| `slideProperties` | object | Eigenschaften, die spezifisch für Folien sind \(Layout, Master, Notizen\) |
| ↳ `layoutObjectId` | string | Objekt-ID des Layouts, auf dem diese Folie basiert |
| ↳ `masterObjectId` | string | Objekt-ID des Masters, auf dem diese Folie basiert |
| ↳ `notesPage` | json | Die Notizenseite, die mit der Folie verknüpft ist |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `url` | string | URL zur Präsentation |
### `google_slides_delete_object`
Löschen Sie ein Seitenelement (Form, Bild, Tabelle usw.) oder eine gesamte Folie aus einer Google Slides-Präsentation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation |
| `objectId` | string | Ja | Die Objekt-ID des Elements oder der Folie, das/die gelöscht werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob das Objekt erfolgreich gelöscht wurde |
| `objectId` | string | Die Objekt-ID, die gelöscht wurde |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `url` | string | URL zur Präsentation |
### `google_slides_duplicate_object`
Dupliziert ein Objekt (Folie, Form, Bild, Tabelle usw.) in einer Google Slides-Präsentation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Google Slides-Präsentations-ID |
| `objectId` | string | Ja | Die Objekt-ID des zu duplizierenden Elements oder der Folie |
| `objectIds` | string | Nein | Optionales JSON-Objekt, das Quellobjekt-IDs (innerhalb der zu duplizierenden Folie) neuen Objekt-IDs für die Duplikate zuordnet. Format: \{"sourceId1":"newId1","sourceId2":"newId2"\} |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `duplicatedObjectId` | string | Die Objekt-ID des neu erstellten Duplikats |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und Quellobjekt-ID |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `sourceObjectId` | string | Die ursprüngliche Objekt-ID, die dupliziert wurde |
| ↳ `url` | string | URL zur Präsentation |
### `google_slides_update_slides_position`
Verschiebt eine oder mehrere Folien an eine neue Position in einer Google Slides-Präsentation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Google Slides-Präsentation |
| `slideObjectIds` | string | Ja | Kommagetrennte Liste von Folienobjekt-IDs, die verschoben werden sollen. Die Folien behalten ihre relative Reihenfolge bei. |
| `insertionIndex` | number | Ja | Der nullbasierte Index, an den die Folien verschoben werden sollen. Alle Folien mit Indizes größer oder gleich diesem werden nach rechts verschoben. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `moved` | boolean | Ob die Folien erfolgreich verschoben wurden |
| `slideObjectIds` | array | Die Folienobjekt-IDs, die verschoben wurden |
| `insertionIndex` | number | Der Index, an den die Folien verschoben wurden |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `url` | string | URL zur Präsentation |
### `google_slides_create_table`
Erstellt eine neue Tabelle auf einer Folie in einer Google Slides-Präsentation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Google Slides-Präsentation |
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, zu der die Tabelle hinzugefügt werden soll |
| `rows` | number | Ja | Anzahl der Zeilen in der Tabelle \(mindestens 1\) |
| `columns` | number | Ja | Anzahl der Spalten in der Tabelle \(mindestens 1\) |
| `width` | number | Nein | Breite der Tabelle in Punkten \(Standard: 400\) |
| `height` | number | Nein | Höhe der Tabelle in Punkten \(Standard: 200\) |
| `positionX` | number | Nein | X-Position vom linken Rand in Punkten \(Standard: 100\) |
| `positionY` | number | Nein | Y-Position vom oberen Rand in Punkten \(Standard: 100\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `tableId` | string | Die Objekt-ID der neu erstellten Tabelle |
| `rows` | number | Anzahl der Zeilen in der Tabelle |
| `columns` | number | Anzahl der Spalten in der Tabelle |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und Seitenobjekt-ID |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `pageObjectId` | string | Die Seitenobjekt-ID, auf der die Tabelle erstellt wurde |
| ↳ `url` | string | URL zur Präsentation |
### `google_slides_create_shape`
Erstellt eine Form (Rechteck, Ellipse, Textfeld, Pfeil usw.) auf einer Folie in einer Google Slides-Präsentation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Google Slides-Präsentation |
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, zu der die Form hinzugefügt werden soll |
| `shapeType` | string | Ja | Der Typ der zu erstellenden Form. Gängige Typen: TEXT_BOX, RECTANGLE, ROUND_RECTANGLE, ELLIPSE, TRIANGLE, DIAMOND, STAR_5, ARROW_EAST, HEART, CLOUD |
| `width` | number | Nein | Breite der Form in Punkten \(Standard: 200\) |
| `height` | number | Nein | Höhe der Form in Punkten \(Standard: 100\) |
| `positionX` | number | Nein | X-Position vom linken Rand in Punkten \(Standard: 100\) |
| `positionY` | number | Nein | Y-Position vom oberen Rand in Punkten \(Standard: 100\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `shapeId` | string | Die Objekt-ID der neu erstellten Form |
| `shapeType` | string | Der Typ der Form, die erstellt wurde |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und Seitenobjekt-ID |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `pageObjectId` | string | Die Seitenobjekt-ID, auf der die Form erstellt wurde |
| ↳ `url` | string | URL zur Präsentation |
### `google_slides_insert_text`
Fügt Text in eine Form oder Tabellenzelle in einer Google Slides-Präsentation ein. Verwenden Sie dies, um Text zu Textfeldern, Formen oder Tabellenzellen hinzuzufügen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Google Slides-Präsentations-ID |
| `objectId` | string | Ja | Die Objekt-ID der Form oder Tabellenzelle, in die Text eingefügt werden soll. Verwenden Sie für Tabellenzellen die Zellobjekt-ID. |
| `text` | string | Ja | Der einzufügende Text |
| `insertionIndex` | number | Nein | Der nullbasierte Index, an dem der Text eingefügt werden soll. Wenn nicht angegeben, wird der Text am Anfang eingefügt \(Index 0\). |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `inserted` | boolean | Ob der Text erfolgreich eingefügt wurde |
| `objectId` | string | Die Objekt-ID, in die der Text eingefügt wurde |
| `text` | string | Der Text, der eingefügt wurde |
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
| ↳ `presentationId` | string | Die Präsentations-ID |
| ↳ `url` | string | URL zur Präsentation |

View File

@@ -159,3 +159,17 @@ Fälle auflisten oder einen bestimmten Fall abrufen, wenn matterId angegeben ist
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `google_vault` - Typ: `google_vault`
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `pageSize` | number | Nein | Anzahl der Angelegenheiten, die pro Seite zurückgegeben werden sollen |
| `pageToken` | string | Nein | Token für Paginierung |
| `matterId` | string | Nein | Optionale Angelegenheits-ID zum Abrufen einer bestimmten Angelegenheit \(z. B. "12345678901234567890"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `matters` | json | Array von Angelegenheitsobjekten |
| `matter` | json | Einzelnes Angelegenheitsobjekt \(wenn matterId angegeben ist\) |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |

View File

@@ -497,8 +497,3 @@ Einen neuen Ordner in Grafana erstellen
| `updatedBy` | string | Benutzername desjenigen, der den Ordner zuletzt aktualisiert hat | | `updatedBy` | string | Benutzername desjenigen, der den Ordner zuletzt aktualisiert hat |
| `updated` | string | Zeitstempel, wann der Ordner zuletzt aktualisiert wurde | | `updated` | string | Zeitstempel, wann der Ordner zuletzt aktualisiert wurde |
| `version` | number | Versionsnummer des Ordners | | `version` | number | Versionsnummer des Ordners |
## Notizen
- Kategorie: `tools`
- Typ: `grafana`

View File

@@ -211,8 +211,3 @@ Einen Webhook anhand der ID löschen
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | True, wenn der Webhook erfolgreich gelöscht wurde | | `success` | boolean | True, wenn der Webhook erfolgreich gelöscht wurde |
## Hinweise
- Kategorie: `tools`
- Typ: `grain`

View File

@@ -129,8 +129,3 @@ Durchsuchen Sie Repositories in natürlicher Sprache und erhalten Sie relevante
| `numFiles` | number | Gesamtanzahl der Dateien im Repository | | `numFiles` | number | Gesamtanzahl der Dateien im Repository |
| `sampleQuestions` | array | Beispielfragen für das indexierte Repository | | `sampleQuestions` | array | Beispielfragen für das indexierte Repository |
| `sha` | string | Git-Commit-SHA der indexierten Version | | `sha` | string | Git-Commit-SHA der indexierten Version |
## Hinweise
- Kategorie: `tools`
- Typ: `greptile`

View File

@@ -287,8 +287,3 @@ Alle Deals vom HubSpot-Konto mit Paginierungsunterstützung abrufen
| `paging` | object | Paginierungsinformationen | | `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten | | `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation | | `success` | boolean | Erfolgsstatus der Operation |
## Hinweise
- Kategorie: `tools`
- Typ: `hubspot`

View File

@@ -51,8 +51,3 @@ Generate completions using Hugging Face Inference API
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Operation success status | | `success` | boolean | Operation success status |
| `output` | object | Chat completion results | | `output` | object | Chat completion results |
## Notes
- Category: `tools`
- Type: `huggingface`

View File

@@ -185,8 +185,3 @@ Gibt die Gesamtzahl der für eine Domain oder ein Unternehmen gefundenen E-Mail-
| `generic_emails` | number | Anzahl der gefundenen generischen E-Mail-Adressen | | `generic_emails` | number | Anzahl der gefundenen generischen E-Mail-Adressen |
| `department` | object | Aufschlüsselung der E-Mail-Adressen nach Abteilung (Geschäftsführung, IT, Finanzen, Management, Vertrieb, Recht, Support, HR, Marketing, Kommunikation) | | `department` | object | Aufschlüsselung der E-Mail-Adressen nach Abteilung (Geschäftsführung, IT, Finanzen, Management, Vertrieb, Recht, Support, HR, Marketing, Kommunikation) |
| `seniority` | object | Aufschlüsselung der E-Mail-Adressen nach Hierarchieebene (Junior, Senior, Führungskraft) | | `seniority` | object | Aufschlüsselung der E-Mail-Adressen nach Hierarchieebene (Junior, Senior, Führungskraft) |
## Notizen
- Kategorie: `tools`
- Typ: `hunter`

View File

@@ -55,8 +55,3 @@ Bilder mit OpenAI generieren
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation | | `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Generierte Bilddaten | | `output` | object | Generierte Bilddaten |
## Hinweise
- Kategorie: `tools`
- Typ: `image_generator`

View File

@@ -29,8 +29,3 @@ Mit Sim gibt Ihnen die IMAP-Integration die Möglichkeit, E-Mails in eine handlu
## Nutzungsanleitung ## 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. 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`

View File

@@ -836,8 +836,3 @@ Einen Eskalationspfad in incident.io löschen
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `message` | string | Erfolgsmeldung | | `message` | string | Erfolgsmeldung |
## Hinweise
- Kategorie: `tools`
- Typ: `incidentio`

View File

@@ -358,3 +358,370 @@ Eine neue vom Administrator initiierte Nachricht in Intercom erstellen und sende
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `intercom` - Typ: `intercom`
Erstellen und senden Sie eine neue, vom Administrator initiierte Nachricht in Intercom. Gibt nur API-konforme Felder zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `message_type` | string | Ja | Nachrichtentyp: "inapp" für In-App-Nachrichten oder "email" für E-Mail-Nachrichten |
| `template` | string | Ja | Nachrichtenvorlagenstil: "plain" für einfachen Text oder "personal" für personalisierten Stil |
| `subject` | string | Nein | Der Betreff der Nachricht \(für E-Mail-Typ\) |
| `body` | string | Ja | Der Inhalt der Nachricht |
| `from_type` | string | Ja | Absendertyp: "admin" |
| `from_id` | string | Ja | Die ID des Administrators, der die Nachricht sendet |
| `to_type` | string | Ja | Empfängertyp: "contact" |
| `to_id` | string | Ja | Die ID des Kontakts, der die Nachricht erhält |
| `created_at` | number | Nein | Unix-Zeitstempel für den Zeitpunkt der Nachrichtenerstellung. Wenn nicht angegeben, wird die aktuelle Zeit verwendet. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | object | Erstelltes Nachrichtenobjekt |
| ↳ `id` | string | Eindeutige Kennung für die Nachricht |
| ↳ `type` | string | Objekttyp \(message\) |
| ↳ `created_at` | number | Unix-Zeitstempel der Nachrichtenerstellung |
| ↳ `body` | string | Inhalt der Nachricht |
| ↳ `message_type` | string | Typ der Nachricht \(in_app oder email\) |
| ↳ `conversation_id` | string | ID der erstellten Konversation |
| ↳ `owner` | object | Eigentümer der Nachricht |
| `messageId` | string | ID der erstellten Nachricht |
| `success` | boolean | Status des Vorgangserfolgs |
### `intercom_list_admins`
Eine Liste aller Administratoren für den Workspace abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `admins` | array | Array von Administrator-Objekten |
| ↳ `id` | string | Eindeutige Kennung für den Administrator |
| ↳ `type` | string | Objekttyp \(admin\) |
| ↳ `name` | string | Name des Administrators |
| ↳ `email` | string | E-Mail des Administrators |
| ↳ `job_title` | string | Berufsbezeichnung des Administrators |
| ↳ `away_mode_enabled` | boolean | Ob der Administrator im Abwesenheitsmodus ist |
| ↳ `away_mode_reassign` | boolean | Ob Konversationen bei Abwesenheit neu zugewiesen werden sollen |
| ↳ `has_inbox_seat` | boolean | Ob der Administrator einen bezahlten Posteingangsplatz hat |
| ↳ `team_ids` | array | Liste der Team-IDs, denen der Administrator angehört |
| ↳ `avatar` | object | Avatar-Informationen |
| ↳ `email_verified` | boolean | Ob die E-Mail verifiziert ist |
| `type` | string | Objekttyp \(admin.list\) |
### `intercom_close_conversation`
Eine Konversation in Intercom schließen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `conversationId` | string | Ja | Die ID der zu schließenden Konversation |
| `admin_id` | string | Ja | Die ID des Administrators, der die Aktion ausführt |
| `body` | string | Nein | Optionale Abschlussnachricht, die zur Konversation hinzugefügt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `conversation` | object | Das geschlossene Konversationsobjekt |
| ↳ `id` | string | Eindeutige Kennung für die Konversation |
| ↳ `type` | string | Objekttyp \(conversation\) |
| ↳ `state` | string | Status der Konversation \(closed\) |
| ↳ `open` | boolean | Ob die Konversation offen ist \(false\) |
| ↳ `read` | boolean | Ob die Konversation gelesen wurde |
| ↳ `created_at` | number | Unix-Zeitstempel, wann die Konversation erstellt wurde |
| ↳ `updated_at` | number | Unix-Zeitstempel, wann die Konversation zuletzt aktualisiert wurde |
| `conversationId` | string | ID der geschlossenen Konversation |
| `state` | string | Status der Konversation \(closed\) |
### `intercom_open_conversation`
Eine geschlossene oder schlummernde Konversation in Intercom öffnen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `conversationId` | string | Ja | Die ID der zu öffnenden Konversation |
| `admin_id` | string | Ja | Die ID des Administrators, der die Aktion ausführt |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `conversation` | object | Das geöffnete Konversationsobjekt |
| ↳ `id` | string | Eindeutige Kennung für die Konversation |
| ↳ `type` | string | Objekttyp \(conversation\) |
| ↳ `state` | string | Status der Konversation \(open\) |
| ↳ `open` | boolean | Ob die Konversation offen ist \(true\) |
| ↳ `read` | boolean | Ob die Konversation gelesen wurde |
| ↳ `created_at` | number | Unix-Zeitstempel, wann die Konversation erstellt wurde |
| ↳ `updated_at` | number | Unix-Zeitstempel, wann die Konversation zuletzt aktualisiert wurde |
| `conversationId` | string | ID der geöffneten Konversation |
| `state` | string | Status der Konversation \(open\) |
### `intercom_snooze_conversation`
Eine Konversation schlummern lassen, um sie zu einem späteren Zeitpunkt wieder zu öffnen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `conversationId` | string | Ja | Die ID der Konversation, die schlummern soll |
| `admin_id` | string | Ja | Die ID des Administrators, der die Aktion ausführt |
| `snoozed_until` | number | Ja | Unix-Zeitstempel für den Zeitpunkt, zu dem die Konversation wieder geöffnet werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `conversation` | object | Das schlummernde Konversationsobjekt |
| ↳ `id` | string | Eindeutige Kennung für die Konversation |
| ↳ `type` | string | Objekttyp \(conversation\) |
| ↳ `state` | string | Status der Konversation \(snoozed\) |
| ↳ `open` | boolean | Ob die Konversation offen ist |
| ↳ `snoozed_until` | number | Unix-Zeitstempel, wann die Konversation wieder geöffnet wird |
| ↳ `created_at` | number | Unix-Zeitstempel, wann die Konversation erstellt wurde |
| ↳ `updated_at` | number | Unix-Zeitstempel, wann die Konversation zuletzt aktualisiert wurde |
| `conversationId` | string | ID der schlummernden Konversation |
| `state` | string | Status der Konversation \(snoozed\) |
| `snoozed_until` | number | Unix-Zeitstempel, wann die Konversation wieder geöffnet wird |
### `intercom_assign_conversation`
Eine Konversation einem Administrator oder Team in Intercom zuweisen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `conversationId` | string | Ja | Die ID der Konversation, die zugewiesen werden soll |
| `admin_id` | string | Ja | Die ID des Administrators, der die Zuweisung durchführt |
| `assignee_id` | string | Ja | Die ID des Administrators oder Teams, dem die Konversation zugewiesen werden soll. Auf "0" setzen, um die Zuweisung aufzuheben. |
| `body` | string | Nein | Optionale Nachricht, die beim Zuweisen hinzugefügt werden kann \(z. B. "Übergabe an das Support-Team"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `conversation` | object | Das zugewiesene Konversationsobjekt |
| ↳ `id` | string | Eindeutige Kennung für die Konversation |
| ↳ `type` | string | Objekttyp \(conversation\) |
| ↳ `state` | string | Status der Konversation |
| ↳ `open` | boolean | Ob die Konversation offen ist |
| ↳ `admin_assignee_id` | number | ID des zugewiesenen Administrators |
| ↳ `team_assignee_id` | string | ID des zugewiesenen Teams |
| ↳ `created_at` | number | Unix-Zeitstempel, wann die Konversation erstellt wurde |
| ↳ `updated_at` | number | Unix-Zeitstempel, wann die Konversation zuletzt aktualisiert wurde |
| `conversationId` | string | ID der zugewiesenen Konversation |
| `admin_assignee_id` | number | ID des zugewiesenen Administrators |
| `team_assignee_id` | string | ID des zugewiesenen Teams |
### `intercom_list_tags`
Eine Liste aller Tags im Workspace abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `tags` | array | Array von Tag-Objekten |
| ↳ `id` | string | Eindeutige Kennung für den Tag |
| ↳ `type` | string | Objekttyp \(tag\) |
| ↳ `name` | string | Name des Tags |
| `type` | string | Objekttyp \(list\) |
### `intercom_create_tag`
Ein neues Tag erstellen oder einen bestehenden Tag-Namen aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `name` | string | Ja | Der Name des Tags. Erstellt ein neues Tag, falls nicht gefunden, oder aktualisiert den Namen, wenn eine ID angegeben ist. |
| `id` | string | Nein | Die ID eines bestehenden Tags zum Aktualisieren. Weglassen, um ein neues Tag zu erstellen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung für das Tag |
| `name` | string | Name des Tags |
| `type` | string | Objekttyp \(tag\) |
### `intercom_tag_contact`
Einem bestimmten Kontakt ein Tag hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `contactId` | string | Ja | Die ID des Kontakts, der getaggt werden soll |
| `tagId` | string | Ja | Die ID des anzuwendenden Tags |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung für das Tag |
| `name` | string | Name des Tags |
| `type` | string | Objekttyp \(tag\) |
### `intercom_untag_contact`
Ein Tag von einem bestimmten Kontakt entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `contactId` | string | Ja | Die ID des Kontakts, dessen Tag entfernt werden soll |
| `tagId` | string | Ja | Die ID des zu entfernenden Tags |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung für das entfernte Tag |
| `name` | string | Name des entfernten Tags |
| `type` | string | Objekttyp \(tag\) |
### `intercom_tag_conversation`
Ein Tag zu einer bestimmten Konversation hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `conversationId` | string | Ja | Die ID der zu markierenden Konversation |
| `tagId` | string | Ja | Die ID des anzuwendenden Tags |
| `admin_id` | string | Ja | Die ID des Administrators, der das Tag anwendet |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung für das Tag |
| `name` | string | Name des Tags |
| `type` | string | Objekttyp \(tag\) |
### `intercom_create_note`
Eine Notiz zu einem bestimmten Kontakt hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `contactId` | string | Ja | Die ID des Kontakts, zu dem die Notiz hinzugefügt werden soll |
| `body` | string | Ja | Der Textinhalt der Notiz |
| `admin_id` | string | Nein | Die ID des Administrators, der die Notiz erstellt |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung für die Notiz |
| `body` | string | Der Textinhalt der Notiz |
| `created_at` | number | Unix-Zeitstempel, wann die Notiz erstellt wurde |
| `type` | string | Objekttyp \(note\) |
| `author` | object | Der Administrator, der die Notiz erstellt hat |
| ↳ `type` | string | Autorentyp \(admin\) |
| ↳ `id` | string | Autoren-ID |
| ↳ `name` | string | Autorenname |
| ↳ `email` | string | Autoren-E-Mail |
| `contact` | object | Der Kontakt, für den die Notiz erstellt wurde |
| ↳ `type` | string | Kontakttyp |
| ↳ `id` | string | Kontakt-ID |
### `intercom_create_event`
Ein benutzerdefiniertes Ereignis für einen Kontakt in Intercom verfolgen
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `event_name` | string | Ja | Der Name des Ereignisses \(z. B. "order-completed"\). Verwenden Sie das Format Verb-Nomen in der Vergangenheitsform für bessere Lesbarkeit. |
| `created_at` | number | Nein | Unix-Zeitstempel für den Zeitpunkt, zu dem das Ereignis aufgetreten ist. Wird dringend empfohlen für Eindeutigkeit. |
| `user_id` | string | Nein | Ihre Kennung für den Benutzer \(external_id\) |
| `email` | string | Nein | E-Mail-Adresse des Benutzers. Verwenden Sie dies nur, wenn Ihre App E-Mail zur eindeutigen Identifizierung von Benutzern verwendet. |
| `id` | string | Nein | Die Intercom-Kontakt-ID |
| `metadata` | string | Nein | JSON-Objekt mit bis zu 10 Metadaten-Schlüssel-Wert-Paaren über das Ereignis \(z. B. \{"order_value": 99.99\}\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `accepted` | boolean | Ob das Ereignis akzeptiert wurde \(202 Accepted\) |
### `intercom_attach_contact_to_company`
Einen Kontakt mit einem Unternehmen in Intercom verknüpfen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `contactId` | string | Ja | Die ID des Kontakts, der mit dem Unternehmen verknüpft werden soll |
| `companyId` | string | Ja | Die ID des Unternehmens, mit dem der Kontakt verknüpft werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `company` | object | Das Unternehmensobjekt, mit dem der Kontakt verknüpft wurde |
| ↳ `id` | string | Eindeutige Kennung für das Unternehmen |
| ↳ `type` | string | Objekttyp \(company\) |
| ↳ `company_id` | string | Die von Ihnen definierte company_id |
| ↳ `name` | string | Name des Unternehmens |
| ↳ `created_at` | number | Unix-Zeitstempel, wann das Unternehmen erstellt wurde |
| ↳ `updated_at` | number | Unix-Zeitstempel, wann das Unternehmen aktualisiert wurde |
| ↳ `user_count` | number | Anzahl der Benutzer im Unternehmen |
| ↳ `session_count` | number | Anzahl der Sitzungen |
| ↳ `monthly_spend` | number | Monatlicher Umsatzbetrag |
| ↳ `plan` | object | Details zum Unternehmensplan |
| `companyId` | string | ID des Unternehmens |
| `name` | string | Name des Unternehmens |
### `intercom_detach_contact_from_company`
Einen Kontakt von einem Unternehmen in Intercom entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `contactId` | string | Ja | Die ID des Kontakts, der vom Unternehmen getrennt werden soll |
| `companyId` | string | Ja | Die ID des Unternehmens, von dem der Kontakt getrennt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `company` | object | Das Unternehmensobjekt, von dem der Kontakt getrennt wurde |
| ↳ `id` | string | Eindeutige Kennung für das Unternehmen |
| ↳ `type` | string | Objekttyp \(company\) |
| ↳ `company_id` | string | Die von Ihnen definierte company_id |
| ↳ `name` | string | Name des Unternehmens |
| `companyId` | string | ID des Unternehmens |
| `name` | string | Name des Unternehmens |

View File

@@ -88,8 +88,3 @@ Durchsucht das Web und gibt die Top 5 Ergebnisse mit LLM-freundlichem Inhalt zur
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `results` | array | Array von Suchergebnissen, die jeweils Titel, Beschreibung, URL und LLM-freundlichen Inhalt enthalten | | `results` | array | Array von Suchergebnissen, die jeweils Titel, Beschreibung, URL und LLM-freundlichen Inhalt enthalten |
## Hinweise
- Kategorie: `tools`
- Typ: `jina`

View File

@@ -555,3 +555,32 @@ Jira-Benutzer abrufen. Wenn eine Account-ID angegeben wird, wird ein einzelner B
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `jira` - Typ: `jira`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `accountId` | string | Nein | Optionale Account-ID, um einen bestimmten Benutzer abzurufen. Wenn nicht angegeben, werden alle Benutzer zurückgegeben. |
| `startAt` | number | Nein | Der Index des ersten zurückzugebenden Benutzers \(für Paginierung, Standard: 0\) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Benutzer \(Standard: 50\) |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie anhand der Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | ISO 8601-Zeitstempel der Operation |
| `users` | array | Array von Jira-Benutzern |
| ↳ `accountId` | string | Atlassian-Account-ID des Benutzers |
| ↳ `displayName` | string | Anzeigename des Benutzers |
| ↳ `active` | boolean | Ob das Benutzerkonto aktiv ist |
| ↳ `emailAddress` | string | E-Mail-Adresse des Benutzers |
| ↳ `accountType` | string | Kontotyp \(z.B. atlassian, app, customer\) |
| ↳ `avatarUrl` | string | URL zum Benutzer-Avatar \(48x48\) |
| ↳ `timeZone` | string | Zeitzone des Benutzers |
| ↳ `avatarUrls` | json | Benutzer-Avatar-URLs in mehreren Größen \(16x16, 24x24, 32x32, 48x48\) |
| ↳ `self` | string | REST-API-URL für diesen Benutzer |
| `total` | number | Gesamtanzahl der zurückgegebenen Benutzer |
| `startAt` | number | Paginierungs-Startindex |
| `maxResults` | number | Maximale Ergebnisse pro Seite |

View File

@@ -484,3 +484,68 @@ Eine Genehmigungsanfrage in Jira Service Management genehmigen oder ablehnen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `jira_service_management` - Typ: `jira_service_management`
| 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\) |
| `approvalId` | string | Ja | Genehmigungs-ID, die beantwortet werden soll |
| `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 \(approve/decline\) |
| `id` | string | Genehmigungs-ID aus der Antwort |
| `name` | string | Genehmigungsbeschreibung |
| `finalDecision` | string | Endgültige Genehmigungsentscheidung: pending, approved oder declined |
| `canAnswerApproval` | boolean | Ob der aktuelle Benutzer noch antworten kann |
| `approvers` | array | Aktualisierte Liste der Genehmiger mit Entscheidungen |
| ↳ `approver` | object | Details des genehmigenden Benutzers |
| ↳ `accountId` | string | Konto-ID des Genehmigers |
| ↳ `displayName` | string | Anzeigename des Genehmigers |
| ↳ `emailAddress` | string | E-Mail-Adresse des Genehmigers |
| ↳ `active` | boolean | Ob das Konto aktiv ist |
| ↳ `approverDecision` | string | Individuelle Entscheidung des Genehmigers |
| `createdDate` | json | Erstellungsdatum der Genehmigung |
| `completedDate` | json | Abschlussdatum der Genehmigung |
| `approval` | json | Das Genehmigungsobjekt |
| `success` | boolean | Ob die Operation erfolgreich war |
### `jsm_get_request_type_fields`
Die Felder abrufen, die zum Erstellen einer Anfrage eines bestimmten Typs in Jira Service Management erforderlich sind
#### 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 \(z. B. "1", "2"\) |
| `requestTypeId` | string | Ja | Anfragetyp-ID \(z. B. "10", "15"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel der Operation |
| `serviceDeskId` | string | Service-Desk-ID |
| `requestTypeId` | string | Anfragetyp-ID |
| `canAddRequestParticipants` | boolean | Ob Teilnehmer zu Anfragen dieses Typs hinzugefügt werden können |
| `canRaiseOnBehalfOf` | boolean | Ob Anfragen im Namen eines anderen Benutzers erstellt werden können |
| `requestTypeFields` | array | Liste der Felder für diesen Anfragetyp |
| ↳ `fieldId` | string | Feldbezeichner \(z. B. summary, description, customfield_10010\) |
| ↳ `name` | string | Lesbarer Feldname |
| ↳ `description` | string | Hilfetext für das Feld |
| ↳ `required` | boolean | Ob das Feld erforderlich ist |
| ↳ `visible` | boolean | Ob das Feld sichtbar ist |
| ↳ `validValues` | json | Zulässige Werte für Auswahlfelder |
| ↳ `presetValues` | json | Vorab ausgefüllte Werte |
| ↳ `defaultValues` | json | Standardwerte für das Feld |
| ↳ `jiraSchema` | json | Jira-Feldschema mit type, system, custom, customId |

View File

@@ -377,8 +377,3 @@ Preis oder Menge eines bestehenden Auftrags auf Kalshi ändern
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `order` | object | Das geänderte Auftragsobjekt | | `order` | object | Das geänderte Auftragsobjekt |
## Hinweise
- Kategorie: `tools`
- Typ: `kalshi`

View File

@@ -103,8 +103,3 @@ Ein neues Dokument in einer Wissensdatenbank erstellen
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `data` | object | Informationen über das erstellte Dokument | | `data` | object | Informationen über das erstellte Dokument |
## Hinweise
- Kategorie: `blocks`
- Typ: `knowledge`

View File

@@ -0,0 +1,89 @@
---
title: LangSmith
description: Workflow-Ausführungen zur Beobachtbarkeit an LangSmith weiterleiten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="langsmith"
color="#181C1E"
/>
{/* MANUAL-CONTENT-START:intro */}
Erschließen Sie tiefe Einblicke und Verständnis Ihrer KI-Workflows mit [LangSmith](https://www.langchain.com/langsmith) einer leistungsstarken Plattform für Tracing, Debugging und Monitoring von LLM-basierten Anwendungen und Automatisierungen. Integrieren Sie LangSmith in Ihre Prozesse, um detaillierte Ausführungs-Traces zu erfassen, Ein-/Ausgabedaten zu protokollieren, Metadaten anzuhängen und Ihre Workflows durch datengesteuerte Beobachtbarkeit zu optimieren.
Mit der LangSmith-Integration können Sie:
- **Ausführungen tracen und debuggen**: Leiten Sie Workflow-, Tool- oder Modell-Ausführungen an LangSmith weiter, zeichnen Sie hierarchische Ausführungsdetails auf und identifizieren Sie Engpässe oder Fehler schnell.
- **Umfangreiche Metadaten anhängen**: Reichern Sie Ihre Traces an, indem Sie Eingaben, Ausgaben, Tags, benutzerdefinierte Metadaten, Fehlerursachen und mehr für tiefgehende Einblicke und Analysen protokollieren.
- **Workflow-Performance überwachen**: Visualisieren Sie Ausführungen, überwachen Sie Fehlerraten, Laufzeiten und Erfolgsmetriken im Zeitverlauf, um Zuverlässigkeit und Effizienz zu verbessern.
- **Zusammenarbeiten und auditieren**: Ermöglichen Sie teambasiertes Debugging und verfolgen Sie Änderungen für transparente Audits und schnelle Iteration bei verketteten LLM-Workflows.
- **Beobachtbarkeit automatisieren**: Verbinden Sie LangSmith-Traces nahtlos mit Ihren Workflow-Automatisierungen für permanentes, müheloses Monitoring ohne manuelle Instrumentierung.
LangSmith befähigt Ingenieure, Data Scientists und Produktteams, schneller zu iterieren, Probleme früher zu erkennen und robustere LLM-basierte Anwendungen zu entwickeln egal ob Sie Agenten, Chains oder End-to-End-Workflows orchestrieren.
Verbessern Sie Beobachtbarkeit, gewinnen Sie umsetzbare Erkenntnisse und steigern Sie die Produktqualität, indem Sie LangSmith noch heute in Ihre automatisierten Prozesse integrieren.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Senden Sie Ausführungsdaten an LangSmith, um Ausführungen zu tracen, Metadaten anzuhängen und die Workflow-Performance zu überwachen.
## Tools
### `langsmith_create_run`
Leiten Sie eine einzelne Ausführung zur Erfassung an LangSmith weiter.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | LangSmith API-Schlüssel |
| `id` | string | Nein | Eindeutige Run-Kennung |
| `name` | string | Ja | Run-Name |
| `run_type` | string | Ja | Run-Typ \(tool, chain, llm, retriever, embedding, prompt, parser\) |
| `start_time` | string | Nein | Run-Startzeit im ISO-8601-Format |
| `end_time` | string | Nein | Run-Endzeit im ISO-8601-Format |
| `inputs` | json | Nein | Eingabe-Payload |
| `run_outputs` | json | Nein | Ausgabe-Payload |
| `extra` | json | Nein | Zusätzliche Metadaten \(extra\) |
| `tags` | json | Nein | Array von Tag-Strings |
| `parent_run_id` | string | Nein | Übergeordnete Run-ID |
| `trace_id` | string | Nein | Trace-ID |
| `session_id` | string | Nein | Session-ID |
| `session_name` | string | Nein | Session-Name |
| `status` | string | Nein | Run-Status |
| `error` | string | Nein | Fehlerdetails |
| `dotted_order` | string | Nein | Punktierte Reihenfolge-Zeichenkette |
| `events` | json | Nein | Strukturiertes Events-Array |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `accepted` | boolean | Ob der Run zur Verarbeitung akzeptiert wurde |
| `runId` | string | Run-Kennung aus der Anfrage |
| `message` | string | Antwortnachricht von LangSmith |
### `langsmith_create_runs_batch`
Mehrere Durchläufe in einem einzigen Batch an LangSmith weiterleiten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | LangSmith API-Schlüssel |
| `post` | json | Nein | Array neuer Durchläufe zur Aufnahme |
| `patch` | json | Nein | Array von Durchläufen zum Aktualisieren/Patchen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `accepted` | boolean | Ob der Batch zur Aufnahme akzeptiert wurde |
| `runIds` | array | In der Anfrage angegebene Durchlauf-Identifikatoren |
| `message` | string | Antwortnachricht von LangSmith |
| `messages` | array | Antwortnachrichten pro Durchlauf, falls vorhanden |

View File

@@ -0,0 +1,116 @@
---
title: Lemlist
description: Verwalten Sie Outreach-Aktivitäten, Leads und versenden Sie E-Mails
über Lemlist
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="lemlist"
color="#316BFF"
/>
{/* MANUAL-CONTENT-START:intro */}
Bringen Sie Ihre Vertriebs-Outreach und Ihr Engagement mit [Lemlist](https://lemlist.com) auf das nächste Level die Plattform für personalisierte Outreach-Automatisierung, der Tausende von Vertriebsteams vertrauen. Mit Lemlist können Sie Multi-Channel-Kampagnen automatisieren, Leads pflegen und Antwortquoten steigern, während Ihre Kommunikation hochgradig personalisiert und authentisch bleibt.
Mit der Lemlist-Integration können Sie:
- **Outreach-Sequenzen automatisieren:** Starten Sie personalisierte E-Mail-, LinkedIn- und Anrufkampagnen im großen Maßstab, zugeschnitten auf jeden Empfänger.
- **Kampagnenaktivität verfolgen:** Überwachen Sie sofort Öffnungen, Klicks, Antworten, Bounces und jede Lead-Interaktion für detaillierte Kampagnen-Einblicke.
- **Engagement-Daten zentralisieren:** Rufen Sie Echtzeit-Aktivitäten und Antworten für jede Kampagne oder jeden Lead ab und synchronisieren Sie diese direkt in Ihre Workflow-Automatisierung.
- **Lead-Details automatisch abrufen:** Rufen Sie angereicherte Lead-Informationen per E-Mail oder ID ab, um Ihr CRM und Ihre Prozesse ohne manuelle Dateneingabe auf dem neuesten Stand zu halten.
- **Gezielte E-Mails aus Ihrem Posteingang senden:** Lösen Sie maßgeschneiderte E-Mails an Leads direkt aus dem Workflow aus, unter Verwendung aktueller Vorlagen und Daten.
- **Teamzusammenarbeit und Follow-up verbessern:** Weisen Sie Leads zu, verfolgen Sie Ergebnisse und stellen Sie sicher, dass kein Interessent verloren geht dank der integrierten Tools von Lemlist, die alle über Automatisierung zugänglich sind.
Lemlist befähigt Vertriebs-, Marketing- und Outbound-Teams, Zeit zu sparen, im großen Maßstab zu personalisieren und mehr Interessenten zu konvertieren. Automatisieren und optimieren Sie Ihre Kampagnen, integrieren Sie sie in Ihren Stack und verpassen Sie nie eine wertvolle Gelegenheit.
Erzielen Sie mehr Antworten, buchen Sie mehr Meetings und bauen Sie Ihre Pipeline aus, indem Sie Lemlist noch heute mit Ihren automatisierten Workflows verbinden!
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Lemlist in Ihren Workflow. Rufen Sie Kampagnenaktivitäten und Antworten ab, erhalten Sie Lead-Informationen und versenden Sie E-Mails über den Lemlist-Posteingang.
## Tools
### `lemlist_get_activities`
Ruft Kampagnenaktivitäten und durchgeführte Schritte ab, einschließlich E-Mail-Öffnungen, Klicks, Antworten und anderen Ereignissen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Lemlist-API-Schlüssel |
| `type` | string | Nein | Nach Aktivitätstyp filtern \(z. B. emailOpened, emailClicked, emailReplied, paused\) |
| `campaignId` | string | Nein | Nach Kampagnen-ID filtern \(z. B. "cam_abc123def456"\) |
| `leadId` | string | Nein | Nach Lead-ID filtern \(z. B. "lea_abc123def456"\) |
| `isFirst` | boolean | Nein | Nur nach erster Aktivität filtern |
| `limit` | number | Nein | Anzahl der Ergebnisse pro Anfrage \(z. B. 50\). Max. 100, Standard 100 |
| `offset` | number | Nein | Anzahl der zu überspringenden Datensätze für Paginierung \(z. B. 0, 100, 200\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `activities` | array | Liste der Aktivitäten |
| ↳ `_id` | string | Aktivitäts-ID |
| ↳ `type` | string | Aktivitätstyp |
| ↳ `leadId` | string | Zugehörige Lead-ID |
| ↳ `campaignId` | string | Kampagnen-ID |
| ↳ `sequenceId` | string | Sequenz-ID |
| ↳ `stepId` | string | Schritt-ID |
| ↳ `createdAt` | string | Zeitpunkt der Aktivität |
| `count` | number | Anzahl der zurückgegebenen Aktivitäten |
### `lemlist_get_lead`
Ruft Lead-Informationen anhand der E-Mail-Adresse oder Lead-ID ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Lemlist API-Schlüssel |
| `leadIdentifier` | string | Ja | E-Mail-Adresse des Leads \(z. B. "john@example.com"\) oder Lead-ID \(z. B. "lea_abc123def456"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `_id` | string | Lead-ID |
| `email` | string | E-Mail-Adresse des Leads |
| `firstName` | string | Vorname des Leads |
| `lastName` | string | Nachname des Leads |
| `companyName` | string | Firmenname |
| `jobTitle` | string | Berufsbezeichnung |
| `companyDomain` | string | Firmen-Domain |
| `isPaused` | boolean | Ob der Lead pausiert ist |
| `campaignId` | string | Kampagnen-ID, zu der der Lead gehört |
| `contactId` | string | Kontakt-ID |
| `emailStatus` | string | E-Mail-Zustellbarkeitsstatus |
### `lemlist_send_email`
Sendet eine E-Mail an einen Kontakt über den Lemlist-Posteingang.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Lemlist API-Schlüssel |
| `sendUserId` | string | Ja | Kennung für den Benutzer, der die Nachricht sendet \(z. B. "usr_abc123def456"\) |
| `sendUserEmail` | string | Ja | E-Mail-Adresse des Absenders \(z. B. "sales@company.com"\) |
| `sendUserMailboxId` | string | Ja | Postfach-Kennung für den Absender \(z. B. "mbx_abc123def456"\) |
| `contactId` | string | Ja | Empfänger-Kontaktkennung \(z. B. "con_abc123def456"\) |
| `leadId` | string | Ja | Zugehörige Lead-Kennung \(z. B. "lea_abc123def456"\) |
| `subject` | string | Ja | E-Mail-Betreffzeile |
| `message` | string | Ja | E-Mail-Nachrichtentext im HTML-Format |
| `cc` | json | Nein | Array von CC-E-Mail-Adressen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ------------ |
| `ok` | boolean | Ob die E-Mail erfolgreich gesendet wurde |

View File

@@ -1470,23 +1470,3 @@ Einen Projektstatus in Linear löschen
| Parameter | Typ | Beschreibung | | Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Ob das Löschen erfolgreich war | | `success` | boolean | Ob das Löschen erfolgreich war |
### `linear_list_project_statuses`
Alle Projektstatusarten in Linear auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `projectStatuses` | array | Liste von Projektstatusarten |
## Hinweise
- Kategorie: `tools`
- Typ: `linear`

View File

@@ -76,8 +76,3 @@ Rufen Sie Ihre LinkedIn-Profilinformationen ab
| `postId` | string | Erstellte Beitrags-ID | | `postId` | string | Erstellte Beitrags-ID |
| `profile` | json | LinkedIn-Profilinformationen | | `profile` | json | LinkedIn-Profilinformationen |
| `error` | string | Fehlermeldung bei fehlgeschlagener Operation | | `error` | string | Fehlermeldung bei fehlgeschlagener Operation |
## Hinweise
- Kategorie: `tools`
- Typ: `linkedin`

View File

@@ -55,8 +55,3 @@ Durchsuche das Web nach Informationen mit Linkup
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `answer` | string | Die mit Quellen belegte Antwort auf die Suchanfrage | | `answer` | string | Die mit Quellen belegte Antwort auf die Suchanfrage |
| `sources` | array | Array von Quellen, die zur Erstellung der Antwort verwendet wurden, jede enthält Name, URL und Textausschnitt | | `sources` | array | Array von Quellen, die zur Erstellung der Antwort verwendet wurden, jede enthält Name, URL und Textausschnitt |
## Hinweise
- Kategorie: `tools`
- Typ: `linkup`

View File

@@ -1468,8 +1468,3 @@ Löschen einer Batch-Operation von Mailchimp
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs | | `success` | boolean | Status des Operationserfolgs |
| `output` | object | Löschbestätigung | | `output` | object | Löschbestätigung |
## Hinweise
- Kategorie: `tools`
- Typ: `mailchimp`

View File

@@ -209,8 +209,3 @@ Details einer bestimmten Domain abrufen
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `success` | boolean | Ob die Anfrage erfolgreich war | | `success` | boolean | Ob die Anfrage erfolgreich war |
| `domain` | json | Domain-Details | | `domain` | json | Domain-Details |
## Hinweise
- Kategorie: `tools`
- Typ: `mailgun`

View File

@@ -91,8 +91,3 @@ Abrufen von Speichern aus Mem0 nach ID oder Filterkriterien
| --------- | ---- | ----------- | | --------- | ---- | ----------- |
| `memories` | array | Array von abgerufenen Erinnerungsobjekten | | `memories` | array | Array von abgerufenen Erinnerungsobjekten |
| `ids` | array | Array von Erinnerungs-IDs, die abgerufen wurden | | `ids` | array | Array von Erinnerungs-IDs, die abgerufen wurden |
## Hinweise
- Kategorie: `tools`
- Typ: `mem0`

View File

@@ -98,3 +98,11 @@ Speicher nach conversationId löschen.
- Kategorie: `blocks` - Kategorie: `blocks`
- Typ: `memory` - Typ: `memory`
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Erinnerung erfolgreich gelöscht wurde |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `error` | string | Fehlermeldung, falls der Vorgang fehlgeschlagen ist |

View File

@@ -72,43 +72,3 @@ Daten in eine Microsoft Excel-Tabelle schreiben
| `metadata` | object | Tabellen-Metadaten | | `metadata` | object | Tabellen-Metadaten |
### `microsoft_excel_table_add` ### `microsoft_excel_table_add`
Neue Zeilen zu einer Microsoft Excel-Tabelle hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Tabellenkalkulation, die die Tabelle enthält |
| `tableName` | string | Ja | Der Name der Tabelle, zu der Zeilen hinzugefügt werden sollen |
| `values` | array | Ja | Die Daten, die zur Tabelle hinzugefügt werden sollen \(Array von Arrays oder Array von Objekten\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `index` | number | Index der ersten Zeile, die hinzugefügt wurde |
| `values` | array | Array von Zeilen, die zur Tabelle hinzugefügt wurden |
| `metadata` | object | Metadaten der Tabellenkalkulation |
### `microsoft_excel_worksheet_add`
Ein neues Arbeitsblatt (Tabellenblatt) in einer Microsoft Excel-Arbeitsmappe erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Excel-Arbeitsmappe, zu der das Arbeitsblatt hinzugefügt werden soll |
| `worksheetName` | string | Ja | Der Name des neuen Arbeitsblatts. Muss innerhalb der Arbeitsmappe eindeutig sein und darf 31 Zeichen nicht überschreiten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `worksheet` | object | Details des neu erstellten Arbeitsblatts |
## Hinweise
- Kategorie: `tools`
- Typ: `microsoft_excel`

View File

@@ -289,8 +289,3 @@ Aktualisieren von Aufgabendetails einschließlich Beschreibung, Checklisteneleme
| `success` | boolean | Gibt an, ob die Aufgabendetails erfolgreich aktualisiert wurden | | `success` | boolean | Gibt an, ob die Aufgabendetails erfolgreich aktualisiert wurden |
| `taskDetails` | object | Das aktualisierte Aufgabendetailobjekt mit allen Eigenschaften | | `taskDetails` | object | Das aktualisierte Aufgabendetailobjekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich taskId | | `metadata` | object | Metadaten einschließlich taskId |
## Hinweise
- Kategorie: `tools`
- Typ: `microsoft_planner`

View File

@@ -332,8 +332,3 @@ Alle Mitglieder eines Microsoft Teams-Kanals auflisten
| `success` | boolean | Ob die Auflistung erfolgreich war | | `success` | boolean | Ob die Auflistung erfolgreich war |
| `members` | array | Array der Kanalmitglieder | | `members` | array | Array der Kanalmitglieder |
| `memberCount` | number | Gesamtzahl der Mitglieder | | `memberCount` | number | Gesamtzahl der Mitglieder |
## Hinweise
- Kategorie: `tools`
- Typ: `microsoft_teams`

View File

@@ -6,7 +6,7 @@ description: Text aus PDF-Dokumenten extrahieren
import { BlockInfoCard } from "@/components/ui/block-info-card" import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard <BlockInfoCard
type="mistral_parse" type="mistral_parse_v3"
color="#000000" color="#000000"
/> />
@@ -48,14 +48,3 @@ PDF-Dokumente mit der Mistral OCR API analysieren
| `apiKey` | string | Ja | Mistral API-Schlüssel \(MISTRAL_API_KEY\) | | `apiKey` | string | Ja | Mistral API-Schlüssel \(MISTRAL_API_KEY\) |
#### Ausgabe #### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das PDF erfolgreich geparst wurde |
| `content` | string | Extrahierter Inhalt im angeforderten Format \(markdown, text oder JSON\) |
| `metadata` | object | Verarbeitungsmetadaten einschließlich jobId, fileType, pageCount und Nutzungsinformationen |
## Notizen
- Kategorie: `tools`
- Typ: `mistral_parse`

View File

@@ -173,3 +173,23 @@ MongoDB-Aggregationspipeline ausführen
- Kategorie: `tools` - Kategorie: `tools`
- Typ: `mongodb` - Typ: `mongodb`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MongoDB-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MongoDB-Server-Port \(Standard: 27017\) |
| `database` | string | Nein | Name der zu untersuchenden Datenbank. Falls nicht angegeben, werden alle Datenbanken aufgelistet |
| `username` | string | Nein | MongoDB-Benutzername |
| `password` | string | Nein | MongoDB-Passwort |
| `authSource` | string | Nein | Authentifizierungsdatenbank |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `databases` | array | Array der Datenbanknamen |
| `collections` | array | Array von Sammlungsinformationen mit Name, Typ, Dokumentenanzahl und Indizes |

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