Compare commits

..

126 Commits

Author SHA1 Message Date
Siddharth Ganesan
29dd509f46 v3.1 2025-11-11 20:17:34 -08:00
Siddharth Ganesan
c705d506c6 v3 2025-11-11 20:15:38 -08:00
Siddharth Ganesan
0eb294d44f v1 2025-11-11 19:26:50 -08:00
Siddharth Ganesan
33a4f06e8e template 2025-11-11 17:19:02 -08:00
waleed
db5591da89 rename blog to studio 2025-11-08 18:48:57 -08:00
Siddharth Ganesan
41431fc380 feat(helm): add copilot (#1833)
* Add helm for copilot

* Remove otel and log level

* Change repo name

* improvement(helm): enhance copilot chart with HA support and validation

* refactor(helm): consolidate copilot secrets and fix postgres volume mount
2025-11-08 18:48:57 -08:00
Waleed
4631f4982f improvement(code): add wand config and system prompt for python code generation, strip \n from stdout in JS/Python (#1862) 2025-11-08 18:48:57 -08:00
Waleed
914661e6cb improvement(ux): optimistic updates for envvars, custom tools, folder operations, workflow deletions. shared hook for connection tags & tag dropdown, fix for triggers not re-rendering on trigger selected (#1861) 2025-11-08 18:48:57 -08:00
Waleed
962017fc25 fix(build): remove mdx from transpilation (#1860) 2025-11-08 18:48:57 -08:00
waleed
4e9a0dee35 added scaffolding and authors for everyone's articles 2025-11-08 12:37:01 -08:00
waleed
e702a05993 feat(blog): fundraise blog 2025-11-08 12:37:01 -08:00
Emir Karabeg
eed2072723 feat/platform-v3 (#1698)
* feat(fonts): season replacing geist

* feat(emcnn): created emcn

* feat(sidebar): created new sidebar with header and workflow list

* improvement(sidebar): expanded workflow/folder item text sizing and adjusted button padding

* feat(sidebar): added search UI, updated workflows styling

* improvement: globals styling with antialiased in dark mode only

* feat(sidebar): blocks and triggers ui/ux updated

* refactor(sidebar): moved logic into hooks

* feat(sidebar): improved workflow/folder dragging UI/UX; refactored logic into hooks

* improvement(sidebar): adjusted triggers/blocks padding for header

* improvement(sidebar): dragging hover handler; closed folders by default minus active path

* improvement(sidebar): panel resize logic

* improvement(sidebar): blocks and triggers expanded indicator

* feat(tooltips): new emcn component emerged

* feat(sidebar): workflow list handling updated

* refactor: added cursorrules

* feat(panel): new panel layout

* improvement(workspaces): firname's workspace instead of fn ln's workspace

* feat(platform): panel header, new emcn icons, more button variants, refactor sidebar components

* improvement(emcn): added button variants

* feat(panel): tab system

* feat(copilot): refactor, adjusted welcome and user-input UI/UX

* feat(copilot): baseline user-input ui/ux improvement

* feat(emcn): badge outline variant

* fix: build errors

* feat(copilot): base UI copilot

* refactor(workflow-block): added hooks, components

* feat(design): created design panel and removed isWide

* refactor(subblock): edited components, styling

* feat: emcn, editor

* feat(panel): toolbar, editor

* feat(workflow-block): refactor, adjust base styling

* feat(workflow-block): new block, edge

* feat: workflow-block, connections, action-bar, copilot

* feat: panel, workflow, emcn, workflow block, subblocks; clean copilot

* sim-326: remove remote code execution toggle, hide dropdown for language if E2B is not enabled

* feat: sidebar navigation, tag coloring; refactor: rebased to staging

* fix: build errors

* improvement: subblock styles

* feat: workspaces, terminal, emcn, controls

* feat: delete workflow

* fix: rebased

* fix build errors

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-11-08 10:58:31 -08:00
Waleed
945405c461 feat(blogs): added blogs scaffolding (#1857) 2025-11-08 00:04:20 -08:00
Vikhyath Mondreti
c397f5acee fix(triggers): update filtering logic for edges (#1856) 2025-11-07 19:59:51 -08:00
Siddharth Ganesan
3f435ce55e fix(hitl): rename uiurl to url (#1855) 2025-11-07 19:51:27 -08:00
Vikhyath Mondreti
7a8d47a72e fix(schedules): locking schedules to prevent double runs (#1854)
* fix(schedules): locking schedules to prevent double runs

* add migration file

* fix
2025-11-07 19:45:25 -08:00
Waleed
e91a8af7cd fix(files): fix json uploads, disable storage metering when billing is disabled, exclude kb uploads from storage metering, simplify serve path route (#1850)
* fix(files): fix local kb files storage to have parity with cloud storage providers

* fix(files): fix json uploads, disable storage metering when billing is disabled, exclude kb uploads from storage metering, simplify serve path route

* cleanup
2025-11-07 18:41:44 -08:00
Siddharth Ganesan
d17c627064 fix(deployed-chat): fix duplication and file uploads (#1853) 2025-11-07 18:41:03 -08:00
Vikhyath Mondreti
c8ea08e130 fix(file-upload): workspace/chat context not being passed in some forms (#1852) 2025-11-07 18:23:13 -08:00
Siddharth Ganesan
f62568efc7 fix(variables, webhook): fix variable tag dropdown for escaped < and allow empty webhook payload (#1851)
* Fix << tags

* Allow empty webhook body

* Variable highlighting in loop conditions
2025-11-07 18:03:36 -08:00
Vikhyath Mondreti
a73e2aaa8b improvement(templates): make it top-level route and change management/editing process (#1834)
* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* make templates root level url and make it part of deployment system

* separate updating template and deployment versions

* add tags

* add credentials extraction logic + use should import with workflow variables

* fix credential extraction

* add trigger mode indicator

* add starred tracking

* last updated field

* progress on creator profiles

* revert creator profile context type

* progress fix image uploads

* render templates details with creator details

* fix collab rules for workflow edit button

* creator profile perm check improvements

* restore accidental changes

* fix accessibility issues for non logged in users

* remove unused code

* fix type errors

---------

Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
2025-11-07 17:57:53 -08:00
Siddharth Ganesan
6cdee5351c feat(scopes): add scopes warning hook (#1842)
* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* Server side logic to check auth scopes

* Fix scopes code

* Remove frontend changes

* Fix tests

* Lint

* Remove log for lint

* Fix scopes check

* Fix conflict

---------

Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
2025-11-07 16:31:25 -08:00
Waleed
d3e81e97d5 fix(deploy-modal): remove deleted blocks from example curl (#1849) 2025-11-07 15:27:04 -08:00
Waleed
bb7016a99f improvement(routes): type all untyped routes (#1848)
* improvement(routes): type all untyped routes

* fix routes, remove unused workspace members route

* fix obfuscation of errors behind zod errors

* remove extraneous comments
2025-11-07 15:24:30 -08:00
Waleed
c4278266ef feat(i18n): update translations (#1844)
* feat(i18n): update translations

* fix(streaming-api): fix streaming api (#1846)

* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* Fix streaming api

* Fix uuid stuff

* Lint

* Stripe docs fix

* Fix docs build error

* Fix uuid check

* Fix deployed chat streaming for non agent blocks

* Fix lint
2025-11-07 15:06:25 -08:00
Siddharth Ganesan
b6c2c7456e fix(variables): fix variable resolution error and start block outputs (#1847)
* Fix var resolution if block is not upstream

* Filter convo id from start block outputs if not set

* Lint

* Start block outputs
2025-11-07 15:03:43 -08:00
Siddharth Ganesan
9fd2156e9e fix(streaming-api): fix streaming api (#1846)
* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* Fix streaming api

* Fix uuid stuff

* Lint

* Stripe docs fix

* Fix docs build error

* Fix uuid check

* Fix deployed chat streaming for non agent blocks

* Fix lint

---------

Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
2025-11-07 14:38:15 -08:00
Waleed
c9a8c7e392 feat(tools): added 200+ new tools across confluence, discord, exa, firecrawl, jina, jira, linear, linkup, MS suite, parallel, reddit, supabase, & tavily (#1824)
* feat(tools): added 150+ new tools across confluence, discord, exa, firecrawl, jina, jira, linear, linkup, MS suite, parallel, reddit, supabase, & tavily

* feat(tools): added 150+ new tools across confluence, discord, exa, firecrawl, jina, jira, linear, linkup, MS suite, parallel, reddit, supabase, & tavily

* replace console.log and console.error with loggers instead

* cleanup

* update message change

* removed layout from all blocks with new operations

* cleanup

* fixed create row

* fixed full text search

* fixed firecrawl, fixed supabase download

* fix subblock name

* teams update

* finish supabase

* tested & updated parallel AI

* removed dates from Exa, fixed research

* fix jina

* more jina updates

* fixed tavily + tool-inp for empty dropdown items

* updated microsoft tools

* edited reddit

* added html/text options for gmail outlook resend tools, added linear and jira triggers

* reddit tool fix

* another reddit fix

* remove unused github utils, fix linear triggers

* added onedrive delete, fixed jira tools

* fixed confluence

* fix some linear operations, fixed jira triggers

* fix some linear tools

* fix build

* fix jira payloads

* fixe jira payload

* fix conflicts

* added sample payload

* fix stripe icon

* run lint
2025-11-07 13:03:57 -08:00
Waleed
eb459d0ab9 feat(i18n): update translations (#1843) 2025-11-07 13:03:05 -08:00
Siddharth Ganesan
a31dc733cf fix(copilot): fix image auth (#1841)
* Fix copilot image auth

* Lint

* Remove extra loggign

* Update apps/sim/app/api/copilot/chat/route.ts

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-11-07 11:40:13 -08:00
Waleed
c3436e998f feat(tools): added 50+ stripe tools and trigger and docs (#1816)
* feat(tools): added 150+ new tools across confluence, discord, exa, firecrawl, jina, jira, linear, linkup, MS suite, parallel, reddit, supabase, & tavily

* feat(tools): added 40+ stripe tools and trigger

* added stripe tools to registry

* added number validation, tested all stripe tools

* update stripe payload, tested webhooks
2025-11-07 10:59:19 -08:00
Siddharth Ganesan
742d59f54d feat(hitl): add human in the loop block (#1832)
* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* Add pause resume block

* Add db schema

* Initial test passes

* Tests pass

* Execution pauses

* Snapshot serializer

* Ui checkpoint

* Works 1

* Pause resume simple v1

* Hitl block works in parallel branches without timing overlap

* Pending status to logs

* Pause resume ui link

* Big context consolidation

* HITL works in loops

* Fix parallels

* Reference blocks properly

* Fix tag dropdown and start block resolution

* Filter console logs for hitl block

* Fix notifs

* Fix logs page

* Fix logs page again

* Fix

* Checkpoint

* Cleanup v1

* Refactor v2

* Refactor v3

* Refactor v4

* Refactor v5

* Resume page

* Fix variables in loops

* Fix var res bugs

* Ui changes

* Approval block

* Hitl works e2e v1

* Fix tets

* Row level lock

---------

Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
2025-11-06 15:59:28 -08:00
Waleed
f9ce65eddf feat(i18n): update translations (#1831) 2025-11-06 12:23:34 -08:00
Waleed
8c9ed34d99 feat(tools): added 48 new github tools, 12 triggers (#1821)
* feat(tools): added 10 new github triggers

* feat(tools): added 48 new github tools, 12 triggers

* fix(logging): make logging safe start an upsert to prevent insertions of duplicate execution id records, remove layout from github block
2025-11-06 11:11:45 -08:00
Waleed
541bdd3772 feat(i18n): update translations (#1820) 2025-11-05 18:22:50 -08:00
Waleed
60d53ba14a feat(tools): added typeform form submission trigger, added 4 new tools to complete CRUD typeform tools (#1818)
* feat(tools): added typeform form submission trigger, added 4 new tools to complete CRUD typeform tools

* resolve envvars in trigger configuration upon save, tested typeform

* updated docs

* ack PR comments
2025-11-05 17:47:43 -08:00
Vikhyath Mondreti
5c611c6d65 improvement(block-outputs): fix chat fields being hidden even if in inputFormat, cleanup code (#1819)
* improvement(block-outputs): fix chat fields being hidden even if in inputFormat, cleanup code"

* fix type error
2025-11-05 16:05:39 -08:00
Waleed
2b78b5ea73 feat(i18n): update translations (#1817) 2025-11-05 15:26:19 -08:00
Waleed
cf023e4d22 feat(tools): added download file tool for onedrive, google drive, and slack; added move email tool for gmail and outlook (#1785)
* feat(tools): added download file tool for onedrive, google drive, and slack

* added gmail & outlook move tools, added missing credentials descriptions to modal

* added slack delete/update message, add reaction; added gmail read/unread/label/unarchive; added outlook copy/delete/read/unread

* added threads to slack operations

* added timestamp for slack webhook trigger since api uses timestamp for updating/reacting/deleting

* cleanup

* added file info to slack read messages

* updated slack desc

* fixed downloading for onedrive, slack, and drive

* fix type check

* fix build failure

* cleanup files, fix triggers with attachments, fix integration blocks with include attachment to parse to user files, remove unused code

* fix move files tools

* fix tests

* fix build errors

* fix type error

* fix tests

* remove redundant code and filter out unecessary user file fields

* fix lint error

* remove fields from tag dropdown

* fix file upload via API

* fix pdf parse issue

---------

Co-authored-by: waleed <waleed>
Co-authored-by: Adam Gough <adamgough@Adams-MacBook-Pro.local>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-11-05 13:00:34 -08:00
Waleed
21774de275 feat(i18n): update translations (#1815)
* feat(i18n): update translations

* fix translations
2025-11-05 11:40:56 -08:00
Waleed
2056e8ae5f feat(tools): added additional youtube search params, get channel playlists videos and related videos tools (#1814) 2025-11-05 11:26:45 -08:00
Waleed
11fd1544bb feat(i18n): update translations (#1813) 2025-11-05 11:22:42 -08:00
Waleed
0260dbc3f2 feat(tools): added perplexity search endpoint, updated models list for perplexity block (#1812) 2025-11-05 11:15:15 -08:00
Waleed
68056b72c2 feat(i18n): update translations (#1811) 2025-11-05 05:29:23 -08:00
Adam Gough
fa323e2e51 feat(twilio-voice): added twilio voice webhook + tool (#1776)
* first twilio voice push, no testing

* simplified operations, calling and get recording works

* cleaned up operations

* twilio webhook works

* added docs

* updated logic

* minor change

* reverted change

* files fixed for bun run lint

* fix instructions

* removed unused files

* added slack validation and twilio

* changed twiml instruction

* fixed build

* cleanup

* remove extraneous comments

* fixed missing mcosk

* split out client-side utils

* update docs

* fix tests

* had to add some reverts

* custom tool that was fialing bulid

* reveted changes
2025-11-04 23:56:06 -08:00
Adam Gough
b0fa3e8a26 improvement(reply-gmail): added reply to gmail (#1809)
* added reply to thread/message

* cleanup, extract header helper for threaded replies

* more helpers
2025-11-04 20:23:10 -08:00
Waleed
f65d62ea3d improvement(async): improve error capturing for asynchronous workflow executions (#1808)
* improvement(async): improve error capturing for asynchronous workflow executions

* surface more erros

* added more logs

* fix failing tests

* ack DB comments
2025-11-04 18:16:00 -08:00
Waleed
670e63c108 fix(schedules): restore enabling/disabling of schedules, fix premature cron validation (#1807) 2025-11-04 14:05:29 -08:00
Waleed
e62a635757 feat(i18n): update translations (#1806) 2025-11-04 13:39:10 -08:00
Waleed
a29f9fd55f feat(schedules): move schedule configuration out of modals into subblocks (#1805)
* feat(schedules): move schedule configuration out of modals into subblocks

* added more timezones

* added simple in-memory rate limiting to update schedule, validation on numeric values for date and time, fix update schedule behavior

* fix failing tests, ack PR comments

* surface better errors
2025-11-04 13:36:50 -08:00
Waleed
e9ff94f06f chore(deps): upgrade turbopack (#1803) 2025-11-03 22:48:22 -08:00
Waleed
56f645890a fix(i18n): fix translation pipeline (#1804) 2025-11-03 22:47:55 -08:00
Waleed
1ce834f2fe feat(i18n): update translations (#1794)
* feat(i18n): update translations

* remove all outdated triggers, cleanup yml too
2025-11-03 22:30:50 -08:00
Vikhyath Mondreti
0363f8a33d fix(external-triggers): not passing payload through + incorrect server-side resolver logic (#1801)
* fix integration triggers

* ignore text readonly subblocks

* fix

* fix to ignore readOnly vals

* fix var references

* simplify

* cleanup code
2025-11-03 19:54:42 -08:00
Vikhyath Mondreti
d1fcade5ab fix(conn-status): remove unused connection status inside user avatar stack (#1800) 2025-11-03 15:12:56 -08:00
Waleed
3af7d136c6 feat(mcp): surface better errors for MCP connection failures (#1796) 2025-11-03 14:28:25 -08:00
Vikhyath Mondreti
2eea3caccd feat(import-export): improvements to export workspace, maintain file structure, include workflow variables (#1799)
* feat(import-export): improvements to export workspace, maintain file structure

* fix type'

* import/export variables

* fix var ref id bug
2025-11-03 12:13:57 -08:00
Siddharth Ganesan
fb445b166d fix(legacy-start): fix legacy start block execution in new executor 2025-11-03 10:37:59 -08:00
Siddharth Ganesan
3bf00cbd2a improvement(executor): redesign executor + add start block (#1790)
* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* improvement(start): revert to start block

* make it work with start block

* fix start block persistence

* cleanup triggers

* debounce status checks

* update docs

* improvement(start): revert to start block

* make it work with start block

* fix start block persistence

* cleanup triggers

* debounce status checks

* update docs

* SSE v0.1

* v0.2

* v0.3

* v0.4

* v0.5

* v0.6

* broken checkpoint

* Executor progress - everything preliminarily tested except while loops and triggers

* Executor fixes

* Fix var typing

* Implement while loop execution

* Loop and parallel result agg

* Refactor v1 - loops work

* Fix var resolution in for each loop

* Fix while loop condition and variable resolution

* Fix loop iteration counts

* Fix loop badges

* Clean logs

* Fix variable references from start block

* Fix condition block

* Fix conditional convergence

* Dont execute orphaned nodse

* Code cleanup 1 and error surfacing

* compile time try catch

* Some fixes

* Fix error throwing

* Sentinels v1

* Fix multiple start and end nodes in loop

* Edge restoration

* Fix reachable nodes execution

* Parallel subflows

* Fix loop/parallel sentinel convergence

* Loops and parallels orchestrator

* Split executor

* Variable resolution split

* Dag phase

* Refactor

* Refactor

* Refactor 3

* Lint + refactor

* Lint + cleanup + refactor

* Readability

* Initial logs

* Fix trace spans

* Console pills for iters

* Add input/output pills

* Checkpoint

* remove unused code

* THIS IS THE COMMIT THAT CAN BREAK A LOT OF THINGS

* ANOTHER BIG REFACTOR

* Lint + fix tests

* Fix webhook

* Remove comment

* Merge stash

* Fix triggers?

* Stuff

* Fix error port

* Lint

* Consolidate state

* Clean up some var resolution

* Remove some var resolution logs

* Fix chat

* Fix chat triggers

* Fix chat trigger fully

* Snapshot refactor

* Fix mcp and custom tools

* Lint

* Fix parallel default count and trace span overlay

* Agent purple

* Fix test

* Fix test

---------

Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-11-02 12:21:16 -08:00
Waleed
7d67ae397d fix(evaluator): fix evaluator to handle temperature gracefully like router (#1792)
* fix(evaluator): fix evaluator to handle temperature gracefully like router

* apps/sim

* fix eval-input subblock
2025-11-01 18:52:18 -07:00
Waleed
f9980868a4 improvement(variables): add error context for duplicate variable names, only check for collision when focus is lost (#1791)
* improvement(variables): add error context for duplicate variable names, only check for collision when focus is lost

* disallow empty variable names, performance optimizations

* safety guard against empty variables names
2025-11-01 18:19:34 -07:00
Waleed
e4d21568e3 feat(i18n): update translations (#1788) 2025-11-01 14:44:51 -07:00
Waleed
5479461617 feat(docs): added page nav buttons, static search, TOC footer (#1787)
* feat(docs): added page nav buttons, static search, TOC footer

* back to dynamic search since indexes are too large, added caching hour over hour
2025-11-01 14:38:28 -07:00
Vikhyath Mondreti
86b3570252 fix(trigger-dup): on duplicate trigger should not point at old webhook row (#1784) 2025-10-31 19:39:17 -07:00
Vikhyath Mondreti
44271cd101 fix(triggers-persistence): triggers persistence, deletion, updating configs + state management simplifcation (#1783)
* fix(triggers): configuration persistences issues

* required fields validation staleness issue
2025-10-31 18:06:31 -07:00
Vikhyath Mondreti
f6a5c5c829 improvement(cleanup): remove useWorkflowDiff hook (#1781) 2025-10-31 12:04:25 -07:00
Waleed
e64129c1ad feat(triggers): modify triggers to use existing subblock system, webhook order of operations improvements (#1774)
* feat(triggers): make triggers use existing subblock system, need to still fix webhook URL on multiselect and add script in text subblock for google form

* minimize added subblocks, cleanup code, make triggers first-class subblock users

* remove multi select dropdown and add props to existing dropdown instead

* cleanup dropdown

* add socket op to delete external webhook connections on block delete

* establish external webhook before creating webhook DB record, surface better errors for ones that require external connections

* fix copy button in short-input

* revert environment.ts, cleanup

* add triggers registry, update copilot tool to reflect new trigger setup

* update trigger-save subblock

* clean

* cleanup

* remove unused subblock store op, update search modal to reflect list of triggers

* add init from workflow to subblock store to populate new subblock format from old triggers

* fix mapping of old names to new ones

* added debug logging

* remove all extraneous debug logging and added mapping for triggerConfig field names that were changed

* fix trigger config for triggers w/ multiple triggers

* edge cases for effectiveTriggerId

* cleaned up

* fix dropdown multiselect

* fix multiselect

* updated short-input copy button

* duplicate blocks in trigger mode

* ack PR comments
2025-10-31 11:38:59 -07:00
Waleed
70ff5394a4 improvement(mcp): ditch custom mcp client in favor of mcp sdk (#1780) 2025-10-31 11:21:00 -07:00
Waleed
6cd82f07ed fix(presence): remove presence for a solo user (#1779) 2025-10-30 22:47:37 -07:00
Vikhyath Mondreti
4a3c6d17e3 fix(client-directive): fix build error (#1778) 2025-10-30 20:29:12 -07:00
Vikhyath Mondreti
0b16fa4dd0 fix(triggers): incoming edges should be filtered from execution and UI graph (#1777) 2025-10-30 20:20:32 -07:00
Vikhyath Mondreti
eac358bc7c feat(live-cursor): live cursor during collaboration (#1775)
* feat(live-cursor): collaborative cursor

* fix user avatar url rendering

* simplify presence

* fix env ts

* fix lint

* fix type mismatch
2025-10-30 19:47:11 -07:00
Vikhyath Mondreti
a072e6d1d8 improvement(custom-tools): make them workspace scoped + ux to manage them (#1772)
* improvement(custom-tools): make them workspace scoped

* fix auth check

* remove comments

* add dup check

* fix dup error message display

* fix tests

* fix on app loading of custom tools
2025-10-30 17:40:38 -07:00
Vikhyath Mondreti
3b901b33d1 fix(webhook-notif): modal positioning (#1771) 2025-10-30 16:58:17 -07:00
Vikhyath Mondreti
fe9ebbf81b improvement(api-keys): move to workspace level (#1765)
* fix(billing): should allow restoring subscription (#1728)

* fix(already-cancelled-sub): UI should allow restoring subscription

* restore functionality fixed

* fix

* improvement(api-keys): move to workspace level

* remove migration to prep merge

* remove two more unused cols

* prep staging  merge

* add migration back

---------

Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
2025-10-30 11:42:58 -07:00
Waleed
c99bb0aaa2 feat(cost): added hidden cost breakdown component to settings > subscription, start collecting current period copilot cost and last period copilot cost (#1770)
* feat(cost): added hidden cost breakdown component to settings > subscription, start collecting current period copilot cost and last period copilot cost

* don't rerender envvars when switching between workflows in the same workspace
2025-10-30 11:09:47 -07:00
Waleed
61725c2d15 feat(envvars): use cache for envvar dropdown key names, prevent autofill & suggestions in the settings (#1769)
* feat(envvars): use cache for envvar dropdown key names, prevent autofill & suggestions in the settings

* add the same prevention for autocomplete and suggestions to sso and webhook
2025-10-30 00:23:35 -07:00
Waleed
8b0079b834 feat(i18n): update translations (#1768) 2025-10-30 00:03:16 -07:00
Vikhyath Mondreti
fdefb14e6b improvement(ms-teams): resolve mentions accurately (#1762)
* improvement(ms-teams): resolve mentions accurately

* fix for bots

* add utils file

* add logs

* fix perms issue

* fix scopes

* fetch works for bots

* Revert "fetch works for bots"

This reverts commit 0ac702a8f3.

* update docs
2025-10-29 23:49:05 -07:00
Waleed
47913f87de fix(kb): fix mistral parse and kb uploads, include userId in internal auth (#1767)
* fix(kb): fix mistral parse and kb uploads, include userId in internal auth

* update updated_at for kb when adding a new doc via knowledge block

* update tests
2025-10-29 23:18:39 -07:00
Waleed
48f520b3c7 feat(files): added file manager table, enforce permissions for viewing files (#1766)
* feat(files): added file manager table, enforce permissions for viewing files

* rename types

* cleanup

* cleanup

* confirm local file system works with all contexts

* clean

* remove isAsync

* ignore expiresAt

* add relative imports instead of absolute ones

* absl imports

* remove redundant comments
2025-10-29 22:03:27 -07:00
Vikhyath Mondreti
da30c25efa improvement(chat): increase max files to 15 and resolve workflow variables in webhook execution (#1764)
* improvement(chat): increase max files to 15 and resolve workflow variables in webhook execution

* fix workflow vars

* fix for schedules
2025-10-29 15:34:59 -07:00
Siddharth Ganesan
b95ea9148f fix(copilot): consolidate usage limit validation (#1763)
* Use helper for api key validation

* Lint
2025-10-29 13:14:28 -07:00
Waleed
fcf947df22 fix(variables): added the same input vars mapping from workflow block, added type validation to variables block, updated UI (#1761)
* fix(variables): added the same input vars mapping from workflow block, added type validation to variables block, updated UI

* cleanup

* lint
2025-10-29 01:22:10 -07:00
Waleed
7be9941bc9 feat(chat): support local file downloads/uploads for chat for parity with kb (#1751)
* feat(chat): support local file downloads/uploads for chat for parity with kb

* cleanup imports

* feat(files): add storage service and consolidate file utils

* fix failing tests

* cleanup

* cleaned up

* clean

* add context for file uplaods/fetches

* fixed blob

* rm comments

* fix failing test

* fix profile pics

* add workspace dedupe for duplicated files

* update chat to accept only accepted types

* add loading anim to profilepic update

* optimistically update keys, copilot keys, and file uploads to prevent flash

* add defensive check for deleting files
2025-10-28 20:09:51 -07:00
Siddharth Ganesan
807014a5d2 fix(wait, vars, while): var set (#1759)
* Fix env is hosted

* Lint
2025-10-28 17:19:11 -07:00
Waleed
aef1f18c1e feat(i18n): update translations (#1756) 2025-10-28 12:43:33 -07:00
Adam Gough
368576b082 feat(create-excel): onedrive create excel (#1745)
* added onedrive upload excel

* added

* updated docs

* lint

* cleaned

* use lib

---------

Co-authored-by: Adam Gough <adamgough@Adams-MacBook-Pro.local>
2025-10-28 12:26:17 -07:00
Siddharth Ganesan
aace3066aa feat(while, vars, wait): add while subflow, variables block, wait block (#1754)
* Add variables block

* Add wait block

* While loop v1

* While loop v1

* Do while loops

* Copilot user input rerender fix

* Fix while and dowhile

* Vars block dropdown

* While loop docs

* Remove vars block coloring

* Fix lint

* Link docs to wait

* Fix build fail
2025-10-28 11:59:47 -07:00
Waleed
ef5b6999ab fix(migrations): add missing migration for processing columns in documents table (#1749) 2025-10-27 23:23:42 -07:00
Waleed
9df886d1e9 feat(kb): added sort ordering to knowledgebase page, styling update (#1748)
* remove extraneous text from careers app

* feat(kb): added sort order to kb

* updated styles of workspace selector and delete button to match theme of rest of knowledgebase
2025-10-27 21:39:48 -07:00
Waleed
9991796661 fix(docs): added new workflow block image, fixed operator issue on null properties (#1747)
* fix(docs): added new workflow block image, fixed operator issue on null properties

* reverted layout change

* fix navbar color in light mode
2025-10-27 20:56:52 -07:00
Waleed
095a15d7b5 feat(careers): added a careers page (#1746)
* feat(careers): added a careers page

* cleanup

* revert hardcoded environment
2025-10-27 20:25:44 -07:00
Waleed
8620ab255a improvement(docs): added a copy page button to the docs pages (#1743)
* improvement(docs): added a copy page button to the docs pages

* added copy page button & fixed TOC alignment
2025-10-27 15:05:27 -07:00
Waleed
47ddfb639e fix(dropdown): auto-add character to trigger tag dropdown on connection tag drop in agent tools (#1742) 2025-10-27 14:28:29 -07:00
Waleed
5d48c2780c improvement(ui): enhance ring outline for code subblock and mcp tool subblocks in agent (#1741) 2025-10-27 13:59:19 -07:00
Waleed
38614fad79 fix(mcp): resolve variables & block references in mcp subblocks (#1735)
* fix(mcp): resolve variables & block references in mcp subblocks

* cleanup

* ack PR comment

* added variables access to mcp tools when added in agent block

* fix sequential migrations issues
2025-10-27 13:13:11 -07:00
Waleed
6f32aea96b feat(kb): added support for local file storage for knowledgebase (#1738)
* feat(kb): added support for local file storage for knowledgebase

* updated tests

* ack PR comments

* added back env example
2025-10-27 11:28:45 -07:00
Waleed
98e98496e8 Revert "improvement(consts): removed redundant default consts in favor of env…" (#1739)
This reverts commit 659b46fa2f.
2025-10-26 23:06:14 -07:00
Waleed
659b46fa2f improvement(consts): removed redundant default consts in favor of envvar defaults for storage & usage limits (#1737)
* improvement(consts): removed redundant default consts in favor of envvar defaults for storage & usage limits

* remove unnecessary tests
2025-10-26 21:43:00 -07:00
Waleed
fb3d6d4c88 feat(files): added usage indicator for file storage to settings (#1736)
* feat(files): added usage indicator for file storage to settings

* cleanup
2025-10-26 21:36:25 -07:00
Waleed
ec2cc82b72 feat(i18n): update translations (#1734) 2025-10-26 18:35:20 -07:00
Adam Gough
274d5e3afc fix(clay): fixed clay tool (#1725)
* fixed clay tool

* added metadata

* added metadata to types

* fix(clay): remove (optional) from subblock name

* regen docs
2025-10-26 18:30:08 -07:00
Waleed
c552bb9c5f fix(elevenlabs): added internal auth helper for proxy routes (#1732)
* fix(elevenlabs): added internal auth helper for proxy routes

* remove concurrent tests

* build fix
2025-10-25 17:54:27 -07:00
Vikhyath Mondreti
ad7b791242 improvement(deployments): simplify deployments for chat and indicate active version (#1730)
* improvement(deployment-ux): deployment should indicate and make details configurable when activating previous version

* fix activation UI

* remove redundant code

* revert pulsing dot

* fix redeploy bug

* bill workspace owner for deployed chat

* deployed chat

* fix bugs

* fix tests, address greptile

* fix

* ui bug to load api key

* fix qdrant fetch tool
2025-10-25 16:55:34 -07:00
Waleed
ce4893a53c feat(sso-chat-deployment): added sso auth option for chat deployment (#1729)
* feat(sso-chat-deployment): added sso auth option for chat deployment

* ack PR comments
2025-10-25 14:58:25 -07:00
Adam Gough
517f1a91b6 fix(google-scopes): added forms and different drive scope (#1532)
* added google forms scope and google drive scope

* added back file scope

---------

Co-authored-by: Adam Gough <adamgough@Mac.attlocal.net>
Co-authored-by: Adam Gough <adamgough@Mac-530.lan>
2025-10-25 12:08:49 -07:00
Waleed
dba7514350 improvement(schedule): fix UI bug with schedule modal (#1722) 2025-10-23 14:16:59 -07:00
Waleed
e94de1dd26 feat(i18n): update translations (#1721) 2025-10-23 13:15:05 -07:00
Waleed
a4e874b266 feat(tools): added webflow OAuth + tools (#1720)
* feat(tools): added webflow OAuth + tools

* remove itemId from delete item

* remove siteId

* added webhook triggers + oauth scopes + site/collection selector

* update sample payload for webflow triggers

* cleanup

* fix discord color
2025-10-23 13:08:32 -07:00
Waleed
ec034f3fc7 fix(dashboard): add additional context for paginated logs in dashboard, add empty state when selected cell has no data (#1719)
* fix(dashboard): add additional context for paginated logs in dashboard, add empty state when selected cell has no data

* apps/sim

* renaming

* remove relative import
2025-10-22 14:07:52 -07:00
Waleed
e425d064c0 improvement(condition): added variable and envvar highlighting for condition input (#1718) 2025-10-22 13:12:09 -07:00
Waleed
bcd1a2faf6 feat(i18n): update translations (#1709) 2025-10-22 12:55:36 -07:00
Vikhyath Mondreti
989a77261c fix(debug-mode): remove duplicate debug mode flag (#1714) 2025-10-22 00:49:18 -10:00
Vikhyath Mondreti
5ab482127d fix(remove-exec-context): tools handle workflow id check themselves 2025-10-21 16:34:08 -10:00
Vikhyath Mondreti
b8bc632baa fix(workflow-auth): adding workflowId param to only internal urls (#1710) 2025-10-21 16:30:22 -10:00
Waleed
4d7ebd8bcb feat(supabase): added vector search tool and updated docs (#1707)
* feat(supabase): added vector search tool and updated docs

* exclude generic webhook from docs gen

* change items to pages in meta.json for tools directory in the docs
2025-10-21 18:48:18 -07:00
Vikhyath Mondreti
ca1156a6c2 fix(base-url): use getBaseUrl helper in copilot revert state endpoint (#1706)
* revert base url

* fix tests"
;
2025-10-21 15:44:05 -10:00
Vikhyath Mondreti
89eb1849d0 fix(external-route): handleInternalRequest should still check if request internal 2025-10-21 15:00:33 -10:00
Vikhyath Mondreti
1d4833f485 fix case sensitive header (#1705) 2025-10-21 14:51:13 -10:00
Waleed
d5902e91da fix(kb): added internal auth for mistral OCR tool via KB (#1704) 2025-10-21 16:56:53 -07:00
Vikhyath Mondreti
e6ba323de4 Merge pull request #1700 from simstudioai/fix/internal-req
fix(internal-req): add internal token to server side
2025-10-21 12:07:54 -07:00
Waleed
859711991f fix(docs): made sidebar directories scrollable, stylistic changes (#1702) 2025-10-21 12:04:19 -07:00
Waleed
c178a90f02 improvement(helm): added additional envvars to helm charts (#1695)
* improvement(helm): added additional envvars to helm charts

* updated docs
2025-10-21 12:02:51 -07:00
Waleed
eb8995ee7c fix(kb): add base URL for kb fetches (#1701) 2025-10-21 12:02:18 -07:00
Vikhyath Mondreti
b269447539 fix(internal-req): add internal token to server side 2025-10-21 08:36:15 -10:00
2021 changed files with 259011 additions and 68579 deletions

19
.cursorrules Normal file
View File

@@ -0,0 +1,19 @@
# Role
You are a professional software engineer. All code you write MUST follow best practices, ensuring accuracy, quality, readability, and cleanliness. You MUST make FOCUSED EDITS that are EFFICIENT and ELEGANT.
## Logs
ENSURE that you use the logger.info and logger.warn and logger.error instead of the console.log whenever you want to display logs.
## Comments
You must use TSDOC for comments. Do not use ==== for comments to separate sections.
## Globals styles
You should not update the global styles unless it is absolutely necessary. Keep all styling local to components and files.
## Bun
Use bun and bunx not npm and npx

View File

@@ -321,8 +321,7 @@ In addition, you will need to update the registries:
{
id: 'operation',
title: 'Operation',
type: 'dropdown',
layout: 'full',
type: 'dropdown'
required: true,
options: [
{ label: 'Generate Embeddings', id: 'generate' },
@@ -333,8 +332,7 @@ In addition, you will need to update the registries:
{
id: 'apiKey',
title: 'API Key',
type: 'short-input',
layout: 'full',
type: 'short-input'
placeholder: 'Your Pinecone API key',
password: true,
required: true,

2
.gitignore vendored
View File

@@ -46,7 +46,7 @@ sim-standalone.tar.gz
next-env.d.ts
# cursorrules
.cursorrules
# .cursorrules
# docs
/apps/docs/.source

View File

@@ -4,12 +4,13 @@ import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page
import { ChevronLeft, ChevronRight } from 'lucide-react'
import Link from 'next/link'
import { notFound } from 'next/navigation'
import { PageNavigationArrows } from '@/components/docs-layout/page-navigation-arrows'
import { TOCFooter } from '@/components/docs-layout/toc-footer'
import { StructuredData } from '@/components/structured-data'
import { CodeBlock } from '@/components/ui/code-block'
import { CopyPageButton } from '@/components/ui/copy-page-button'
import { source } from '@/lib/source'
export const dynamic = 'force-dynamic'
export default async function Page(props: { params: Promise<{ slug?: string[]; lang: string }> }) {
const params = await props.params
const page = source.getPage(params.slug, params.lang)
@@ -175,10 +176,14 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
<DocsPage
toc={page.data.toc}
full={page.data.full}
breadcrumb={{
enabled: false,
}}
tableOfContent={{
style: 'clerk',
enabled: true,
header: <div className='mb-2 font-medium text-sm'>On this page</div>,
footer: <TOCFooter />,
single: false,
}}
article={{
@@ -193,8 +198,20 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
component: <CustomFooter />,
}}
>
<DocsTitle>{page.data.title}</DocsTitle>
<DocsDescription>{page.data.description}</DocsDescription>
<div className='relative'>
<div className='absolute top-1 right-0 flex items-center gap-2'>
<CopyPageButton
content={`# ${page.data.title}
${page.data.description || ''}
${page.data.content || ''}`}
/>
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
</div>
<DocsTitle>{page.data.title}</DocsTitle>
<DocsDescription>{page.data.description}</DocsDescription>
</div>
<DocsBody>
<MDX
components={{

View File

@@ -1,4 +1,16 @@
import { createFromSource } from 'fumadocs-core/search/server'
import { source } from '@/lib/source'
export const { GET } = createFromSource(source)
export const revalidate = 3600 // Revalidate every hour
export const { GET } = createFromSource(source, {
localeMap: {
en: { language: 'english' },
es: { language: 'spanish' },
fr: { language: 'french' },
de: { language: 'german' },
// ja and zh are not supported by the stemmer library, so we'll skip language config for them
ja: {},
zh: {},
},
})

View File

@@ -36,7 +36,9 @@
/* Shift the sidebar slightly left from the content edge for extra breathing room */
--sidebar-shift: 90px;
--sidebar-offset: max(0px, calc(var(--edge-gutter) - var(--sidebar-shift)));
--toc-offset: var(--edge-gutter);
/* Shift TOC slightly right to match sidebar spacing for symmetry */
--toc-shift: 90px;
--toc-offset: max(0px, calc(var(--edge-gutter) - var(--toc-shift)));
/* Sidebar and TOC have 20px internal padding - navbar accounts for this directly */
/* Extra gap between sidebar/TOC and the main text content */
--content-gap: 1.75rem;
@@ -50,9 +52,7 @@
/* Light mode navbar and search styling */
:root:not(.dark) nav {
background-color: hsla(0, 0%, 96%, 0.92) !important;
backdrop-filter: blur(25px) saturate(180%) brightness(1.05) !important;
-webkit-backdrop-filter: blur(25px) saturate(180%) brightness(1.05) !important;
background-color: hsla(0, 0%, 96%, 0.85) !important;
}
:root:not(.dark) nav button[type="button"] {
@@ -66,6 +66,13 @@
color: rgba(0, 0, 0, 0.6) !important;
}
/* Dark mode navbar and search styling */
:root.dark nav {
background-color: hsla(0, 0%, 7.04%, 0.92) !important;
backdrop-filter: blur(25px) saturate(180%) brightness(0.6) !important;
-webkit-backdrop-filter: blur(25px) saturate(180%) brightness(0.6) !important;
}
/* ============================================
Custom Sidebar Styling (Turborepo-inspired)
============================================ */
@@ -107,8 +114,21 @@ aside#nd-sidebar {
aside#nd-sidebar {
left: var(--sidebar-offset) !important;
}
[data-toc] {
margin-right: var(--toc-offset) !important;
/* TOC positioning - target all possible selectors */
[data-toc],
aside[data-toc],
div[data-toc],
.fd-toc,
#nd-toc,
nav[data-toc],
aside:has([role="complementary"]) {
right: var(--toc-offset) !important;
}
/* Alternative TOC container targeting */
[data-docs-page] > aside:last-child,
main ~ aside {
right: var(--toc-offset) !important;
}
}
@@ -223,8 +243,8 @@ aside#nd-sidebar {
:root:not(.dark) #nd-sidebar a.text-purple-600,
:root:not(.dark) #nd-sidebar a[class*="bg-purple"],
:root:not(.dark) #nd-sidebar a[class*="text-purple"] {
background-color: rgba(0, 0, 0, 0.1) !important;
color: rgba(0, 0, 0, 1) !important;
background-color: rgba(0, 0, 0, 0.07) !important;
color: rgba(0, 0, 0, 0.9) !important;
}
/* Dark mode hover state */
@@ -236,7 +256,7 @@ aside#nd-sidebar {
/* Light mode hover state */
:root:not(.dark) #nd-sidebar a:hover:not([data-active="true"]),
:root:not(.dark) #nd-sidebar button:hover:not([data-active="true"]) {
background-color: rgba(0, 0, 0, 0.06) !important;
background-color: rgba(0, 0, 0, 0.03) !important;
}
/* Dark mode - ensure active/selected items don't change on hover */
@@ -253,8 +273,8 @@ aside#nd-sidebar {
:root:not(.dark) #nd-sidebar a[class*="bg-purple"]:hover,
:root:not(.dark) #nd-sidebar a[data-active="true"]:hover,
:root:not(.dark) #nd-sidebar button[data-active="true"]:hover {
background-color: rgba(0, 0, 0, 0.1) !important;
color: rgba(0, 0, 0, 1) !important;
background-color: rgba(0, 0, 0, 0.07) !important;
color: rgba(0, 0, 0, 0.9) !important;
}
/* Hide search, platform, and collapse button from sidebar completely */

View File

@@ -0,0 +1,42 @@
'use client'
import { ChevronLeft, ChevronRight } from 'lucide-react'
import Link from 'next/link'
interface PageNavigationArrowsProps {
previous?: {
url: string
}
next?: {
url: string
}
}
export function PageNavigationArrows({ previous, next }: PageNavigationArrowsProps) {
if (!previous && !next) return null
return (
<div className='flex items-center gap-2'>
{previous && (
<Link
href={previous.url}
className='inline-flex items-center justify-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-1.5 text-muted-foreground/60 text-sm transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground'
aria-label='Previous page'
title='Previous page'
>
<ChevronLeft className='h-4 w-4' />
</Link>
)}
{next && (
<Link
href={next.url}
className='inline-flex items-center justify-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-1.5 text-muted-foreground/60 text-sm transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground'
aria-label='Next page'
title='Next page'
>
<ChevronRight className='h-4 w-4' />
</Link>
)}
</div>
)
}

View File

@@ -1,6 +1,6 @@
'use client'
import { type ReactNode, useState } from 'react'
import { type ReactNode, useEffect, useState } from 'react'
import type { PageTree } from 'fumadocs-core/server'
import { ChevronRight } from 'lucide-react'
import Link from 'next/link'
@@ -46,6 +46,10 @@ export function SidebarFolder({
const hasActiveChild = checkHasActiveChild(item, pathname)
const [open, setOpen] = useState(hasActiveChild)
useEffect(() => {
setOpen(hasActiveChild)
}, [hasActiveChild])
return (
<li className='mb-[0.0625rem] list-none'>
{item.index ? (
@@ -97,7 +101,7 @@ export function SidebarFolder({
<div
className={cn(
'overflow-hidden transition-all duration-200 ease-in-out',
open ? 'max-h-[2000px] opacity-100' : 'max-h-0 opacity-0'
open ? 'max-h-[10000px] opacity-100' : 'max-h-0 opacity-0'
)}
>
<ul className='mt-0.5 ml-2 space-y-[0.0625rem] border-gray-200/60 border-l pl-2.5 dark:border-gray-700/60'>

View File

@@ -0,0 +1,41 @@
'use client'
import { useState } from 'react'
import { ArrowRight, ChevronRight } from 'lucide-react'
import Link from 'next/link'
export function TOCFooter() {
const [isHovered, setIsHovered] = useState(false)
return (
<div className='sticky bottom-0 mt-6'>
<div className='flex flex-col gap-2 rounded-lg border border-border bg-secondary p-6 text-sm'>
<div className='text-balance font-semibold text-base leading-tight'>
Start building today
</div>
<div className='text-muted-foreground'>Trusted by over 60,000 builders.</div>
<div className='text-muted-foreground'>
Build Agentic workflows visually on a drag-and-drop canvas or with natural language.
</div>
<Link
href='https://sim.ai/signup'
target='_blank'
rel='noopener noreferrer'
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
className='group mt-2 inline-flex h-8 w-fit items-center justify-center gap-1 whitespace-nowrap rounded-[10px] border border-[#6F3DFA] bg-gradient-to-b from-[#8357FF] to-[#6F3DFA] px-3 pr-[10px] pl-[12px] font-medium text-sm text-white shadow-[inset_0_2px_4px_0_#9B77FF] outline-none transition-all hover:shadow-lg focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50'
aria-label='Get started with Sim - Sign up for free'
>
<span>Get started</span>
<span className='inline-flex transition-transform duration-200 group-hover:translate-x-0.5'>
{isHovered ? (
<ArrowRight className='h-4 w-4' aria-hidden='true' />
) : (
<ChevronRight className='h-4 w-4' aria-hidden='true' />
)}
</span>
</Link>
</div>
</div>
)
}

View File

@@ -11,21 +11,20 @@ export function Navbar() {
<nav
className='sticky top-0 z-50 border-border/50 border-b'
style={{
backgroundColor: 'hsla(0, 0%, 7.04%, 0.92)',
backdropFilter: 'blur(25px) saturate(180%) brightness(0.6)',
WebkitBackdropFilter: 'blur(25px) saturate(180%) brightness(0.6)',
backdropFilter: 'blur(25px) saturate(180%)',
WebkitBackdropFilter: 'blur(25px) saturate(180%)',
}}
>
{/* Desktop: Single row layout */}
<div className='hidden h-16 w-full items-center lg:flex'>
<div
className='grid w-full grid-cols-[auto_1fr_auto] items-center'
className='relative flex w-full items-center justify-between'
style={{
paddingLeft: 'calc(var(--sidebar-offset) + 20px)',
paddingRight: 'calc(var(--toc-offset) + 20px)',
paddingRight: 'calc(var(--toc-offset) + 60px)',
}}
>
{/* Left cluster: translate by sidebar delta to align with sidebar edge */}
{/* Left cluster: logo */}
<div className='flex items-center'>
<Link href='/' className='flex min-w-[100px] items-center'>
<Image
@@ -38,12 +37,12 @@ export function Navbar() {
</Link>
</div>
{/* Center cluster: search */}
<div className='flex flex-1 items-center justify-center'>
{/* Center cluster: search - absolutely positioned to center */}
<div className='-translate-x-1/2 absolute left-1/2 flex items-center justify-center'>
<SearchTrigger />
</div>
{/* Right cluster aligns with TOC edge using the same right gutter */}
{/* Right cluster aligns with TOC edge */}
<div className='flex items-center gap-4'>
<Link
href='https://sim.ai'

View File

@@ -0,0 +1,42 @@
'use client'
import { useState } from 'react'
import { Check, Copy } from 'lucide-react'
interface CopyPageButtonProps {
content: string
}
export function CopyPageButton({ content }: CopyPageButtonProps) {
const [copied, setCopied] = useState(false)
const handleCopy = async () => {
try {
await navigator.clipboard.writeText(content)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
} catch (err) {
console.error('Failed to copy:', err)
}
}
return (
<button
onClick={handleCopy}
className='flex items-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-2 text-muted-foreground/60 text-sm leading-none transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground'
aria-label={copied ? 'Copied to clipboard' : 'Copy page content'}
>
{copied ? (
<>
<Check className='h-3.5 w-3.5' />
<span>Copied</span>
</>
) : (
<>
<Copy className='h-3.5 w-3.5' />
<span>Copy page</span>
</>
)}
</button>
)
}

View File

@@ -15,7 +15,7 @@ export function SearchTrigger() {
return (
<button
type='button'
className='flex h-10 w-[500px] items-center gap-2 rounded-xl border border-border/50 px-3 py-2 text-sm backdrop-blur-xl transition-colors hover:border-border'
className='flex h-10 w-[460px] items-center gap-2 rounded-xl border border-border/50 px-3 py-2 text-sm backdrop-blur-xl transition-colors hover:border-border'
style={{
backgroundColor: 'hsla(0, 0%, 5%, 0.85)',
backdropFilter: 'blur(33px) saturate(180%)',

View File

@@ -16,7 +16,7 @@ Blöcke sind die Bausteine, die du miteinander verbindest, um KI-Workflows zu er
## Grundlegende Blocktypen
Sim bietet sieben grundlegende Blocktypen, die die wesentlichen Funktionen von KI-Workflows abdecken:
Sim bietet wesentliche Blocktypen, die die Kernfunktionen von KI-Workflows abdecken:
### Verarbeitungsblöcke
- **[Agent](/blocks/agent)** - Chatte mit KI-Modellen (OpenAI, Anthropic, Google, lokale Modelle)
@@ -28,16 +28,20 @@ Sim bietet sieben grundlegende Blocktypen, die die wesentlichen Funktionen von K
- **[Router](/blocks/router)** - Nutze KI, um Anfragen intelligent auf verschiedene Pfade zu leiten
- **[Evaluator](/blocks/evaluator)** - Bewerte und beurteile die Inhaltsqualität mit KI
### Ablaufsteuerungsblöcke
- **[Variablen](/blocks/variables)** - Workflow-bezogene Variablen setzen und verwalten
- **[Warten](/blocks/wait)** - Workflow-Ausführung für eine bestimmte Zeitverzögerung pausieren
### Ausgabeblöcke
- **[Response](/blocks/response)** - Formatiere und gib endgültige Ergebnisse aus deinem Workflow zurück
- **[Antwort](/blocks/response)** - Formatieren und Zurückgeben der endgültigen Ergebnisse aus Ihrem Workflow
## Wie Blöcke funktionieren
Jeder Block hat drei Hauptkomponenten:
**Eingaben**: Daten, die in den Block von anderen Blöcken oder Benutzereingaben kommen
**Konfiguration**: Einstellungen, die das Verhalten des Blocks steuern
**Ausgaben**: Daten, die der Block für andere Blöcke produziert
**Konfiguration**: Einstellungen, die steuern, wie der Block sich verhält
**Ausgaben**: Daten, die der Block für andere Blöcke zur Verwendung erzeugt
<Steps>
<Step>
@@ -56,7 +60,7 @@ Jeder Block hat drei Hauptkomponenten:
Sie erstellen Workflows, indem Sie Blöcke miteinander verbinden. Die Ausgabe eines Blocks wird zur Eingabe eines anderen:
- **Ziehen zum Verbinden**: Ziehen Sie von einem Ausgabeport zu einem Eingabeport
- **Mehrfachverbindungen**: Eine Ausgabe kann mit mehreren Eingängen verbunden werden
- **Mehrfachverbindungen**: Eine Ausgabe kann mit mehreren Eingaben verbunden werden
- **Verzweigende Pfade**: Einige Blöcke können basierend auf Bedingungen zu verschiedenen Pfaden weiterleiten
<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
@@ -73,7 +77,7 @@ User Input → Agent → Function → Response
```
### Bedingte Verzweigung
Verwenden Sie Bedingungsblöcke oder Router-Blöcke, um verschiedene Pfade zu erstellen:
Verwenden Sie Bedingung- oder Router-Blöcke, um verschiedene Pfade zu erstellen:
```
User Input → Router → Agent A (for questions)
@@ -93,37 +97,43 @@ Agent → Evaluator → Condition → Response (if good)
Jeder Blocktyp hat spezifische Konfigurationsoptionen:
**Alle Blöcke**:
- Ein-/Ausgabeverbindungen
- Eingabe-/Ausgabeverbindungen
- Fehlerbehandlungsverhalten
- Zeitüberschreitungseinstellungen für die Ausführung
- Einstellungen für Ausführungs-Timeout
**KI-Blöcke** (Agent, Router, Evaluator):
- Modellauswahl (OpenAI, Anthropic, Google, lokal)
- API-Schlüssel und Authentifizierung
- Temperature und andere Modellparameter
- Temperatur und andere Modellparameter
- Systemaufforderungen und Anweisungen
**Logikblöcke** (Bedingung, Funktion):
**Logik-Blöcke** (Bedingung, Funktion):
- Benutzerdefinierte Ausdrücke oder Code
- Variablenreferenzen
- Einstellungen für die Ausführungsumgebung
- Einstellungen für Ausführungsumgebung
**Integrationsblöcke** (API, Antwort):
**Integrations-Blöcke** (API, Response):
- Endpunktkonfiguration
- Header und Authentifizierung
- Anfrage-/Antwortformatierung
<Cards>
<Card title="Agent Block" href="/blocks/agent">
Verbindung zu KI-Modellen herstellen und intelligente Antworten erzeugen
<Card title="Agent-Block" href="/blocks/agent">
Verbindung zu KI-Modellen herstellen und intelligente Antworten erstellen
</Card>
<Card title="Function Block" href="/blocks/function">
<Card title="Funktions-Block" href="/blocks/function">
Benutzerdefinierten Code ausführen, um Daten zu verarbeiten und zu transformieren
</Card>
<Card title="API Block" href="/blocks/api">
<Card title="API-Block" href="/blocks/api">
Integration mit externen Diensten und APIs
</Card>
<Card title="Condition Block" href="/blocks/condition">
<Card title="Bedingungs-Block" href="/blocks/condition">
Verzweigende Logik basierend auf Datenbewertung erstellen
</Card>
<Card title="Variablen-Block" href="/blocks/variables">
Workflow-bezogene Variablen setzen und verwalten
</Card>
<Card title="Warte-Block" href="/blocks/wait">
Workflow-Ausführung für bestimmte Zeitverzögerungen pausieren
</Card>
</Cards>

View File

@@ -9,7 +9,7 @@ import { Image } from '@/components/ui/image'
Der Loop-Block ist ein Container-Block in Sim, der es ermöglicht, iterative Workflows zu erstellen, indem eine Gruppe von Blöcken wiederholt ausgeführt wird. Loops ermöglichen iterative Verarbeitung in deinen Workflows.
Der Loop-Block unterstützt zwei Arten der Iteration:
Der Schleifenblock unterstützt vier Arten der Iteration:
<Callout type="info">
Loop-Blöcke sind Container-Knoten, die andere Blöcke enthalten können. Die Blöcke innerhalb einer Schleife werden basierend auf deiner Konfiguration mehrfach ausgeführt.
@@ -27,10 +27,10 @@ Der Loop-Block ermöglicht dir:
<strong>Operationen wiederholen</strong>: Blöcke eine festgelegte Anzahl von Malen ausführen
</Step>
<Step>
<strong>Sequentielle Verarbeitung</strong>: Datentransformation in geordneten Iterationen durchführen
<strong>Auf Bedingungen basierte Schleifen</strong>: Ausführung fortsetzen, während oder bis eine Bedingung erfüllt ist
</Step>
<Step>
<strong>Ergebnisse aggregieren</strong>: Ausgaben aus allen Schleifeniterationen sammeln
<strong>Ergebnisse aggregieren</strong>: Ausgaben aus allen Schleifendurchläufen sammeln
</Step>
</Steps>
@@ -47,23 +47,23 @@ Der Loop-Block führt enthaltene Blöcke durch sequentielle Iteration aus:
### Schleifentyp
Wähle zwischen zwei Arten von Schleifen:
Wähle zwischen vier Arten von Schleifen:
<Tabs items={['For Loop', 'ForEach Loop']}>
<Tabs items={['For-Schleife', 'ForEach-Schleife', 'While-Schleife', 'Do-While-Schleife']}>
<Tab>
**For Loop (Iterationen)** - Eine numerische Schleife, die eine feste Anzahl von Malen ausgeführt wird:
**For-Schleife (Iterationen)** - Eine numerische Schleife, die eine festgelegte Anzahl von Malen ausgeführt wird:
<div className="flex justify-center">
<Image
src="/static/blocks/loop-1.png"
alt="For Loop mit Iterationen"
alt="For-Schleife mit Iterationen"
width={500}
height={400}
className="my-6"
/>
</div>
Verwende diese Option, wenn du eine Operation eine bestimmte Anzahl von Malen wiederholen musst.
Verwende diese, wenn du eine Operation eine bestimmte Anzahl von Malen wiederholen musst.
```
@@ -100,6 +100,58 @@ Wähle zwischen zwei Arten von Schleifen:
```
</Tab>
<Tab>
**While-Schleife (Bedingungsbasiert)** - Wird weiter ausgeführt, solange eine Bedingung als wahr ausgewertet wird:
<div className="flex justify-center">
<Image
src="/static/blocks/loop-3.png"
alt="While-Schleife mit Bedingung"
width={500}
height={400}
className="my-6"
/>
</div>
Verwende diese, wenn du eine Schleife benötigst, die läuft, bis eine bestimmte Bedingung erfüllt ist. Die Bedingung wird **vor** jeder Iteration überprüft.
```
Example: While <variable.i> < 10
- Check condition → Execute if true
- Inside loop: Increment <variable.i>
- Inside loop: Variables assigns i = <variable.i> + 1
- Check condition → Execute if true
- Check condition → Exit if false
```
</Tab>
<Tab>
**Do-While-Schleife (Bedingungsbasiert)** - Wird mindestens einmal ausgeführt und dann fortgesetzt, solange eine Bedingung wahr ist:
<div className="flex justify-center">
<Image
src="/static/blocks/loop-3.png"
alt="Do-While-Schleife mit Bedingung"
width={500}
height={400}
className="my-6"
/>
</div>
Verwende diese, wenn du mindestens eine Ausführung benötigst und dann eine Schleife, bis eine Bedingung erfüllt ist. Die Bedingung wird **nach** jeder Iteration überprüft.
```
Example: Do-while <variable.i> < 10
- Execute blocks
- Inside loop: Increment <variable.i>
- Inside loop: Variables assigns i = <variable.i> + 1
- Check condition → Continue if true
- Check condition → Exit if false
```
</Tab>
</Tabs>
## Wie man Schleifen verwendet
@@ -113,9 +165,9 @@ Wähle zwischen zwei Arten von Schleifen:
### Auf Ergebnisse zugreifen
Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
Nach Abschluss einer Schleife können Sie auf die aggregierten Ergebnisse zugreifen:
- **`<loop.results>`**: Array von Ergebnissen aus allen Schleifendurchläufen
- **`<loop.results>`**: Array mit Ergebnissen aus allen Schleifendurchläufen
## Beispielanwendungsfälle
@@ -143,17 +195,30 @@ Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
</ol>
</div>
### Zähler mit While-Schleife
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Elemente mit zählerbasierter Schleife verarbeiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Workflow-Variable initialisieren: `i = 0`</li>
<li>While-Schleife mit Bedingung: `<variable.i>` \< 10</li>
<li>Innerhalb der Schleife: Agent verarbeitet Element am Index `<variable.i>`</li>
<li>Innerhalb der Schleife: Variable erhöht `i = <variable.i> + 1`</li>
<li>Schleife wird fortgesetzt, solange i kleiner als 10 ist</li>
</ol>
</div>
## Erweiterte Funktionen
### Einschränkungen
<Callout type="warning">
Container-Blöcke (Schleifen und Parallele) können nicht ineinander verschachtelt werden. Das bedeutet:
- Du kannst keinen Schleifenblock in einen anderen Schleifenblock platzieren
- Du kannst keinen Parallelblock in einen Schleifenblock platzieren
- Du kannst keinen Container-Block in einen anderen Container-Block platzieren
- Sie können keinen Schleifenblock in einem anderen Schleifenblock platzieren
- Sie können keinen Parallelblock in einem Schleifenblock platzieren
- Sie können keinen Container-Block in einem anderen Container-Block platzieren
Wenn du mehrdimensionale Iterationen benötigst, erwäge eine Umstrukturierung deines Workflows, um sequentielle Schleifen zu verwenden oder Daten in Stufen zu verarbeiten.
Wenn Sie mehrdimensionale Iterationen benötigen, sollten Sie Ihren Workflow umstrukturieren, um sequentielle Schleifen zu verwenden oder Daten in Stufen zu verarbeiten.
</Callout>
<Callout type="info">
@@ -162,17 +227,20 @@ Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tabs items={['Configuration', 'Variables', 'Results']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Schleifentyp</strong>: Wählen Sie zwischen 'for' oder 'forEach'
<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)
<strong>Sammlung</strong>: Array oder Objekt, über das iteriert werden soll (forEach-Schleifen)
</li>
<li>
<strong>Bedingung</strong>: Boolescher Ausdruck zur Auswertung (while/do-while-Schleifen)
</li>
</ul>
</Tab>
@@ -204,8 +272,8 @@ Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
</Tab>
</Tabs>
## Best Practices
## Bewährte Praktiken
- **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 ForEach statt For-Schleifen, wenn Sie Arrays oder Objekte verarbeiten
- **Behandeln Sie Fehler angemessen**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen einzubauen, um robuste Workflows zu gewährleisten
- **Vernünftige Grenzen setzen**: Halten Sie die Anzahl der Iterationen in einem vernünftigen Rahmen, um lange Ausführungszeiten zu vermeiden
- **ForEach für Sammlungen verwenden**: Verwenden Sie ForEach statt For-Schleifen, wenn Sie Arrays oder Objekte verarbeiten
- **Fehler elegant behandeln**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen einzubauen, um robuste Workflows zu gewährleisten

View File

@@ -0,0 +1,123 @@
---
title: Variablen
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Image } from '@/components/ui/image'
Der Variablen-Block aktualisiert Workflow-Variablen während der Ausführung. Variablen müssen zuerst im Variablen-Bereich deines Workflows initialisiert werden, dann kannst du diesen Block verwenden, um ihre Werte während der Ausführung deines Workflows zu aktualisieren.
<div className="flex justify-center">
<Image
src="/static/blocks/variables.png"
alt="Variablen-Block"
width={500}
height={350}
className="my-6"
/>
</div>
<Callout>
Greife überall in deinem Workflow auf Variablen zu, indem du die `<variable.variableName>` Syntax verwendest.
</Callout>
## Überblick
Der Variablen-Block ermöglicht dir:
<Steps>
<Step>
<strong>Workflow-Variablen aktualisieren</strong>: Ändere Variablenwerte während der Ausführung
</Step>
<Step>
<strong>Dynamische Daten speichern</strong>: Erfasse Block-Ausgaben in Variablen
</Step>
<Step>
<strong>Zustand beibehalten</strong>: Verfolge Zähler, Flags und Zwischenergebnisse
</Step>
</Steps>
## Wie man Variablen verwendet
### 1. Im Workflow-Variablenbereich initialisieren
Erstelle zunächst deine Variablen im Variablen-Bereich des Workflows (zugänglich über die Workflow-Einstellungen):
```
customerEmail = ""
retryCount = 0
currentStatus = "pending"
```
### 2. Mit dem Variablen-Block aktualisieren
Verwende den Variablen-Block, um diese Werte während der Ausführung zu aktualisieren:
```
customerEmail = <api.email>
retryCount = <variable.retryCount> + 1
currentStatus = "processing"
```
### 3. Überall zugreifen
Referenziere Variablen in jedem Block:
```
Agent prompt: "Send email to <variable.customerEmail>"
Condition: <variable.retryCount> < 5
API body: {"status": "<variable.currentStatus>"}
```
## Beispielanwendungsfälle
### Schleifenzähler und Zustand
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Fortschritt durch Schleifeniterationen verfolgen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Im Workflow initialisieren: `itemsProcessed = 0`, `lastResult = ""`</li>
<li>Schleife iteriert über Elemente</li>
<li>Innerhalb der Schleife: Agent verarbeitet aktuelles Element</li>
<li>Innerhalb der Schleife: Variablen aktualisieren `itemsProcessed = <variable.itemsProcessed> + 1`</li>
<li>Innerhalb der Schleife: Variablen aktualisieren `lastResult = <agent.content>`</li>
<li>Nächste Iteration: Auf `<variable.lastResult>` zugreifen, um mit aktuellem Ergebnis zu vergleichen</li>
</ol>
</div>
### Wiederholungslogik
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: API-Wiederholungsversuche verfolgen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Im Workflow initialisieren: `retryCount = 0`</li>
<li>API-Block versucht Anfrage</li>
<li>Bei Fehlschlag erhöht Variablen: `retryCount = <variable.retryCount> + 1`</li>
<li>Bedingung prüft, ob `<variable.retryCount>` \< 3 ist, um zu wiederholen oder abzubrechen</li>
</ol>
</div>
### Dynamische Konfiguration
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Benutzerkontext für Workflow speichern</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Im Workflow initialisieren: `userId = ""`, `userTier = ""`</li>
<li>API ruft Benutzerprofil ab</li>
<li>Variablen speichern: `userId = <api.id>`, `userTier = <api.tier>`</li>
<li>Agent personalisiert Antwort mit `<variable.userTier>`</li>
<li>API verwendet `<variable.userId>` für Logging</li>
</ol>
</div>
## Ausgaben
- **`<variables.assignments>`**: JSON-Objekt mit allen Variablenzuweisungen aus diesem Block
## Bewährte Praktiken
- **Im Workflow-Einstellungen initialisieren**: Erstellen Sie Variablen immer im Workflow-Variablenbereich, bevor Sie sie verwenden
- **Dynamisch aktualisieren**: Verwenden Sie Variablenblöcke, um Werte basierend auf Blockausgaben oder Berechnungen zu aktualisieren
- **In Schleifen verwenden**: Perfekt für die Zustandsverfolgung über Iterationen hinweg
- **Beschreibend benennen**: Verwenden Sie klare Namen wie `currentIndex`, `totalProcessed` oder `lastError`

View File

@@ -0,0 +1,99 @@
---
title: Warten
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Image } from '@/components/ui/image'
Der Warten-Block pausiert deinen Workflow für eine bestimmte Zeit, bevor er mit dem nächsten Block fortfährt. Verwende ihn, um Verzögerungen zwischen Aktionen einzufügen, API-Ratenbegrenzungen einzuhalten oder Operationen zeitlich zu verteilen.
<div className="flex justify-center">
<Image
src="/static/blocks/wait.png"
alt="Warten-Block"
width={500}
height={350}
className="my-6"
/>
</div>
## Übersicht
Mit dem Warten-Block kannst du:
<Steps>
<Step>
<strong>Zeitverzögerungen hinzufügen</strong>: Ausführung zwischen Workflow-Schritten pausieren
</Step>
<Step>
<strong>Ratenbegrenzungen einhalten</strong>: API-Aufrufe zeitlich verteilen, um innerhalb der Limits zu bleiben
</Step>
<Step>
<strong>Sequenzen planen</strong>: Zeitgesteuerte Workflows mit Verzögerungen zwischen Aktionen erstellen
</Step>
</Steps>
## Konfiguration
### Wartezeit
Gib die Dauer der Ausführungspause ein:
- **Eingabe**: Positive Zahl
- **Maximum**: 600 Sekunden (10 Minuten) oder 10 Minuten
### Einheit
Wähle die Zeiteinheit:
- **Sekunden**: Für kurze, präzise Verzögerungen
- **Minuten**: Für längere Pausen
<Callout type="info">
Warten-Blöcke können durch Stoppen des Workflows abgebrochen werden. Die maximale Wartezeit beträgt 10 Minuten.
</Callout>
## Ausgaben
- **`<wait.waitDuration>`**: Die Wartezeit in Millisekunden
- **`<wait.status>`**: Status des Wartens ('waiting', 'completed' oder 'cancelled')
## Beispielanwendungsfälle
### API-Ratenbegrenzung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Innerhalb der API-Ratenbegrenzungen bleiben</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API-Block macht erste Anfrage</li>
<li>Warten-Block pausiert für 2 Sekunden</li>
<li>API-Block macht zweite Anfrage</li>
<li>Prozess läuft weiter, ohne Ratenbegrenzungen zu überschreiten</li>
</ol>
</div>
### Zeitgesteuerte Benachrichtigungen
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Folgenachrichten senden</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Funktion sendet erste E-Mail</li>
<li>Warten-Block pausiert für 5 Minuten</li>
<li>Funktion sendet Folge-E-Mail</li>
</ol>
</div>
### Verarbeitungsverzögerungen
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Warten auf externes System</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API-Block löst Job im externen System aus</li>
<li>Warte-Block pausiert für 30 Sekunden</li>
<li>API-Block prüft den Abschlussstatus des Jobs</li>
</ol>
</div>
## Bewährte Praktiken
- **Halte Wartezeiten angemessen**: Verwende Warten für Verzögerungen bis zu 10 Minuten. Für längere Verzögerungen solltest du geplante Workflows in Betracht ziehen
- **Überwache die Ausführungszeit**: Denke daran, dass Wartezeiten die Gesamtdauer des Workflows verlängern

View File

@@ -284,7 +284,6 @@ class AsyncExecutionResult:
class WorkflowStatus:
is_deployed: bool
deployed_at: Optional[str] = None
is_published: bool = False
needs_redeployment: bool = False
```

View File

@@ -301,7 +301,6 @@ interface AsyncExecutionResult {
interface WorkflowStatus {
isDeployed: boolean;
deployedAt?: string;
isPublished: boolean;
needsRedeployment: boolean;
}
```

View File

@@ -207,18 +207,18 @@ Populate Clay with data from a JSON file. Enables direct communication and notif
#### Input
| Parameter | Type | Required | Description |
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `webhookURL` | string | Yes | The webhook URL to populate |
| `data` | json | Yes | The data to populate |
| `authToken` | string | Yes | Auth token for Clay webhook authentication |
| `webhookURL` | string | Ja | Die Webhook-URL, die befüllt werden soll |
| `data` | json | Ja | Die Daten, die befüllt werden sollen |
| `authToken` | string | Nein | Optionaler Auth-Token für die Clay-Webhook-Authentifizierung \(die meisten Webhooks benötigen dies nicht\) |
#### Output
| Parameter | Type | Description |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Clay populate operation results including response data from Clay webhook |
| `data` | json | Antwortdaten vom Clay-Webhook |
| `metadata` | object | Webhook-Antwort-Metadaten |
## Notes

View File

@@ -42,7 +42,7 @@ In Sim ermöglicht die Confluence-Integration Ihren Agenten den Zugriff auf die
## Nutzungsanweisungen
Integriert Confluence in den Workflow. Kann Seiten lesen und aktualisieren. Erfordert OAuth.
Integrieren Sie Confluence in den Workflow. Kann Seiten lesen, erstellen, aktualisieren, löschen, Kommentare verwalten, Anhänge hinzufügen, Labels vergeben und Inhalte durchsuchen.
## Tools
@@ -91,6 +91,254 @@ Aktualisiert eine Confluence-Seite über die Confluence-API.
| `title` | string | Aktualisierter Seitentitel |
| `success` | boolean | Erfolgsstatus der Aktualisierungsoperation |
### `confluence_create_page`
Erstellen Sie eine neue Seite in einem Confluence-Space.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `spaceId` | string | Ja | Confluence-Space-ID, in dem die Seite erstellt wird |
| `title` | string | Ja | Titel der neuen Seite |
| `content` | string | Ja | Seiteninhalt im Confluence-Speicherformat (HTML) |
| `parentId` | string | Nein | Übergeordnete Seiten-ID, wenn eine Unterseite erstellt wird |
| `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 |
| `pageId` | string | Erstellte Seiten-ID |
| `title` | string | Seitentitel |
| `url` | string | Seiten-URL |
### `confluence_delete_page`
Löschen einer Confluence-Seite (verschiebt sie in den Papierkorb, wo sie wiederhergestellt werden kann).
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-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 |
| `pageId` | string | Gelöschte Seiten-ID |
| `deleted` | boolean | Löschstatus |
### `confluence_search`
Suche nach Inhalten in Confluence-Seiten, Blog-Beiträgen und anderen Inhalten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `query` | string | Ja | Suchabfragestring |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 25) |
| `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 Suche |
| `results` | array | Suchergebnisse |
### `confluence_create_comment`
Einen Kommentar zu einer Confluence-Seite hinzufügen.
#### 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`
Listet 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) |
| `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 |
| `comments` | array | Liste der Kommentare |
### `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_list_attachments`
Listet alle Anhänge 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: 25) |
| `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 |
| `attachments` | array | Liste der Anhänge |
### `confluence_delete_attachment`
Löscht einen Anhang von einer Confluence-Seite (wird in den Papierkorb verschoben).
#### 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 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 |
| `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 | Liste der Labels |
### `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 | Zeitstempel des Abrufs |
| `spaceId` | string | Space-ID |
| `name` | string | Space-Name |
| `key` | string | Space-Schlüssel |
| `type` | string | Space-Typ |
| `status` | string | Space-Status |
| `url` | string | Space-URL |
### `confluence_list_spaces`
Alle für den Benutzer zugänglichen Confluence-Spaces auflisten.
#### 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) |
| `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 |
| `spaces` | array | Liste der Spaces |
## Hinweise
- Kategorie: `tools`

View File

@@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="discord"
color="#E0E0E0"
color="#5865F2"
icon={true}
iconSvg={`<svg className="block-icon"
@@ -56,7 +56,7 @@ Discord-Komponenten in Sim verwenden effizientes Lazy Loading und rufen Daten nu
## Nutzungsanleitung
Integriert Discord in den Workflow. Kann Nachrichten senden und empfangen, Server-Informationen abrufen und Benutzerinformationen erhalten. Erfordert einen Bot-API-Schlüssel.
Umfassende Discord-Integration: Nachrichten, Threads, Kanäle, Rollen, Mitglieder, Einladungen und Webhooks.
## Tools
@@ -72,6 +72,7 @@ Eine Nachricht an einen Discord-Kanal senden
| `channelId` | string | Ja | Die Discord-Kanal-ID, an die die Nachricht gesendet werden soll |
| `content` | string | Nein | Der Textinhalt der Nachricht |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `files` | file[] | Nein | Dateien, die an die Nachricht angehängt werden sollen |
#### Ausgabe
@@ -97,7 +98,7 @@ Nachrichten aus einem Discord-Kanal abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `messages` | array | Array von Discord-Nachrichten mit vollständigen Metadaten |
| `data` | object | Container für Nachrichtendaten |
### `discord_get_server`
@@ -135,6 +136,620 @@ Informationen über einen Discord-Benutzer abrufen
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Discord-Benutzerinformationen |
### `discord_edit_message`
Eine bestehende Nachricht in einem Discord-Kanal bearbeiten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu bearbeitenden Nachricht |
| `content` | string | Nein | Der neue Textinhalt für die Nachricht |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Aktualisierte Discord-Nachrichtendaten |
### `discord_delete_message`
Eine Nachricht aus einem Discord-Kanal löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu löschenden Nachricht |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_add_reaction`
Füge eine Reaktions-Emoji zu einer Discord-Nachricht hinzu
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
| `messageId` | string | Ja | Die ID der Nachricht, auf die reagiert werden soll |
| `emoji` | string | Ja | Das Emoji für die Reaktion \(Unicode-Emoji oder benutzerdefiniertes Emoji im Format name:id\) |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_remove_reaction`
Entferne eine Reaktion von einer Discord-Nachricht
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
| `messageId` | string | Ja | Die ID der Nachricht mit der Reaktion |
| `emoji` | string | Ja | Das zu entfernende Emoji \(Unicode-Emoji oder benutzerdefiniertes Emoji im Format name:id\) |
| `userId` | string | Nein | Die Benutzer-ID, deren Reaktion entfernt werden soll \(weglassen, um die eigene Reaktion des Bots zu entfernen\) |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_pin_message`
Eine Nachricht in einem Discord-Kanal anpinnen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
| `messageId` | string | Ja | Die ID der anzupinnenden Nachricht |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_unpin_message`
Eine Nachricht in einem Discord-Kanal lösen (Unpin)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu lösenden Nachricht |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_create_thread`
Einen Thread in einem Discord-Kanal erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, in der der Thread erstellt werden soll |
| `name` | string | Ja | Der Name des Threads \(1-100 Zeichen\) |
| `messageId` | string | Nein | Die Nachrichten-ID, aus der ein Thread erstellt werden soll \(falls aus einer bestehenden Nachricht erstellt wird\) |
| `autoArchiveDuration` | number | Nein | Dauer in Minuten bis zur automatischen Archivierung des Threads \(60, 1440, 4320, 10080\) |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Erstellte Thread-Daten |
### `discord_join_thread`
Einem Thread in Discord beitreten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `threadId` | string | Ja | Die Thread-ID, der beigetreten werden soll |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_leave_thread`
Einen Thread in Discord verlassen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `threadId` | string | Ja | Die Thread-ID, die verlassen werden soll |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_archive_thread`
Einen Thread in Discord archivieren oder dearchivieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `threadId` | string | Ja | Die Thread-ID zum Archivieren/Dearchivieren |
| `archived` | boolean | Ja | Ob der Thread archiviert \(true\) oder dearchiviert \(false\) werden soll |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Aktualisierte Thread-Daten |
### `discord_create_channel`
Einen neuen Kanal in einem Discord-Server erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `name` | string | Ja | Der Name des Kanals \(1-100 Zeichen\) |
| `type` | number | Nein | Kanaltyp \(0=Text, 2=Sprache, 4=Kategorie, 5=Ankündigung, 13=Bühne\) |
| `topic` | string | Nein | Kanalthema \(0-1024 Zeichen\) |
| `parentId` | string | Nein | Übergeordnete Kategorie-ID für den Kanal |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Daten des erstellten Kanals |
### `discord_update_channel`
Discord-Kanal aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die aktualisiert werden soll |
| `name` | string | Nein | Der neue Name für den Kanal |
| `topic` | string | Nein | Das neue Thema für den Kanal |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Daten des aktualisierten Kanals |
### `discord_delete_channel`
Discord-Kanal löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die gelöscht werden soll |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_get_channel`
Informationen über einen Discord-Kanal abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, die abgerufen werden soll |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Kanaldaten |
### `discord_create_role`
Eine neue Rolle in einem Discord-Server erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `name` | string | Ja | Der Name der Rolle |
| `color` | number | Nein | RGB-Farbwert als Ganzzahl \(z.B. 0xFF0000 für rot\) |
| `hoist` | boolean | Nein | Ob Rollenmitglieder getrennt von Online-Mitgliedern angezeigt werden sollen |
| `mentionable` | boolean | Nein | Ob die Rolle erwähnt werden kann |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Daten der erstellten Rolle |
### `discord_update_role`
Eine Rolle in einem Discord-Server aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `roleId` | string | Ja | Die zu aktualisierende Rollen-ID |
| `name` | string | Nein | Der neue Name für die Rolle |
| `color` | number | Nein | RGB-Farbwert als Ganzzahl |
| `hoist` | boolean | Nein | Ob Rollenmitglieder separat angezeigt werden sollen |
| `mentionable` | boolean | Nein | Ob die Rolle erwähnt werden kann |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Aktualisierte Rollendaten |
### `discord_delete_role`
Eine Rolle aus einem Discord-Server löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `roleId` | string | Ja | Die zu löschende Rollen-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_assign_role`
Eine Rolle einem Mitglied auf einem Discord-Server zuweisen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die Benutzer-ID, der die Rolle zugewiesen werden soll |
| `roleId` | string | Ja | Die Rollen-ID, die zugewiesen werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_remove_role`
Eine Rolle von einem Mitglied auf einem Discord-Server entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die Benutzer-ID, von der die Rolle entfernt werden soll |
| `roleId` | string | Ja | Die Rollen-ID, die entfernt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_kick_member`
Ein Mitglied von einem Discord-Server entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die Benutzer-ID des zu entfernenden Benutzers |
| `reason` | string | Nein | Grund für die Entfernung des Mitglieds |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_ban_member`
Ein Mitglied von einem Discord-Server sperren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die Benutzer-ID, die gesperrt werden soll |
| `reason` | string | Nein | Grund für die Sperrung des Mitglieds |
| `deleteMessageDays` | number | Nein | Anzahl der Tage, für die Nachrichten gelöscht werden sollen \(0-7\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_unban_member`
Die Sperrung eines Mitglieds auf einem Discord-Server aufheben
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die Benutzer-ID, deren Sperrung aufgehoben werden soll |
| `reason` | string | Nein | Grund für die Aufhebung der Sperrung des Mitglieds |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_get_member`
Informationen über ein Mitglied in einem Discord-Server abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die abzurufende Benutzer-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Mitgliedsdaten |
### `discord_update_member`
Ein Mitglied in einem Discord-Server aktualisieren (z.B. Nickname ändern)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
| `userId` | string | Ja | Die zu aktualisierende Benutzer-ID |
| `nick` | string | Nein | Neuer Nickname für das Mitglied \(null zum Entfernen\) |
| `mute` | boolean | Nein | Ob das Mitglied in Sprachkanälen stummgeschaltet werden soll |
| `deaf` | boolean | Nein | Ob das Mitglied in Sprachkanälen taub geschaltet werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Aktualisierte Mitgliedsdaten |
### `discord_create_invite`
Einen Einladungslink für einen Discord-Kanal erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, für die eine Einladung erstellt werden soll |
| `maxAge` | number | Nein | Dauer der Einladung in Sekunden \(0 = läuft nie ab, Standard 86400\) |
| `maxUses` | number | Nein | Maximale Anzahl der Verwendungen \(0 = unbegrenzt, Standard 0\) |
| `temporary` | boolean | Nein | Ob die Einladung temporäre Mitgliedschaft gewährt |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Erstellte Einladungsdaten |
### `discord_get_invite`
Informationen über eine Discord-Einladung abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `inviteCode` | string | Ja | Der abzurufende Einladungscode |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Einladungsdaten |
### `discord_delete_invite`
Discord-Einladung löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `inviteCode` | string | Ja | Der zu löschende Einladungscode |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `discord_create_webhook`
Webhook in einem Discord-Kanal erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `channelId` | string | Ja | Die Discord-Kanal-ID, in der der Webhook erstellt werden soll |
| `name` | string | Ja | Name des Webhooks \(1-80 Zeichen\) |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Erstellte Webhook-Daten |
### `discord_execute_webhook`
Discord-Webhook ausführen, um eine Nachricht zu senden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `webhookId` | string | Ja | Die Webhook-ID |
| `webhookToken` | string | Ja | Der Webhook-Token |
| `content` | string | Ja | Der zu sendende Nachrichteninhalt |
| `username` | string | Nein | Überschreibt den Standardbenutzernamen des Webhooks |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Über Webhook gesendete Nachricht |
### `discord_get_webhook`
Informationen über einen Discord-Webhook abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `webhookId` | string | Ja | Die abzurufende Webhook-ID |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Webhook-Daten |
### `discord_delete_webhook`
Einen Discord-Webhook löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
| `webhookId` | string | Ja | Die zu löschende Webhook-ID |
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
## Hinweise
- Kategorie: `tools`

View File

@@ -60,6 +60,7 @@ TTS mit ElevenLabs-Stimmen konvertieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `audioUrl` | string | Die URL der generierten Audiodatei |
| `audioFile` | file | Die generierte Audiodatei |
## Hinweise

View File

@@ -59,6 +59,13 @@ Durchsuchen Sie das Web mit Exa AI. Liefert relevante Suchergebnisse mit Titeln,
| `numResults` | number | Nein | Anzahl der zurückzugebenden Ergebnisse \(Standard: 10, max: 25\) |
| `useAutoprompt` | boolean | Nein | Ob Autoprompt zur Verbesserung der Anfrage verwendet werden soll \(Standard: false\) |
| `type` | string | Nein | Suchtyp: neural, keyword, auto oder fast \(Standard: auto\) |
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domains, die in den Ergebnissen enthalten sein sollen |
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domains, die aus den Ergebnissen ausgeschlossen werden sollen |
| `category` | string | Nein | Nach Kategorie filtern: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `text` | boolean | Nein | Vollständigen Textinhalt in Ergebnissen einschließen \(Standard: false\) |
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
| `summary` | boolean | Nein | KI-generierte Zusammenfassungen in Ergebnissen einschließen \(Standard: false\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: always, fallback oder never \(Standard: never\) |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe
@@ -78,6 +85,10 @@ Ruft den Inhalt von Webseiten mit Exa AI ab. Gibt den Titel, Textinhalt und opti
| `urls` | string | Ja | Kommagetrennte Liste von URLs, von denen Inhalte abgerufen werden sollen |
| `text` | boolean | Nein | Wenn true, gibt den vollständigen Seitentext mit Standardeinstellungen zurück. Wenn false, deaktiviert die Textrückgabe. |
| `summaryQuery` | string | Nein | Abfrage zur Steuerung der Zusammenfassungserstellung |
| `subpages` | number | Nein | Anzahl der Unterseiten, die von den angegebenen URLs gecrawlt werden sollen |
| `subpageTarget` | string | Nein | Kommagetrennte Schlüsselwörter zur Zielausrichtung auf bestimmte Unterseiten \(z.B. "docs,tutorial,about"\) |
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: always, fallback oder never \(Standard: never\) |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe
@@ -96,7 +107,14 @@ Finde Webseiten, die einer bestimmten URL ähnlich sind, mit Exa AI. Gibt eine L
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die URL, für die ähnliche Links gefunden werden sollen |
| `numResults` | number | Nein | Anzahl der zurückzugebenden ähnlichen Links \(Standard: 10, max: 25\) |
| `text` | boolean | Nein | Ob der vollständige Text der ähnlichen Seiten einbezogen werden soll |
| `text` | boolean | Nein | Ob der vollständige Text der ähnlichen Seiten eingeschlossen werden soll |
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domains, die in den Ergebnissen enthalten sein sollen |
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domains, die aus den Ergebnissen ausgeschlossen werden sollen |
| `excludeSourceDomain` | boolean | Nein | Quell-Domain aus Ergebnissen ausschließen \(Standard: false\) |
| `category` | string | Nein | Nach Kategorie filtern: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
| `summary` | boolean | Nein | KI-generierte Zusammenfassungen in Ergebnissen einschließen \(Standard: false\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: always, fallback oder never \(Standard: never\) |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe
@@ -133,7 +151,7 @@ Führe umfassende Recherchen mit KI durch, um detaillierte Berichte mit Quellena
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Rechercheabfrage oder Thema |
| `includeText` | boolean | Nein | Vollständigen Textinhalt in Ergebnissen einschließen |
| `model` | string | Nein | Recherchemodell: exa-research-fast, exa-research (Standard) oder exa-research-pro |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe

View File

@@ -1,6 +1,6 @@
---
title: Firecrawl
description: Durchsuche oder durchforste das Web
description: Scrapen, suchen, crawlen, mappen und extrahieren von Webdaten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -58,7 +58,7 @@ Dies ermöglicht Ihren Agenten, Informationen von Websites zu sammeln, strukturi
## Nutzungsanweisungen
Integrieren Sie Firecrawl in den Workflow. Kann Websites durchsuchen, scrapen oder crawlen. Benötigt API-Schlüssel.
Integrieren Sie Firecrawl in den Workflow. Scrapen Sie Seiten, durchsuchen Sie das Web, crawlen Sie ganze Websites, erfassen Sie URL-Strukturen und extrahieren Sie strukturierte Daten mit KI.
## Tools
@@ -70,7 +70,7 @@ Extrahieren Sie strukturierte Inhalte von Webseiten mit umfassender Metadaten-Un
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die URL, von der Inhalte extrahiert werden sollen |
| `url` | string | Ja | Die URL, von der Inhalte gescrapt werden sollen |
| `scrapeOptions` | json | Nein | Optionen für das Content-Scraping |
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
@@ -107,7 +107,7 @@ Crawlen Sie ganze Websites und extrahieren Sie strukturierte Inhalte von allen z
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die Website-URL zum Crawlen |
| `url` | string | Ja | Die zu crawlende Website-URL |
| `limit` | number | Nein | Maximale Anzahl der zu crawlenden Seiten \(Standard: 100\) |
| `onlyMainContent` | boolean | Nein | Nur Hauptinhalt von Seiten extrahieren |
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
@@ -118,6 +118,58 @@ Crawlen Sie ganze Websites und extrahieren Sie strukturierte Inhalte von allen z
| --------- | ---- | ----------- |
| `pages` | array | Array von gecrawlten Seiten mit ihrem Inhalt und Metadaten |
### `firecrawl_map`
Erhalten Sie schnell und zuverlässig eine vollständige Liste aller URLs einer Website. Nützlich, um alle Seiten einer Website zu entdecken, ohne sie zu crawlen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die Basis-URL, von der Links erfasst und entdeckt werden sollen |
| `search` | string | Nein | Filtert Ergebnisse nach Relevanz zu einem Suchbegriff \(z.B. "blog"\) |
| `sitemap` | string | Nein | Steuert die Sitemap-Nutzung: "skip", "include" \(Standard\) oder "only" |
| `includeSubdomains` | boolean | Nein | Ob URLs von Subdomains einbezogen werden sollen \(Standard: true\) |
| `ignoreQueryParameters` | boolean | Nein | URLs mit Query-Strings ausschließen \(Standard: true\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Links \(max: 100.000, Standard: 5.000\) |
| `timeout` | number | Nein | Timeout der Anfrage in Millisekunden |
| `location` | json | Nein | Geografischer Kontext für Proxying \(Land, Sprachen\) |
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Mapping-Vorgang erfolgreich war |
| `links` | array | Array der entdeckten URLs von der Website |
### `firecrawl_extract`
Extrahieren Sie strukturierte Daten aus vollständigen Webseiten mithilfe von natürlichsprachlichen Anweisungen und JSON-Schema. Leistungsstarke Agenten-Funktion für intelligente Datenextraktion.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `urls` | json | Ja | Array von URLs, aus denen Daten extrahiert werden sollen \(unterstützt Glob-Format\) |
| `prompt` | string | Nein | Natürlichsprachliche Anleitung für den Extraktionsprozess |
| `schema` | json | Nein | JSON-Schema, das die Struktur der zu extrahierenden Daten definiert |
| `enableWebSearch` | boolean | Nein | Websuche aktivieren, um ergänzende Informationen zu finden \(Standard: false\) |
| `ignoreSitemap` | boolean | Nein | Sitemap.xml-Dateien beim Scannen ignorieren \(Standard: false\) |
| `includeSubdomains` | boolean | Nein | Scanning auf Subdomains erweitern \(Standard: true\) |
| `showSources` | boolean | Nein | Datenquellen in der Antwort zurückgeben \(Standard: false\) |
| `ignoreInvalidURLs` | boolean | Nein | Ungültige URLs im Array überspringen \(Standard: true\) |
| `scrapeOptions` | json | Nein | Erweiterte Scraping-Konfigurationsoptionen |
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Extraktionsvorgang erfolgreich war |
| `data` | object | Extrahierte strukturierte Daten gemäß dem Schema oder Prompt |
| `sources` | array | Datenquellen \(nur wenn showSources aktiviert ist\) |
## Hinweise
- Kategorie: `tools`

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
---
title: Gmail
description: Gmail senden oder Workflows von Gmail-Ereignissen auslösen
description: Gmail-Nachrichten senden, lesen, suchen und verschieben oder
Workflows durch Gmail-Ereignisse auslösen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -45,28 +46,39 @@ Mit Gmail können Sie:
- **Von überall zugreifen**: Nutzen Sie Gmail geräteübergreifend mit synchronisierten Inhalten und Einstellungen
- **Mit anderen Diensten integrieren**: Verbinden Sie sich mit Google Kalender, Drive und anderen Produktivitätstools
In Sim ermöglicht die Gmail-Integration Ihren Agenten, E-Mails programmatisch zu senden, zu lesen und zu durchsuchen. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen, die Verarbeitung eingehender Nachrichten, das Extrahieren von Informationen aus E-Mails und das Verwalten von Kommunikationsabläufen. Ihre Agenten können personalisierte E-Mails verfassen und senden, nach bestimmten Nachrichten mit Gmails Abfragesyntax suchen und Inhalte aus E-Mails extrahieren, um sie in anderen Teilen Ihres Workflows zu verwenden. In Kürze werden Agenten auch in der Lage sein, in Echtzeit auf neue E-Mails zu achten, was reaktionsschnelle Workflows ermöglicht, die Aktionen basierend auf eingehenden Nachrichten auslösen können. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und E-Mail-Kommunikationen und ermöglicht eine nahtlose Interaktion mit einer der weltweit am häufigsten genutzten Kommunikationsplattformen.
In Sim ermöglicht die Gmail-Integration Ihren Agenten, E-Mails programmgesteuert mit umfassenden Automatisierungsfunktionen zu verwalten. Dies erlaubt leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen, die Verarbeitung eingehender Nachrichten, das Extrahieren von Informationen aus E-Mails und die Verwaltung von Kommunikationsabläufen im großen Maßstab. Ihre Agenten können:
- **Verfassen und senden**: Personalisierte E-Mails mit Anhängen erstellen und an Empfänger senden
- **Lesen und suchen**: Bestimmte Nachrichten mit Gmails Abfragesyntax finden und Inhalte extrahieren
- **Intelligent organisieren**: Nachrichten als gelesen/ungelesen markieren, E-Mails archivieren oder aus dem Archiv holen und Labels verwalten
- **Posteingang aufräumen**: Nachrichten löschen, E-Mails zwischen Labels verschieben und einen leeren Posteingang pflegen
- **Workflows auslösen**: In Echtzeit auf neue E-Mails hören und reaktionsfähige Workflows ermöglichen, die auf eingehende Nachrichten reagieren
Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und E-Mail-Kommunikationen und ermöglicht eine nahtlose Interaktion mit einer der weltweit am häufigsten genutzten Kommunikationsplattformen. Ob Sie Kundenservice-Antworten automatisieren, Belege verarbeiten, Abonnements verwalten oder Teamkommunikation koordinieren - die Gmail-Integration bietet alle Werkzeuge, die Sie für eine umfassende E-Mail-Automatisierung benötigen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Gmail in den Workflow integrieren. Kann E-Mails senden, lesen und durchsuchen. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
Integrieren Sie Gmail in den Workflow. Kann E-Mails senden, lesen, suchen und verschieben. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
## Tools
### `gmail_send`
E-Mails über Gmail versenden
E-Mails mit Gmail senden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `subject` | string | Nein | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `cc` | string | Nein | CC-Empfänger (durch Komma getrennt) |
| `bcc` | string | Nein | BCC-Empfänger (durch Komma getrennt) |
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text (text oder html) |
| `threadId` | string | Nein | Thread-ID für Antworten (für Threading) |
| `replyToMessageId` | string | Nein | Gmail-Nachrichten-ID für Antworten - verwenden Sie das "id"-Feld aus den Gmail-Leseergebnissen (nicht die RFC "messageId") |
| `cc` | string | Nein | CC-Empfänger (durch Kommas getrennt) |
| `bcc` | string | Nein | BCC-Empfänger (durch Kommas getrennt) |
| `attachments` | file[] | Nein | Dateien, die an die E-Mail angehängt werden sollen |
#### Ausgabe
@@ -85,10 +97,13 @@ E-Mail-Entwürfe in Gmail erstellen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `subject` | string | Nein | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `cc` | string | Nein | CC-Empfänger (durch Komma getrennt) |
| `bcc` | string | Nein | BCC-Empfänger (durch Komma getrennt) |
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text (text oder html) |
| `threadId` | string | Nein | Thread-ID für Antworten (für Threading) |
| `replyToMessageId` | string | Nein | Gmail-Nachrichten-ID für Antworten - verwenden Sie das "id"-Feld aus den Gmail-Leseergebnissen (nicht die RFC "messageId") |
| `cc` | string | Nein | CC-Empfänger (durch Kommas getrennt) |
| `bcc` | string | Nein | BCC-Empfänger (durch Kommas getrennt) |
| `attachments` | file[] | Nein | Dateien, die an den E-Mail-Entwurf angehängt werden sollen |
#### Ausgabe
@@ -100,7 +115,7 @@ E-Mail-Entwürfe in Gmail erstellen
### `gmail_read`
E-Mails von Gmail lesen
E-Mails aus Gmail lesen
#### Eingabe
@@ -129,7 +144,7 @@ E-Mails in Gmail durchsuchen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Suchanfrage für E-Mails |
| `maxResults` | number | Nein | Maximale Anzahl zurückzugebender Ergebnisse |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse |
#### Ausgabe
@@ -138,6 +153,146 @@ E-Mails in Gmail durchsuchen
| `content` | string | Zusammenfassung der Suchergebnisse |
| `metadata` | object | Such-Metadaten |
### `gmail_move`
E-Mails zwischen Gmail-Labels/Ordnern verschieben
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der zu verschiebenden Nachricht |
| `addLabelIds` | string | Ja | Kommagetrennte Label-IDs zum Hinzufügen \(z.B. INBOX, Label_123\) |
| `removeLabelIds` | string | Nein | Kommagetrennte Label-IDs zum Entfernen \(z.B. INBOX, SPAM\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_mark_read`
Eine Gmail-Nachricht als gelesen markieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der als gelesen zu markierenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_mark_unread`
Eine Gmail-Nachricht als ungelesen markieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der Nachricht, die als ungelesen markiert werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_archive`
Eine Gmail-Nachricht archivieren (aus dem Posteingang entfernen)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der zu archivierenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_unarchive`
Eine Gmail-Nachricht aus dem Archiv holen (zurück in den Posteingang verschieben)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der Nachricht, die aus dem Archiv geholt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_delete`
Eine Gmail-Nachricht löschen (in den Papierkorb verschieben)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der zu löschenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_add_label`
Label(s) zu einer Gmail-Nachricht hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der Nachricht, zu der Labels hinzugefügt werden sollen |
| `labelIds` | string | Ja | Durch Kommas getrennte Label-IDs zum Hinzufügen \(z.B. INBOX, Label_123\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
### `gmail_remove_label`
Label(s) von einer Gmail-Nachricht entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der Nachricht, von der Labels entfernt werden sollen |
| `labelIds` | string | Ja | Durch Kommas getrennte Label-IDs zum Entfernen \(z.B. INBOX, Label_123\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | E-Mail-Metadaten |
## Hinweise
- Kategorie: `tools`

View File

@@ -85,10 +85,11 @@ Eine Datei zu Google Drive hochladen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | Ja | Der Name der hochzuladenden Datei |
| `content` | string | Ja | Der Inhalt der hochzuladenden Datei |
| `mimeType` | string | Nein | Der MIME-Typ der hochzuladenden Datei |
| `file` | file | Nein | Binärdatei zum Hochladen (UserFile-Objekt) |
| `content` | string | Nein | Textinhalt zum Hochladen (verwenden Sie entweder diesen ODER file, nicht beides) |
| `mimeType` | string | Nein | Der MIME-Typ der hochzuladenden Datei (wird automatisch aus der Datei erkannt, wenn nicht angegeben) |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in den die Datei hochgeladen werden soll |
| `folderId` | string | Nein | Die ID des Ordners, in den die Datei hochgeladen werden soll \(interne Verwendung\) |
| `folderId` | string | Nein | Die ID des Ordners, in den die Datei hochgeladen werden soll (interne Verwendung) |
#### Ausgabe
@@ -114,6 +115,24 @@ Einen neuen Ordner in Google Drive erstellen
| --------- | ---- | ----------- |
| `file` | json | Metadaten des erstellten Ordners einschließlich ID, Name und Informationen zum übergeordneten Ordner |
### `google_drive_download`
Eine Datei von Google Drive herunterladen (exportiert Google Workspace-Dateien automatisch)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der herunterzuladenden Datei |
| `mimeType` | string | Nein | Der MIME-Typ, in den Google Workspace-Dateien exportiert werden sollen (optional) |
| `fileName` | string | Nein | Optionale Überschreibung des Dateinamens |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | file | Heruntergeladene Datei, die in den Ausführungsdateien gespeichert ist |
### `google_drive_list`
Dateien und Ordner in Google Drive auflisten
@@ -122,8 +141,8 @@ Dateien und Ordner in Google Drive auflisten
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, aus dem Dateien aufgelistet werden sollen |
| `folderId` | string | Nein | Die ID des Ordners, aus dem Dateien aufgelistet werden sollen \(interne Verwendung\) |
| `folderSelector` | string | Nein | Den Ordner auswählen, aus dem Dateien aufgelistet werden sollen |
| `folderId` | string | Nein | Die ID des Ordners, aus dem Dateien aufgelistet werden sollen (interne Verwendung) |
| `query` | string | Nein | Eine Abfrage zum Filtern der Dateien |
| `pageSize` | number | Nein | Die Anzahl der zurückzugebenden Dateien |
| `pageToken` | string | Nein | Das Seitentoken für die Paginierung |

View File

@@ -1,6 +1,6 @@
---
title: Jina
description: Konvertiere Website-Inhalte in Text
description: Durchsuche das Web oder extrahiere Inhalte aus URLs
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -62,7 +62,7 @@ Diese Integration ist besonders wertvoll für die Erstellung von Agenten, die In
## Gebrauchsanweisung
Integrieren Sie Jina in den Workflow. Extrahiert Inhalte von Websites. Erfordert API-Schlüssel.
Integriere Jina AI in den Workflow. Durchsuche das Web und erhalte LLM-freundliche Ergebnisse oder extrahiere saubere Inhalte aus bestimmten URLs mit erweiterten Parsing-Optionen.
## Tools
@@ -72,19 +72,58 @@ Extrahieren und verarbeiten Sie Webinhalte in sauberen, LLM-freundlichen Text mi
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die URL, die gelesen und in Markdown konvertiert werden soll |
| `useReaderLMv2` | boolean | Nein | Ob ReaderLM-v2 für bessere Qualität verwendet werden soll |
| `gatherLinks` | boolean | Nein | Ob alle Links am Ende gesammelt werden sollen |
| `jsonResponse` | boolean | Nein | Ob die Antwort im JSON-Format zurückgegeben werden soll |
| `apiKey` | string | Ja | Ihr Jina AI API-Schlüssel |
| `url` | string | Yes | Die URL, die gelesen und in Markdown konvertiert werden soll |
| `useReaderLMv2` | boolean | No | Ob ReaderLM-v2 für bessere Qualität verwendet werden soll \(3-fache Token-Kosten\) |
| `gatherLinks` | boolean | No | Ob alle Links am Ende gesammelt werden sollen |
| `jsonResponse` | boolean | No | Ob die Antwort im JSON-Format zurückgegeben werden soll |
| `apiKey` | string | Yes | Ihr Jina AI API-Schlüssel |
| `withImagesummary` | boolean | No | Alle Bilder von der Seite mit Metadaten sammeln |
| `retainImages` | string | No | Steuerung der Bildeinbindung: "none" entfernt alle, "all" behält alle bei |
| `returnFormat` | string | No | Ausgabeformat: markdown, html, text, screenshot oder pageshot |
| `withIframe` | boolean | No | Iframe-Inhalte in die Extraktion einbeziehen |
| `withShadowDom` | boolean | No | Shadow-DOM-Inhalte extrahieren |
| `noCache` | boolean | No | Zwischengespeicherte Inhalte umgehen für Echtzeit-Abruf |
| `withGeneratedAlt` | boolean | No | Alt-Text für Bilder mit VLM generieren |
| `robotsTxt` | string | No | Bot User-Agent für robots.txt-Prüfung |
| `dnt` | boolean | No | Do Not Track - verhindert Caching/Tracking |
| `noGfm` | boolean | No | GitHub Flavored Markdown deaktivieren |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Der extrahierte Inhalt von der URL, verarbeitet in sauberen, LLM-freundlichen Text |
| `content` | string | Der extrahierte Inhalt von der URL, verarbeitet zu sauberem, LLM-freundlichem Text |
| `links` | array | Liste der auf der Seite gefundenen Links (wenn gatherLinks oder withLinksummary aktiviert ist) |
| `images` | array | Liste der auf der Seite gefundenen Bilder (wenn withImagesummary aktiviert ist) |
### `jina_search`
Durchsucht das Web und gibt die Top 5 Ergebnisse mit LLM-freundlichem Inhalt zurück. Jedes Ergebnis wird automatisch über die Jina Reader API verarbeitet. Unterstützt geografische Filterung, Website-Einschränkungen und Paginierung.
#### Eingabe
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `q` | string | Yes | Suchanfrage-String |
| `apiKey` | string | Yes | Ihr Jina AI API-Schlüssel |
| `num` | number | No | Maximale Anzahl von Ergebnissen pro Seite \(Standard: 5\) |
| `site` | string | No | Ergebnisse auf bestimmte Domain\(s\) beschränken. Kann durch Kommas getrennt für mehrere Seiten sein \(z.B. "jina.ai,github.com"\) |
| `withFavicon` | boolean | No | Website-Favicons in Ergebnissen einbeziehen |
| `withImagesummary` | boolean | No | Alle Bilder von Ergebnisseiten mit Metadaten sammeln |
| `withLinksummary` | boolean | No | Alle Links von Ergebnisseiten sammeln |
| `retainImages` | string | No | Steuerung der Bildeinbindung: "none" entfernt alle, "all" behält alle bei |
| `noCache` | boolean | No | Zwischengespeicherte Inhalte umgehen für Echtzeit-Abruf |
| `withGeneratedAlt` | boolean | No | Alt-Text für Bilder mit VLM generieren |
| `respondWith` | string | No | Auf "no-content" setzen, um nur Metadaten ohne Seiteninhalt zu erhalten |
| `returnFormat` | string | No | Ausgabeformat: markdown, html, text, screenshot oder pageshot |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Array von Suchergebnissen, die jeweils Titel, Beschreibung, URL und LLM-freundlichen Inhalt enthalten |
## Hinweise

View File

@@ -42,7 +42,7 @@ In Sim ermöglicht die Jira-Integration Ihren Agenten eine nahtlose Interaktion
## Nutzungsanweisungen
Integriert Jira in den Workflow. Kann Issues lesen, schreiben und aktualisieren. Erfordert OAuth.
Integrieren Sie Jira in den Workflow. Kann Issues lesen, schreiben und aktualisieren. Kann auch Workflows basierend auf Jira-Webhook-Ereignissen auslösen.
## Tools
@@ -134,6 +134,376 @@ Mehrere Jira-Issues in Masse abrufen
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | array | Array von Jira-Issues mit Zusammenfassung, Beschreibung, Erstellungs- und Aktualisierungszeitstempeln |
### `jira_delete_issue`
Ein Jira-Issue löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key zum Löschen \(z.B. PROJ-123\) |
| `deleteSubtasks` | boolean | Nein | Ob Unteraufgaben gelöscht werden sollen. Wenn false, können übergeordnete Issues mit Unteraufgaben nicht gelöscht werden. |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Details zum gelöschten Issue mit Zeitstempel, Issue-Key und Erfolgsstatus |
### `jira_assign_issue`
Ein Jira-Issue einem Benutzer zuweisen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key zum Zuweisen \(z.B. PROJ-123\) |
| `accountId` | string | Ja | Account-ID des Benutzers, dem das Issue zugewiesen werden soll. Verwenden Sie "-1" für automatische Zuweisung oder null, um die Zuweisung aufzuheben. |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Zuweisungsdetails mit Zeitstempel, Issue-Key, Bearbeiter-ID und Erfolgsstatus |
### `jira_transition_issue`
Ein Jira-Issue zwischen Workflow-Status verschieben (z.B. To Do -> In Progress)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key für den Übergang \(z.B. PROJ-123\) |
| `transitionId` | string | Ja | ID des auszuführenden Übergangs \(z.B. "11" für "To Do", "21" für "In Progress"\) |
| `comment` | string | Nein | Optionaler Kommentar, der beim Übergang des Issues hinzugefügt werden soll |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Übergangsdetails mit Zeitstempel, Issue-Key, Übergangs-ID und Erfolgsstatus |
### `jira_search_issues`
Nach Jira-Issues mit JQL (Jira Query Language) suchen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `jql` | string | Ja | JQL-Abfragestring zur Suche nach Issues \(z.B. "project = PROJ AND status = Open"\) |
| `startAt` | number | Nein | Der Index des ersten zurückzugebenden Ergebnisses \(für Paginierung\) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 50\) |
| `fields` | array | Nein | Array von Feldnamen, die zurückgegeben werden sollen \(Standard: \['summary', 'status', 'assignee', 'created', 'updated'\]\) |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Suchergebnisse mit Zeitstempel, Gesamtanzahl, Paginierungsdetails und Array der übereinstimmenden Issues |
### `jira_add_comment`
Einen Kommentar zu einem Jira-Issue hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, zu dem ein Kommentar hinzugefügt werden soll \(z.B. PROJ-123\) |
| `body` | string | Ja | Text des Kommentars |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kommentardetails mit Zeitstempel, Issue-Key, Kommentar-ID, Inhalt und Erfolgsstatus |
### `jira_get_comments`
Alle Kommentare eines Jira-Issues abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, von dem Kommentare abgerufen werden sollen \(z.B. PROJ-123\) |
| `startAt` | number | Nein | Index des ersten zurückzugebenden Kommentars \(Standard: 0\) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare \(Standard: 50\) |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kommentardaten mit Zeitstempel, Issue-Key, Gesamtanzahl und Array von Kommentaren |
### `jira_update_comment`
Einen bestehenden Kommentar zu einem Jira-Issue aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, der den Kommentar enthält \(z.B. PROJ-123\) |
| `commentId` | string | Ja | ID des zu aktualisierenden Kommentars |
| `body` | string | Ja | Aktualisierter Kommentartext |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Aktualisierte Kommentardetails mit Zeitstempel, Issue-Key, Kommentar-ID, Textinhalt und Erfolgsstatus |
### `jira_delete_comment`
Einen Kommentar aus einem Jira-Issue löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, der den Kommentar enthält \(z.B. PROJ-123\) |
| `commentId` | string | Ja | ID des zu löschenden Kommentars |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Löschdetails mit Zeitstempel, Issue-Key, Kommentar-ID und Erfolgsstatus |
### `jira_get_attachments`
Alle Anhänge eines Jira-Issues abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, von dem Anhänge abgerufen werden sollen \(z.B. PROJ-123\) |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Anhangsdaten mit Zeitstempel, Issue-Key und Array von Anhängen |
### `jira_delete_attachment`
Einen Anhang von einem Jira-Issue löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `attachmentId` | string | Ja | ID des zu löschenden Anhangs |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Löschdetails mit Zeitstempel, Anhangs-ID und Erfolgsstatus |
### `jira_add_worklog`
Einen Zeiterfassungseintrag zu einem Jira-Issue hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain (z.B. ihrfirma.atlassian.net) |
| `issueKey` | string | Ja | Jira-Issue-Key, zu dem der Worklog hinzugefügt werden soll (z.B. PROJ-123) |
| `timeSpentSeconds` | number | Ja | Aufgewendete Zeit in Sekunden |
| `comment` | string | Nein | Optionaler Kommentar für den Worklog-Eintrag |
| `started` | string | Nein | Optionale Startzeit im ISO-Format (standardmäßig aktuelle Zeit) |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie anhand der Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Worklog-Details mit Zeitstempel, Issue-Key, Worklog-ID, aufgewendeter Zeit in Sekunden und Erfolgsstatus |
### `jira_get_worklogs`
Alle Worklog-Einträge eines Jira-Issues abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain (z.B. ihrfirma.atlassian.net) |
| `issueKey` | string | Ja | Jira-Issue-Key, von dem Worklogs abgerufen werden sollen (z.B. PROJ-123) |
| `startAt` | number | Nein | Index des ersten zurückzugebenden Worklogs (Standard: 0) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Worklogs (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 |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Worklog-Daten mit Zeitstempel, Issue-Key, Gesamtanzahl und Array von Worklogs |
### `jira_update_worklog`
Aktualisieren eines vorhandenen Worklog-Eintrags in einem Jira-Issue
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, der den Worklog enthält \(z.B. PROJ-123\) |
| `worklogId` | string | Ja | ID des zu aktualisierenden Worklog-Eintrags |
| `timeSpentSeconds` | number | Nein | Aufgewendete Zeit in Sekunden |
| `comment` | string | Nein | Optionaler Kommentar für den Worklog-Eintrag |
| `started` | string | Nein | Optionale Startzeit im ISO-Format |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Worklog-Aktualisierungsdetails mit Zeitstempel, Issue-Key, Worklog-ID und Erfolgsstatus |
### `jira_delete_worklog`
Löschen eines Worklog-Eintrags aus einem Jira-Issue
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, der den Worklog enthält \(z.B. PROJ-123\) |
| `worklogId` | string | Ja | ID des zu löschenden Worklog-Eintrags |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Löschdetails mit Zeitstempel, Issue-Key, Worklog-ID und Erfolgsstatus |
### `jira_create_issue_link`
Eine Verknüpfungsbeziehung zwischen zwei Jira-Issues erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `inwardIssueKey` | string | Ja | Jira-Issue-Key für das eingehende Issue \(z.B. PROJ-123\) |
| `outwardIssueKey` | string | Ja | Jira-Issue-Key für das ausgehende Issue \(z.B. PROJ-456\) |
| `linkType` | string | Ja | Die Art der Verknüpfungsbeziehung \(z.B. "Blocks", "Relates to", "Duplicates"\) |
| `comment` | string | Nein | Optionaler Kommentar zur Issue-Verknüpfung |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie anhand der Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Issue-Verknüpfungsdetails mit Zeitstempel, eingehendem Issue-Key, ausgehendem Issue-Key, Verknüpfungstyp und Erfolgsstatus |
### `jira_delete_issue_link`
Eine Verknüpfung zwischen zwei Jira-Issues löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `linkId` | string | Ja | ID der zu löschenden Issue-Verknüpfung |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie anhand der Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Löschdetails mit Zeitstempel, Link-ID und Erfolgsstatus |
### `jira_add_watcher`
Einen Beobachter zu einem Jira-Issue hinzufügen, um Benachrichtigungen über Aktualisierungen zu erhalten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, zu dem ein Beobachter hinzugefügt werden soll \(z.B. PROJ-123\) |
| `accountId` | string | Ja | Account-ID des Benutzers, der als Beobachter hinzugefügt werden soll |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Beobachterdetails mit Zeitstempel, Issue-Key, Beobachter-Account-ID und Erfolgsstatus |
### `jira_remove_watcher`
Einen Beobachter von einem Jira-Issue entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `issueKey` | string | Ja | Jira-Issue-Key, von dem ein Beobachter entfernt werden soll \(z.B. PROJ-123\) |
| `accountId` | string | Ja | Account-ID des Benutzers, der als Beobachter entfernt werden soll |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Entfernungsdetails mit Zeitstempel, Issue-Key, Beobachter-Konto-ID und Erfolgsstatus |
## Hinweise
- Kategorie: `tools`

File diff suppressed because it is too large Load Diff

View File

@@ -56,8 +56,15 @@ Durchsuche das Web nach Informationen mit Linkup
| --------- | ---- | -------- | ----------- |
| `q` | string | Ja | Die Suchanfrage |
| `depth` | string | Ja | Suchtiefe (muss entweder "standard" oder "deep" sein) |
| `outputType` | string | Ja | Art der zurückzugebenden Ausgabe (muss entweder "sourcedAnswer" oder "searchResults" sein) |
| `apiKey` | string | Ja | Gib deinen Linkup API-Schlüssel ein |
| `outputType` | string | Ja | Art der zurückzugebenden Ausgabe (muss "sourcedAnswer" oder "searchResults" sein) |
| `apiKey` | string | Ja | Geben Sie Ihren Linkup API-Schlüssel ein |
| `includeImages` | boolean | Nein | Ob Bilder in Suchergebnissen enthalten sein sollen |
| `fromDate` | string | Nein | Startdatum für die Filterung von Ergebnissen (Format JJJJ-MM-TT) |
| `toDate` | string | Nein | Enddatum für die Filterung von Ergebnissen (Format JJJJ-MM-TT) |
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domainnamen, die von Suchergebnissen ausgeschlossen werden sollen |
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domainnamen, auf die Suchergebnisse beschränkt werden sollen |
| `includeInlineCitations` | boolean | Nein | Inline-Zitate zu Antworten hinzufügen (gilt nur, wenn outputType "sourcedAnswer" ist) |
| `includeSources` | boolean | Nein | Quellen in die Antwort einbeziehen |
#### Ausgabe

View File

@@ -1,6 +1,6 @@
---
title: Microsoft Planner
description: Aufgaben in Microsoft Planner lesen und erstellen
description: Verwalten von Aufgaben, Plänen und Buckets in Microsoft Planner
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -121,7 +121,7 @@ In Sim ermöglicht die Microsoft Planner-Integration Ihren Agenten, Aufgaben pro
## Gebrauchsanweisungen
Integrieren Sie Microsoft Planner in den Workflow. Kann Aufgaben lesen und erstellen. Erfordert OAuth.
Integrieren Sie Microsoft Planner in den Workflow. Verwalten Sie Aufgaben, Pläne, Buckets und Aufgabendetails einschließlich Checklisten und Referenzen.
## Tools
@@ -167,6 +167,225 @@ Eine neue Aufgabe in Microsoft Planner erstellen
| `task` | object | Das erstellte Aufgabenobjekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich planId, taskId und taskUrl |
### `microsoft_planner_update_task`
Eine Aufgabe in Microsoft Planner aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Ja | Die ID der zu aktualisierenden Aufgabe |
| `etag` | string | Ja | Der ETag-Wert der zu aktualisierenden Aufgabe \(If-Match-Header\) |
| `title` | string | Nein | Der neue Titel der Aufgabe |
| `bucketId` | string | Nein | Die Bucket-ID, in die die Aufgabe verschoben werden soll |
| `dueDateTime` | string | Nein | Das Fälligkeitsdatum und die Uhrzeit für die Aufgabe \(ISO 8601-Format\) |
| `startDateTime` | string | Nein | Das Startdatum und die Uhrzeit für die Aufgabe \(ISO 8601-Format\) |
| `percentComplete` | number | Nein | Der Prozentsatz der Aufgabenfertigstellung \(0-100\) |
| `priority` | number | Nein | Die Priorität der Aufgabe \(0-10\) |
| `assigneeUserId` | string | Nein | Die Benutzer-ID, der die Aufgabe zugewiesen werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob die Aufgabe erfolgreich aktualisiert wurde |
| `message` | string | Erfolgsmeldung bei Aktualisierung der Aufgabe |
| `task` | object | Das aktualisierte Aufgabenobjekt mit allen Eigenschaften |
| `taskId` | string | ID der aktualisierten Aufgabe |
| `etag` | string | Neuer ETag nach der Aktualisierung - verwenden Sie diesen für nachfolgende Operationen |
| `metadata` | object | Metadaten einschließlich taskId, planId und taskUrl |
### `microsoft_planner_delete_task`
Eine Aufgabe aus Microsoft Planner löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Ja | Die ID der zu löschenden Aufgabe |
| `etag` | string | Ja | Der ETag-Wert der zu löschenden Aufgabe \(If-Match-Header\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob die Aufgabe erfolgreich gelöscht wurde |
| `deleted` | boolean | Bestätigung der Löschung |
| `metadata` | object | Zusätzliche Metadaten |
### `microsoft_planner_list_plans`
Alle Pläne auflisten, die mit dem aktuellen Benutzer geteilt wurden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob Pläne erfolgreich abgerufen wurden |
| `plans` | array | Array von Planobjekten, die mit dem aktuellen Benutzer geteilt wurden |
| `metadata` | object | Metadaten einschließlich userId und Anzahl |
### `microsoft_planner_read_plan`
Details eines bestimmten Microsoft Planner-Plans abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Ja | Die ID des abzurufenden Plans |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob der Plan erfolgreich abgerufen wurde |
| `plan` | object | Das Planobjekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich planId und planUrl |
### `microsoft_planner_list_buckets`
Alle Buckets in einem Microsoft Planner-Plan auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Ja | Die ID des Plans |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob Buckets erfolgreich abgerufen wurden |
| `buckets` | array | Array von Bucket-Objekten |
| `metadata` | object | Metadaten einschließlich planId und Anzahl |
### `microsoft_planner_read_bucket`
Details eines bestimmten Buckets abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bucketId` | string | Ja | Die ID des abzurufenden Buckets |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob der Bucket erfolgreich abgerufen wurde |
| `bucket` | object | Das Bucket-Objekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich bucketId und planId |
### `microsoft_planner_create_bucket`
Einen neuen Bucket in einem Microsoft Planner-Plan erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Ja | Die ID des Plans, in dem der Bucket erstellt wird |
| `name` | string | Ja | Der Name des Buckets |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob der Bucket erfolgreich erstellt wurde |
| `bucket` | object | Das erstellte Bucket-Objekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich bucketId und planId |
### `microsoft_planner_update_bucket`
Einen Bucket in Microsoft Planner aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bucketId` | string | Ja | Die ID des zu aktualisierenden Buckets |
| `name` | string | Nein | Der neue Name des Buckets |
| `etag` | string | Ja | Der ETag-Wert des zu aktualisierenden Buckets \(If-Match-Header\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob der Bucket erfolgreich aktualisiert wurde |
| `bucket` | object | Das aktualisierte Bucket-Objekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich bucketId und planId |
### `microsoft_planner_delete_bucket`
Einen Bucket aus Microsoft Planner löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `bucketId` | string | Ja | Die ID des zu löschenden Buckets |
| `etag` | string | Ja | Der ETag-Wert des zu löschenden Buckets \(If-Match-Header\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob der Bucket erfolgreich gelöscht wurde |
| `deleted` | boolean | Bestätigung der Löschung |
| `metadata` | object | Zusätzliche Metadaten |
### `microsoft_planner_get_task_details`
Detaillierte Informationen über eine Aufgabe abrufen, einschließlich Checkliste und Referenzen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Ja | Die ID der Aufgabe |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob die Aufgabendetails erfolgreich abgerufen wurden |
| `taskDetails` | object | Die Aufgabendetails einschließlich Beschreibung, Checkliste und Referenzen |
| `etag` | string | Der ETag-Wert für diese Aufgabendetails - verwenden Sie diesen für Aktualisierungsoperationen |
| `metadata` | object | Metadaten einschließlich taskId |
### `microsoft_planner_update_task_details`
Aktualisieren von Aufgabendetails einschließlich Beschreibung, Checklistenelementen und Referenzen in Microsoft Planner
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Ja | Die ID der Aufgabe |
| `etag` | string | Ja | Der ETag-Wert aus den zu aktualisierenden Aufgabendetails \(If-Match-Header\) |
| `description` | string | Nein | Die Beschreibung der Aufgabe |
| `checklist` | object | Nein | Checklistenelemente als JSON-Objekt |
| `references` | object | Nein | Referenzen als JSON-Objekt |
| `previewType` | string | Nein | Vorschautyp: automatic, noPreview, checklist, description oder reference |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob die Aufgabendetails erfolgreich aktualisiert wurden |
| `taskDetails` | object | Das aktualisierte Aufgabendetailobjekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich taskId |
## Hinweise
- Kategorie: `tools`

View File

@@ -1,6 +1,6 @@
---
title: Microsoft Teams
description: Nachrichten lesen, schreiben und erstellen
description: Nachrichten, Reaktionen und Mitglieder in Teams verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -97,7 +97,7 @@ In Sim ermöglicht die Microsoft Teams-Integration Ihren Agenten, direkt program
## Gebrauchsanweisung
Integrieren Sie Microsoft Teams in den Workflow. Kann Chat-Nachrichten lesen und schreiben sowie Kanal-Nachrichten lesen und schreiben. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine Nachricht an einen Chat oder Kanal gesendet wird.
Microsoft Teams in den Workflow integrieren. Chat- und Kanalnachrichten lesen, schreiben, aktualisieren und löschen. Auf Nachrichten antworten, Reaktionen hinzufügen und Team-/Kanalmitglieder auflisten. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine Nachricht an einen Chat oder Kanal gesendet wird. Um Benutzer in Nachrichten zu erwähnen, umschließen Sie ihren Namen mit `<at>` Tags: `<at>userName</at>`
## Tools
@@ -135,6 +135,7 @@ Inhalte in einem Microsoft Teams-Chat schreiben oder aktualisieren
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Ja | Die ID des Chats, in den geschrieben werden soll |
| `content` | string | Ja | Der Inhalt, der in die Nachricht geschrieben werden soll |
| `files` | file[] | Nein | Dateien, die der Nachricht angehängt werden sollen |
#### Ausgabe
@@ -181,9 +182,10 @@ Schreiben oder senden einer Nachricht an einen Microsoft Teams-Kanal
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams, an das geschrieben werden soll |
| `channelId` | string | Ja | Die ID des Kanals, an den geschrieben werden soll |
| `content` | string | Ja | Der Inhalt, der an den Kanal gesendet werden soll |
| `teamId` | string | Ja | Die ID des Teams, in das geschrieben werden soll |
| `channelId` | string | Ja | Die ID des Kanals, in den geschrieben werden soll |
| `content` | string | Ja | Der Inhalt, der in den Kanal geschrieben werden soll |
| `files` | file[] | Nein | Dateien, die der Nachricht angehängt werden sollen |
#### Ausgabe
@@ -197,6 +199,209 @@ Schreiben oder senden einer Nachricht an einen Microsoft Teams-Kanal
| `url` | string | Web-URL zur Nachricht |
| `updatedContent` | boolean | Ob der Inhalt erfolgreich aktualisiert wurde |
### `microsoft_teams_update_chat_message`
Eine bestehende Nachricht in einem Microsoft Teams-Chat aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Ja | Die ID des Chats, der die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu aktualisierenden Nachricht |
| `content` | string | Ja | Der neue Inhalt für die Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Aktualisierung erfolgreich war |
| `messageId` | string | ID der aktualisierten Nachricht |
| `updatedContent` | boolean | Ob der Inhalt erfolgreich aktualisiert wurde |
### `microsoft_teams_update_channel_message`
Eine bestehende Nachricht in einem Microsoft Teams-Kanal aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams |
| `channelId` | string | Ja | Die ID des Kanals, der die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu aktualisierenden Nachricht |
| `content` | string | Ja | Der neue Inhalt für die Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Aktualisierung erfolgreich war |
| `messageId` | string | ID der aktualisierten Nachricht |
| `updatedContent` | boolean | Ob der Inhalt erfolgreich aktualisiert wurde |
### `microsoft_teams_delete_chat_message`
Soft-Delete einer Nachricht in einem Microsoft Teams-Chat
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Ja | Die ID des Chats, der die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu löschenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Löschen erfolgreich war |
| `deleted` | boolean | Bestätigung des Löschvorgangs |
| `messageId` | string | ID der gelöschten Nachricht |
### `microsoft_teams_delete_channel_message`
Soft-Delete einer Nachricht in einem Microsoft Teams-Kanal
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams |
| `channelId` | string | Ja | Die ID des Kanals, der die Nachricht enthält |
| `messageId` | string | Ja | Die ID der zu löschenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Löschen erfolgreich war |
| `deleted` | boolean | Bestätigung des Löschvorgangs |
| `messageId` | string | ID der gelöschten Nachricht |
### `microsoft_teams_reply_to_message`
Auf eine bestehende Nachricht in einem Microsoft Teams-Kanal antworten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams |
| `channelId` | string | Ja | Die ID des Kanals |
| `messageId` | string | Ja | Die ID der Nachricht, auf die geantwortet werden soll |
| `content` | string | Ja | Der Antwortinhalt |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Antwort erfolgreich war |
| `messageId` | string | ID der Antwortnachricht |
| `updatedContent` | boolean | Ob der Inhalt erfolgreich gesendet wurde |
### `microsoft_teams_get_message`
Eine bestimmte Nachricht aus einem Microsoft Teams-Chat oder -Kanal abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Nein | Die ID des Teams \(für Kanalnachrichten\) |
| `channelId` | string | Nein | Die ID des Kanals \(für Kanalnachrichten\) |
| `chatId` | string | Nein | Die ID des Chats \(für Chatnachrichten\) |
| `messageId` | string | Ja | Die ID der abzurufenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Abruf erfolgreich war |
| `content` | string | Der Nachrichteninhalt |
| `metadata` | object | Nachrichtenmetadaten einschließlich Absender, Zeitstempel usw. |
### `microsoft_teams_set_reaction`
Eine Emoji-Reaktion zu einer Nachricht in Microsoft Teams hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Nein | Die ID des Teams (für Kanalnachrichten) |
| `channelId` | string | Nein | Die ID des Kanals (für Kanalnachrichten) |
| `chatId` | string | Nein | Die ID des Chats (für Chatnachrichten) |
| `messageId` | string | Ja | Die ID der Nachricht, auf die reagiert werden soll |
| `reactionType` | string | Ja | Die Emoji-Reaktion (z.B. ❤️, 👍, 😊) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Reaktion erfolgreich hinzugefügt wurde |
| `reactionType` | string | Das Emoji, das hinzugefügt wurde |
| `messageId` | string | ID der Nachricht |
### `microsoft_teams_unset_reaction`
Eine Emoji-Reaktion von einer Nachricht in Microsoft Teams entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Nein | Die ID des Teams (für Kanalnachrichten) |
| `channelId` | string | Nein | Die ID des Kanals (für Kanalnachrichten) |
| `chatId` | string | Nein | Die ID des Chats (für Chatnachrichten) |
| `messageId` | string | Ja | Die ID der Nachricht |
| `reactionType` | string | Ja | Die zu entfernende Emoji-Reaktion (z.B. ❤️, 👍, 😊) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Reaktion erfolgreich entfernt wurde |
| `reactionType` | string | Das Emoji, das entfernt wurde |
| `messageId` | string | ID der Nachricht |
### `microsoft_teams_list_team_members`
Alle Mitglieder eines Microsoft Teams-Teams auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Auflistung erfolgreich war |
| `members` | array | Array der Teammitglieder |
| `memberCount` | number | Gesamtzahl der Mitglieder |
### `microsoft_teams_list_channel_members`
Alle Mitglieder eines Microsoft Teams-Kanals auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams |
| `channelId` | string | Ja | Die ID des Kanals |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Auflistung erfolgreich war |
| `members` | array | Array der Kanalmitglieder |
| `memberCount` | number | Gesamtzahl der Mitglieder |
## Hinweise
- Kategorie: `tools`

View File

@@ -1,6 +1,6 @@
---
title: OneDrive
description: Dateien erstellen, hochladen und auflisten
description: Dateien erstellen, hochladen, herunterladen, auflisten und löschen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -50,7 +50,7 @@ In Sim ermöglicht die OneDrive-Integration Ihren Agenten die direkte Interaktio
## Nutzungsanweisungen
Integriert OneDrive in den Workflow. Kann Dateien erstellen, hochladen und auflisten. Erfordert OAuth.
Integriert OneDrive in den Workflow. Kann Text- und Excel-Dateien erstellen, Dateien hochladen, Dateien herunterladen, Dateien auflisten und Dateien oder Ordner löschen.
## Tools
@@ -63,8 +63,10 @@ Eine Datei auf OneDrive hochladen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | Ja | Der Name der hochzuladenden Datei |
| `content` | string | Ja | Der Inhalt der hochzuladenden Datei |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in den die Datei hochgeladen werden soll |
| `file` | file | Nein | Die hochzuladende Datei \(binär\) |
| `content` | string | Nein | Der hochzuladende Textinhalt \(falls keine Datei bereitgestellt wird\) |
| `mimeType` | string | Nein | Der MIME-Typ der zu erstellenden Datei \(z.B. text/plain für .txt, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet für .xlsx\) |
| `folderSelector` | string | Nein | Ordner auswählen, in den die Datei hochgeladen werden soll |
| `manualFolderId` | string | Nein | Manuell eingegebene Ordner-ID \(erweiterter Modus\) |
#### Ausgabe
@@ -93,6 +95,23 @@ Einen neuen Ordner in OneDrive erstellen
| `success` | boolean | Ob der Ordner erfolgreich erstellt wurde |
| `file` | object | Das erstellte Ordnerobjekt mit Metadaten einschließlich ID, Name, webViewLink und Zeitstempeln |
### `onedrive_download`
Eine Datei von OneDrive herunterladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der herunterzuladenden Datei |
| `fileName` | string | Nein | Optionale Überschreibung des Dateinamens |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | file | Heruntergeladene Datei, gespeichert in Ausführungsdateien |
### `onedrive_list`
Dateien und Ordner in OneDrive auflisten
@@ -101,7 +120,7 @@ Dateien und Ordner in OneDrive auflisten
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, aus dem Dateien aufgelistet werden sollen |
| `folderSelector` | string | Nein | Ordner auswählen, aus dem Dateien aufgelistet werden sollen |
| `manualFolderId` | string | Nein | Die manuell eingegebene Ordner-ID (erweiterter Modus) |
| `query` | string | Nein | Eine Abfrage zum Filtern der Dateien |
| `pageSize` | number | Nein | Die Anzahl der zurückzugebenden Dateien |
@@ -114,6 +133,24 @@ Dateien und Ordner in OneDrive auflisten
| `files` | array | Array von Datei- und Ordnerobjekten mit Metadaten |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite (optional) |
### `onedrive_delete`
Eine Datei oder einen Ordner von OneDrive löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Ja | Die ID der zu löschenden Datei oder des zu löschenden Ordners |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Datei erfolgreich gelöscht wurde |
| `deleted` | boolean | Bestätigung, dass die Datei gelöscht wurde |
| `fileId` | string | Die ID der gelöschten Datei |
## Hinweise
- Kategorie: `tools`

View File

@@ -1,6 +1,7 @@
---
title: Outlook
description: Zugriff auf Outlook
description: Outlook-E-Mail-Nachrichten senden, lesen, entwerfen, weiterleiten
und verschieben
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -134,18 +135,26 @@ Mit Microsoft Outlook können Sie:
- **Geräteübergreifender Zugriff**: Nutzen Sie Outlook auf Desktop, Web und Mobilgeräten mit Echtzeit-Synchronisation
- **Datenschutz und Sicherheit gewährleisten**: Nutzen Sie Verschlüsselung und Compliance-Kontrollen auf Unternehmensebene
In Sim ermöglicht die Microsoft Outlook-Integration Ihren Agenten, direkt programmatisch mit E-Mail- und Kalenderdaten zu interagieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden benutzerdefinierter E-Mail-Updates, das Analysieren eingehender Nachrichten für Workflow-Trigger, das Erstellen von Kalenderereignissen und das Verwalten von Aufgabenerinnerungen. Durch die Verbindung von Sim mit Microsoft Outlook können intelligente Agenten Kommunikation automatisieren, Terminplanung optimieren und die Übersicht über die Organisationskorrespondenz behalten alles innerhalb Ihres Workflow-Ökosystems.
In Sim ermöglicht die Microsoft Outlook-Integration Ihren Agenten, direkt und programmgesteuert mit E-Mail- und Kalenderdaten zu interagieren, mit vollständigen E-Mail-Verwaltungsfunktionen. Dies ermöglicht leistungsstarke Automatisierungsszenarien für Ihren gesamten E-Mail-Workflow. Ihre Agenten können:
- **Senden und entwerfen**: Professionelle E-Mails mit Anhängen verfassen und Entwürfe für später speichern
- **Lesen und weiterleiten**: Auf Posteingang-Nachrichten zugreifen und wichtige Mitteilungen an Teammitglieder weiterleiten
- **Effizient organisieren**: E-Mails als gelesen oder ungelesen markieren, Nachrichten zwischen Ordnern verschieben und E-Mails zur Referenz kopieren
- **Posteingang aufräumen**: Unerwünschte Nachrichten löschen und organisierte Ordnerstrukturen pflegen
- **Workflows auslösen**: In Echtzeit auf neue E-Mails reagieren und reaktionsschnelle Automatisierung basierend auf eingehenden Nachrichten ermöglichen
Durch die Verbindung von Sim mit Microsoft Outlook ermöglichen Sie intelligenten Agenten, Kommunikation zu automatisieren, Terminplanung zu optimieren, Überblick über die Organisationskorrespondenz zu behalten und Posteingänge zu organisieren alles innerhalb Ihres Workflow-Ökosystems. Ob Sie Kundenkommunikation verwalten, Rechnungen bearbeiten, Team-Updates koordinieren oder Nachfassaktionen automatisieren die Outlook-Integration bietet E-Mail-Automatisierungsfunktionen auf Unternehmensniveau.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
## Nutzungsanweisungen
Integrieren Sie Outlook in den Workflow. Kann E-Mail-Nachrichten lesen, entwerfen und senden. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
Integrieren Sie Outlook in den Workflow. Kann E-Mail-Nachrichten lesen, entwerfen, senden, weiterleiten und verschieben. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
## Tools
### `outlook_send`
E-Mails über Outlook versenden
E-Mails mit Outlook senden
#### Eingabe
@@ -154,10 +163,12 @@ E-Mails über Outlook versenden
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | E-Mail-Betreff |
| `body` | string | Ja | E-Mail-Inhalt |
| `replyToMessageId` | string | Nein | Nachrichten-ID für Antworten \(für Threading\) |
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text \(text oder html\) |
| `replyToMessageId` | string | Nein | Nachrichten-ID, auf die geantwortet wird \(für Threading\) |
| `conversationId` | string | Nein | Konversations-ID für Threading |
| `cc` | string | Nein | CC-Empfänger \(durch Kommas getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Kommas getrennt\) |
| `attachments` | file[] | Nein | Dateien, die an die E-Mail angehängt werden sollen |
#### Ausgabe
@@ -170,17 +181,19 @@ E-Mails über Outlook versenden
### `outlook_draft`
E-Mails mit Outlook erstellen
E-Mails mit Outlook entwerfen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `cc` | string | Nein | CC-Empfänger \(durch Komma getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Komma getrennt\) |
| `subject` | string | Ja | E-Mail-Betreff |
| `body` | string | Ja | E-Mail-Inhalt |
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text \(text oder html\) |
| `cc` | string | Nein | CC-Empfänger \(durch Kommas getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Kommas getrennt\) |
| `attachments` | file[] | Nein | Dateien, die an den E-Mail-Entwurf angehängt werden sollen |
#### Ausgabe
@@ -203,7 +216,7 @@ E-Mails aus Outlook lesen
| --------- | ---- | -------- | ----------- |
| `folder` | string | Nein | Ordner-ID, aus der E-Mails gelesen werden sollen \(Standard: Posteingang\) |
| `maxResults` | number | Nein | Maximale Anzahl der abzurufenden E-Mails \(Standard: 1, max: 10\) |
| `includeAttachments` | boolean | Nein | E-Mail-Anhänge herunterladen und einschließen |
| `includeAttachments` | boolean | Nein | E-Mail-Anhänge herunterladen und einbeziehen |
#### Ausgabe
@@ -211,7 +224,7 @@ E-Mails aus Outlook lesen
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Statusmeldung |
| `results` | array | Array von E-Mail-Nachrichtenobjekten |
| `attachments` | file[] | Alle E-Mail-Anhänge, zusammengefasst aus allen E-Mails |
| `attachments` | file[] | Alle E-Mail-Anhänge aus allen E-Mails zusammengefasst |
### `outlook_forward`
@@ -232,6 +245,104 @@ Eine bestehende Outlook-Nachricht an bestimmte Empfänger weiterleiten
| `message` | string | Erfolgs- oder Fehlermeldung |
| `results` | object | Details zum Zustellungsergebnis |
### `outlook_move`
E-Mails zwischen Outlook-Ordnern verschieben
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der zu verschiebenden Nachricht |
| `destinationId` | string | Ja | ID des Zielordners |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des erfolgreichen E-Mail-Verschiebens |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `messageId` | string | ID der verschobenen Nachricht |
| `newFolderId` | string | ID des Zielordners |
### `outlook_mark_read`
Outlook-Nachricht als gelesen markieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der Nachricht, die als gelesen markiert werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `messageId` | string | ID der Nachricht |
| `isRead` | boolean | Lesestatus der Nachricht |
### `outlook_mark_unread`
Outlook-Nachricht als ungelesen markieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der Nachricht, die als ungelesen markiert werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `messageId` | string | ID der Nachricht |
| `isRead` | boolean | Lesestatus der Nachricht |
### `outlook_delete`
Outlook-Nachricht löschen (in den Ordner "Gelöschte Elemente" verschieben)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der zu löschenden Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `messageId` | string | ID der gelöschten Nachricht |
| `status` | string | Löschstatus |
### `outlook_copy`
Eine Outlook-Nachricht in einen anderen Ordner kopieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | ID der zu kopierenden Nachricht |
| `destinationId` | string | Ja | ID des Zielordners |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des erfolgreichen Kopierens der E-Mail |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `originalMessageId` | string | ID der ursprünglichen Nachricht |
| `copiedMessageId` | string | ID der kopierten Nachricht |
| `destinationFolderId` | string | ID des Zielordners |
## Hinweise
- Kategorie: `tools`

View File

@@ -1,6 +1,6 @@
---
title: Parallel AI
description: Suche mit Parallel AI
description: Webrecherche mit Parallel AI
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -70,7 +70,7 @@ In Sim ermöglicht die Parallel AI-Integration Ihren Agenten, Websuchen durchzuf
## Gebrauchsanweisung
Integrieren Sie Parallel AI in den Workflow. Kann im Web suchen. Benötigt API-Schlüssel.
Integrieren Sie Parallel AI in den Workflow. Kann im Web suchen, Informationen aus URLs extrahieren und tiefgehende Recherchen durchführen.
## Tools
@@ -95,6 +95,50 @@ Durchsuchen Sie das Web mit Parallel AI. Bietet umfassende Suchergebnisse mit in
| --------- | ---- | ----------- |
| `results` | array | Suchergebnisse mit Auszügen aus relevanten Seiten |
### `parallel_extract`
Extrahieren Sie gezielte Informationen aus bestimmten URLs mit Parallel AI. Verarbeitet bereitgestellte URLs, um relevante Inhalte basierend auf Ihrem Ziel zu extrahieren.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `urls` | string | Ja | Durch Kommas getrennte Liste von URLs, aus denen Informationen extrahiert werden sollen |
| `objective` | string | Ja | Welche Informationen aus den bereitgestellten URLs extrahiert werden sollen |
| `excerpts` | boolean | Ja | Relevante Auszüge aus dem Inhalt einschließen |
| `full_content` | boolean | Ja | Vollständigen Seiteninhalt einschließen |
| `apiKey` | string | Ja | Parallel AI API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Extrahierte Informationen aus den bereitgestellten URLs |
### `parallel_deep_research`
Führen Sie umfassende tiefgehende Recherchen im Web mit Parallel AI durch. Synthetisiert Informationen aus mehreren Quellen mit Zitaten. Kann bis zu 15 Minuten dauern.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `input` | string | Ja | Rechercheabfrage oder Frage \(bis zu 15.000 Zeichen\) |
| `processor` | string | Nein | Rechenleistungsstufe: base, lite, pro, ultra, ultra2x, ultra4x, ultra8x \(Standard: base\) |
| `include_domains` | string | Nein | Durch Kommas getrennte Liste von Domains, auf die die Recherche beschränkt werden soll \(Quellenrichtlinie\) |
| `exclude_domains` | string | Nein | Durch Kommas getrennte Liste von Domains, die von der Recherche ausgeschlossen werden sollen \(Quellenrichtlinie\) |
| `apiKey` | string | Ja | Parallel AI API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Aufgabenstatus (laufend, abgeschlossen, fehlgeschlagen) |
| `run_id` | string | Eindeutige ID für diese Rechercheaufgabe |
| `message` | string | Statusmeldung (für laufende Aufgaben) |
| `content` | object | Rechercheergebnisse (strukturiert basierend auf output_schema) |
| `basis` | array | Zitate und Quellen mit Auszügen und Vertrauensstufen |
## Hinweise
- Kategorie: `tools`

View File

@@ -1,6 +1,6 @@
---
title: Perplexity
description: Verwende Perplexity AI-Chatmodelle
description: Nutze Perplexity AI für Chat und Suche
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -36,7 +36,7 @@ In Sim ermöglicht die Perplexity-Integration deinen Agenten, diese leistungssta
## Gebrauchsanweisung
Integrieren Sie Perplexity in den Workflow. Kann Vervollständigungen mit Perplexity AI-Chatmodellen generieren. Erfordert API-Schlüssel.
Integriere Perplexity in den Workflow. Kann Vervollständigungen mit Perplexity AI Chat-Modellen generieren oder Websuchen mit erweiterter Filterung durchführen.
## Tools
@@ -62,6 +62,31 @@ Generieren Sie Vervollständigungen mit Perplexity AI-Chatmodellen
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Ergebnisse der Chat-Vervollständigung |
### `perplexity_search`
Erhalte bewertete Suchergebnisse von Perplexity
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Eine Suchanfrage oder ein Array von Anfragen \(maximal 5 für Multi-Anfrage-Suche\) |
| `max_results` | number | Nein | Maximale Anzahl der zurückzugebenden Suchergebnisse \(1-20, Standard: 10\) |
| `search_domain_filter` | array | Nein | Liste der Domains/URLs, auf die die Suchergebnisse beschränkt werden sollen \(max. 20\) |
| `max_tokens_per_page` | number | Nein | Maximale Anzahl der von jeder Webseite abgerufenen Tokens \(Standard: 1024\) |
| `country` | string | Nein | Ländercode zur Filterung der Suchergebnisse \(z.B. US, GB, DE\) |
| `search_recency_filter` | string | Nein | Filtere Ergebnisse nach Aktualität: Stunde, Tag, Woche, Monat oder Jahr |
| `search_after_date` | string | Nein | Nur Inhalte einbeziehen, die nach diesem Datum veröffentlicht wurden \(Format: MM/TT/JJJJ\) |
| `search_before_date` | string | Nein | Nur Inhalte einbeziehen, die vor diesem Datum veröffentlicht wurden \(Format: MM/TT/JJJJ\) |
| `apiKey` | string | Ja | Perplexity API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Suchergebnisse |
## Hinweise
- Kategorie: `tools`

View File

@@ -139,7 +139,8 @@ Suche nach ähnlichen Vektoren in einer Qdrant-Sammlung
| `collection` | string | Ja | Sammlungsname |
| `vector` | array | Ja | Zu suchender Vektor |
| `limit` | number | Nein | Anzahl der zurückzugebenden Ergebnisse |
| `filter` | object | Nein | Filter für die Suche |
| `filter` | object | Nein | Auf die Suche anzuwendender Filter |
| `search_return_data` | string | Nein | Aus der Suche zurückzugebende Daten |
| `with_payload` | boolean | Nein | Payload in Antwort einschließen |
| `with_vector` | boolean | Nein | Vektor in Antwort einschließen |
@@ -161,7 +162,8 @@ Punkte anhand der ID aus einer Qdrant-Sammlung abrufen
| `url` | string | Ja | Qdrant-Basis-URL |
| `apiKey` | string | Nein | Qdrant-API-Schlüssel \(optional\) |
| `collection` | string | Ja | Sammlungsname |
| `ids` | array | Ja | Array von abzurufenden Punkt-IDs |
| `ids` | array | Ja | Array von Punkt-IDs zum Abrufen |
| `fetch_return_data` | string | Nein | Aus dem Abruf zurückzugebende Daten |
| `with_payload` | boolean | Nein | Payload in Antwort einschließen |
| `with_vector` | boolean | Nein | Vektor in Antwort einschließen |

View File

@@ -38,7 +38,7 @@ Diese Operationen ermöglichen es Ihren Agenten, auf Reddit-Inhalte zuzugreifen
## Nutzungsanleitung
Integrieren Sie Reddit in den Workflow. Kann Beiträge und Kommentare aus einem Subreddit abrufen. Erfordert OAuth.
Integriere Reddit in Workflows. Lese Beiträge, Kommentare und durchsuche Inhalte. Veröffentliche Beiträge, stimme ab, antworte, bearbeite und verwalte dein Reddit-Konto.
## Tools
@@ -54,6 +54,11 @@ Beiträge aus einem Subreddit mit verschiedenen Sortieroptionen abrufen
| `sort` | string | Nein | Sortiermethode für Beiträge: "hot", "new", "top" oder "rising" \(Standard: "hot"\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Beiträge \(Standard: 10, max: 100\) |
| `time` | string | Nein | Zeitfilter für nach "top" sortierte Beiträge: "day", "week", "month", "year" oder "all" \(Standard: "day"\) |
| `after` | string | Nein | Vollständiger Name eines Elements, nach dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `before` | string | Nein | Vollständiger Name eines Elements, vor dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `count` | number | Nein | Anzahl der bereits gesehenen Elemente in der Liste \(für Nummerierung verwendet\) |
| `show` | string | Nein | Zeige Elemente an, die normalerweise gefiltert würden \(z.B. "all"\) |
| `sr_detail` | boolean | Nein | Erweitere Subreddit-Details in der Antwort |
#### Ausgabe
@@ -70,10 +75,20 @@ Kommentare von einem bestimmten Reddit-Beitrag abrufen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `postId` | string | Ja | Die ID des Reddit-Beitrags, von dem Kommentare abgerufen werden sollen |
| `subreddit` | string | Ja | Das Subreddit, in dem sich der Beitrag befindet (ohne das r/-Präfix) |
| `sort` | string | Nein | Sortiermethode für Kommentare: "confidence", "top", "new", "controversial", "old", "random", "qa" (Standard: "confidence") |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare (Standard: 50, max: 100) |
| `postId` | string | Ja | Die ID des Reddit-Beitrags, aus dem Kommentare abgerufen werden sollen |
| `subreddit` | string | Ja | Das Subreddit, in dem sich der Beitrag befindet \(ohne das r/ Präfix\) |
| `sort` | string | Nein | Sortiermethode für Kommentare: "confidence", "top", "new", "controversial", "old", "random", "qa" \(Standard: "confidence"\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare \(Standard: 50, max: 100\) |
| `depth` | number | Nein | Maximale Tiefe von Unterbäumen im Thread \(steuert verschachtelte Kommentarebenen\) |
| `context` | number | Nein | Anzahl der einzubeziehenden übergeordneten Kommentare |
| `showedits` | boolean | Nein | Bearbeitungsinformationen für Kommentare anzeigen |
| `showmore` | boolean | Nein | "Mehr Kommentare laden"-Elemente in die Antwort einbeziehen |
| `showtitle` | boolean | Nein | Beitragstitel in die Antwort einbeziehen |
| `threaded` | boolean | Nein | Kommentare im verschachtelten Format zurückgeben |
| `truncate` | number | Nein | Ganzzahl zur Kürzung der Kommentartiefe |
| `after` | string | Nein | Vollständiger Name eines Elements, nach dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `before` | string | Nein | Vollständiger Name eines Elements, vor dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `count` | number | Nein | Anzahl der bereits gesehenen Elemente in der Liste \(für Nummerierung verwendet\) |
#### Ausgabe
@@ -81,6 +96,205 @@ Kommentare von einem bestimmten Reddit-Beitrag abrufen
| --------- | ---- | ----------- |
| `post` | object | Beitragsinformationen einschließlich ID, Titel, Autor, Inhalt und Metadaten |
### `reddit_get_controversial`
Kontroverse Beiträge aus einem Subreddit abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Ja | Der Name des Subreddits, aus dem Beiträge abgerufen werden sollen \(ohne das r/ Präfix\) |
| `time` | string | Nein | Zeitfilter für kontroverse Beiträge: "hour", "day", "week", "month", "year" oder "all" \(Standard: "all"\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Beiträge \(Standard: 10, max: 100\) |
| `after` | string | Nein | Vollständiger Name eines Elements, nach dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `before` | string | Nein | Vollständiger Name eines Elements, vor dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `count` | number | Nein | Anzahl der bereits gesehenen Elemente in der Liste \(für Nummerierung verwendet\) |
| `show` | string | Nein | Zeigt Elemente an, die normalerweise gefiltert würden \(z.B. "all"\) |
| `sr_detail` | boolean | Nein | Erweitert Subreddit-Details in der Antwort |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `subreddit` | string | Name des Subreddits, aus dem Beiträge abgerufen wurden |
| `posts` | array | Array von kontroversen Beiträgen mit Titel, Autor, URL, Punktzahl, Kommentaranzahl und Metadaten |
### `reddit_search`
Nach Beiträgen innerhalb eines Subreddits suchen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Ja | Der Name des Subreddits, in dem gesucht werden soll \(ohne das r/ Präfix\) |
| `query` | string | Ja | Suchanfragentext |
| `sort` | string | Nein | Sortiermethode für Suchergebnisse: "relevance", "hot", "top", "new" oder "comments" \(Standard: "relevance"\) |
| `time` | string | Nein | Zeitfilter für Suchergebnisse: "hour", "day", "week", "month", "year" oder "all" \(Standard: "all"\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Beiträge \(Standard: 10, max: 100\) |
| `restrict_sr` | boolean | Nein | Suche nur auf das angegebene Subreddit beschränken \(Standard: true\) |
| `after` | string | Nein | Vollständiger Name eines Elements, nach dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `before` | string | Nein | Vollständiger Name eines Elements, vor dem Elemente abgerufen werden sollen \(für Paginierung\) |
| `count` | number | Nein | Anzahl der bereits gesehenen Elemente in der Liste \(für Nummerierung verwendet\) |
| `show` | string | Nein | Zeigt Elemente an, die normalerweise gefiltert würden \(z.B. "all"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `subreddit` | string | Name des Subreddits, in dem die Suche durchgeführt wurde |
| `posts` | array | Array von Suchergebnisbeiträgen mit Titel, Autor, URL, Punktzahl, Kommentaranzahl und Metadaten |
### `reddit_submit_post`
Einen neuen Beitrag in einem Subreddit einreichen (Text oder Link)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Ja | Der Name des Subreddits, in dem gepostet werden soll \(ohne das r/ Präfix\) |
| `title` | string | Ja | Titel der Einreichung \(maximal 300 Zeichen\) |
| `text` | string | Nein | Textinhalt für einen Selbstbeitrag \(Markdown wird unterstützt\) |
| `url` | string | Nein | URL für einen Link-Beitrag \(kann nicht zusammen mit Text verwendet werden\) |
| `nsfw` | boolean | Nein | Beitrag als NSFW markieren |
| `spoiler` | boolean | Nein | Beitrag als Spoiler markieren |
| `send_replies` | boolean | Nein | Antwortbenachrichtigungen an den Posteingang senden \(Standard: true\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Beitrag erfolgreich eingereicht wurde |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Beitragsdaten einschließlich ID, Name, URL und Permalink |
### `reddit_vote`
Upvote, Downvote oder Zurücknahme einer Stimme für einen Reddit-Beitrag oder -Kommentar
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `id` | string | Ja | Vollständiger Name des Elements, für das abgestimmt werden soll \(z.B. t3_xxxxx für Beitrag, t1_xxxxx für Kommentar\) |
| `dir` | number | Ja | Abstimmungsrichtung: 1 \(Upvote\), 0 \(Zurücknahme\), oder -1 \(Downvote\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Abstimmung erfolgreich war |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `reddit_save`
Einen Reddit-Beitrag oder Kommentar in deinen gespeicherten Elementen speichern
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `id` | string | Ja | Vollständiger Name des zu speichernden Elements \(z.B. t3_xxxxx für Beitrag, t1_xxxxx für Kommentar\) |
| `category` | string | Nein | Kategorie, unter der gespeichert werden soll \(Reddit Gold-Funktion\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Speichern erfolgreich war |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `reddit_unsave`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `subreddit` | string | Subreddit-Name |
| `posts` | json | Beitragsdaten |
| `post` | json | Daten eines einzelnen Beitrags |
| `comments` | json | Kommentardaten |
### `reddit_reply`
Einen Kommentar zu einem Reddit-Beitrag oder Kommentar hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `parent_id` | string | Ja | Vollständiger Name des Elements, auf das geantwortet werden soll \(z.B. t3_xxxxx für Beitrag, t1_xxxxx für Kommentar\) |
| `text` | string | Ja | Kommentartext im Markdown-Format |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Antwort erfolgreich gepostet wurde |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Kommentardaten einschließlich ID, Name, Permalink und Inhalt |
### `reddit_edit`
Bearbeite den Text deines eigenen Reddit-Beitrags oder -Kommentars
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `thing_id` | string | Ja | Vollständiger Name des zu bearbeitenden Elements \(z.B. t3_xxxxx für Beiträge, t1_xxxxx für Kommentare\) |
| `text` | string | Ja | Neuer Textinhalt im Markdown-Format |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Bearbeitung erfolgreich war |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Aktualisierte Inhaltsdaten |
### `reddit_delete`
Lösche deinen eigenen Reddit-Beitrag oder -Kommentar
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `id` | string | Ja | Vollständiger Name des zu löschenden Elements \(z.B. t3_xxxxx für Beiträge, t1_xxxxx für Kommentare\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Löschung erfolgreich war |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `reddit_subscribe`
Subreddit abonnieren oder Abonnement kündigen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Ja | Der Name des Subreddits \(ohne das r/ Präfix\) |
| `action` | string | Ja | Auszuführende Aktion: "sub" zum Abonnieren oder "unsub" zum Kündigen des Abonnements |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Abonnementaktion erfolgreich war |
| `message` | string | Erfolgs- oder Fehlermeldung |
## Hinweise
- Kategorie: `tools`

View File

@@ -56,7 +56,8 @@ Senden Sie eine E-Mail mit Ihrem eigenen Resend API-Schlüssel und Absenderadres
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `resendApiKey` | string | Ja | Resend API-Schlüssel zum Versenden von E-Mails |
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text (text oder html) |
| `resendApiKey` | string | Ja | Resend API-Schlüssel zum Senden von E-Mails |
#### Ausgabe

View File

@@ -199,6 +199,26 @@ Ein neues Element zu einer SharePoint-Liste hinzufügen
| --------- | ---- | ----------- |
| `item` | object | Erstelltes SharePoint-Listenelement |
### `sharepoint_upload_file`
Dateien in eine SharePoint-Dokumentenbibliothek hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Nein | Die ID der SharePoint-Website |
| `driveId` | string | Nein | Die ID der Dokumentenbibliothek (Laufwerk). Wenn nicht angegeben, wird das Standardlaufwerk verwendet. |
| `folderPath` | string | Nein | Optionaler Ordnerpfad innerhalb der Dokumentenbibliothek (z.B. /Documents/Subfolder) |
| `fileName` | string | Nein | Optional: Überschreiben des hochgeladenen Dateinamens |
| `files` | file[] | Nein | Dateien, die nach SharePoint hochgeladen werden sollen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `uploadedFiles` | array | Array von hochgeladenen Dateiobjekten |
## Hinweise
- Kategorie: `tools`

View File

@@ -1,6 +1,7 @@
---
title: Slack
description: Sende Nachrichten an Slack oder löse Workflows durch Slack-Ereignisse aus
description: Nachrichten senden, aktualisieren, löschen, Reaktionen in Slack
hinzufügen oder Workflows von Slack-Ereignissen auslösen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -46,24 +47,29 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
Mit Slack kannst du:
- **Agent-Benachrichtigungen automatisieren**: Sende Echtzeit-Updates von deinen Sim-Agenten an jeden Slack-Kanal
- **Webhook-Endpunkte erstellen**: Konfiguriere Slack-Bots als Webhooks, um Sim-Workflows durch Slack-Aktivitäten auszulösen
- **Agent-Workflows verbessern**: Integriere Slack-Messaging in deine Agenten, um Ergebnisse, Warnungen und Statusupdates zu liefern
- **Slack-Canvases erstellen und teilen**: Erstelle programmatisch kollaborative Dokumente (Canvases) in Slack-Kanälen
- **Nachrichten aus Kanälen lesen**: Rufe aktuelle Nachrichten aus jedem Slack-Kanal ab und verarbeite sie für Monitoring oder Workflow-Auslöser
- **Automatisieren Sie Agenten-Benachrichtigungen**: Senden Sie Echtzeit-Updates von Ihren Sim-Agenten an jeden Slack-Kanal
- **Erstellen Sie Webhook-Endpunkte**: Konfigurieren Sie Slack-Bots als Webhooks, um Sim-Workflows aus Slack-Aktivitäten auszulösen
- **Verbessern Sie Agenten-Workflows**: Integrieren Sie Slack-Messaging in Ihre Agenten, um Ergebnisse, Warnungen und Statusaktualisierungen zu liefern
- **Erstellen und teilen Sie Slack-Canvases**: Erstellen Sie programmatisch kollaborative Dokumente (Canvases) in Slack-Kanälen
- **Lesen Sie Nachrichten aus Kanälen**: Rufen Sie aktuelle Nachrichten aus jedem Slack-Kanal ab und verarbeiten Sie diese für Überwachungs- oder Workflow-Auslöser
- **Verwalten Sie Bot-Nachrichten**: Aktualisieren, löschen und fügen Sie Reaktionen zu Nachrichten hinzu, die von Ihrem Bot gesendet wurden
In Sim ermöglicht die Slack-Integration Ihren Agenten, im Rahmen ihrer Workflows auf verschiedene Weise programmatisch mit Slack zu interagieren:
In Sim ermöglicht die Slack-Integration Ihren Agenten, programmatisch mit Slack zu interagieren, mit vollständigen Nachrichtenverwaltungsfunktionen als Teil ihrer Workflows:
- **Nachrichten senden**: Agenten können formatierte Nachrichten an jeden Slack-Kanal oder Benutzer senden und unterstützen dabei Slacks mrkdwn-Syntax für umfangreiche Formatierung.
- **Canvases erstellen**: Agenten können Slack-Canvases (kollaborative Dokumente) direkt in Kanälen erstellen und teilen, was den Austausch von umfangreicheren Inhalten und Dokumentationen ermöglicht.
- **Nachrichten lesen**: Agenten können aktuelle Nachrichten aus Kanälen lesen, was Überwachung, Berichterstattung oder das Auslösen weiterer Aktionen basierend auf Kanalaktivitäten ermöglicht.
- **Nachrichten senden**: Agenten können formatierte Nachrichten an jeden Slack-Kanal oder Benutzer senden und unterstützen dabei Slacks mrkdwn-Syntax für umfangreiche Formatierung
- **Nachrichten aktualisieren**: Bearbeiten Sie zuvor gesendete Bot-Nachrichten, um Informationen zu korrigieren oder Statusaktualisierungen bereitzustellen
- **Nachrichten löschen**: Entfernen Sie Bot-Nachrichten, wenn sie nicht mehr benötigt werden oder Fehler enthalten
- **Reaktionen hinzufügen**: Drücken Sie Stimmungen oder Bestätigungen aus, indem Sie Emoji-Reaktionen zu jeder Nachricht hinzufügen
- **Canvases erstellen**: Erstellen und teilen Sie Slack-Canvases (kollaborative Dokumente) direkt in Kanälen, um reichhaltigere Inhalte zu teilen und zu dokumentieren
- **Nachrichten lesen**: Lesen Sie aktuelle Nachrichten aus Kanälen, um Überwachung, Berichterstattung oder das Auslösen weiterer Aktionen basierend auf Kanalaktivitäten zu ermöglichen
- **Dateien herunterladen**: Rufen Sie in Slack-Kanälen geteilte Dateien zur Verarbeitung oder Archivierung ab
Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen, Warnungen, Updates und Berichten direkt an die Kommunikationszentrale Ihres Teams, das Teilen strukturierter Dokumente oder die Überwachung von Gesprächen für Workflow-Auslöser. Ihre Agenten können zeitnahe Informationen liefern, Ergebnisse aus abgeschlossenen Prozessen teilen, kollaborative Dokumente erstellen oder Teammitglieder benachrichtigen, wenn Aufmerksamkeit erforderlich ist. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Kommunikation Ihres Teams und stellt sicher, dass alle ohne manuelles Eingreifen informiert bleiben. Durch die Verbindung von Sim mit Slack können Sie Agenten erstellen, die Ihr Team automatisch mit relevanten Informationen zur richtigen Zeit auf dem Laufenden halten, die Zusammenarbeit durch automatisches Teilen von Erkenntnissen verbessern und den Bedarf an manuellen Statusaktualisierungen reduzieren alles unter Nutzung Ihres bestehenden Slack-Arbeitsbereichs, in dem Ihr Team bereits kommuniziert.
Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen mit dynamischen Updates, das Verwalten von Gesprächsabläufen mit bearbeitbaren Statusnachrichten, das Bestätigen wichtiger Nachrichten mit Reaktionen und das Sauberhalten von Kanälen durch Entfernen veralteter Bot-Nachrichten. Ihre Agenten können zeitnahe Informationen liefern, Nachrichten aktualisieren, während Workflows fortschreiten, kollaborative Dokumente erstellen oder Teammitglieder benachrichtigen, wenn Aufmerksamkeit benötigt wird. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Kommunikation Ihres Teams und stellt sicher, dass jeder mit genauen, aktuellen Informationen auf dem Laufenden bleibt. Durch die Verbindung von Sim mit Slack können Sie Agenten erstellen, die Ihr Team mit relevanten Informationen zur richtigen Zeit auf dem Laufenden halten, die Zusammenarbeit verbessern, indem sie Erkenntnisse automatisch teilen und aktualisieren, und die Notwendigkeit manueller Statusaktualisierungen reduzieren alles während Sie Ihren bestehenden Slack-Workspace nutzen, in dem Ihr Team bereits kommuniziert.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Slack in den Workflow. Kann Nachrichten senden, Canvases erstellen und Nachrichten lesen. Erfordert OAuth. Kann im Auslösemodus verwendet werden, um einen Workflow zu starten, wenn eine Nachricht an einen Kanal gesendet wird.
Integriert Slack in den Workflow. Kann Nachrichten senden, aktualisieren und löschen, Canvases erstellen, Nachrichten lesen und Reaktionen hinzufügen. Erfordert im erweiterten Modus ein Bot-Token anstelle von OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine Nachricht an einen Kanal gesendet wird.
## Tools
@@ -76,9 +82,11 @@ Senden Sie Nachrichten an Slack-Kanäle oder Benutzer über die Slack-API. Unter
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `channel` | string | Ja | Ziel-Slack-Kanal \(z.B. #general\) |
| `text` | string | Ja | Zu sendender Nachrichtentext \(unterstützt Slack mrkdwn-Formatierung\) |
| `text` | string | Ja | Nachrichtentext zum Senden \(unterstützt Slack mrkdwn-Formatierung\) |
| `thread_ts` | string | Nein | Thread-Zeitstempel für Antworten \(erstellt Thread-Antwort\) |
| `files` | file[] | Nein | Dateien, die an die Nachricht angehängt werden sollen |
#### Ausgabe
@@ -131,6 +139,87 @@ Lesen Sie die neuesten Nachrichten aus Slack-Kanälen. Rufen Sie den Konversatio
| --------- | ---- | ----------- |
| `messages` | array | Array von Nachrichtenobjekten aus dem Kanal |
### `slack_download`
Eine Datei von Slack herunterladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `fileId` | string | Ja | Die ID der herunterzuladenden Datei |
| `fileName` | string | Nein | Optionale Überschreibung des Dateinamens |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | file | Heruntergeladene Datei, gespeichert in den Ausführungsdateien |
### `slack_update_message`
Eine zuvor vom Bot in Slack gesendete Nachricht aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `channel` | string | Ja | Kanal-ID, in dem die Nachricht gepostet wurde \(z.B. C1234567890\) |
| `timestamp` | string | Ja | Zeitstempel der zu aktualisierenden Nachricht \(z.B. 1405894322.002768\) |
| `text` | string | Ja | Neuer Nachrichtentext \(unterstützt Slack mrkdwn-Formatierung\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Metadaten der aktualisierten Nachricht |
### `slack_delete_message`
Eine zuvor vom Bot in Slack gesendete Nachricht löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `channel` | string | Ja | Kanal-ID, in dem die Nachricht gepostet wurde \(z.B. C1234567890\) |
| `timestamp` | string | Ja | Zeitstempel der zu löschenden Nachricht \(z.B. 1405894322.002768\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Metadaten der gelöschten Nachricht |
### `slack_add_reaction`
Emoji-Reaktion zu einer Slack-Nachricht hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `channel` | string | Ja | Kanal-ID, in dem die Nachricht gepostet wurde \(z.B. C1234567890\) |
| `timestamp` | string | Ja | Zeitstempel der Nachricht, auf die reagiert werden soll \(z.B. 1405894322.002768\) |
| `name` | string | Ja | Name der Emoji-Reaktion \(ohne Doppelpunkte, z.B. thumbsup, heart, eyes\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Reaktions-Metadaten |
## Hinweise
- Kategorie: `tools`

File diff suppressed because it is too large Load Diff

View File

@@ -75,7 +75,7 @@ Ob Sie interne Tools erstellen, Geschäftsprozesse automatisieren oder Produktio
## Gebrauchsanweisung
Integrieren Sie Supabase in den Workflow. Kann viele Zeilen abrufen, eine Zeile abrufen, erstellen, aktualisieren, löschen und upserten.
Integrieren Sie Supabase in den Workflow. Unterstützt Datenbankoperationen (Abfrage, Einfügen, Aktualisieren, Löschen, Upsert), Volltextsuche, RPC-Funktionen, Zeilenzählung, Vektorsuche und komplettes Speichermanagement (Hochladen, Herunterladen, Auflisten, Verschieben, Kopieren, Löschen von Dateien und Buckets).
## Tools
@@ -202,6 +202,324 @@ Daten in eine Supabase-Tabelle einfügen oder aktualisieren (Upsert-Operation)
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der eingefügten/aktualisierten Datensätze |
### `supabase_count`
Zeilen in einer Supabase-Tabelle zählen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `table` | string | Ja | Der Name der Supabase-Tabelle, deren Zeilen gezählt werden sollen |
| `filter` | string | Nein | PostgREST-Filter \(z.B. "status=eq.active"\) |
| `countType` | string | Nein | Zähltyp: exact, planned oder estimated \(Standard: exact\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `count` | number | Anzahl der Zeilen, die dem Filter entsprechen |
### `supabase_text_search`
Volltextsuche in einer Supabase-Tabelle durchführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `table` | string | Ja | Der Name der Supabase-Tabelle für die Suche |
| `column` | string | Ja | Die Spalte, in der gesucht werden soll |
| `query` | string | Ja | Die Suchanfrage |
| `searchType` | string | Nein | Suchtyp: plain, phrase oder websearch \(Standard: websearch\) |
| `language` | string | Nein | Sprache für die Textsuchkonfiguration \(Standard: english\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Zeilen |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array von Datensätzen, die der Suchabfrage entsprechen |
### `supabase_vector_search`
Ähnlichkeitssuche mit pgvector in einer Supabase-Tabelle durchführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `functionName` | string | Ja | Der Name der PostgreSQL-Funktion, die die Vektorsuche durchführt \(z.B. match_documents\) |
| `queryEmbedding` | array | Ja | Der Abfragevektor/Embedding, nach dem ähnliche Elemente gesucht werden sollen |
| `matchThreshold` | number | Nein | Minimaler Ähnlichkeitsschwellenwert \(0-1\), typischerweise 0,7-0,9 |
| `matchCount` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 10\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array von Datensätzen mit Ähnlichkeitswerten aus der Vektorsuche. Jeder Datensatz enthält ein Ähnlichkeitsfeld \(0-1\), das angibt, wie ähnlich er dem Abfragevektor ist. |
### `supabase_rpc`
Eine PostgreSQL-Funktion in Supabase aufrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `functionName` | string | Ja | Der Name der aufzurufenden PostgreSQL-Funktion |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | json | Von der Funktion zurückgegebenes Ergebnis |
### `supabase_storage_upload`
Eine Datei in einen Supabase-Speicher-Bucket hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `path` | string | Ja | Der Pfad, unter dem die Datei gespeichert wird \(z.B. "ordner/datei.jpg"\) |
| `fileContent` | string | Ja | Der Dateiinhalt \(base64-kodiert für Binärdateien oder Klartext\) |
| `contentType` | string | Nein | MIME-Typ der Datei \(z.B. "image/jpeg", "text/plain"\) |
| `upsert` | boolean | Nein | Wenn true, überschreibt vorhandene Datei \(Standard: false\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | object | Upload-Ergebnis einschließlich Dateipfad und Metadaten |
### `supabase_storage_download`
Eine Datei aus einem Supabase-Speicher-Bucket herunterladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `path` | string | Ja | Der Pfad zur herunterzuladenden Datei \(z.B. "ordner/datei.jpg"\) |
| `fileName` | string | Nein | Optionale Überschreibung des Dateinamens |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `file` | file | Heruntergeladene Datei, gespeichert in Ausführungsdateien |
### `supabase_storage_list`
Dateien in einem Supabase-Speicher-Bucket auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `path` | string | Nein | Der Ordnerpfad, aus dem Dateien aufgelistet werden sollen \(Standard: Root\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Dateien \(Standard: 100\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Dateien \(für Paginierung\) |
| `sortBy` | string | Nein | Spalte zum Sortieren: name, created_at, updated_at \(Standard: name\) |
| `sortOrder` | string | Nein | Sortierreihenfolge: asc oder desc \(Standard: asc\) |
| `search` | string | Nein | Suchbegriff zum Filtern von Dateien nach Namen |
| `apiKey` | string | Ja | Ihr Supabase Service-Rolle-Secret-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array von Dateiobjekten mit Metadaten |
### `supabase_storage_delete`
Dateien aus einem Supabase-Speicher-Bucket löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `paths` | array | Ja | Array von Dateipfaden zum Löschen \(z.B. \["ordner/datei1.jpg", "ordner/datei2.jpg"\]\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der gelöschten Dateiobjekte |
### `supabase_storage_move`
Eine Datei innerhalb eines Supabase-Speicher-Buckets verschieben
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `fromPath` | string | Ja | Der aktuelle Pfad der Datei \(z.B. "ordner/alt.jpg"\) |
| `toPath` | string | Ja | Der neue Pfad für die Datei \(z.B. "neuerordner/neu.jpg"\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | object | Ergebnis der Verschiebeaktion |
### `supabase_storage_copy`
Eine Datei innerhalb eines Supabase-Speicher-Buckets kopieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `fromPath` | string | Ja | Der Pfad der Quelldatei \(z.B. "folder/source.jpg"\) |
| `toPath` | string | Ja | Der Pfad für die kopierte Datei \(z.B. "folder/copy.jpg"\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | object | Ergebnis der Kopieroperation |
### `supabase_storage_create_bucket`
Einen neuen Speicher-Bucket in Supabase erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des zu erstellenden Buckets |
| `isPublic` | boolean | Nein | Ob der Bucket öffentlich zugänglich sein soll \(Standard: false\) |
| `fileSizeLimit` | number | Nein | Maximale Dateigröße in Bytes \(optional\) |
| `allowedMimeTypes` | array | Nein | Array erlaubter MIME-Typen \(z.B. \["image/png", "image/jpeg"\]\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | object | Informationen zum erstellten Bucket |
### `supabase_storage_list_buckets`
Alle Speicher-Buckets in Supabase auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array von Bucket-Objekten |
### `supabase_storage_delete_bucket`
Einen Speicher-Bucket in Supabase löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des zu löschenden Buckets |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | object | Ergebnis der Löschoperation |
### `supabase_storage_get_public_url`
Die öffentliche URL für eine Datei in einem Supabase-Speicher-Bucket abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `path` | string | Ja | Der Pfad zur Datei \(z.B. "ordner/datei.jpg"\) |
| `download` | boolean | Nein | Wenn true, wird der Download erzwungen anstatt der Inline-Anzeige \(Standard: false\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `publicUrl` | string | Die öffentliche URL für den Zugriff auf die Datei |
### `supabase_storage_create_signed_url`
Erstellt eine temporäre signierte URL für eine Datei in einem Supabase-Speicher-Bucket
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `bucket` | string | Ja | Der Name des Speicher-Buckets |
| `path` | string | Ja | Der Pfad zur Datei \(z.B. "ordner/datei.jpg"\) |
| `expiresIn` | number | Ja | Anzahl der Sekunden bis zum Ablauf der URL \(z.B. 3600 für 1 Stunde\) |
| `download` | boolean | Nein | Wenn true, wird der Download erzwungen anstatt der Inline-Anzeige \(Standard: false\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `signedUrl` | string | Die temporäre signierte URL für den Zugriff auf die Datei |
## Hinweise
- Kategorie: `tools`

View File

@@ -71,6 +71,21 @@ KI-gestützte Websuchen mit Tavily durchführen
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die auszuführende Suchanfrage |
| `max_results` | number | Nein | Maximale Anzahl an Ergebnissen \(1-20\) |
| `topic` | string | Nein | Kategorie-Typ: general, news oder finance \(Standard: general\) |
| `search_depth` | string | Nein | Suchbereich: basic \(1 Kredit\) oder advanced \(2 Kredite\) \(Standard: basic\) |
| `include_answer` | string | Nein | LLM-generierte Antwort: true/basic für schnelle Antwort oder advanced für detaillierte |
| `include_raw_content` | string | Nein | Geparster HTML-Inhalt: true/markdown oder text-Format |
| `include_images` | boolean | Nein | Bildsuchergebnisse einbeziehen |
| `include_image_descriptions` | boolean | Nein | Beschreibenden Text für Bilder hinzufügen |
| `include_favicon` | boolean | Nein | Favicon-URLs einbeziehen |
| `chunks_per_source` | number | Nein | Maximale Anzahl relevanter Abschnitte pro Quelle \(1-3, Standard: 3\) |
| `time_range` | string | Nein | Nach Aktualität filtern: day/d, week/w, month/m, year/y |
| `start_date` | string | Nein | Frühestes Veröffentlichungsdatum \(Format JJJJ-MM-TT\) |
| `end_date` | string | Nein | Spätestes Veröffentlichungsdatum \(Format JJJJ-MM-TT\) |
| `include_domains` | string | Nein | Kommagetrennte Liste von Domains auf der Whitelist \(max. 300\) |
| `exclude_domains` | string | Nein | Kommagetrennte Liste von Domains auf der Blacklist \(max. 150\) |
| `country` | string | Nein | Ergebnisse aus bestimmtem Land bevorzugen \(nur für allgemeine Themen\) |
| `auto_parameters` | boolean | Nein | Automatische Parameterkonfiguration basierend auf der Abfrageabsicht |
| `apiKey` | string | Ja | Tavily API-Schlüssel |
#### Ausgabe
@@ -88,8 +103,11 @@ Extrahieren Sie Rohinhalt von mehreren Webseiten gleichzeitig mit Tavily
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `urls` | string | Ja | URL oder Array von URLs, von denen Inhalte extrahiert werden sollen |
| `extract_depth` | string | Nein | Die Extraktionstiefe \(basic=1 Kredit/5 URLs, advanced=2 Kredite/5 URLs\) |
| `urls` | string | Ja | URL oder Array von URLs, aus denen Inhalte extrahiert werden sollen |
| `extract_depth` | string | Nein | Die Tiefe der Extraktion \(basic=1 Kredit/5 URLs, advanced=2 Kredite/5 URLs\) |
| `format` | string | Nein | Ausgabeformat: markdown oder text \(Standard: markdown\) |
| `include_images` | boolean | Nein | Bilder in die Extraktionsausgabe einbeziehen |
| `include_favicon` | boolean | Nein | Favicon-URL für jedes Ergebnis hinzufügen |
| `apiKey` | string | Ja | Tavily API-Schlüssel |
#### Ausgabe
@@ -98,6 +116,64 @@ Extrahieren Sie Rohinhalt von mehreren Webseiten gleichzeitig mit Tavily
| --------- | ---- | ----------- |
| `results` | array | Die URL, die extrahiert wurde |
### `tavily_crawl`
Systematisches Crawlen und Extrahieren von Inhalten aus Websites mit Tavily
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die Stamm-URL, bei der der Crawl beginnen soll |
| `instructions` | string | Nein | Anweisungen in natürlicher Sprache für den Crawler \(kostet 2 Kredite pro 10 Seiten\) |
| `max_depth` | number | Nein | Wie weit von der Basis-URL aus erkundet werden soll \(1-5, Standard: 1\) |
| `max_breadth` | number | Nein | Links, die pro Seitenebene verfolgt werden \(≥1, Standard: 20\) |
| `limit` | number | Nein | Gesamtzahl der verarbeiteten Links vor dem Stopp \(≥1, Standard: 50\) |
| `select_paths` | string | Nein | Kommagetrennte Regex-Muster, um bestimmte URL-Pfade einzuschließen \(z.B. /docs/.*\) |
| `select_domains` | string | Nein | Kommagetrennte Regex-Muster, um das Crawlen auf bestimmte Domains zu beschränken |
| `exclude_paths` | string | Nein | Kommagetrennte Regex-Muster, um bestimmte URL-Pfade zu überspringen |
| `exclude_domains` | string | Nein | Kommagetrennte Regex-Muster, um bestimmte Domains zu blockieren |
| `allow_external` | boolean | Nein | Links zu externen Domains in die Ergebnisse einbeziehen \(Standard: true\) |
| `include_images` | boolean | Nein | Bilder in die Crawl-Ausgabe einbeziehen |
| `extract_depth` | string | Nein | Extraktionstiefe: basic \(1 Kredit/5 Seiten\) oder advanced \(2 Kredite/5 Seiten\) |
| `format` | string | Nein | Ausgabeformat: markdown oder text \(Standard: markdown\) |
| `include_favicon` | boolean | Nein | Favicon-URL für jedes Ergebnis hinzufügen |
| `apiKey` | string | Ja | Tavily API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `base_url` | string | Die Basis-URL, die durchsucht wurde |
| `results` | array | Die durchsuchte Seiten-URL |
### `tavily_map`
Entdecken und visualisieren der Website-Struktur mit Tavily
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die Root-URL, bei der die Kartierung beginnen soll |
| `instructions` | string | Nein | Natürlichsprachliche Anleitung für das Kartierungsverhalten \(kostet 2 Kredite pro 10 Seiten\) |
| `max_depth` | number | Nein | Wie weit von der Basis-URL aus erkundet werden soll \(1-5, Standard: 1\) |
| `max_breadth` | number | Nein | Links, die pro Ebene verfolgt werden sollen \(Standard: 20\) |
| `limit` | number | Nein | Gesamtzahl der zu verarbeitenden Links \(Standard: 50\) |
| `select_paths` | string | Nein | Durch Kommas getrennte Regex-Muster für URL-Pfadfilterung \(z.B. /docs/.*\) |
| `select_domains` | string | Nein | Durch Kommas getrennte Regex-Muster, um die Kartierung auf bestimmte Domains zu beschränken |
| `exclude_paths` | string | Nein | Durch Kommas getrennte Regex-Muster, um bestimmte URL-Pfade auszuschließen |
| `exclude_domains` | string | Nein | Durch Kommas getrennte Regex-Muster, um Domains auszuschließen |
| `allow_external` | boolean | Nein | Externe Domain-Links in Ergebnisse einbeziehen \(Standard: true\) |
| `apiKey` | string | Ja | Tavily API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `base_url` | string | Die Basis-URL, die kartiert wurde |
| `results` | array | Entdeckte URL |
## Hinweise
- Kategorie: `tools`

View File

@@ -190,6 +190,26 @@ Senden Sie Animationen (GIFs) an Telegram-Kanäle oder Benutzer über die Telegr
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Telegram-Nachrichtendaten einschließlich optionaler Medien |
### `telegram_send_document`
Senden Sie Dokumente (PDF, ZIP, DOC, etc.) an Telegram-Kanäle oder -Nutzer über die Telegram Bot API.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Ja | Ihr Telegram Bot API-Token |
| `chatId` | string | Ja | Ziel-Telegram-Chat-ID |
| `files` | file[] | Nein | Zu sendende Dokumentdatei \(PDF, ZIP, DOC, etc.\). Maximale Größe: 50MB |
| `caption` | string | Nein | Dokumentbeschreibung \(optional\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `data` | object | Telegram-Nachrichtendaten einschließlich Dokument |
## Hinweise
- Kategorie: `tools`

View File

@@ -0,0 +1,141 @@
---
title: Twilio Voice
description: Telefonate tätigen und verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="twilio_voice"
color="#F22F46"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'>
<path
fill='currentColor'
d='M128 0c70.656 0 128 57.344 128 128s-57.344 128-128 128S0 198.656 0 128 57.344 0 128 0zm0 33.792c-52.224 0-94.208 41.984-94.208 94.208S75.776 222.208 128 222.208s94.208-41.984 94.208-94.208S180.224 33.792 128 33.792zm31.744 99.328c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm-63.488 0c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm63.488-63.488c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm-63.488 0c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624z'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Twilio Voice](https://www.twilio.com/en-us/voice) ist eine leistungsstarke Cloud-Kommunikationsplattform, die es Unternehmen ermöglicht, Telefonate programmgesteuert über eine einfache API zu tätigen, zu empfangen und zu verwalten.
Twilio Voice bietet eine robuste API zum Erstellen anspruchsvoller Sprachanwendungen mit globaler Reichweite. Mit Abdeckung in über 100 Ländern, Carrier-Grade-Zuverlässigkeit und einer 99,95% Verfügbarkeits-SLA hat sich Twilio als Branchenführer im Bereich programmierbarer Sprachkommunikation etabliert.
Zu den wichtigsten Funktionen von Twilio Voice gehören:
- **Globales Sprachnetzwerk**: Weltweit Anrufe tätigen und empfangen mit lokalen Telefonnummern in mehreren Ländern
- **Programmierbare Anrufsteuerung**: Verwendung von TwiML zur Steuerung des Anrufablaufs, Aufzeichnung von Gesprächen, Erfassung von DTMF-Eingaben und Implementierung von IVR-Systemen
- **Erweiterte Funktionen**: Spracherkennung, Text-to-Speech, Anrufweiterleitung, Konferenzschaltung und Anrufbeantworter-Erkennung
- **Echtzeit-Analytik**: Überwachung von Anrufqualität, -dauer, -kosten und Optimierung Ihrer Sprachanwendungen
In Sim ermöglicht die Twilio Voice-Integration Ihren Agenten, diese leistungsstarken Sprachfunktionen als Teil ihrer Workflows zu nutzen. Dies schafft Möglichkeiten für anspruchsvolle Kundenbindungsszenarien wie Terminerinnerungen, Verifizierungsanrufe, automatisierte Support-Hotlines und interaktive Sprachdialogsysteme. Die Integration überbrückt die Lücke zwischen Ihren KI-Workflows und Sprachkommunikationskanälen und ermöglicht es Ihren Agenten, zeitnahe, relevante Informationen direkt über Telefonanrufe zu liefern. Durch die Verbindung von Sim mit Twilio Voice können Sie intelligente Agenten erstellen, die Kunden über ihren bevorzugten Kommunikationskanal ansprechen, die Benutzererfahrung verbessern und gleichzeitig routinemäßige Anrufaufgaben automatisieren.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Twilio Voice in den Workflow. Tätigen Sie ausgehende Anrufe und rufen Sie Anrufaufzeichnungen ab.
## Tools
### `twilio_voice_make_call`
Tätigen Sie einen ausgehenden Anruf mit der Twilio Voice API.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | Anzurufende Telefonnummer \(E.164-Format, z.B. +14155551234\) |
| `from` | string | Ja | Ihre Twilio-Telefonnummer, von der aus angerufen wird \(E.164-Format\) |
| `url` | string | Nein | URL, die TwiML-Anweisungen für den Anruf zurückgibt |
| `twiml` | string | Nein | TwiML-Anweisungen zur Ausführung \(Alternative zur URL\). Verwenden Sie eckige Klammern anstelle von spitzen Klammern, z.B. \[Response\]\[Say\]Hello\[/Say\]\[/Response\] |
| `statusCallback` | string | Nein | Webhook-URL für Anrufstatus-Updates |
| `statusCallbackMethod` | string | Nein | HTTP-Methode für Status-Callback \(GET oder POST\) |
| `accountSid` | string | Ja | Twilio Account SID |
| `authToken` | string | Ja | Twilio Auth Token |
| `record` | boolean | Nein | Ob der Anruf aufgezeichnet werden soll |
| `recordingStatusCallback` | string | Nein | Webhook-URL für Aufzeichnungsstatus-Updates |
| `timeout` | number | Nein | Wartezeit auf Antwort bevor aufgegeben wird \(Sekunden, Standard: 60\) |
| `machineDetection` | string | Nein | Anrufbeantworter-Erkennung: Enable oder DetectMessageEnd |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Anruf erfolgreich eingeleitet wurde |
| `callSid` | string | Eindeutige Kennung für den Anruf |
| `status` | string | Anrufstatus \(queued, ringing, in-progress, completed, usw.\) |
| `direction` | string | Anrufrichtung \(outbound-api\) |
| `from` | string | Telefonnummer, von der aus angerufen wird |
| `to` | string | Telefonnummer, die angerufen wird |
| `duration` | number | Anrufdauer in Sekunden |
| `price` | string | Kosten des Anrufs |
| `priceUnit` | string | Währung des Preises |
| `error` | string | Fehlermeldung, wenn der Anruf fehlgeschlagen ist |
### `twilio_voice_list_calls`
Rufen Sie eine Liste der Anrufe ab, die zu und von einem Konto getätigt wurden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `accountSid` | string | Ja | Twilio Account SID |
| `authToken` | string | Ja | Twilio Auth Token |
| `to` | string | Nein | Nach Anrufen zu dieser Telefonnummer filtern |
| `from` | string | Nein | Nach Anrufen von dieser Telefonnummer filtern |
| `status` | string | Nein | Nach Anrufstatus filtern \(queued, ringing, in-progress, completed, etc.\) |
| `startTimeAfter` | string | Nein | Anrufe filtern, die an oder nach diesem Datum begonnen haben \(JJJJ-MM-TT\) |
| `startTimeBefore` | string | Nein | Anrufe filtern, die an oder vor diesem Datum begonnen haben \(JJJJ-MM-TT\) |
| `pageSize` | number | Nein | Anzahl der zurückzugebenden Datensätze \(max. 1000, Standard 50\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Anrufe erfolgreich abgerufen wurden |
| `calls` | array | Array von Anrufobjekten |
| `total` | number | Gesamtanzahl der zurückgegebenen Anrufe |
| `page` | number | Aktuelle Seitennummer |
| `pageSize` | number | Anzahl der Anrufe pro Seite |
| `error` | string | Fehlermeldung, wenn der Abruf fehlgeschlagen ist |
### `twilio_voice_get_recording`
Rufen Sie Anrufaufzeichnungsinformationen und Transkription ab (falls über TwiML aktiviert).
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `recordingSid` | string | Ja | Abzurufende Recording SID |
| `accountSid` | string | Ja | Twilio Account SID |
| `authToken` | string | Ja | Twilio Auth Token |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Aufnahme erfolgreich abgerufen wurde |
| `recordingSid` | string | Eindeutige Kennung für die Aufnahme |
| `callSid` | string | Call SID, zu der diese Aufnahme gehört |
| `duration` | number | Dauer der Aufnahme in Sekunden |
| `status` | string | Aufnahmestatus \(completed, processing, usw.\) |
| `channels` | number | Anzahl der Kanäle \(1 für Mono, 2 für Dual\) |
| `source` | string | Wie die Aufnahme erstellt wurde |
| `mediaUrl` | string | URL zum Herunterladen der Aufnahmedatei |
| `price` | string | Kosten der Aufnahme |
| `priceUnit` | string | Währung des Preises |
| `uri` | string | Relativer URI der Aufnahmeressource |
| `transcriptionText` | string | Transkribierter Text aus der Aufnahme \(falls verfügbar\) |
| `transcriptionStatus` | string | Transkriptionsstatus \(completed, in-progress, failed\) |
| `transcriptionPrice` | string | Kosten der Transkription |
| `transcriptionPriceUnit` | string | Währung des Transkriptionspreises |
| `error` | string | Fehlermeldung, falls der Abruf fehlgeschlagen ist |
## Hinweise
- Kategorie: `tools`
- Typ: `twilio_voice`

View File

@@ -46,7 +46,7 @@ In Sim ermöglicht die Typeform-Integration Ihren Agenten, programmatisch mit Ih
## Nutzungsanleitung
Integrieren Sie Typeform in den Workflow. Kann Antworten abrufen, Dateien herunterladen und Formulareinblicke gewinnen. API-Schlüssel erforderlich.
Integriert Typeform in den Workflow. Kann Antworten abrufen, Dateien herunterladen und Formularstatistiken erhalten. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn ein Formular abgesendet wird. Erfordert API-Schlüssel.
## Tools
@@ -69,9 +69,25 @@ Formularantworten von Typeform abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `total_items` | number | Gesamtanzahl der Antworten |
| `page_count` | number | Gesamtanzahl der Seiten |
| `items` | json | Antwortelemente |
| `total_items` | number | Gesamtzahl der Antworten/Formulare |
| `page_count` | number | Gesamtseitenanzahl |
| `items` | json | Array der Antwort-/Formularelemente |
| `id` | string | Eindeutige Formular-ID |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | json | Formulareinstellungsobjekt |
| `theme` | json | Theme-Konfigurationsobjekt |
| `workspace` | json | Workspace-Informationen |
| `fields` | json | Array der Formularfelder/Fragen |
| `thankyou_screens` | json | Array der Dankesbildschirme |
| `_links` | json | Links zu verwandten Ressourcen |
| `deleted` | boolean | Ob das Formular erfolgreich gelöscht wurde |
| `message` | string | Löschbestätigungsnachricht |
| `fileUrl` | string | URL der heruntergeladenen Datei |
| `contentType` | string | Datei-Content-Type |
| `filename` | string | Dateiname |
### `typeform_files`
@@ -113,6 +129,129 @@ Einblicke und Analysen für Typeform-Formulare abrufen
| --------- | ---- | ----------- |
| `fields` | array | Anzahl der Benutzer, die bei diesem Feld abgebrochen haben |
### `typeform_list_forms`
Eine Liste aller Formulare in Ihrem Typeform-Konto abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Typeform persönliches Zugriffstoken |
| `search` | string | Nein | Suchanfrage zum Filtern von Formularen nach Titel |
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
| `pageSize` | number | Nein | Anzahl der Formulare pro Seite \(Standard: 10, max: 200\) |
| `workspaceId` | string | Nein | Formulare nach Workspace-ID filtern |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `total_items` | number | Gesamtanzahl der Formulare im Konto |
| `page_count` | number | Gesamtanzahl der verfügbaren Seiten |
| `items` | array | Array von Formularobjekten |
### `typeform_get_form`
Vollständige Details und Struktur eines bestimmten Formulars abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Typeform persönliches Zugriffstoken |
| `formId` | string | Ja | Eindeutige Formular-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Formular-ID |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp \(form, quiz, etc.\) |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | object | Formulareinstellungen einschließlich Sprache, Fortschrittsbalken, etc. |
| `theme` | object | Theme-Konfiguration mit Farben, Schriftarten und Design-Einstellungen |
| `workspace` | object | Workspace-Informationen |
### `typeform_create_form`
Ein neues Formular mit Feldern und Einstellungen erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Typeform persönliches Zugriffstoken |
| `title` | string | Ja | Formulartitel |
| `type` | string | Nein | Formulartyp \(Standard: "form"\). Optionen: "form", "quiz" |
| `workspaceId` | string | Nein | Workspace-ID, in der das Formular erstellt werden soll |
| `fields` | json | Nein | Array von Feldobjekten, die die Formularstruktur definieren. Jedes Feld benötigt: Typ, Titel und optionale Eigenschaften/Validierungen |
| `settings` | json | Nein | Formulareinstellungsobjekt \(Sprache, Fortschrittsbalken, etc.\) |
| `themeId` | string | Nein | Theme-ID, die auf das Formular angewendet werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung des erstellten Formulars |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | object | Formulareinstellungen |
| `theme` | object | Angewandte Theme-Konfiguration |
| `workspace` | object | Workspace-Informationen |
| `fields` | array | Array der erstellten Formularfelder |
| `_links` | object | Links zu verwandten Ressourcen |
### `typeform_update_form`
Ein bestehendes Formular mit JSON Patch-Operationen aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Typeform persönliches Zugriffstoken |
| `formId` | string | Ja | Eindeutige Kennung des zu aktualisierenden Formulars |
| `operations` | json | Ja | Array von JSON Patch-Operationen \(RFC 6902\). Jede Operation benötigt: op \(add/remove/replace\), path und value \(für add/replace\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | string | Eindeutige Kennung des aktualisierten Formulars |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | object | Formulareinstellungen |
| `theme` | object | Theme-Konfiguration |
| `workspace` | object | Workspace-Informationen |
| `fields` | array | Array der Formularfelder |
| `thankyou_screens` | array | Array der Dankesbildschirme |
| `_links` | object | Links zu verwandten Ressourcen |
### `typeform_delete_form`
Ein Formular und alle seine Antworten dauerhaft löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Typeform persönliches Zugriffstoken |
| `formId` | string | Ja | Eindeutige Kennung des zu löschenden Formulars |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob das Formular erfolgreich gelöscht wurde |
| `message` | string | Löschbestätigungsnachricht |
## Hinweise
- Kategorie: `tools`

View File

@@ -59,8 +59,9 @@ Verarbeiten und analysieren Sie Bilder mit fortschrittlichen Vision-Modellen. F
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | API-Schlüssel für den ausgewählten Modellanbieter |
| `imageUrl` | string | Ja | Öffentlich zugängliche Bild-URL |
| `model` | string | Nein | Zu verwendendes Vision-Modell \(gpt-4o, claude-3-opus-20240229, etc\) |
| `imageUrl` | string | Nein | Öffentlich zugängliche Bild-URL |
| `imageFile` | file | Nein | Zu analysierende Bilddatei |
| `model` | string | Nein | Zu verwendendes Vision-Modell \(gpt-4o, claude-3-opus-20240229, usw.\) |
| `prompt` | string | Nein | Benutzerdefinierte Eingabeaufforderung für die Bildanalyse |
#### Ausgabe

View File

@@ -0,0 +1,145 @@
---
title: Webflow
description: Webflow CMS-Sammlungen verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="webflow"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 1080 674'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
fillRule='evenodd'
clipRule='evenodd'
d='M1080 0L735.386 673.684H411.695L555.916 394.481H549.445C430.464 548.934 252.942 650.61 -0.000488281 673.684V398.344C-0.000488281 398.344 161.813 388.787 256.938 288.776H-0.000488281V0.0053214H288.771V237.515L295.252 237.489L413.254 0.0053214H631.644V236.009L638.126 235.999L760.555 0H1080Z'
fill='#146EF5'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Webflow](https://webflow.com/) ist eine leistungsstarke visuelle Webdesign-Plattform, mit der Sie responsive Websites ohne Programmierung erstellen können. Sie kombiniert eine visuelle Design-Oberfläche mit einem robusten CMS (Content Management System), das es Ihnen ermöglicht, dynamische Inhalte für Ihre Websites zu erstellen, zu verwalten und zu veröffentlichen.
Mit Webflow können Sie:
- **Visuell gestalten**: Erstellen Sie benutzerdefinierte Websites mit einem visuellen Editor, der sauberen, semantischen HTML/CSS-Code generiert
- **Inhalte dynamisch verwalten**: Nutzen Sie das CMS, um Sammlungen strukturierter Inhalte wie Blogbeiträge, Produkte, Teammitglieder oder beliebige benutzerdefinierte Daten zu erstellen
- **Sofort veröffentlichen**: Stellen Sie Ihre Websites auf Webflows Hosting bereit oder exportieren Sie den Code für benutzerdefiniertes Hosting
- **Responsive Designs erstellen**: Bauen Sie Websites, die nahtlos auf Desktop, Tablet und Mobilgeräten funktionieren
- **Sammlungen anpassen**: Definieren Sie benutzerdefinierte Felder und Datenstrukturen für Ihre Inhaltstypen
- **Inhaltsaktualisierungen automatisieren**: Verwalten Sie Ihre CMS-Inhalte programmgesteuert über APIs
In Sim ermöglicht die Webflow-Integration Ihren Agenten, nahtlos mit Ihren Webflow-CMS-Sammlungen über API-Authentifizierung zu interagieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das automatische Erstellen von Blogbeiträgen aus KI-generierten Inhalten, das Aktualisieren von Produktinformationen, das Verwalten von Teammitgliederprofilen und das Abrufen von CMS-Elementen für die dynamische Inhaltsgenerierung. Ihre Agenten können vorhandene Elemente auflisten, um Ihre Inhalte zu durchsuchen, bestimmte Elemente nach ID abrufen, neue Einträge erstellen, um frische Inhalte hinzuzufügen, bestehende Elemente aktualisieren, um Informationen aktuell zu halten, und veraltete Inhalte löschen. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und Ihrem Webflow-CMS und ermöglicht automatisierte Inhaltsverwaltung, dynamische Website-Aktualisierungen und optimierte Inhalts-Workflows, die Ihre Websites ohne manuelles Eingreifen frisch und aktuell halten.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integriert Webflow CMS in den Workflow. Kann Elemente in Webflow CMS-Sammlungen erstellen, abrufen, auflisten, aktualisieren oder löschen. Verwalten Sie Ihre Webflow-Inhalte programmatisch. Kann im Trigger-Modus verwendet werden, um Workflows auszulösen, wenn sich Sammlungselemente ändern oder Formulare übermittelt werden.
## Tools
### `webflow_list_items`
Alle Elemente aus einer Webflow CMS-Sammlung auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Ja | ID der Sammlung |
| `offset` | number | Nein | Offset für Paginierung \(optional\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Elemente \(optional, Standard: 100\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | json | Array von Sammlungselementen |
| `metadata` | json | Metadaten über die Abfrage |
### `webflow_get_item`
Ein einzelnes Element aus einer Webflow CMS-Sammlung abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Ja | ID der Sammlung |
| `itemId` | string | Ja | ID des abzurufenden Elements |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `item` | json | Das abgerufene Elementobjekt |
| `metadata` | json | Metadaten über das abgerufene Element |
### `webflow_create_item`
Ein neues Element in einer Webflow CMS-Sammlung erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Ja | ID der Sammlung |
| `fieldData` | json | Ja | Felddaten für das neue Element als JSON-Objekt. Die Schlüssel sollten mit den Feldnamen der Sammlung übereinstimmen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `item` | json | Das erstellte Element-Objekt |
| `metadata` | json | Metadaten über das erstellte Element |
### `webflow_update_item`
Ein vorhandenes Element in einer Webflow CMS-Sammlung aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Ja | ID der Sammlung |
| `itemId` | string | Ja | ID des zu aktualisierenden Elements |
| `fieldData` | json | Ja | Zu aktualisierende Felddaten als JSON-Objekt. Nur Felder einschließen, die geändert werden sollen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `item` | json | Das aktualisierte Element-Objekt |
| `metadata` | json | Metadaten über das aktualisierte Element |
### `webflow_delete_item`
Ein Element aus einer Webflow CMS-Sammlung löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Ja | ID der Sammlung |
| `itemId` | string | Ja | ID des zu löschenden Elements |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Löschung erfolgreich war |
| `metadata` | json | Metadaten über die Löschung |
## Hinweise
- Kategorie: `tools`
- Typ: `webflow`

View File

@@ -39,21 +39,32 @@ In Sim ermöglicht die YouTube-Integration Ihren Agenten, YouTube-Inhalte progra
## Gebrauchsanweisung
Integriere YouTube in den Workflow. Kann nach Videos suchen, Videodetails abrufen, Kanalinformationen abrufen, Playlist-Elemente abrufen und Videokommentare abrufen.
Integrieren Sie YouTube in den Workflow. Kann Videos suchen, Videodetails abrufen, Kanalinformationen abrufen, alle Videos eines Kanals abrufen, Kanal-Playlists abrufen, Playlist-Elemente abrufen, verwandte Videos finden und Videokommentare abrufen.
## Tools
### `youtube_search`
Suche nach Videos auf YouTube mit der YouTube Data API.
Suchen Sie nach Videos auf YouTube mit der YouTube Data API. Unterstützt erweiterte Filterung nach Kanal, Datumsbereich, Dauer, Kategorie, Qualität, Untertiteln und mehr.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Suchanfrage für YouTube-Videos |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Videos |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Videos (1-50) |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
| `channelId` | string | Nein | Filtert Ergebnisse nach einer bestimmten YouTube-Kanal-ID |
| `publishedAfter` | string | Nein | Nur Videos zurückgeben, die nach diesem Datum veröffentlicht wurden (RFC 3339-Format: "2024-01-01T00:00:00Z") |
| `publishedBefore` | string | Nein | Nur Videos zurückgeben, die vor diesem Datum veröffentlicht wurden (RFC 3339-Format: "2024-01-01T00:00:00Z") |
| `videoDuration` | string | Nein | Nach Videolänge filtern: "short" (weniger als 4 Minuten), "medium" (4-20 Minuten), "long" (mehr als 20 Minuten), "any" |
| `order` | string | Nein | Ergebnisse sortieren nach: "date", "rating", "relevance" (Standard), "title", "videoCount", "viewCount" |
| `videoCategoryId` | string | Nein | Nach YouTube-Kategorie-ID filtern (z.B. "10" für Musik, "20" für Gaming) |
| `videoDefinition` | string | Nein | Nach Videoqualität filtern: "high" (HD), "standard", "any" |
| `videoCaption` | string | Nein | Nach Untertitelverfügbarkeit filtern: "closedCaption" (hat Untertitel), "none" (keine Untertitel), "any" |
| `regionCode` | string | Nein | Ergebnisse zurückgeben, die für eine bestimmte Region relevant sind (ISO 3166-1 alpha-2 Ländercode, z.B. "US", "GB") |
| `relevanceLanguage` | string | Nein | Ergebnisse zurückgeben, die für eine Sprache am relevantesten sind (ISO 639-1 Code, z.B. "en", "es") |
| `safeSearch` | string | Nein | Inhaltsfilterungsstufe: "moderate" (Standard), "none", "strict" |
#### Ausgabe
@@ -115,6 +126,45 @@ Erhalte detaillierte Informationen über einen YouTube-Kanal.
| `thumbnail` | string | URL des Kanal-Thumbnails |
| `customUrl` | string | Benutzerdefinierte Kanal-URL |
### `youtube_channel_videos`
Alle Videos von einem bestimmten YouTube-Kanal abrufen, mit Sortieroptionen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `channelId` | string | Ja | YouTube-Kanal-ID, von der Videos abgerufen werden sollen |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Videos \(1-50\) |
| `order` | string | Nein | Sortierreihenfolge: "date" \(neueste zuerst\), "rating", "relevance", "title", "viewCount" |
| `pageToken` | string | Nein | Seitentoken für Paginierung |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | array | Array von Videos des Kanals |
### `youtube_channel_playlists`
Alle Playlists von einem bestimmten YouTube-Kanal abrufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `channelId` | string | Ja | YouTube-Kanal-ID, von der Playlists abgerufen werden sollen |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Playlists \(1-50\) |
| `pageToken` | string | Nein | Seitentoken für Paginierung |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | array | Array von Playlists des Kanals |
### `youtube_playlist_items`
Videos aus einer YouTube-Playlist abrufen.
@@ -125,7 +175,7 @@ Videos aus einer YouTube-Playlist abrufen.
| --------- | ---- | -------- | ----------- |
| `playlistId` | string | Ja | YouTube-Playlist-ID |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Videos |
| `pageToken` | string | Nein | Page-Token für Paginierung |
| `pageToken` | string | Nein | Seitentoken für Paginierung |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
#### Ausgabe
@@ -134,9 +184,28 @@ Videos aus einer YouTube-Playlist abrufen.
| --------- | ---- | ----------- |
| `items` | array | Array von Videos in der Playlist |
### `youtube_related_videos`
Finde Videos, die mit einem bestimmten YouTube-Video verwandt sind.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `videoId` | string | Ja | YouTube-Video-ID, für die verwandte Videos gefunden werden sollen |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden verwandten Videos \(1-50\) |
| `pageToken` | string | Nein | Page-Token für Paginierung |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | array | Array von verwandten Videos |
### `youtube_comments`
Kommentare von einem YouTube-Video abrufen.
Rufe Kommentare von einem YouTube-Video ab.
#### Eingabe

View File

@@ -1,187 +0,0 @@
---
title: API-Trigger
description: Starten Sie einen Workflow über eine authentifizierte HTTP-Anfrage
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'
## Übersicht
Der API-Trigger stellt Ihren Workflow als sicheren HTTP-Endpunkt bereit. Senden Sie JSON-Daten an den Endpunkt und Ihr Workflow verarbeitet diese sofort. API-Aufrufe werden immer gegen Ihre neueste Bereitstellung ausgeführt.
## Eingabeformat konfigurieren
<div className='flex justify-center my-6'>
<Image
src='/static/triggers/api-trigger-light.png'
alt='API-Trigger Eingabeformat'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>
Fügen Sie für jeden Parameter ein Feld **Eingabeformat** hinzu. Die Ausgabeschlüssel zur Laufzeit spiegeln das Schema wider und sind auch unter `<api.input>` verfügbar.
Manuelle Ausführungen im Editor verwenden die Spalte `value`, damit Sie testen können, ohne eine Anfrage zu senden. Während der Ausführung füllt der Resolver sowohl `<api.userId>` als auch `<api.input.userId>` aus.
## Anfrage-Beispiel
```bash
curl -X POST \
https://sim.ai/api/workflows/WORKFLOW_ID/execute \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_KEY' \
-d '{"userId":"demo-user","maxTokens":1024}'
```
Erfolgreiche Antworten geben das serialisierte Ausführungsergebnis vom Executor zurück. Fehler zeigen Validierungs-, Authentifizierungs- oder Workflow-Fehler an.
## Streaming-Antworten
Aktivieren Sie Echtzeit-Streaming, um Workflow-Ausgaben zu erhalten, während sie zeichen-für-zeichen generiert werden. Dies ist nützlich, um KI-Antworten progressiv für Benutzer anzuzeigen.
### Anfrageparameter
Fügen Sie diese Parameter hinzu, um Streaming zu aktivieren:
- `stream` - Auf `true` setzen, um Server-Sent Events (SSE) Streaming zu aktivieren
- `selectedOutputs` - Array von Block-Ausgaben zum Streamen (z.B. `["agent1.content"]`)
### Block-Ausgabeformat
Verwenden Sie das `blockName.attribute` Format, um anzugeben, welche Block-Ausgaben gestreamt werden sollen:
- Format: `"blockName.attribute"` (z.B. Wenn Sie den Inhalt des Agent 1-Blocks streamen möchten, würden Sie `"agent1.content"` verwenden)
- Blocknamen sind nicht case-sensitive und Leerzeichen werden ignoriert
### Beispielanfrage
```bash
curl -X POST \
https://sim.ai/api/workflows/WORKFLOW_ID/execute \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_KEY' \
-d '{
"message": "Count to five",
"stream": true,
"selectedOutputs": ["agent1.content"]
}'
```
### Antwortformat
Streaming-Antworten verwenden das Server-Sent Events (SSE) Format:
```
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", two"}
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", three"}
data: {"event":"done","success":true,"output":{},"metadata":{"duration":610}}
data: [DONE]
```
Jedes Ereignis enthält:
- **Streaming-Chunks**: `{"blockId": "...", "chunk": "text"}` - Echtzeit-Text während er generiert wird
- **Abschlussereignis**: `{"event": "done", ...}` - Ausführungsmetadaten und vollständige Ergebnisse
- **Terminator**: `[DONE]` - Signalisiert das Ende des Streams
### Streaming mehrerer Blöcke
Wenn `selectedOutputs` mehrere Blöcke enthält, zeigt jeder Chunk an, welcher Block ihn erzeugt hat:
```bash
curl -X POST \
https://sim.ai/api/workflows/WORKFLOW_ID/execute \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_KEY' \
-d '{
"message": "Process this request",
"stream": true,
"selectedOutputs": ["agent1.content", "agent2.content"]
}'
```
Das Feld `blockId` in jedem Chunk ermöglicht es Ihnen, die Ausgabe zum richtigen UI-Element zu leiten:
```
data: {"blockId":"agent1-uuid","chunk":"Processing..."}
data: {"blockId":"agent2-uuid","chunk":"Analyzing..."}
data: {"blockId":"agent1-uuid","chunk":" complete"}
```
## Ausgabereferenz
| Referenz | Beschreibung |
|-----------|-------------|
| `<api.field>` | Im Eingabeformat definiertes Feld |
| `<api.input>` | Gesamter strukturierter Anfragekörper |
Wenn kein Eingabeformat definiert ist, stellt der Executor das rohe JSON nur unter `<api.input>` zur Verfügung.
<Callout type="warning">
Ein Workflow kann nur einen API-Trigger enthalten. Veröffentlichen Sie nach Änderungen eine neue Bereitstellung, damit der Endpunkt aktuell bleibt.
</Callout>
### Datei-Upload-Format
Die API akzeptiert Dateien in zwei Formaten:
**1. Base64-kodierte Dateien** (empfohlen für SDKs):
```json
{
"documents": [{
"type": "file",
"data": "data:application/pdf;base64,JVBERi0xLjQK...",
"name": "document.pdf",
"mime": "application/pdf"
}]
}
```
- Maximale Dateigröße: 20MB pro Datei
- Dateien werden in den Cloud-Speicher hochgeladen und in UserFile-Objekte mit allen Eigenschaften umgewandelt
**2. Direkte URL-Referenzen**:
```json
{
"documents": [{
"type": "url",
"data": "https://example.com/document.pdf",
"name": "document.pdf",
"mime": "application/pdf"
}]
}
```
- Die Datei wird nicht hochgeladen, die URL wird direkt weitergegeben
- Nützlich für die Referenzierung bestehender Dateien
### Dateieigenschaften
Für Dateien können alle Eigenschaften abgerufen werden:
| Eigenschaft | Beschreibung | Typ |
|----------|-------------|------|
| `<api.fieldName[0].url>` | Signierte Download-URL | string |
| `<api.fieldName[0].name>` | Ursprünglicher Dateiname | string |
| `<api.fieldName[0].size>` | Dateigröße in Bytes | number |
| `<api.fieldName[0].type>` | MIME-Typ | string |
| `<api.fieldName[0].uploadedAt>` | Upload-Zeitstempel (ISO 8601) | string |
| `<api.fieldName[0].expiresAt>` | URL-Ablaufzeitstempel (ISO 8601) | string |
Für URL-referenzierte Dateien sind dieselben Eigenschaften verfügbar, außer `uploadedAt` und `expiresAt`, da die Datei nicht in unseren Speicher hochgeladen wird.
Wenn kein Eingabeformat definiert ist, stellt der Executor das rohe JSON nur unter `<api.input>` zur Verfügung.
<Callout type="warning">
Ein Workflow kann nur einen API-Trigger enthalten. Veröffentlichen Sie nach Änderungen eine neue Bereitstellung, damit der Endpunkt aktuell bleibt.
</Callout>

View File

@@ -1,51 +0,0 @@
---
title: Chat-Auslöser
description: Starten Sie einen Workflow aus einer Chat-Bereitstellung
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'
## Übersicht
Der Chat-Auslöser erstellt eine Konversationsschnittstelle für Ihren Workflow. Stellen Sie Ihren Workflow als Chat bereit, und Benutzer können über eine teilbare URL damit interagieren. Jede Nachricht startet eine neue Workflow-Ausführung mit Ihrer neuesten Bereitstellung.
## Laufzeit-Ausgaben
<div className='flex justify-center my-6'>
<Image
src='/static/triggers/chat-trigger-light.png'
alt='Chat-Bereitstellungskonversation'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>
Der Auslöser schreibt drei Felder, auf die nachfolgende Blöcke verweisen können:
| Referenz | Beschreibung |
|-----------|-------------|
| `<chat.input>` | Neueste Benutzernachricht |
| `<chat.conversationId>` | Konversations-Thread-ID |
| `<chat.files>` | Optionale hochgeladene Dateien |
Dateien enthalten `name`, `mimeType` und einen signierten Download `url`.
## Nutzungshinweise
1. Fügen Sie einen Chat-Auslöser-Block pro Workflow hinzu.
2. Stellen Sie den Workflow im Chat-Modus bereit.
3. Teilen Sie den Bereitstellungslink jede Antwort verwendet die Konversations-ID wieder, sodass der Workflow den Kontext beibehalten kann.
<Callout type="info">
Der Builder blockiert mehrere Chat-Auslöser-Blöcke im selben Workflow.
</Callout>
1. Fügen Sie einen Chat-Trigger-Block pro Workflow hinzu.
2. Stellen Sie den Workflow im Chat-Modus bereit.
3. Teilen Sie den Bereitstellungslink jede Antwort verwendet die Konversations-ID wieder, damit der Workflow den Kontext beibehalten kann.
<Callout type="info">
Der Builder blockiert mehrere Chat-Trigger-Blöcke im selben Workflow.
</Callout>

View File

@@ -1,52 +1,40 @@
---
title: Übersicht
description: Grundlegende Möglichkeiten, Sim-Workflows zu starten
description: Trigger sind die grundlegenden Möglichkeiten, um Sim-Workflows zu starten
---
import { Card, Cards } from 'fumadocs-ui/components/card'
## Kern-Auslöser
Wähle einen Auslöser pro Workflow, um zu definieren, wie er startet:
Verwende den Start-Block für alles, was vom Editor, von Deploy-to-API oder von Deploy-to-Chat-Erfahrungen ausgeht. Andere Trigger bleiben für ereignisgesteuerte Workflows verfügbar:
<Cards>
<Card title="API" href="/triggers/api">
HTTP-Endpunkt, der JSON-Bodies in Workflow-Eingaben umwandelt
</Card>
<Card title="Chat" href="/triggers/chat">
Bereitgestellte Chat-Oberfläche mit Streaming-Antworten
</Card>
<Card title="Eingabeformular" href="/triggers/input-form">
Typisierte manuelle Eingabe für Editor-Ausführungen und Unterworkflows
</Card>
<Card title="Manuell" href="/triggers/manual">
Bedarfsgesteuerte Ausführungen ohne zusätzliche Daten
</Card>
<Card title="Zeitplan" href="/triggers/schedule">
Cron- oder intervallbasierte Ausführung
<Card title="Start" href="/triggers/start">
Einheitlicher Einstiegspunkt, der Editor-Ausführungen, API-Bereitstellungen und Chat-Bereitstellungen unterstützt
</Card>
<Card title="Webhook" href="/triggers/webhook">
Externe Webhook-Payloads empfangen
</Card>
<Card title="Schedule" href="/triggers/schedule">
Cron- oder intervallbasierte Ausführung
</Card>
</Cards>
## Schneller Vergleich
| Auslöser | Startbedingung |
|---------|-----------------|
| **API** | Authentifizierter HTTP POST |
| **Chat** | Chat-Deployment-Nachricht |
| **Eingabeformular** | Bei manueller Übermittlung im Editor oder übergeordneten Workflow |
| **Manuell** | Ausführen-Schaltfläche im Editor |
| **Zeitplan** | Timer, der im Zeitplan-Modal verwaltet wird |
| **Webhook** | Bei eingehendem HTTP-Request |
| **Start** | Editor läuft, Deploy-to-API-Anfragen oder Chat-Nachrichten |
| **Schedule** | Timer, der im Zeitplanblock verwaltet wird |
| **Webhook** | Bei eingehender HTTP-Anfrage |
## Verwendung von Auslösern
> Der Start-Block stellt immer `input`, `conversationId` und `files`Felder bereit. Füge benutzerdefinierte Felder zum Eingabeformat für zusätzliche strukturierte Daten hinzu.
1. Platziere den Auslöser-Block im Startslot.
2. Konfiguriere alle erforderlichen Schemas oder Authentifizierungen.
## Verwendung von Triggern
1. Platziere den Start-Block im Startslot (oder einen alternativen Trigger wie Webhook/Schedule).
2. Konfiguriere alle erforderlichen Schema- oder Authentifizierungseinstellungen.
3. Verbinde den Block mit dem Rest des Workflows.
> Deployments unterstützen jeden Auslöser. Aktualisiere den Workflow, stelle ihn neu bereit, und alle Auslöser-Einstiegspunkte übernehmen den neuen Snapshot. Erfahre mehr unter [Ausführung → Deployment-Snapshots](/execution).
Legacy-Starter-Blöcke bleiben für bestehende Flows erhalten, erscheinen aber nicht mehr in neuen Builds.
> Bereitstellungen unterstützen jeden Trigger. Aktualisiere den Workflow, stelle ihn erneut bereit, und alle Trigger-Einstiegspunkte übernehmen den neuen Snapshot. Erfahre mehr unter [Ausführung → Bereitstellungs-Snapshots](/execution).

View File

@@ -1,52 +0,0 @@
---
title: Eingabeformular-Trigger
description: Manueller Trigger mit einem strukturierten Eingabeschema
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'
## Übersicht
Verwenden Sie einen Eingabeformular-Trigger, wenn ein Workflow vom Editor aus mit typisierten Feldern gestartet werden soll. Das Ausführungspanel zeigt genau die Felder an, die Sie definieren, sodass der Workflow immer saubere Daten erhält.
## Was Sie definieren
Fügen Sie Felder im Eingabeformat-Builder hinzu (Text, Zahl, Boolean, JSON usw.). Für jedes Feld:
- Der Wert erscheint als `<blockName.field>` im Workflow.
- Die vollständige Nutzlast wird zur Vereinfachung unter `<blockName.input>` gespiegelt.
Wenn Sie das Formular leer lassen, hat der Trigger keine Ausgaben.
## Manuelle Ausführungen
<div className='flex justify-center my-6'>
<Image
src='/static/triggers/input-form-panel-light.png'
alt='Eingabeformular-Ausführungspanel'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>
Wenn Sie im Editor auf Ausführen drücken, rendert das Panel das Formular. Übermittelte Werte fließen direkt in die Trigger-Ausgabe ein, sodass nachgelagerte Blöcke darauf verweisen können, ohne zusätzliches Parsing. Zahlen werden in Zahlentypen umgewandelt, Booleans werden zu true/false, und JSON-Felder werden geparst, bevor der Workflow sie verarbeitet.
## Untergeordnete Workflows
<div className='flex justify-center my-6'>
<Image
src='/static/triggers/workflow-input-mapping-light.png'
alt='Workflow-Eingabezuordnung'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>
Eingabeformular-Trigger steuern auch den Workflow-Block. Wenn Sie einen untergeordneten Workflow einbetten, zeigt der Zuordnungsschritt die Formularfelder des untergeordneten Workflows an, sodass Sie Variablen aus dem übergeordneten Workflow verbinden können. Was auch immer Sie zuordnen, wird zur Eingabeformular-Übermittlung des untergeordneten Workflows.
<Callout>
Benötigen Sie eine schnelle Ausführungsschaltfläche ohne Felder? Verwenden Sie einen manuellen Trigger. Wählen Sie Eingabeformular, wenn Sie Validierung und eine vorhersehbare Struktur wünschen.
</Callout>

View File

@@ -1,41 +0,0 @@
---
title: Manueller Auslöser
description: Führen Sie einen Workflow auf Anforderung ohne Eingaben aus
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'
## Übersicht
Der manuelle Auslöser fügt einen einfachen Ausführen-Button am Anfang Ihres Workflows hinzu. Verwenden Sie ihn, wenn Sie den Workflow sofort ausführen möchten, ohne zusätzliche Daten zu sammeln.
## Funktionsweise
<div className='flex justify-center my-6'>
<Image
src='/static/triggers/manual-run-light.png'
alt='Ausführen-Button für manuellen Auslöser'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>
- Startet den Workflow mit dem aktiven Deployment-Snapshot
- Sendet keine Nutzlast nachgelagerte Blöcke sehen nur, was sie bereits konfiguriert haben
- Perfekt für schnelle Plausibilitätsprüfungen, Smoke-Tests oder Abläufe, die nur auf internen Variablen basieren
## Anwendungsfälle
- Starten Sie einen Workflow nach der Veröffentlichung eines neuen Deployments, um zu bestätigen, dass alles noch funktioniert
- Führen Sie Wartungsaufgaben aus, die keine externe Eingabe erfordern
- Lösen Sie untergeordnete Workflows aus, die nur Status- oder Umgebungsvariablen lesen
## Vergleich mit Eingabeformular
Benötigen Sie strukturierte Werte oder Typvalidierung zur Laufzeit? Wechseln Sie stattdessen zu einem Eingabeformular-Auslöser das Ausführungspanel sammelt diese Felder, bevor der Workflow startet.
<Callout>
Manuelle Auslöser-Ausführungen überschreiben nicht Ihren Deployment-Verlauf. Aktualisieren und stellen Sie neu bereit, wenn Canvas-Änderungen live gehen sollen.
</Callout>

View File

@@ -0,0 +1,97 @@
---
title: Start
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
Der Start-Block ist der Standard-Auslöser für Workflows, die in Sim erstellt werden. Er sammelt strukturierte Eingaben und verteilt sie an den Rest deines Graphen für Editor-Tests, API-Bereitstellungen und Chat-Erlebnisse.
<div className="flex justify-center">
<Image
src="/static/start.png"
alt="Start-Block mit Eingabeformat-Feldern"
width={360}
height={380}
className="my-6"
/>
</div>
<Callout type="info">
Der Start-Block befindet sich in der Startposition, wenn du einen Workflow erstellst. Behalte ihn dort, wenn du denselben Einstiegspunkt für Editor-Ausführungen, Deploy-to-API-Anfragen und Chat-Sitzungen verwenden möchtest. Tausche ihn mit Webhook- oder Schedule-Triggern aus, wenn du nur ereignisgesteuerte Ausführung benötigst.
</Callout>
## Von Start bereitgestellte Felder
Der Start-Block gibt je nach Ausführungsumgebung unterschiedliche Daten aus:
- **Eingabeformat-Felder** — Jedes Feld, das du hinzufügst, wird als <code>&lt;start.fieldName&gt;</code> verfügbar. Zum Beispiel erscheint ein `customerId`Feld als <code>&lt;start.customerId&gt;</code> in nachgelagerten Blöcken und Vorlagen.
- **Nur-Chat-Felder** — Wenn der Workflow über das Chat-Seitenfeld oder ein bereitgestelltes Chat-Erlebnis ausgeführt wird, stellt Sim auch <code>&lt;start.input&gt;</code> (neueste Benutzernachricht), <code>&lt;start.conversationId&gt;</code> (aktive Sitzungs-ID) und <code>&lt;start.files&gt;</code> (Chat-Anhänge) bereit.
Halte die Eingabeformat-Felder auf die Namen beschränkt, auf die du später verweisen möchtest diese Werte sind die einzigen strukturierten Felder, die über Editor-, API- und Chat-Ausführungen hinweg geteilt werden.
## Konfiguriere das Eingabeformat
Verwende den Eingabeformat-Unterblock, um das Schema zu definieren, das für alle Ausführungsmodi gilt:
1. Füge ein Feld für jeden Wert hinzu, den du sammeln möchtest.
2. Wähle einen Typ (`string`, `number`, `boolean`, `object`, `array` oder `files`). Dateifelder akzeptieren Uploads von Chat- und API-Aufrufern.
3. Gib Standardwerte an, wenn du möchtest, dass das manuelle Ausführungsmodal automatisch Testdaten einfügt. Diese Standardwerte werden für bereitgestellte Ausführungen ignoriert.
4. Ordne Felder neu an, um zu steuern, wie sie im Editor-Formular erscheinen.
Referenzieren Sie strukturierte Werte nachgelagert mit Ausdrücken wie <code>&lt;start.customerId&gt;</code> abhängig vom Block, den Sie verbinden.
## Wie es sich je nach Einstiegspunkt verhält
<Tabs items={['Editor-Ausführung', 'Bereitstellung als API', 'Bereitstellung für Chat']}>
<Tab>
<div className="space-y-3">
<p>
Wenn Sie im Editor auf <strong>Ausführen</strong> klicken, rendert der Start-Block das Eingabeformat als Formular. Standardwerte erleichtern das erneute Testen ohne erneute Dateneingabe. Durch das Absenden des Formulars wird der Workflow sofort ausgelöst und die Werte werden unter <code>&lt;start.feldName&gt;</code> (zum Beispiel <code>&lt;start.sampleField&gt;</code>) verfügbar.
</p>
<p>
Dateifelder im Formular werden direkt in die entsprechenden{' '}
<code>&lt;start.fieldName&gt;</code> hochgeladen; verwenden Sie diese Werte,
um nachgelagerte Tools oder Speicherschritte zu versorgen.
</p>
</div>
</Tab>
<Tab>
<div className="space-y-3">
<p>
Die Bereitstellung als API verwandelt das Eingabeformat in einen JSON-Vertrag für Clients. Jedes Feld wird Teil des Anforderungskörpers, und Sim erzwingt primitive Typen bei der Aufnahme. Dateifelder erwarten Objekte, die auf hochgeladene Dateien verweisen; verwenden Sie den Ausführungs-Datei-Upload-Endpunkt, bevor Sie den Workflow aufrufen.
</p>
<p>
API-Aufrufer können zusätzliche optionale Eigenschaften einbeziehen. Diese
werden in den <code>&lt;start.fieldName&gt;</code>Ausgaben beibehalten, sodass
Sie experimentieren können, ohne sofort neu bereitzustellen.
</p>
</div>
</Tab>
<Tab>
<div className="space-y-3">
<p>
Bei Chat-Bereitstellungen bindet sich der Start-Block an die aktive Konversation. Die neueste Nachricht füllt <code>&lt;start.input&gt;</code>, die Sitzungskennung ist unter <code>&lt;start.conversationId&gt;</code> verfügbar, und Benutzeranhänge erscheinen unter <code>&lt;start.files&gt;</code>, zusammen mit allen Eingabeformatfeldern, die als <code>&lt;start.fieldName&gt;</code> definiert sind.
</p>
<p>
Wenn Sie den Chat mit zusätzlichem strukturiertem Kontext starten (zum
Beispiel aus einer Einbettung), wird dieser mit den entsprechenden{' '}
<code>&lt;start.fieldName&gt;</code>Ausgaben zusammengeführt, wodurch
nachgelagerte Blöcke konsistent mit API- und manuellen Ausführungen bleiben.
</p>
</div>
</Tab>
</Tabs>
## Referenzierung von Start-Daten in nachgelagerten Komponenten
- Verbinde <code>&lt;start.fieldName&gt;</code> direkt mit Agenten, Tools oder Funktionen, die strukturierte Daten erwarten.
- Verwende Template-Syntax wie <code>&lt;start.sampleField&gt;</code> oder <code>&lt;start.files[0].url&gt;</code> (nur für Chat) in Prompt-Feldern.
- Halte <code>&lt;start.conversationId&gt;</code> bereit, wenn du Ausgaben gruppieren, den Gesprächsverlauf aktualisieren oder die Chat-API erneut aufrufen musst.
## Best Practices
- Behandle den Start-Block als einzigen Einstiegspunkt, wenn du sowohl API- als auch Chat-Aufrufer unterstützen möchtest.
- Bevorzuge benannte Eingabeformat-Felder gegenüber dem Parsen von rohem JSON in nachgelagerten Knoten; Typumwandlung erfolgt automatisch.
- Füge unmittelbar nach dem Start Validierung oder Routing hinzu, wenn bestimmte Felder für den Erfolg deines Workflows erforderlich sind.

View File

@@ -1,67 +0,0 @@
---
title: Starter (Veraltet)
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
<Callout type="warning">
Der Starter-Block ist veraltet und wurde durch spezialisierte Core-Trigger ersetzt. Bitte beachten Sie die [Core-Trigger-Dokumentation](/triggers) für die neuen API-, Chat-, Eingabeformular-, Manuell-, Zeitplan- und Webhook-Trigger.
</Callout>
Der Starter-Block ermöglicht es Ihnen, die Workflow-Ausführung manuell mit Eingabeparametern zu starten und bietet zwei Eingabemodi: strukturierte Parameter oder konversationellen Chat.
<div className="flex justify-center">
<Image
src="/static/starter.png"
alt="Starter-Block mit manuellen und Chat-Modus-Optionen"
width={500}
height={400}
className="my-6"
/>
</div>
## Ausführungsmodi
Wählen Sie Ihre Eingabemethode aus dem Dropdown-Menü:
<Tabs items={['Manueller Modus', 'Chat-Modus']}>
<Tab>
<div className="space-y-4">
<ul className="list-disc space-y-1 pl-6">
<li><strong>API-freundliche strukturierte Eingaben</strong>: Definieren Sie spezifische Parameter (Text, Zahl, Boolean, JSON, Datei, Datum)</li>
<li><strong>Testen während der Workflow-Erstellung</strong>: Schnelle Iteration beim Debuggen von Workflows</li>
</ul>
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="input-format.mp4" width={700} height={450} />
</div>
<p className="text-sm text-gray-600">Konfigurieren Sie Eingabeparameter, die beim Bereitstellen als API-Endpunkt verfügbar sein werden.</p>
</div>
</Tab>
<Tab>
<div className="space-y-4">
<ul className="list-disc space-y-1 pl-6">
<li><strong>Natürliche Sprache</strong>: Benutzer geben Fragen oder Anfragen ein</li>
<li><strong>Konversationell</strong>: Ideal für KI-gestützte Workflows</li>
</ul>
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="chat-input.mp4" width={700} height={450} />
</div>
<p className="text-sm text-gray-600">Chatten Sie mit Ihrem Workflow und greifen Sie auf Eingabetext, Konversations-ID und hochgeladene Dateien für kontextbezogene Antworten zu.</p>
</div>
</Tab>
</Tabs>
## Verwendung von Chat-Variablen
Im Chat-Modus können Sie über spezielle Variablen auf Benutzereingaben und Konversationskontext zugreifen:
- **`<start.input>`** - Enthält den Nachrichtentext des Benutzers
- **`<start.conversationId>`** - Eindeutige Kennung für den Konversationsverlauf
- **`<start.files>`** - Array von Dateien, die vom Benutzer hochgeladen wurden (falls vorhanden)

View File

@@ -1,357 +0,0 @@
---
title: Loop Block YAML Schema
description: YAML-Konfigurationsreferenz für Loop-Blöcke
---
## Schema-Definition
```yaml
type: object
required:
- type
- name
- connections
properties:
type:
type: string
enum: [loop]
description: Block type identifier
name:
type: string
description: Display name for this loop block
inputs:
type: object
description: Optional. If omitted, defaults will be applied.
properties:
loopType:
type: string
enum: [for, forEach]
description: Type of loop to execute
default: for
iterations:
type: number
description: Number of iterations (for 'for' loops)
default: 5
minimum: 1
maximum: 1000
collection:
type: string
description: Collection to iterate over (for 'forEach' loops)
default: ""
maxConcurrency:
type: number
description: Maximum concurrent executions
default: 1
minimum: 1
maximum: 10
connections:
type: object
properties:
# Nested format (recommended)
loop:
type: object
properties:
start:
type: string
description: Target block ID to execute inside the loop
end:
type: string
description: Target block ID for loop completion (optional)
# Direct handle format (alternative)
loop-start-source:
type: string | string[]
description: Target block ID to execute inside the loop (direct format)
loop-end-source:
type: string | string[]
description: Target block ID for loop completion (direct format, optional)
error:
type: string
description: Target block ID for error handling
note: Use either the nested 'loop' format OR the direct 'loop-start-source' format, not both
```
## Verbindungskonfiguration
Loop-Blöcke unterstützen zwei Verbindungsformate:
### Direktes Handle-Format (Alternative)
```yaml
connections:
loop-start-source: <string> # Target block ID to execute inside the loop
loop-end-source: <string> # Target block ID after loop completion (optional)
error: <string> # Target block ID for error handling (optional)
```
Beide Formate funktionieren identisch. Verwenden Sie das Format, das Ihnen besser gefällt.
## Konfiguration von untergeordneten Blöcken
Blöcke innerhalb einer Schleife müssen ihre `parentId` auf die Loop-Block-ID gesetzt haben. Die Eigenschaft `extent` wird automatisch auf `'parent'` gesetzt und muss nicht angegeben werden:
```yaml
loop-1:
type: loop
name: "Process Items"
inputs:
loopType: forEach
collection: <start.items>
connections:
loop:
start: process-item
end: final-results
# Child block inside the loop
process-item:
type: agent
name: "Process Item"
parentId: loop-1 # References the loop block
inputs:
systemPrompt: "Process this item"
userPrompt: <loop.currentItem>
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
```
## Beispiele
### For-Schleife (feste Anzahl von Iterationen)
```yaml
countdown-loop:
type: loop
name: "Countdown Loop"
inputs:
loopType: for
iterations: 5
connections:
loop:
start: countdown-agent
end: countdown-complete
countdown-agent:
type: agent
name: "Countdown Agent"
parentId: countdown-loop
inputs:
systemPrompt: "Generate a countdown message"
userPrompt: "Count down from 5. Current number: <loop.index>"
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
```
### ForEach-Schleife (Verarbeitung von Sammlungen)
```yaml
email-processor-loop:
type: loop
name: "Email Processor Loop"
inputs:
loopType: forEach
collection: <start.emails>
connections:
loop:
start: process-single-email
end: all-emails-processed
process-single-email:
type: agent
name: "Process Single Email"
parentId: email-processor-loop
inputs:
systemPrompt: "Classify and respond to this email"
userPrompt: "Email content: <loop.currentItem>"
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
```
### Schleife mit mehreren untergeordneten Blöcken
```yaml
data-analysis-loop:
type: loop
name: "Data Analysis Loop"
inputs:
loopType: forEach
collection: <data-fetcher.records>
maxConcurrency: 3
connections:
loop:
start: validate-record
end: generate-report
error: handle-loop-error
validate-record:
type: function
name: "Validate Record"
parentId: data-analysis-loop
inputs:
code: |
const record = <loop.currentItem>;
const index = <loop.index>;
// Validate the record
if (!record.id || !record.data) {
throw new Error(`Invalid record at index ${index}`);
}
return {
valid: true,
recordId: record.id,
processedAt: new Date().toISOString()
};
connections:
success: analyze-record
error: record-error
analyze-record:
type: agent
name: "Analyze Record"
parentId: data-analysis-loop
inputs:
systemPrompt: "Analyze this data record and extract insights"
userPrompt: |
Record ID: <validaterecord.recordId>
Data: <loop.currentItem.data>
Position in collection: <loop.index>
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
connections:
success: store-analysis
store-analysis:
type: function
name: "Store Analysis"
parentId: data-analysis-loop
inputs:
code: |
const analysis = <analyzerecord.content>;
const recordId = <validaterecord.recordId>;
// Store analysis result
return {
recordId,
analysis,
completedAt: new Date().toISOString()
};
```
### Schleife für parallele Verarbeitung
```yaml
parallel-processing-loop:
type: loop
name: "Parallel Processing Loop"
inputs:
loopType: forEach
collection: <start.tasks>
maxConcurrency: 5
connections:
loop:
start: process-task
end: aggregate-results
process-task:
type: api
name: "Process Task"
parentId: parallel-processing-loop
inputs:
url: "https://api.example.com/process"
method: POST
headers:
- key: "Authorization"
value: "Bearer {{API_TOKEN}}"
body: |
{
"taskId": "<loop.currentItem.id>",
"data": "<loop.currentItem.data>"
}
connections:
success: task-completed
```
### Beispiel für direktes Handle-Format
Dieselbe Schleife kann mit dem direkten Handle-Format geschrieben werden:
```yaml
my-loop:
type: loop
name: "Process Items"
inputs:
loopType: forEach
collection: <start.items>
connections:
loop-start-source: process-item # Direct handle format
loop-end-source: final-results # Direct handle format
error: handle-error
process-item:
type: agent
name: "Process Item"
parentId: my-loop
inputs:
systemPrompt: "Process this item"
userPrompt: <loop.currentItem>
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
```
### Minimales Schleifenbeispiel (mit Standardwerten)
Sie können den Abschnitt `inputs` vollständig weglassen, dann werden Standardwerte angewendet:
```yaml
simple-loop:
type: loop
name: "Simple Loop"
# No inputs section - defaults to loopType: 'for', iterations: 5
connections:
loop-start-source: process-step
loop-end-source: complete
process-step:
type: agent
name: "Process Step"
parentId: simple-loop
inputs:
systemPrompt: "Execute step"
userPrompt: "Step <loop.index>"
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
```
Diese Schleife führt standardmäßig 5 Iterationen aus.
## Schleifenvariablen
Innerhalb von Schleifenunterblöcken sind diese speziellen Variablen verfügbar:
```yaml
# Available in all child blocks of the loop
<loop.index> # Current iteration number (0-based)
<loop.currentItem> # Current item being processed (forEach loops)
<loop.items> # Full collection (forEach loops)
```
## Ausgabereferenzen
Nach Abschluss einer Schleife können Sie auf ihre aggregierten Ergebnisse verweisen:
```yaml
# In blocks after the loop
final-processor:
inputs:
all-results: <loop-name.results> # Array of all iteration results
total-count: <loop-name.count> # Number of iterations completed
```
## Bewährte Praktiken
- Setzen Sie angemessene Iterationsgrenzen, um lange Ausführungszeiten zu vermeiden
- Verwenden Sie forEach für die Verarbeitung von Sammlungen, for-Schleifen für feste Iterationen
- Erwägen Sie die Verwendung von maxConcurrency für I/O-gebundene Operationen
- Integrieren Sie Fehlerbehandlung für eine robuste Schleifenausführung
- Verwenden Sie aussagekräftige Namen für Schleifenunterblöcke
- Testen Sie zuerst mit kleinen Sammlungen
- Überwachen Sie die Ausführungszeit für große Sammlungen

View File

@@ -16,7 +16,7 @@ Blocks are the building components you connect together to create AI workflows.
## Core Block Types
Sim provides seven core block types that handle the essential functions of AI workflows:
Sim provides essential block types that handle the core functions of AI workflows:
### Processing Blocks
- **[Agent](/blocks/agent)** - Chat with AI models (OpenAI, Anthropic, Google, local models)
@@ -28,6 +28,10 @@ Sim provides seven core block types that handle the essential functions of AI wo
- **[Router](/blocks/router)** - Use AI to intelligently route requests to different paths
- **[Evaluator](/blocks/evaluator)** - Score and assess content quality using AI
### Control Flow Blocks
- **[Variables](/blocks/variables)** - Set and manage workflow-scoped variables
- **[Wait](/blocks/wait)** - Pause workflow execution for a specified time delay
### Output Blocks
- **[Response](/blocks/response)** - Format and return final results from your workflow
@@ -123,4 +127,10 @@ Each block type has specific configuration options:
<Card title="Condition Block" href="/blocks/condition">
Create branching logic based on data evaluation
</Card>
<Card title="Variables Block" href="/blocks/variables">
Set and manage workflow-scoped variables
</Card>
<Card title="Wait Block" href="/blocks/wait">
Pause workflow execution for specified time delays
</Card>
</Cards>

View File

@@ -9,7 +9,7 @@ import { Image } from '@/components/ui/image'
The Loop block is a container block in Sim that allows you to create iterative workflows by executing a group of blocks repeatedly. Loops enable iterative processing in your workflows.
The Loop block supports two types of iteration:
The Loop block supports four types of iteration:
<Callout type="info">
Loop blocks are container nodes that can hold other blocks inside them. The blocks inside a loop will execute multiple times based on your configuration.
@@ -27,7 +27,7 @@ The Loop block enables you to:
<strong>Repeat operations</strong>: Execute blocks a fixed number of times
</Step>
<Step>
<strong>Sequential processing</strong>: Handle data transformation in ordered iterations
<strong>Loop on conditions</strong>: Continue executing while or until a condition is met
</Step>
<Step>
<strong>Aggregate results</strong>: Collect outputs from all loop iterations
@@ -47,9 +47,9 @@ The Loop block executes contained blocks through sequential iteration:
### Loop Type
Choose between two types of loops:
Choose between four types of loops:
<Tabs items={['For Loop', 'ForEach Loop']}>
<Tabs items={['For Loop', 'ForEach Loop', 'While Loop', 'Do-While Loop']}>
<Tab>
**For Loop (Iterations)** - A numeric loop that executes a fixed number of times:
@@ -96,6 +96,54 @@ Choose between two types of loops:
- Iteration 3: Process "orange"
```
</Tab>
<Tab>
**While Loop (Condition-based)** - Continues executing while a condition evaluates to true:
<div className="flex justify-center">
<Image
src="/static/blocks/loop-3.png"
alt="While Loop with condition"
width={500}
height={400}
className="my-6"
/>
</div>
Use this when you need to loop until a specific condition is met. The condition is checked **before** each iteration.
```
Example: While <variable.i> < 10
- Check condition → Execute if true
- Inside loop: Increment <variable.i>
- Inside loop: Variables assigns i = <variable.i> + 1
- Check condition → Execute if true
- Check condition → Exit if false
```
</Tab>
<Tab>
**Do-While Loop (Condition-based)** - Executes at least once, then continues while a condition is true:
<div className="flex justify-center">
<Image
src="/static/blocks/loop-3.png"
alt="Do-While Loop with condition"
width={500}
height={400}
className="my-6"
/>
</div>
Use this when you need to execute at least once, then loop until a condition is met. The condition is checked **after** each iteration.
```
Example: Do-while <variable.i> < 10
- Execute blocks
- Inside loop: Increment <variable.i>
- Inside loop: Variables assigns i = <variable.i> + 1
- Check condition → Continue if true
- Check condition → Exit if false
```
</Tab>
</Tabs>
## How to Use Loops
@@ -139,6 +187,19 @@ After a loop completes, you can access aggregated results:
</ol>
</div>
### Counter with While Loop
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Process items with counter-based loop</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Initialize workflow variable: `i = 0`</li>
<li>While loop with condition: `<variable.i>` \< 10</li>
<li>Inside loop: Agent processes item at index `<variable.i>`</li>
<li>Inside loop: Variables increments `i = <variable.i> + 1`</li>
<li>Loop continues while i is less than 10</li>
</ol>
</div>
## Advanced Features
### Limitations
@@ -162,7 +223,7 @@ After a loop completes, you can access aggregated results:
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Loop Type</strong>: Choose between 'for' or 'forEach'
<strong>Loop Type</strong>: Choose between 'for', 'forEach', 'while', or 'doWhile'
</li>
<li>
<strong>Iterations</strong>: Number of times to execute (for loops)
@@ -170,6 +231,9 @@ After a loop completes, you can access aggregated results:
<li>
<strong>Collection</strong>: Array or object to iterate over (forEach loops)
</li>
<li>
<strong>Condition</strong>: Boolean expression to evaluate (while/do-while loops)
</li>
</ul>
</Tab>
<Tab>

View File

@@ -11,6 +11,8 @@
"parallel",
"response",
"router",
"variables",
"wait",
"workflow"
]
}

View File

@@ -0,0 +1,123 @@
---
title: Variables
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Image } from '@/components/ui/image'
The Variables block updates workflow variables during execution. Variables must first be initialized in your workflow's Variables section, then you can use this block to update their values as your workflow runs.
<div className="flex justify-center">
<Image
src="/static/blocks/variables.png"
alt="Variables Block"
width={500}
height={350}
className="my-6"
/>
</div>
<Callout>
Access variables anywhere in your workflow using `<variable.variableName>` syntax.
</Callout>
## Overview
The Variables block enables you to:
<Steps>
<Step>
<strong>Update workflow variables</strong>: Change variable values during execution
</Step>
<Step>
<strong>Store dynamic data</strong>: Capture block outputs into variables
</Step>
<Step>
<strong>Maintain state</strong>: Track counters, flags, and intermediate results
</Step>
</Steps>
## How to Use Variables
### 1. Initialize in Workflow Variables
First, create your variables in the workflow's Variables section (accessible from the workflow settings):
```
customerEmail = ""
retryCount = 0
currentStatus = "pending"
```
### 2. Update with Variables Block
Use the Variables block to update these values during execution:
```
customerEmail = <api.email>
retryCount = <variable.retryCount> + 1
currentStatus = "processing"
```
### 3. Access Anywhere
Reference variables in any block:
```
Agent prompt: "Send email to <variable.customerEmail>"
Condition: <variable.retryCount> < 5
API body: {"status": "<variable.currentStatus>"}
```
## Example Use Cases
### Loop Counter and State
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Track progress through loop iterations</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Initialize in workflow: `itemsProcessed = 0`, `lastResult = ""`</li>
<li>Loop iterates over items</li>
<li>Inside loop: Agent processes current item</li>
<li>Inside loop: Variables updates `itemsProcessed = <variable.itemsProcessed> + 1`</li>
<li>Inside loop: Variables updates `lastResult = <agent.content>`</li>
<li>Next iteration: Access `<variable.lastResult>` to compare with current result</li>
</ol>
</div>
### Retry Logic
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Track API retry attempts</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Initialize in workflow: `retryCount = 0`</li>
<li>API block attempts request</li>
<li>If failed, Variables increments: `retryCount = <variable.retryCount> + 1`</li>
<li>Condition checks if `<variable.retryCount>` \< 3 to retry or fail</li>
</ol>
</div>
### Dynamic Configuration
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Store user context for workflow</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Initialize in workflow: `userId = ""`, `userTier = ""`</li>
<li>API fetches user profile</li>
<li>Variables stores: `userId = <api.id>`, `userTier = <api.tier>`</li>
<li>Agent personalizes response using `<variable.userTier>`</li>
<li>API uses `<variable.userId>` for logging</li>
</ol>
</div>
## Outputs
- **`<variables.assignments>`**: JSON object with all variable assignments from this block
## Best Practices
- **Initialize in workflow settings**: Always create variables in the workflow Variables section before using them
- **Update dynamically**: Use Variables blocks to update values based on block outputs or calculations
- **Use in loops**: Perfect for tracking state across iterations
- **Name descriptively**: Use clear names like `currentIndex`, `totalProcessed`, or `lastError`

View File

@@ -0,0 +1,99 @@
---
title: Wait
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Image } from '@/components/ui/image'
The Wait block pauses your workflow for a specified amount of time before continuing to the next block. Use it to add delays between actions, respect API rate limits, or space out operations.
<div className="flex justify-center">
<Image
src="/static/blocks/wait.png"
alt="Wait Block"
width={500}
height={350}
className="my-6"
/>
</div>
## Overview
The Wait block enables you to:
<Steps>
<Step>
<strong>Add time delays</strong>: Pause execution between workflow steps
</Step>
<Step>
<strong>Respect rate limits</strong>: Space out API calls to stay within limits
</Step>
<Step>
<strong>Schedule sequences</strong>: Create timed workflows with delays between actions
</Step>
</Steps>
## Configuration
### Wait Amount
Enter the duration to pause execution:
- **Input**: Positive number
- **Maximum**: 600 seconds (10 minutes) or 10 minutes
### Unit
Choose the time unit:
- **Seconds**: For short, precise delays
- **Minutes**: For longer pauses
<Callout type="info">
Wait blocks can be cancelled by stopping the workflow. The maximum wait time is 10 minutes.
</Callout>
## Outputs
- **`<wait.waitDuration>`**: The wait duration in milliseconds
- **`<wait.status>`**: Status of the wait ('waiting', 'completed', or 'cancelled')
## Example Use Cases
### API Rate Limiting
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Stay within API rate limits</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API block makes first request</li>
<li>Wait block pauses for 2 seconds</li>
<li>API block makes second request</li>
<li>Process continues without hitting rate limits</li>
</ol>
</div>
### Timed Notifications
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Send follow-up messages</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Function sends initial email</li>
<li>Wait block pauses for 5 minutes</li>
<li>Function sends follow-up email</li>
</ol>
</div>
### Processing Delays
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Scenario: Wait for external system</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API block triggers job in external system</li>
<li>Wait block pauses for 30 seconds</li>
<li>API block checks job completion status</li>
</ol>
</div>
## Best Practices
- **Keep waits reasonable**: Use Wait for delays up to 10 minutes. For longer delays, consider scheduled workflows
- **Monitor execution time**: Remember that waits extend total workflow duration

View File

@@ -283,7 +283,6 @@ class AsyncExecutionResult:
class WorkflowStatus:
is_deployed: bool
deployed_at: Optional[str] = None
is_published: bool = False
needs_redeployment: bool = False
```

View File

@@ -294,7 +294,6 @@ interface AsyncExecutionResult {
interface WorkflowStatus {
isDeployed: boolean;
deployedAt?: string;
isPublished: boolean;
needsRedeployment: boolean;
}
```

View File

@@ -214,14 +214,14 @@ Populate Clay with data from a JSON file. Enables direct communication and notif
| --------- | ---- | -------- | ----------- |
| `webhookURL` | string | Yes | The webhook URL to populate |
| `data` | json | Yes | The data to populate |
| `authToken` | string | Yes | Auth token for Clay webhook authentication |
| `authToken` | string | No | Optional auth token for Clay webhook authentication \(most webhooks do not require this\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Clay populate operation results including response data from Clay webhook |
| `data` | json | Response data from Clay webhook |
| `metadata` | object | Webhook response metadata |

View File

@@ -43,7 +43,7 @@ In Sim, the Confluence integration enables your agents to access and leverage yo
## Usage Instructions
Integrate Confluence into the workflow. Can read and update a page.
Integrate Confluence into the workflow. Can read, create, update, delete pages, manage comments, attachments, labels, and search content.
@@ -94,6 +94,254 @@ Update a Confluence page using the Confluence API.
| `title` | string | Updated page title |
| `success` | boolean | Update operation success status |
### `confluence_create_page`
Create a new page in a Confluence space.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `spaceId` | string | Yes | Confluence space ID where the page will be created |
| `title` | string | Yes | Title of the new page |
| `content` | string | Yes | Page content in Confluence storage format \(HTML\) |
| `parentId` | string | No | Parent page ID if creating a child page |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of creation |
| `pageId` | string | Created page ID |
| `title` | string | Page title |
| `url` | string | Page URL |
### `confluence_delete_page`
Delete a Confluence page (moves it to trash where it can be restored).
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `pageId` | string | Yes | Confluence page ID to delete |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of deletion |
| `pageId` | string | Deleted page ID |
| `deleted` | boolean | Deletion status |
### `confluence_search`
Search for content across Confluence pages, blog posts, and other content.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `query` | string | Yes | Search query string |
| `limit` | number | No | Maximum number of results to return \(default: 25\) |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of search |
| `results` | array | Search results |
### `confluence_create_comment`
Add a comment to a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `pageId` | string | Yes | Confluence page ID to comment on |
| `comment` | string | Yes | Comment text in Confluence storage format |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of creation |
| `commentId` | string | Created comment ID |
| `pageId` | string | Page ID |
### `confluence_list_comments`
List all comments on a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `pageId` | string | Yes | Confluence page ID to list comments from |
| `limit` | number | No | Maximum number of comments to return \(default: 25\) |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval |
| `comments` | array | List of comments |
### `confluence_update_comment`
Update an existing comment on a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `commentId` | string | Yes | Confluence comment ID to update |
| `comment` | string | Yes | Updated comment text in Confluence storage format |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of update |
| `commentId` | string | Updated comment ID |
| `updated` | boolean | Update status |
### `confluence_delete_comment`
Delete a comment from a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `commentId` | string | Yes | Confluence comment ID to delete |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of deletion |
| `commentId` | string | Deleted comment ID |
| `deleted` | boolean | Deletion status |
### `confluence_list_attachments`
List all attachments on a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `pageId` | string | Yes | Confluence page ID to list attachments from |
| `limit` | number | No | Maximum number of attachments to return \(default: 25\) |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval |
| `attachments` | array | List of attachments |
### `confluence_delete_attachment`
Delete an attachment from a Confluence page (moves to trash).
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `attachmentId` | string | Yes | Confluence attachment ID to delete |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of deletion |
| `attachmentId` | string | Deleted attachment ID |
| `deleted` | boolean | Deletion status |
### `confluence_list_labels`
List all labels on a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `pageId` | string | Yes | Confluence page ID to list labels from |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval |
| `labels` | array | List of labels |
### `confluence_get_space`
Get details about a specific Confluence space.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `spaceId` | string | Yes | Confluence space ID to retrieve |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval |
| `spaceId` | string | Space ID |
| `name` | string | Space name |
| `key` | string | Space key |
| `type` | string | Space type |
| `status` | string | Space status |
| `url` | string | Space URL |
### `confluence_list_spaces`
List all Confluence spaces accessible to the user.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `limit` | number | No | Maximum number of spaces to return \(default: 25\) |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of retrieval |
| `spaces` | array | List of spaces |
## Notes

View File

@@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="discord"
color="#E0E0E0"
color="#5865F2"
icon={true}
iconSvg={`<svg className="block-icon"
@@ -57,7 +57,7 @@ Discord components in Sim use efficient lazy loading, only fetching data when ne
## Usage Instructions
Integrate Discord into the workflow. Can send and get messages, get server information, and get a users information.
Comprehensive Discord integration: messages, threads, channels, roles, members, invites, and webhooks.
@@ -75,6 +75,7 @@ Send a message to a Discord channel
| `channelId` | string | Yes | The Discord channel ID to send the message to |
| `content` | string | No | The text content of the message |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `files` | file[] | No | Files to attach to the message |
#### Output
@@ -100,7 +101,7 @@ Retrieve messages from a Discord channel
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `messages` | array | Array of Discord messages with full metadata |
| `data` | object | Container for messages data |
### `discord_get_server`
@@ -138,6 +139,620 @@ Retrieve information about a Discord user
| `message` | string | Success or error message |
| `data` | object | Discord user information |
### `discord_edit_message`
Edit an existing message in a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID containing the message |
| `messageId` | string | Yes | The ID of the message to edit |
| `content` | string | No | The new text content for the message |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Updated Discord message data |
### `discord_delete_message`
Delete a message from a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID containing the message |
| `messageId` | string | Yes | The ID of the message to delete |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_add_reaction`
Add a reaction emoji to a Discord message
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID containing the message |
| `messageId` | string | Yes | The ID of the message to react to |
| `emoji` | string | Yes | The emoji to react with \(unicode emoji or custom emoji in name:id format\) |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_remove_reaction`
Remove a reaction from a Discord message
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID containing the message |
| `messageId` | string | Yes | The ID of the message with the reaction |
| `emoji` | string | Yes | The emoji to remove \(unicode emoji or custom emoji in name:id format\) |
| `userId` | string | No | The user ID whose reaction to remove \(omit to remove bot's own reaction\) |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_pin_message`
Pin a message in a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID containing the message |
| `messageId` | string | Yes | The ID of the message to pin |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_unpin_message`
Unpin a message in a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID containing the message |
| `messageId` | string | Yes | The ID of the message to unpin |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_create_thread`
Create a thread in a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID to create the thread in |
| `name` | string | Yes | The name of the thread \(1-100 characters\) |
| `messageId` | string | No | The message ID to create a thread from \(if creating from existing message\) |
| `autoArchiveDuration` | number | No | Duration in minutes to auto-archive the thread \(60, 1440, 4320, 10080\) |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Created thread data |
### `discord_join_thread`
Join a thread in Discord
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `threadId` | string | Yes | The thread ID to join |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_leave_thread`
Leave a thread in Discord
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `threadId` | string | Yes | The thread ID to leave |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_archive_thread`
Archive or unarchive a thread in Discord
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `threadId` | string | Yes | The thread ID to archive/unarchive |
| `archived` | boolean | Yes | Whether to archive \(true\) or unarchive \(false\) the thread |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Updated thread data |
### `discord_create_channel`
Create a new channel in a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `name` | string | Yes | The name of the channel \(1-100 characters\) |
| `type` | number | No | Channel type \(0=text, 2=voice, 4=category, 5=announcement, 13=stage\) |
| `topic` | string | No | Channel topic \(0-1024 characters\) |
| `parentId` | string | No | Parent category ID for the channel |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Created channel data |
### `discord_update_channel`
Update a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID to update |
| `name` | string | No | The new name for the channel |
| `topic` | string | No | The new topic for the channel |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Updated channel data |
### `discord_delete_channel`
Delete a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID to delete |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_get_channel`
Get information about a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID to retrieve |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Channel data |
### `discord_create_role`
Create a new role in a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `name` | string | Yes | The name of the role |
| `color` | number | No | RGB color value as integer \(e.g., 0xFF0000 for red\) |
| `hoist` | boolean | No | Whether to display role members separately from online members |
| `mentionable` | boolean | No | Whether the role can be mentioned |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Created role data |
### `discord_update_role`
Update a role in a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `roleId` | string | Yes | The role ID to update |
| `name` | string | No | The new name for the role |
| `color` | number | No | RGB color value as integer |
| `hoist` | boolean | No | Whether to display role members separately |
| `mentionable` | boolean | No | Whether the role can be mentioned |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Updated role data |
### `discord_delete_role`
Delete a role from a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `roleId` | string | Yes | The role ID to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_assign_role`
Assign a role to a member in a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to assign the role to |
| `roleId` | string | Yes | The role ID to assign |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_remove_role`
Remove a role from a member in a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to remove the role from |
| `roleId` | string | Yes | The role ID to remove |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_kick_member`
Kick a member from a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to kick |
| `reason` | string | No | Reason for kicking the member |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_ban_member`
Ban a member from a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to ban |
| `reason` | string | No | Reason for banning the member |
| `deleteMessageDays` | number | No | Number of days to delete messages for \(0-7\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_unban_member`
Unban a member from a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to unban |
| `reason` | string | No | Reason for unbanning the member |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_get_member`
Get information about a member in a Discord server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Member data |
### `discord_update_member`
Update a member in a Discord server (e.g., change nickname)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
| `userId` | string | Yes | The user ID to update |
| `nick` | string | No | New nickname for the member \(null to remove\) |
| `mute` | boolean | No | Whether to mute the member in voice channels |
| `deaf` | boolean | No | Whether to deafen the member in voice channels |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Updated member data |
### `discord_create_invite`
Create an invite link for a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID to create an invite for |
| `maxAge` | number | No | Duration of invite in seconds \(0 = never expires, default 86400\) |
| `maxUses` | number | No | Max number of uses \(0 = unlimited, default 0\) |
| `temporary` | boolean | No | Whether invite grants temporary membership |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Created invite data |
### `discord_get_invite`
Get information about a Discord invite
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `inviteCode` | string | Yes | The invite code to retrieve |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Invite data |
### `discord_delete_invite`
Delete a Discord invite
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `inviteCode` | string | Yes | The invite code to delete |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
### `discord_create_webhook`
Create a webhook in a Discord channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `channelId` | string | Yes | The Discord channel ID to create the webhook in |
| `name` | string | Yes | Name of the webhook \(1-80 characters\) |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Created webhook data |
### `discord_execute_webhook`
Execute a Discord webhook to send a message
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookId` | string | Yes | The webhook ID |
| `webhookToken` | string | Yes | The webhook token |
| `content` | string | Yes | The message content to send |
| `username` | string | No | Override the default username of the webhook |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Message sent via webhook |
### `discord_get_webhook`
Get information about a Discord webhook
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `webhookId` | string | Yes | The webhook ID to retrieve |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Webhook data |
### `discord_delete_webhook`
Delete a Discord webhook
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | The bot token for authentication |
| `webhookId` | string | Yes | The webhook ID to delete |
| `serverId` | string | Yes | The Discord server ID \(guild ID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
## Notes

View File

@@ -63,6 +63,7 @@ Convert TTS using ElevenLabs voices
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `audioUrl` | string | The URL of the generated audio |
| `audioFile` | file | The generated audio file |

View File

@@ -62,6 +62,13 @@ Search the web using Exa AI. Returns relevant search results with titles, URLs,
| `numResults` | number | No | Number of results to return \(default: 10, max: 25\) |
| `useAutoprompt` | boolean | No | Whether to use autoprompt to improve the query \(default: false\) |
| `type` | string | No | Search type: neural, keyword, auto or fast \(default: auto\) |
| `includeDomains` | string | No | Comma-separated list of domains to include in results |
| `excludeDomains` | string | No | Comma-separated list of domains to exclude from results |
| `category` | string | No | Filter by category: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `text` | boolean | No | Include full text content in results \(default: false\) |
| `highlights` | boolean | No | Include highlighted snippets in results \(default: false\) |
| `summary` | boolean | No | Include AI-generated summaries in results \(default: false\) |
| `livecrawl` | string | No | Live crawling mode: always, fallback, or never \(default: never\) |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output
@@ -81,6 +88,10 @@ Retrieve the contents of webpages using Exa AI. Returns the title, text content,
| `urls` | string | Yes | Comma-separated list of URLs to retrieve content from |
| `text` | boolean | No | If true, returns full page text with default settings. If false, disables text return. |
| `summaryQuery` | string | No | Query to guide the summary generation |
| `subpages` | number | No | Number of subpages to crawl from the provided URLs |
| `subpageTarget` | string | No | Comma-separated keywords to target specific subpages \(e.g., "docs,tutorial,about"\) |
| `highlights` | boolean | No | Include highlighted snippets in results \(default: false\) |
| `livecrawl` | string | No | Live crawling mode: always, fallback, or never \(default: never\) |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output
@@ -100,6 +111,13 @@ Find webpages similar to a given URL using Exa AI. Returns a list of similar lin
| `url` | string | Yes | The URL to find similar links for |
| `numResults` | number | No | Number of similar links to return \(default: 10, max: 25\) |
| `text` | boolean | No | Whether to include the full text of the similar pages |
| `includeDomains` | string | No | Comma-separated list of domains to include in results |
| `excludeDomains` | string | No | Comma-separated list of domains to exclude from results |
| `excludeSourceDomain` | boolean | No | Exclude the source domain from results \(default: false\) |
| `category` | string | No | Filter by category: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `highlights` | boolean | No | Include highlighted snippets in results \(default: false\) |
| `summary` | boolean | No | Include AI-generated summaries in results \(default: false\) |
| `livecrawl` | string | No | Live crawling mode: always, fallback, or never \(default: never\) |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output
@@ -136,7 +154,7 @@ Perform comprehensive research using AI to generate detailed reports with citati
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Research query or topic |
| `includeText` | boolean | No | Include full text content in results |
| `model` | string | No | Research model: exa-research-fast, exa-research \(default\), or exa-research-pro |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output

View File

@@ -1,6 +1,6 @@
---
title: Firecrawl
description: Scrape or search the web
description: Scrape, search, crawl, map, and extract web data
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -59,7 +59,7 @@ This allows your agents to gather information from websites, extract structured
## Usage Instructions
Integrate Firecrawl into the workflow. Can search, scrape, or crawl websites.
Integrate Firecrawl into the workflow. Scrape pages, search the web, crawl entire sites, map URL structures, and extract structured data with AI.
@@ -121,6 +121,58 @@ Crawl entire websites and extract structured content from all accessible pages
| --------- | ---- | ----------- |
| `pages` | array | Array of crawled pages with their content and metadata |
### `firecrawl_map`
Get a complete list of URLs from any website quickly and reliably. Useful for discovering all pages on a site without crawling them.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `url` | string | Yes | The base URL to map and discover links from |
| `search` | string | No | Filter results by relevance to a search term \(e.g., "blog"\) |
| `sitemap` | string | No | Controls sitemap usage: "skip", "include" \(default\), or "only" |
| `includeSubdomains` | boolean | No | Whether to include URLs from subdomains \(default: true\) |
| `ignoreQueryParameters` | boolean | No | Exclude URLs containing query strings \(default: true\) |
| `limit` | number | No | Maximum number of links to return \(max: 100,000, default: 5,000\) |
| `timeout` | number | No | Request timeout in milliseconds |
| `location` | json | No | Geographic context for proxying \(country, languages\) |
| `apiKey` | string | Yes | Firecrawl API key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the mapping operation was successful |
| `links` | array | Array of discovered URLs from the website |
### `firecrawl_extract`
Extract structured data from entire webpages using natural language prompts and JSON schema. Powerful agentic feature for intelligent data extraction.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `urls` | json | Yes | Array of URLs to extract data from \(supports glob format\) |
| `prompt` | string | No | Natural language guidance for the extraction process |
| `schema` | json | No | JSON Schema defining the structure of data to extract |
| `enableWebSearch` | boolean | No | Enable web search to find supplementary information \(default: false\) |
| `ignoreSitemap` | boolean | No | Ignore sitemap.xml files during scanning \(default: false\) |
| `includeSubdomains` | boolean | No | Extend scanning to subdomains \(default: true\) |
| `showSources` | boolean | No | Return data sources in the response \(default: false\) |
| `ignoreInvalidURLs` | boolean | No | Skip invalid URLs in the array \(default: true\) |
| `scrapeOptions` | json | No | Advanced scraping configuration options |
| `apiKey` | string | Yes | Firecrawl API key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the extraction operation was successful |
| `data` | object | Extracted structured data according to the schema or prompt |
| `sources` | array | Data sources \(only if showSources is enabled\) |
## Notes

View File

@@ -230,4 +230,4 @@ curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
- Category: `triggers`
- Type: `generic_webhook`
- **File Support**: Available via input format configuration
- **Max File Size**: 20MB per file
- **Max File Size**: 20MB per file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
---
title: Gmail
description: Send Gmail or trigger workflows from Gmail events
description: Send, read, search, and move Gmail messages or trigger workflows from Gmail events
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -45,13 +45,21 @@ With Gmail, you can:
- **Access from anywhere**: Use Gmail across devices with synchronized content and settings
- **Integrate with other services**: Connect with Google Calendar, Drive, and other productivity tools
In Sim, the Gmail integration enables your agents to send, read, and search emails programmatically. This allows for powerful automation scenarios such as sending notifications, processing incoming messages, extracting information from emails, and managing communication workflows. Your agents can compose and send personalized emails, search for specific messages using Gmail's query syntax, and extract content from emails to use in other parts of your workflow. Coming soon, agents will also be able to listen for new emails in real-time, enabling responsive workflows that can trigger actions based on incoming messages. This integration bridges the gap between your AI workflows and email communications, enabling seamless interaction with one of the world's most widely used communication platforms.
In Sim, the Gmail integration enables your agents to fully manage emails programmatically with comprehensive automation capabilities. This allows for powerful automation scenarios such as sending notifications, processing incoming messages, extracting information from emails, and managing communication workflows at scale. Your agents can:
- **Compose and send**: Create personalized emails with attachments and send to recipients
- **Read and search**: Find specific messages using Gmail's query syntax and extract content
- **Organize intelligently**: Mark messages as read/unread, archive or unarchive emails, and manage labels
- **Clean up inbox**: Delete messages, move emails between labels, and maintain inbox zero
- **Trigger workflows**: Listen for new emails in real-time, enabling responsive workflows that react to incoming messages
This integration bridges the gap between your AI workflows and email communications, enabling seamless interaction with one of the world's most widely used communication platforms. Whether you're automating customer support responses, processing receipts, managing subscriptions, or coordinating team communications, the Gmail integration provides all the tools you need for comprehensive email automation.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Gmail into the workflow. Can send, read, and search emails. Can be used in trigger mode to trigger a workflow when a new email is received.
Integrate Gmail into the workflow. Can send, read, search, and move emails. Can be used in trigger mode to trigger a workflow when a new email is received.
@@ -66,8 +74,11 @@ Send emails using Gmail
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `to` | string | Yes | Recipient email address |
| `subject` | string | Yes | Email subject |
| `subject` | string | No | Email subject |
| `body` | string | Yes | Email body content |
| `contentType` | string | No | Content type for the email body \(text or html\) |
| `threadId` | string | No | Thread ID to reply to \(for threading\) |
| `replyToMessageId` | string | No | Gmail message ID to reply to - use the "id" field from Gmail Read results \(not the RFC "messageId"\) |
| `cc` | string | No | CC recipients \(comma-separated\) |
| `bcc` | string | No | BCC recipients \(comma-separated\) |
| `attachments` | file[] | No | Files to attach to the email |
@@ -88,8 +99,11 @@ Draft emails using Gmail
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `to` | string | Yes | Recipient email address |
| `subject` | string | Yes | Email subject |
| `subject` | string | No | Email subject |
| `body` | string | Yes | Email body content |
| `contentType` | string | No | Content type for the email body \(text or html\) |
| `threadId` | string | No | Thread ID to reply to \(for threading\) |
| `replyToMessageId` | string | No | Gmail message ID to reply to - use the "id" field from Gmail Read results \(not the RFC "messageId"\) |
| `cc` | string | No | CC recipients \(comma-separated\) |
| `bcc` | string | No | BCC recipients \(comma-separated\) |
| `attachments` | file[] | No | Files to attach to the email draft |
@@ -141,6 +155,146 @@ Search emails in Gmail
| `content` | string | Search results summary |
| `metadata` | object | Search metadata |
### `gmail_move`
Move emails between Gmail labels/folders
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to move |
| `addLabelIds` | string | Yes | Comma-separated label IDs to add \(e.g., INBOX, Label_123\) |
| `removeLabelIds` | string | No | Comma-separated label IDs to remove \(e.g., INBOX, SPAM\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_mark_read`
Mark a Gmail message as read
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to mark as read |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_mark_unread`
Mark a Gmail message as unread
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to mark as unread |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_archive`
Archive a Gmail message (remove from inbox)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to archive |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_unarchive`
Unarchive a Gmail message (move back to inbox)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to unarchive |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_delete`
Delete a Gmail message (move to trash)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_add_label`
Add label(s) to a Gmail message
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to add labels to |
| `labelIds` | string | Yes | Comma-separated label IDs to add \(e.g., INBOX, Label_123\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
### `gmail_remove_label`
Remove label(s) from a Gmail message
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to remove labels from |
| `labelIds` | string | Yes | Comma-separated label IDs to remove \(e.g., INBOX, Label_123\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Email metadata |
## Notes

View File

@@ -88,8 +88,9 @@ Upload a file to Google Drive
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | Yes | The name of the file to upload |
| `content` | string | Yes | The content of the file to upload |
| `mimeType` | string | No | The MIME type of the file to upload |
| `file` | file | No | Binary file to upload \(UserFile object\) |
| `content` | string | No | Text content to upload \(use this OR file, not both\) |
| `mimeType` | string | No | The MIME type of the file to upload \(auto-detected from file if not provided\) |
| `folderSelector` | string | No | Select the folder to upload the file to |
| `folderId` | string | No | The ID of the folder to upload the file to \(internal use\) |
@@ -117,6 +118,24 @@ Create a new folder in Google Drive
| --------- | ---- | ----------- |
| `file` | json | Created folder metadata including ID, name, and parent information |
### `google_drive_download`
Download a file from Google Drive (exports Google Workspace files automatically)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file to download |
| `mimeType` | string | No | The MIME type to export Google Workspace files to \(optional\) |
| `fileName` | string | No | Optional filename override |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | file | Downloaded file stored in execution files |
### `google_drive_list`
List files and folders in Google Drive

View File

@@ -1,6 +1,6 @@
---
title: Jina
description: Convert website content into text
description: Search the web or extract content from URLs
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -63,7 +63,7 @@ This integration is particularly valuable for building agents that need to gathe
## Usage Instructions
Integrate Jina into the workflow. Extracts content from websites.
Integrate Jina AI into the workflow. Search the web and get LLM-friendly results, or extract clean content from specific URLs with advanced parsing options.
@@ -78,16 +78,55 @@ Extract and process web content into clean, LLM-friendly text using Jina AI Read
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `url` | string | Yes | The URL to read and convert to markdown |
| `useReaderLMv2` | boolean | No | Whether to use ReaderLM-v2 for better quality |
| `useReaderLMv2` | boolean | No | Whether to use ReaderLM-v2 for better quality \(3x token cost\) |
| `gatherLinks` | boolean | No | Whether to gather all links at the end |
| `jsonResponse` | boolean | No | Whether to return response in JSON format |
| `apiKey` | string | Yes | Your Jina AI API key |
| `withImagesummary` | boolean | No | Gather all images from the page with metadata |
| `retainImages` | string | No | Control image inclusion: "none" removes all, "all" keeps all |
| `returnFormat` | string | No | Output format: markdown, html, text, screenshot, or pageshot |
| `withIframe` | boolean | No | Include iframe content in extraction |
| `withShadowDom` | boolean | No | Extract Shadow DOM content |
| `noCache` | boolean | No | Bypass cached content for real-time retrieval |
| `withGeneratedAlt` | boolean | No | Generate alt text for images using VLM |
| `robotsTxt` | string | No | Bot User-Agent for robots.txt checking |
| `dnt` | boolean | No | Do Not Track - prevents caching/tracking |
| `noGfm` | boolean | No | Disable GitHub Flavored Markdown |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | The extracted content from the URL, processed into clean, LLM-friendly text |
| `links` | array | List of links found on the page \(when gatherLinks or withLinksummary is enabled\) |
| `images` | array | List of images found on the page \(when withImagesummary is enabled\) |
### `jina_search`
Search the web and return top 5 results with LLM-friendly content. Each result is automatically processed through Jina Reader API. Supports geographic filtering, site restrictions, and pagination.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `q` | string | Yes | Search query string |
| `apiKey` | string | Yes | Your Jina AI API key |
| `num` | number | No | Maximum number of results per page \(default: 5\) |
| `site` | string | No | Restrict results to specific domain\(s\). Can be comma-separated for multiple sites \(e.g., "jina.ai,github.com"\) |
| `withFavicon` | boolean | No | Include website favicons in results |
| `withImagesummary` | boolean | No | Gather all images from result pages with metadata |
| `withLinksummary` | boolean | No | Gather all links from result pages |
| `retainImages` | string | No | Control image inclusion: "none" removes all, "all" keeps all |
| `noCache` | boolean | No | Bypass cached content for real-time retrieval |
| `withGeneratedAlt` | boolean | No | Generate alt text for images using VLM |
| `respondWith` | string | No | Set to "no-content" to get only metadata without page content |
| `returnFormat` | string | No | Output format: markdown, html, text, screenshot, or pageshot |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | Array of search results, each containing title, description, url, and LLM-friendly content |

View File

@@ -43,7 +43,7 @@ In Sim, the Jira integration allows your agents to seamlessly interact with your
## Usage Instructions
Integrate Jira into the workflow. Can read, write, and update issues.
Integrate Jira into the workflow. Can read, write, and update issues. Can also trigger workflows based on Jira webhook events.
@@ -137,6 +137,376 @@ Retrieve multiple Jira issues in bulk
| `success` | boolean | Operation success status |
| `output` | array | Array of Jira issues with summary, description, created and updated timestamps |
### `jira_delete_issue`
Delete a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to delete \(e.g., PROJ-123\) |
| `deleteSubtasks` | boolean | No | Whether to delete subtasks. If false, parent issues with subtasks cannot be deleted. |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted issue details with timestamp, issue key, and success status |
### `jira_assign_issue`
Assign a Jira issue to a user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to assign \(e.g., PROJ-123\) |
| `accountId` | string | Yes | Account ID of the user to assign the issue to. Use "-1" for automatic assignment or null to unassign. |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Assignment details with timestamp, issue key, assignee ID, and success status |
### `jira_transition_issue`
Move a Jira issue between workflow statuses (e.g., To Do -> In Progress)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to transition \(e.g., PROJ-123\) |
| `transitionId` | string | Yes | ID of the transition to execute \(e.g., "11" for "To Do", "21" for "In Progress"\) |
| `comment` | string | No | Optional comment to add when transitioning the issue |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Transition details with timestamp, issue key, transition ID, and success status |
### `jira_search_issues`
Search for Jira issues using JQL (Jira Query Language)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `jql` | string | Yes | JQL query string to search for issues \(e.g., "project = PROJ AND status = Open"\) |
| `startAt` | number | No | The index of the first result to return \(for pagination\) |
| `maxResults` | number | No | Maximum number of results to return \(default: 50\) |
| `fields` | array | No | Array of field names to return \(default: \['summary', 'status', 'assignee', 'created', 'updated'\]\) |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search results with timestamp, total count, pagination details, and array of matching issues |
### `jira_add_comment`
Add a comment to a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to add comment to \(e.g., PROJ-123\) |
| `body` | string | Yes | Comment body text |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Comment details with timestamp, issue key, comment ID, body, and success status |
### `jira_get_comments`
Get all comments from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to get comments from \(e.g., PROJ-123\) |
| `startAt` | number | No | Index of the first comment to return \(default: 0\) |
| `maxResults` | number | No | Maximum number of comments to return \(default: 50\) |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Comments data with timestamp, issue key, total count, and array of comments |
### `jira_update_comment`
Update an existing comment on a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key containing the comment \(e.g., PROJ-123\) |
| `commentId` | string | Yes | ID of the comment to update |
| `body` | string | Yes | Updated comment text |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated comment details with timestamp, issue key, comment ID, body text, and success status |
### `jira_delete_comment`
Delete a comment from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key containing the comment \(e.g., PROJ-123\) |
| `commentId` | string | Yes | ID of the comment to delete |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deletion details with timestamp, issue key, comment ID, and success status |
### `jira_get_attachments`
Get all attachments from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to get attachments from \(e.g., PROJ-123\) |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Attachments data with timestamp, issue key, and array of attachments |
### `jira_delete_attachment`
Delete an attachment from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `attachmentId` | string | Yes | ID of the attachment to delete |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deletion details with timestamp, attachment ID, and success status |
### `jira_add_worklog`
Add a time tracking worklog entry to a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to add worklog to \(e.g., PROJ-123\) |
| `timeSpentSeconds` | number | Yes | Time spent in seconds |
| `comment` | string | No | Optional comment for the worklog entry |
| `started` | string | No | Optional start time in ISO format \(defaults to current time\) |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Worklog details with timestamp, issue key, worklog ID, time spent in seconds, and success status |
### `jira_get_worklogs`
Get all worklog entries from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to get worklogs from \(e.g., PROJ-123\) |
| `startAt` | number | No | Index of the first worklog to return \(default: 0\) |
| `maxResults` | number | No | Maximum number of worklogs to return \(default: 50\) |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Worklogs data with timestamp, issue key, total count, and array of worklogs |
### `jira_update_worklog`
Update an existing worklog entry on a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key containing the worklog \(e.g., PROJ-123\) |
| `worklogId` | string | Yes | ID of the worklog entry to update |
| `timeSpentSeconds` | number | No | Time spent in seconds |
| `comment` | string | No | Optional comment for the worklog entry |
| `started` | string | No | Optional start time in ISO format |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Worklog update details with timestamp, issue key, worklog ID, and success status |
### `jira_delete_worklog`
Delete a worklog entry from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key containing the worklog \(e.g., PROJ-123\) |
| `worklogId` | string | Yes | ID of the worklog entry to delete |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deletion details with timestamp, issue key, worklog ID, and success status |
### `jira_create_issue_link`
Create a link relationship between two Jira issues
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `inwardIssueKey` | string | Yes | Jira issue key for the inward issue \(e.g., PROJ-123\) |
| `outwardIssueKey` | string | Yes | Jira issue key for the outward issue \(e.g., PROJ-456\) |
| `linkType` | string | Yes | The type of link relationship \(e.g., "Blocks", "Relates to", "Duplicates"\) |
| `comment` | string | No | Optional comment to add to the issue link |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Issue link details with timestamp, inward issue key, outward issue key, link type, and success status |
### `jira_delete_issue_link`
Delete a link between two Jira issues
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `linkId` | string | Yes | ID of the issue link to delete |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deletion details with timestamp, link ID, and success status |
### `jira_add_watcher`
Add a watcher to a Jira issue to receive notifications about updates
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to add watcher to \(e.g., PROJ-123\) |
| `accountId` | string | Yes | Account ID of the user to add as watcher |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Watcher details with timestamp, issue key, watcher account ID, and success status |
### `jira_remove_watcher`
Remove a watcher from a Jira issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to remove watcher from \(e.g., PROJ-123\) |
| `accountId` | string | Yes | Account ID of the user to remove as watcher |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Removal details with timestamp, issue key, watcher account ID, and success status |
## Notes

File diff suppressed because it is too large Load Diff

View File

@@ -59,8 +59,15 @@ Search the web for information using Linkup
| --------- | ---- | -------- | ----------- |
| `q` | string | Yes | The search query |
| `depth` | string | Yes | Search depth \(has to either be "standard" or "deep"\) |
| `outputType` | string | Yes | Type of output to return \(has to either be "sourcedAnswer" or "searchResults"\) |
| `outputType` | string | Yes | Type of output to return \(has to be "sourcedAnswer" or "searchResults"\) |
| `apiKey` | string | Yes | Enter your Linkup API key |
| `includeImages` | boolean | No | Whether to include images in search results |
| `fromDate` | string | No | Start date for filtering results \(YYYY-MM-DD format\) |
| `toDate` | string | No | End date for filtering results \(YYYY-MM-DD format\) |
| `excludeDomains` | string | No | Comma-separated list of domain names to exclude from search results |
| `includeDomains` | string | No | Comma-separated list of domain names to restrict search results to |
| `includeInlineCitations` | boolean | No | Add inline citations to answers \(only applies when outputType is "sourcedAnswer"\) |
| `includeSources` | boolean | No | Include sources in response |
#### Output

View File

@@ -57,15 +57,18 @@
"sms",
"stagehand",
"stagehand_agent",
"stripe",
"supabase",
"tavily",
"telegram",
"thinking",
"translate",
"twilio_sms",
"twilio_voice",
"typeform",
"vision",
"wealthbox",
"webflow",
"webhook",
"whatsapp",
"wikipedia",

View File

@@ -1,6 +1,6 @@
---
title: Microsoft Planner
description: Read and create tasks in Microsoft Planner
description: Manage tasks, plans, and buckets in Microsoft Planner
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -122,7 +122,7 @@ In Sim, the Microsoft Planner integration allows your agents to programmatically
## Usage Instructions
Integrate Microsoft Planner into the workflow. Can read and create tasks.
Integrate Microsoft Planner into the workflow. Manage tasks, plans, buckets, and task details including checklists and references.
@@ -170,6 +170,225 @@ Create a new task in Microsoft Planner
| `task` | object | The created task object with all properties |
| `metadata` | object | Metadata including planId, taskId, and taskUrl |
### `microsoft_planner_update_task`
Update a task in Microsoft Planner
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Yes | The ID of the task to update |
| `etag` | string | Yes | The ETag value from the task to update \(If-Match header\) |
| `title` | string | No | The new title of the task |
| `bucketId` | string | No | The bucket ID to move the task to |
| `dueDateTime` | string | No | The due date and time for the task \(ISO 8601 format\) |
| `startDateTime` | string | No | The start date and time for the task \(ISO 8601 format\) |
| `percentComplete` | number | No | The percentage of task completion \(0-100\) |
| `priority` | number | No | The priority of the task \(0-10\) |
| `assigneeUserId` | string | No | The user ID to assign the task to |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the task was updated successfully |
| `message` | string | Success message when task is updated |
| `task` | object | The updated task object with all properties |
| `taskId` | string | ID of the updated task |
| `etag` | string | New ETag after update - use this for subsequent operations |
| `metadata` | object | Metadata including taskId, planId, and taskUrl |
### `microsoft_planner_delete_task`
Delete a task from Microsoft Planner
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Yes | The ID of the task to delete |
| `etag` | string | Yes | The ETag value from the task to delete \(If-Match header\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the task was deleted successfully |
| `deleted` | boolean | Confirmation of deletion |
| `metadata` | object | Additional metadata |
### `microsoft_planner_list_plans`
List all plans shared with the current user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether plans were retrieved successfully |
| `plans` | array | Array of plan objects shared with the current user |
| `metadata` | object | Metadata including userId and count |
### `microsoft_planner_read_plan`
Get details of a specific Microsoft Planner plan
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Yes | The ID of the plan to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the plan was retrieved successfully |
| `plan` | object | The plan object with all properties |
| `metadata` | object | Metadata including planId and planUrl |
### `microsoft_planner_list_buckets`
List all buckets in a Microsoft Planner plan
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Yes | The ID of the plan |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether buckets were retrieved successfully |
| `buckets` | array | Array of bucket objects |
| `metadata` | object | Metadata including planId and count |
### `microsoft_planner_read_bucket`
Get details of a specific bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bucketId` | string | Yes | The ID of the bucket to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the bucket was retrieved successfully |
| `bucket` | object | The bucket object with all properties |
| `metadata` | object | Metadata including bucketId and planId |
### `microsoft_planner_create_bucket`
Create a new bucket in a Microsoft Planner plan
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Yes | The ID of the plan where the bucket will be created |
| `name` | string | Yes | The name of the bucket |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the bucket was created successfully |
| `bucket` | object | The created bucket object with all properties |
| `metadata` | object | Metadata including bucketId and planId |
### `microsoft_planner_update_bucket`
Update a bucket in Microsoft Planner
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bucketId` | string | Yes | The ID of the bucket to update |
| `name` | string | No | The new name of the bucket |
| `etag` | string | Yes | The ETag value from the bucket to update \(If-Match header\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the bucket was updated successfully |
| `bucket` | object | The updated bucket object with all properties |
| `metadata` | object | Metadata including bucketId and planId |
### `microsoft_planner_delete_bucket`
Delete a bucket from Microsoft Planner
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `bucketId` | string | Yes | The ID of the bucket to delete |
| `etag` | string | Yes | The ETag value from the bucket to delete \(If-Match header\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the bucket was deleted successfully |
| `deleted` | boolean | Confirmation of deletion |
| `metadata` | object | Additional metadata |
### `microsoft_planner_get_task_details`
Get detailed information about a task including checklist and references
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Yes | The ID of the task |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the task details were retrieved successfully |
| `taskDetails` | object | The task details including description, checklist, and references |
| `etag` | string | The ETag value for this task details - use this for update operations |
| `metadata` | object | Metadata including taskId |
### `microsoft_planner_update_task_details`
Update task details including description, checklist items, and references in Microsoft Planner
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `taskId` | string | Yes | The ID of the task |
| `etag` | string | Yes | The ETag value from the task details to update \(If-Match header\) |
| `description` | string | No | The description of the task |
| `checklist` | object | No | Checklist items as a JSON object |
| `references` | object | No | References as a JSON object |
| `previewType` | string | No | Preview type: automatic, noPreview, checklist, description, or reference |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the task details were updated successfully |
| `taskDetails` | object | The updated task details object with all properties |
| `metadata` | object | Metadata including taskId |
## Notes

View File

@@ -1,6 +1,6 @@
---
title: Microsoft Teams
description: Read, write, and create messages
description: Manage messages, reactions, and members in Teams
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -98,7 +98,7 @@ In Sim, the Microsoft Teams integration enables your agents to interact directly
## Usage Instructions
Integrate Microsoft Teams into the workflow. Can read and write chat messages, and read and write channel messages. Can be used in trigger mode to trigger a workflow when a message is sent to a chat or channel.
Integrate Microsoft Teams into the workflow. Read, write, update, and delete chat and channel messages. Reply to messages, add reactions, and list team/channel members. Can be used in trigger mode to trigger a workflow when a message is sent to a chat or channel. To mention users in messages, wrap their name in `<at>` tags: `<at>userName</at>`
@@ -138,6 +138,7 @@ Write or update content in a Microsoft Teams chat
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Yes | The ID of the chat to write to |
| `content` | string | Yes | The content to write to the message |
| `files` | file[] | No | Files to attach to the message |
#### Output
@@ -187,6 +188,7 @@ Write or send a message to a Microsoft Teams channel
| `teamId` | string | Yes | The ID of the team to write to |
| `channelId` | string | Yes | The ID of the channel to write to |
| `content` | string | Yes | The content to write to the channel |
| `files` | file[] | No | Files to attach to the message |
#### Output
@@ -200,6 +202,209 @@ Write or send a message to a Microsoft Teams channel
| `url` | string | Web URL to the message |
| `updatedContent` | boolean | Whether content was successfully updated |
### `microsoft_teams_update_chat_message`
Update an existing message in a Microsoft Teams chat
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Yes | The ID of the chat containing the message |
| `messageId` | string | Yes | The ID of the message to update |
| `content` | string | Yes | The new content for the message |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the update was successful |
| `messageId` | string | ID of the updated message |
| `updatedContent` | boolean | Whether content was successfully updated |
### `microsoft_teams_update_channel_message`
Update an existing message in a Microsoft Teams channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | The ID of the team |
| `channelId` | string | Yes | The ID of the channel containing the message |
| `messageId` | string | Yes | The ID of the message to update |
| `content` | string | Yes | The new content for the message |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the update was successful |
| `messageId` | string | ID of the updated message |
| `updatedContent` | boolean | Whether content was successfully updated |
### `microsoft_teams_delete_chat_message`
Soft delete a message in a Microsoft Teams chat
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Yes | The ID of the chat containing the message |
| `messageId` | string | Yes | The ID of the message to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |
| `deleted` | boolean | Confirmation of deletion |
| `messageId` | string | ID of the deleted message |
### `microsoft_teams_delete_channel_message`
Soft delete a message in a Microsoft Teams channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | The ID of the team |
| `channelId` | string | Yes | The ID of the channel containing the message |
| `messageId` | string | Yes | The ID of the message to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |
| `deleted` | boolean | Confirmation of deletion |
| `messageId` | string | ID of the deleted message |
### `microsoft_teams_reply_to_message`
Reply to an existing message in a Microsoft Teams channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | The ID of the team |
| `channelId` | string | Yes | The ID of the channel |
| `messageId` | string | Yes | The ID of the message to reply to |
| `content` | string | Yes | The reply content |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the reply was successful |
| `messageId` | string | ID of the reply message |
| `updatedContent` | boolean | Whether content was successfully sent |
### `microsoft_teams_get_message`
Get a specific message from a Microsoft Teams chat or channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | The ID of the team \(for channel messages\) |
| `channelId` | string | No | The ID of the channel \(for channel messages\) |
| `chatId` | string | No | The ID of the chat \(for chat messages\) |
| `messageId` | string | Yes | The ID of the message to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the retrieval was successful |
| `content` | string | The message content |
| `metadata` | object | Message metadata including sender, timestamp, etc. |
### `microsoft_teams_set_reaction`
Add an emoji reaction to a message in Microsoft Teams
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | The ID of the team \(for channel messages\) |
| `channelId` | string | No | The ID of the channel \(for channel messages\) |
| `chatId` | string | No | The ID of the chat \(for chat messages\) |
| `messageId` | string | Yes | The ID of the message to react to |
| `reactionType` | string | Yes | The emoji reaction \(e.g., ❤️, 👍, 😊\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the reaction was added successfully |
| `reactionType` | string | The emoji that was added |
| `messageId` | string | ID of the message |
### `microsoft_teams_unset_reaction`
Remove an emoji reaction from a message in Microsoft Teams
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | The ID of the team \(for channel messages\) |
| `channelId` | string | No | The ID of the channel \(for channel messages\) |
| `chatId` | string | No | The ID of the chat \(for chat messages\) |
| `messageId` | string | Yes | The ID of the message |
| `reactionType` | string | Yes | The emoji reaction to remove \(e.g., ❤️, 👍, 😊\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the reaction was removed successfully |
| `reactionType` | string | The emoji that was removed |
| `messageId` | string | ID of the message |
### `microsoft_teams_list_team_members`
List all members of a Microsoft Teams team
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | The ID of the team |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the listing was successful |
| `members` | array | Array of team members |
| `memberCount` | number | Total number of members |
### `microsoft_teams_list_channel_members`
List all members of a Microsoft Teams channel
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | The ID of the team |
| `channelId` | string | Yes | The ID of the channel |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the listing was successful |
| `members` | array | Array of channel members |
| `memberCount` | number | Total number of members |
## Notes

View File

@@ -1,6 +1,6 @@
---
title: OneDrive
description: Create, upload, and list files
description: Create, upload, download, list, and delete files
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -51,7 +51,7 @@ In Sim, the OneDrive integration enables your agents to directly interact with y
## Usage Instructions
Integrate OneDrive into the workflow. Can create, upload, and list files.
Integrate OneDrive into the workflow. Can create text and Excel files, upload files, download files, list files, and delete files or folders.
@@ -66,7 +66,9 @@ Upload a file to OneDrive
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | Yes | The name of the file to upload |
| `content` | string | Yes | The content of the file to upload |
| `file` | file | No | The file to upload \(binary\) |
| `content` | string | No | The text content to upload \(if no file is provided\) |
| `mimeType` | string | No | The MIME type of the file to create \(e.g., text/plain for .txt, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet for .xlsx\) |
| `folderSelector` | string | No | Select the folder to upload the file to |
| `manualFolderId` | string | No | Manually entered folder ID \(advanced mode\) |
@@ -96,6 +98,23 @@ Create a new folder in OneDrive
| `success` | boolean | Whether the folder was created successfully |
| `file` | object | The created folder object with metadata including id, name, webViewLink, and timestamps |
### `onedrive_download`
Download a file from OneDrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file to download |
| `fileName` | string | No | Optional filename override |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | file | Downloaded file stored in execution files |
### `onedrive_list`
List files and folders in OneDrive
@@ -117,6 +136,24 @@ List files and folders in OneDrive
| `files` | array | Array of file and folder objects with metadata |
| `nextPageToken` | string | Token for retrieving the next page of results \(optional\) |
### `onedrive_delete`
Delete a file or folder from OneDrive
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file or folder to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the file was deleted successfully |
| `deleted` | boolean | Confirmation that the file was deleted |
| `fileId` | string | The ID of the deleted file |
## Notes

View File

@@ -1,6 +1,6 @@
---
title: Outlook
description: Access Outlook
description: Send, read, draft, forward, and move Outlook email messages
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -134,13 +134,21 @@ With Microsoft Outlook, you can:
- **Access across devices**: Use Outlook on desktop, web, and mobile with real-time sync
- **Maintain privacy and security**: Leverage enterprise-grade encryption and compliance controls
In Sim, the Microsoft Outlook integration enables your agents to interact directly with email and calendar data programmatically. This allows for powerful automation scenarios such as sending custom email updates, parsing incoming messages for workflow triggers, creating calendar events, and managing task reminders. By connecting Sim with Microsoft Outlook, you enable intelligent agents to automate communications, streamline scheduling, and maintain visibility into organizational correspondence — all within your workflow ecosystem.
In Sim, the Microsoft Outlook integration enables your agents to interact directly with email and calendar data programmatically with full email management capabilities. This allows for powerful automation scenarios across your entire email workflow. Your agents can:
- **Send and draft**: Compose professional emails with attachments and save drafts for later
- **Read and forward**: Access inbox messages and forward important communications to team members
- **Organize efficiently**: Mark emails as read or unread, move messages between folders, and copy emails for reference
- **Clean up inbox**: Delete unwanted messages and maintain organized folder structures
- **Trigger workflows**: React to new emails in real-time, enabling responsive automation based on incoming messages
By connecting Sim with Microsoft Outlook, you enable intelligent agents to automate communications, streamline scheduling, maintain visibility into organizational correspondence, and keep inboxes organized — all within your workflow ecosystem. Whether you're managing customer communications, processing invoices, coordinating team updates, or automating follow-ups, the Outlook integration provides enterprise-grade email automation capabilities.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Outlook into the workflow. Can read, draft, and send email messages. Can be used in trigger mode to trigger a workflow when a new email is received.
Integrate Outlook into the workflow. Can read, draft, send, forward, and move email messages. Can be used in trigger mode to trigger a workflow when a new email is received.
@@ -157,10 +165,12 @@ Send emails using Outlook
| `to` | string | Yes | Recipient email address |
| `subject` | string | Yes | Email subject |
| `body` | string | Yes | Email body content |
| `contentType` | string | No | Content type for the email body \(text or html\) |
| `replyToMessageId` | string | No | Message ID to reply to \(for threading\) |
| `conversationId` | string | No | Conversation ID for threading |
| `cc` | string | No | CC recipients \(comma-separated\) |
| `bcc` | string | No | BCC recipients \(comma-separated\) |
| `attachments` | file[] | No | Files to attach to the email |
#### Output
@@ -182,8 +192,10 @@ Draft emails using Outlook
| `to` | string | Yes | Recipient email address |
| `subject` | string | Yes | Email subject |
| `body` | string | Yes | Email body content |
| `contentType` | string | No | Content type for the email body \(text or html\) |
| `cc` | string | No | CC recipients \(comma-separated\) |
| `bcc` | string | No | BCC recipients \(comma-separated\) |
| `attachments` | file[] | No | Files to attach to the email draft |
#### Output
@@ -235,6 +247,104 @@ Forward an existing Outlook message to specified recipients
| `message` | string | Success or error message |
| `results` | object | Delivery result details |
### `outlook_move`
Move emails between Outlook folders
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to move |
| `destinationId` | string | Yes | ID of the destination folder |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Email move success status |
| `message` | string | Success or error message |
| `messageId` | string | ID of the moved message |
| `newFolderId` | string | ID of the destination folder |
### `outlook_mark_read`
Mark an Outlook message as read
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to mark as read |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `message` | string | Success or error message |
| `messageId` | string | ID of the message |
| `isRead` | boolean | Read status of the message |
### `outlook_mark_unread`
Mark an Outlook message as unread
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to mark as unread |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `message` | string | Success or error message |
| `messageId` | string | ID of the message |
| `isRead` | boolean | Read status of the message |
### `outlook_delete`
Delete an Outlook message (move to Deleted Items)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `message` | string | Success or error message |
| `messageId` | string | ID of the deleted message |
| `status` | string | Deletion status |
### `outlook_copy`
Copy an Outlook message to another folder
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Yes | ID of the message to copy |
| `destinationId` | string | Yes | ID of the destination folder |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Email copy success status |
| `message` | string | Success or error message |
| `originalMessageId` | string | ID of the original message |
| `copiedMessageId` | string | ID of the copied message |
| `destinationFolderId` | string | ID of the destination folder |
## Notes

View File

@@ -1,6 +1,6 @@
---
title: Parallel AI
description: Search with Parallel AI
description: Web research with Parallel AI
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -71,7 +71,7 @@ In Sim, the Parallel AI integration empowers your agents to perform web searches
## Usage Instructions
Integrate Parallel AI into the workflow. Can search the web.
Integrate Parallel AI into the workflow. Can search the web, extract information from URLs, and conduct deep research.
@@ -98,6 +98,50 @@ Search the web using Parallel AI. Provides comprehensive search results with int
| --------- | ---- | ----------- |
| `results` | array | Search results with excerpts from relevant pages |
### `parallel_extract`
Extract targeted information from specific URLs using Parallel AI. Processes provided URLs to pull relevant content based on your objective.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `urls` | string | Yes | Comma-separated list of URLs to extract information from |
| `objective` | string | Yes | What information to extract from the provided URLs |
| `excerpts` | boolean | Yes | Include relevant excerpts from the content |
| `full_content` | boolean | Yes | Include full page content |
| `apiKey` | string | Yes | Parallel AI API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | Extracted information from the provided URLs |
### `parallel_deep_research`
Conduct comprehensive deep research across the web using Parallel AI. Synthesizes information from multiple sources with citations. Can take up to 15 minutes to complete.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `input` | string | Yes | Research query or question \(up to 15,000 characters\) |
| `processor` | string | No | Compute level: base, lite, pro, ultra, ultra2x, ultra4x, ultra8x \(default: base\) |
| `include_domains` | string | No | Comma-separated list of domains to restrict research to \(source policy\) |
| `exclude_domains` | string | No | Comma-separated list of domains to exclude from research \(source policy\) |
| `apiKey` | string | Yes | Parallel AI API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Task status \(running, completed, failed\) |
| `run_id` | string | Unique ID for this research task |
| `message` | string | Status message \(for running tasks\) |
| `content` | object | Research results \(structured based on output_schema\) |
| `basis` | array | Citations and sources with excerpts and confidence levels |
## Notes

View File

@@ -1,6 +1,6 @@
---
title: Perplexity
description: Use Perplexity AI chat models
description: Use Perplexity AI for chat and search
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -37,7 +37,7 @@ In Sim, the Perplexity integration enables your agents to leverage these powerfu
## Usage Instructions
Integrate Perplexity into the workflow. Can generate completions using Perplexity AI chat models.
Integrate Perplexity into the workflow. Can generate completions using Perplexity AI chat models or perform web searches with advanced filtering.
@@ -65,6 +65,31 @@ Generate completions using Perplexity AI chat models
| `success` | boolean | Operation success status |
| `output` | object | Chat completion results |
### `perplexity_search`
Get ranked search results from Perplexity
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | A search query or array of queries \(max 5 for multi-query search\) |
| `max_results` | number | No | Maximum number of search results to return \(1-20, default: 10\) |
| `search_domain_filter` | array | No | List of domains/URLs to limit search results to \(max 20\) |
| `max_tokens_per_page` | number | No | Maximum number of tokens retrieved from each webpage \(default: 1024\) |
| `country` | string | No | Country code to filter search results \(e.g., US, GB, DE\) |
| `search_recency_filter` | string | No | Filter results by recency: hour, day, week, month, or year |
| `search_after_date` | string | No | Include only content published after this date \(format: MM/DD/YYYY\) |
| `search_before_date` | string | No | Include only content published before this date \(format: MM/DD/YYYY\) |
| `apiKey` | string | Yes | Perplexity API key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search results |
## Notes

View File

@@ -143,6 +143,7 @@ Search for similar vectors in a Qdrant collection
| `vector` | array | Yes | Vector to search for |
| `limit` | number | No | Number of results to return |
| `filter` | object | No | Filter to apply to the search |
| `search_return_data` | string | No | Data to return from search |
| `with_payload` | boolean | No | Include payload in response |
| `with_vector` | boolean | No | Include vector in response |
@@ -165,6 +166,7 @@ Fetch points by ID from a Qdrant collection
| `apiKey` | string | No | Qdrant API key \(optional\) |
| `collection` | string | Yes | Collection name |
| `ids` | array | Yes | Array of point IDs to fetch |
| `fetch_return_data` | string | No | Data to return from fetch |
| `with_payload` | boolean | No | Include payload in response |
| `with_vector` | boolean | No | Include vector in response |

View File

@@ -39,7 +39,7 @@ These operations let your agents access and analyze Reddit content as part of yo
## Usage Instructions
Integrate Reddit into the workflow. Can get posts and comments from a subreddit.
Integrate Reddit into workflows. Read posts, comments, and search content. Submit posts, vote, reply, edit, and manage your Reddit account.
@@ -57,6 +57,11 @@ Fetch posts from a subreddit with different sorting options
| `sort` | string | No | Sort method for posts: "hot", "new", "top", or "rising" \(default: "hot"\) |
| `limit` | number | No | Maximum number of posts to return \(default: 10, max: 100\) |
| `time` | string | No | Time filter for "top" sorted posts: "day", "week", "month", "year", or "all" \(default: "day"\) |
| `after` | string | No | Fullname of a thing to fetch items after \(for pagination\) |
| `before` | string | No | Fullname of a thing to fetch items before \(for pagination\) |
| `count` | number | No | A count of items already seen in the listing \(used for numbering\) |
| `show` | string | No | Show items that would normally be filtered \(e.g., "all"\) |
| `sr_detail` | boolean | No | Expand subreddit details in the response |
#### Output
@@ -77,6 +82,16 @@ Fetch comments from a specific Reddit post
| `subreddit` | string | Yes | The subreddit where the post is located \(without the r/ prefix\) |
| `sort` | string | No | Sort method for comments: "confidence", "top", "new", "controversial", "old", "random", "qa" \(default: "confidence"\) |
| `limit` | number | No | Maximum number of comments to return \(default: 50, max: 100\) |
| `depth` | number | No | Maximum depth of subtrees in the thread \(controls nested comment levels\) |
| `context` | number | No | Number of parent comments to include |
| `showedits` | boolean | No | Show edit information for comments |
| `showmore` | boolean | No | Include "load more comments" elements in the response |
| `showtitle` | boolean | No | Include submission title in the response |
| `threaded` | boolean | No | Return comments in threaded/nested format |
| `truncate` | number | No | Integer to truncate comment depth |
| `after` | string | No | Fullname of a thing to fetch items after \(for pagination\) |
| `before` | string | No | Fullname of a thing to fetch items before \(for pagination\) |
| `count` | number | No | A count of items already seen in the listing \(used for numbering\) |
#### Output
@@ -84,6 +99,205 @@ Fetch comments from a specific Reddit post
| --------- | ---- | ----------- |
| `post` | object | Post information including ID, title, author, content, and metadata |
### `reddit_get_controversial`
Fetch controversial posts from a subreddit
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Yes | The name of the subreddit to fetch posts from \(without the r/ prefix\) |
| `time` | string | No | Time filter for controversial posts: "hour", "day", "week", "month", "year", or "all" \(default: "all"\) |
| `limit` | number | No | Maximum number of posts to return \(default: 10, max: 100\) |
| `after` | string | No | Fullname of a thing to fetch items after \(for pagination\) |
| `before` | string | No | Fullname of a thing to fetch items before \(for pagination\) |
| `count` | number | No | A count of items already seen in the listing \(used for numbering\) |
| `show` | string | No | Show items that would normally be filtered \(e.g., "all"\) |
| `sr_detail` | boolean | No | Expand subreddit details in the response |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `subreddit` | string | Name of the subreddit where posts were fetched from |
| `posts` | array | Array of controversial posts with title, author, URL, score, comments count, and metadata |
### `reddit_search`
Search for posts within a subreddit
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Yes | The name of the subreddit to search in \(without the r/ prefix\) |
| `query` | string | Yes | Search query text |
| `sort` | string | No | Sort method for search results: "relevance", "hot", "top", "new", or "comments" \(default: "relevance"\) |
| `time` | string | No | Time filter for search results: "hour", "day", "week", "month", "year", or "all" \(default: "all"\) |
| `limit` | number | No | Maximum number of posts to return \(default: 10, max: 100\) |
| `restrict_sr` | boolean | No | Restrict search to the specified subreddit only \(default: true\) |
| `after` | string | No | Fullname of a thing to fetch items after \(for pagination\) |
| `before` | string | No | Fullname of a thing to fetch items before \(for pagination\) |
| `count` | number | No | A count of items already seen in the listing \(used for numbering\) |
| `show` | string | No | Show items that would normally be filtered \(e.g., "all"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `subreddit` | string | Name of the subreddit where search was performed |
| `posts` | array | Array of search result posts with title, author, URL, score, comments count, and metadata |
### `reddit_submit_post`
Submit a new post to a subreddit (text or link)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Yes | The name of the subreddit to post to \(without the r/ prefix\) |
| `title` | string | Yes | Title of the submission \(max 300 characters\) |
| `text` | string | No | Text content for a self post \(markdown supported\) |
| `url` | string | No | URL for a link post \(cannot be used with text\) |
| `nsfw` | boolean | No | Mark post as NSFW |
| `spoiler` | boolean | No | Mark post as spoiler |
| `send_replies` | boolean | No | Send reply notifications to inbox \(default: true\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the post was submitted successfully |
| `message` | string | Success or error message |
| `data` | object | Post data including ID, name, URL, and permalink |
### `reddit_vote`
Upvote, downvote, or unvote a Reddit post or comment
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | Yes | Thing fullname to vote on \(e.g., t3_xxxxx for post, t1_xxxxx for comment\) |
| `dir` | number | Yes | Vote direction: 1 \(upvote\), 0 \(unvote\), or -1 \(downvote\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the vote was successful |
| `message` | string | Success or error message |
### `reddit_save`
Save a Reddit post or comment to your saved items
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | Yes | Thing fullname to save \(e.g., t3_xxxxx for post, t1_xxxxx for comment\) |
| `category` | string | No | Category to save under \(Reddit Gold feature\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the save was successful |
| `message` | string | Success or error message |
### `reddit_unsave`
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `subreddit` | string | Subreddit name |
| `posts` | json | Posts data |
| `post` | json | Single post data |
| `comments` | json | Comments data |
### `reddit_reply`
Add a comment reply to a Reddit post or comment
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `parent_id` | string | Yes | Thing fullname to reply to \(e.g., t3_xxxxx for post, t1_xxxxx for comment\) |
| `text` | string | Yes | Comment text in markdown format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the reply was posted successfully |
| `message` | string | Success or error message |
| `data` | object | Comment data including ID, name, permalink, and body |
### `reddit_edit`
Edit the text of your own Reddit post or comment
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `thing_id` | string | Yes | Thing fullname to edit \(e.g., t3_xxxxx for post, t1_xxxxx for comment\) |
| `text` | string | Yes | New text content in markdown format |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the edit was successful |
| `message` | string | Success or error message |
| `data` | object | Updated content data |
### `reddit_delete`
Delete your own Reddit post or comment
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | Yes | Thing fullname to delete \(e.g., t3_xxxxx for post, t1_xxxxx for comment\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |
| `message` | string | Success or error message |
### `reddit_subscribe`
Subscribe or unsubscribe from a subreddit
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Yes | The name of the subreddit \(without the r/ prefix\) |
| `action` | string | Yes | Action to perform: "sub" to subscribe or "unsub" to unsubscribe |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the subscription action was successful |
| `message` | string | Success or error message |
## Notes

View File

@@ -59,6 +59,7 @@ Send an email using your own Resend API key and from address
| `to` | string | Yes | Recipient email address |
| `subject` | string | Yes | Email subject |
| `body` | string | Yes | Email body content |
| `contentType` | string | No | Content type for the email body \(text or html\) |
| `resendApiKey` | string | Yes | Resend API key for sending emails |
#### Output

View File

@@ -202,6 +202,26 @@ Add a new item to a SharePoint list
| --------- | ---- | ----------- |
| `item` | object | Created SharePoint list item |
### `sharepoint_upload_file`
Upload files to a SharePoint document library
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | No | The ID of the SharePoint site |
| `driveId` | string | No | The ID of the document library \(drive\). If not provided, uses default drive. |
| `folderPath` | string | No | Optional folder path within the document library \(e.g., /Documents/Subfolder\) |
| `fileName` | string | No | Optional: override the uploaded file name |
| `files` | file[] | No | Files to upload to SharePoint |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `uploadedFiles` | array | Array of uploaded file objects |
## Notes

View File

@@ -1,6 +1,6 @@
---
title: Slack
description: Send messages to Slack or trigger workflows from Slack events
description: Send, update, delete messages, add reactions in Slack or trigger workflows from Slack events
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -51,20 +51,25 @@ With Slack, you can:
- **Enhance agent workflows**: Integrate Slack messaging into your agents to deliver results, alerts, and status updates
- **Create and share Slack canvases**: Programmatically generate collaborative documents (canvases) in Slack channels
- **Read messages from channels**: Retrieve and process recent messages from any Slack channel for monitoring or workflow triggers
- **Manage bot messages**: Update, delete, and add reactions to messages sent by your bot
In Sim, the Slack integration enables your agents to programmatically interact with Slack in several ways as part of their workflows:
In Sim, the Slack integration enables your agents to programmatically interact with Slack with full message management capabilities as part of their workflows:
- **Send messages**: Agents can send formatted messages to any Slack channel or user, supporting Slack's mrkdwn syntax for rich formatting.
- **Create canvases**: Agents can create and share Slack canvases (collaborative documents) directly in channels, enabling richer content sharing and documentation.
- **Read messages**: Agents can read recent messages from channels, allowing for monitoring, reporting, or triggering further actions based on channel activity.
- **Send messages**: Agents can send formatted messages to any Slack channel or user, supporting Slack's mrkdwn syntax for rich formatting
- **Update messages**: Edit previously sent bot messages to correct information or provide status updates
- **Delete messages**: Remove bot messages when they're no longer needed or contain errors
- **Add reactions**: Express sentiment or acknowledgment by adding emoji reactions to any message
- **Create canvases**: Create and share Slack canvases (collaborative documents) directly in channels, enabling richer content sharing and documentation
- **Read messages**: Read recent messages from channels, allowing for monitoring, reporting, or triggering further actions based on channel activity
- **Download files**: Retrieve files shared in Slack channels for processing or archival
This allows for powerful automation scenarios such as sending notifications, alerts, updates, and reports directly to your team's communication hub, sharing structured documents, or monitoring conversations for workflow triggers. Your agents can deliver timely information, share results from processes they've completed, create collaborative documents, or alert team members when attention is needed. This integration bridges the gap between your AI workflows and your team's communication, ensuring everyone stays informed without manual intervention. By connecting Sim with Slack, you can create agents that keep your team updated with relevant information at the right time, enhance collaboration by sharing insights automatically, and reduce the need for manual status updates—all while leveraging your existing Slack workspace where your team already communicates.
This allows for powerful automation scenarios such as sending notifications with dynamic updates, managing conversational flows with editable status messages, acknowledging important messages with reactions, and maintaining clean channels by removing outdated bot messages. Your agents can deliver timely information, update messages as workflows progress, create collaborative documents, or alert team members when attention is needed. This integration bridges the gap between your AI workflows and your team's communication, ensuring everyone stays informed with accurate, up-to-date information. By connecting Sim with Slack, you can create agents that keep your team updated with relevant information at the right time, enhance collaboration by sharing and updating insights automatically, and reduce the need for manual status updates—all while leveraging your existing Slack workspace where your team already communicates.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Slack into the workflow. Can send messages, create canvases, and read messages. Requires Bot Token instead of OAuth in advanced mode. Can be used in trigger mode to trigger a workflow when a message is sent to a channel.
Integrate Slack into the workflow. Can send, update, and delete messages, create canvases, read messages, and add reactions. Requires Bot Token instead of OAuth in advanced mode. Can be used in trigger mode to trigger a workflow when a message is sent to a channel.
@@ -82,6 +87,8 @@ Send messages to Slack channels or users through the Slack API. Supports Slack m
| `botToken` | string | No | Bot token for Custom Bot |
| `channel` | string | Yes | Target Slack channel \(e.g., #general\) |
| `text` | string | Yes | Message text to send \(supports Slack mrkdwn formatting\) |
| `thread_ts` | string | No | Thread timestamp to reply to \(creates thread reply\) |
| `files` | file[] | No | Files to attach to the message |
#### Output
@@ -134,6 +141,87 @@ Read the latest messages from Slack channels. Retrieve conversation history with
| --------- | ---- | ----------- |
| `messages` | array | Array of message objects from the channel |
### `slack_download`
Download a file from Slack
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `fileId` | string | Yes | The ID of the file to download |
| `fileName` | string | No | Optional filename override |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | file | Downloaded file stored in execution files |
### `slack_update_message`
Update a message previously sent by the bot in Slack
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `channel` | string | Yes | Channel ID where the message was posted \(e.g., C1234567890\) |
| `timestamp` | string | Yes | Timestamp of the message to update \(e.g., 1405894322.002768\) |
| `text` | string | Yes | New message text \(supports Slack mrkdwn formatting\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Updated message metadata |
### `slack_delete_message`
Delete a message previously sent by the bot in Slack
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `channel` | string | Yes | Channel ID where the message was posted \(e.g., C1234567890\) |
| `timestamp` | string | Yes | Timestamp of the message to delete \(e.g., 1405894322.002768\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Deleted message metadata |
### `slack_add_reaction`
Add an emoji reaction to a Slack message
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `channel` | string | Yes | Channel ID where the message was posted \(e.g., C1234567890\) |
| `timestamp` | string | Yes | Timestamp of the message to react to \(e.g., 1405894322.002768\) |
| `name` | string | Yes | Name of the emoji reaction \(without colons, e.g., thumbsup, heart, eyes\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Reaction metadata |
## Notes

File diff suppressed because it is too large Load Diff

View File

@@ -76,7 +76,7 @@ Whether youre building internal tools, automating business processes, or powe
## Usage Instructions
Integrate Supabase into the workflow. Can get many rows, get, create, update, delete, and upsert a row.
Integrate Supabase into the workflow. Supports database operations (query, insert, update, delete, upsert), full-text search, RPC functions, row counting, vector search, and complete storage management (upload, download, list, move, copy, delete files and buckets).
@@ -205,6 +205,324 @@ Insert or update data in a Supabase table (upsert operation)
| `message` | string | Operation status message |
| `results` | array | Array of upserted records |
### `supabase_count`
Count rows in a Supabase table
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `table` | string | Yes | The name of the Supabase table to count rows from |
| `filter` | string | No | PostgREST filter \(e.g., "status=eq.active"\) |
| `countType` | string | No | Count type: exact, planned, or estimated \(default: exact\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `count` | number | Number of rows matching the filter |
### `supabase_text_search`
Perform full-text search on a Supabase table
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `table` | string | Yes | The name of the Supabase table to search |
| `column` | string | Yes | The column to search in |
| `query` | string | Yes | The search query |
| `searchType` | string | No | Search type: plain, phrase, or websearch \(default: websearch\) |
| `language` | string | No | Language for text search configuration \(default: english\) |
| `limit` | number | No | Maximum number of rows to return |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | array | Array of records matching the search query |
### `supabase_vector_search`
Perform similarity search using pgvector in a Supabase table
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `functionName` | string | Yes | The name of the PostgreSQL function that performs vector search \(e.g., match_documents\) |
| `queryEmbedding` | array | Yes | The query vector/embedding to search for similar items |
| `matchThreshold` | number | No | Minimum similarity threshold \(0-1\), typically 0.7-0.9 |
| `matchCount` | number | No | Maximum number of results to return \(default: 10\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | array | Array of records with similarity scores from the vector search. Each record includes a similarity field \(0-1\) indicating how similar it is to the query vector. |
### `supabase_rpc`
Call a PostgreSQL function in Supabase
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `functionName` | string | Yes | The name of the PostgreSQL function to call |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | json | Result returned from the function |
### `supabase_storage_upload`
Upload a file to a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `path` | string | Yes | The path where the file will be stored \(e.g., "folder/file.jpg"\) |
| `fileContent` | string | Yes | The file content \(base64 encoded for binary files, or plain text\) |
| `contentType` | string | No | MIME type of the file \(e.g., "image/jpeg", "text/plain"\) |
| `upsert` | boolean | No | If true, overwrites existing file \(default: false\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | object | Upload result including file path and metadata |
### `supabase_storage_download`
Download a file from a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `path` | string | Yes | The path to the file to download \(e.g., "folder/file.jpg"\) |
| `fileName` | string | No | Optional filename override |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | file | Downloaded file stored in execution files |
### `supabase_storage_list`
List files in a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `path` | string | No | The folder path to list files from \(default: root\) |
| `limit` | number | No | Maximum number of files to return \(default: 100\) |
| `offset` | number | No | Number of files to skip \(for pagination\) |
| `sortBy` | string | No | Column to sort by: name, created_at, updated_at \(default: name\) |
| `sortOrder` | string | No | Sort order: asc or desc \(default: asc\) |
| `search` | string | No | Search term to filter files by name |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | array | Array of file objects with metadata |
### `supabase_storage_delete`
Delete files from a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `paths` | array | Yes | Array of file paths to delete \(e.g., \["folder/file1.jpg", "folder/file2.jpg"\]\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | array | Array of deleted file objects |
### `supabase_storage_move`
Move a file within a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `fromPath` | string | Yes | The current path of the file \(e.g., "folder/old.jpg"\) |
| `toPath` | string | Yes | The new path for the file \(e.g., "newfolder/new.jpg"\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | object | Move operation result |
### `supabase_storage_copy`
Copy a file within a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `fromPath` | string | Yes | The path of the source file \(e.g., "folder/source.jpg"\) |
| `toPath` | string | Yes | The path for the copied file \(e.g., "folder/copy.jpg"\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | object | Copy operation result |
### `supabase_storage_create_bucket`
Create a new storage bucket in Supabase
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the bucket to create |
| `isPublic` | boolean | No | Whether the bucket should be publicly accessible \(default: false\) |
| `fileSizeLimit` | number | No | Maximum file size in bytes \(optional\) |
| `allowedMimeTypes` | array | No | Array of allowed MIME types \(e.g., \["image/png", "image/jpeg"\]\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | object | Created bucket information |
### `supabase_storage_list_buckets`
List all storage buckets in Supabase
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | array | Array of bucket objects |
### `supabase_storage_delete_bucket`
Delete a storage bucket in Supabase
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the bucket to delete |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `results` | object | Delete operation result |
### `supabase_storage_get_public_url`
Get the public URL for a file in a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `path` | string | Yes | The path to the file \(e.g., "folder/file.jpg"\) |
| `download` | boolean | No | If true, forces download instead of inline display \(default: false\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `publicUrl` | string | The public URL to access the file |
### `supabase_storage_create_signed_url`
Create a temporary signed URL for a file in a Supabase storage bucket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Your Supabase project ID \(e.g., jdrkgepadsdopsntdlom\) |
| `bucket` | string | Yes | The name of the storage bucket |
| `path` | string | Yes | The path to the file \(e.g., "folder/file.jpg"\) |
| `expiresIn` | number | Yes | Number of seconds until the URL expires \(e.g., 3600 for 1 hour\) |
| `download` | boolean | No | If true, forces download instead of inline display \(default: false\) |
| `apiKey` | string | Yes | Your Supabase service role secret key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `signedUrl` | string | The temporary signed URL to access the file |
## Notes

View File

@@ -74,6 +74,21 @@ Perform AI-powered web searches using Tavily
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | The search query to execute |
| `max_results` | number | No | Maximum number of results \(1-20\) |
| `topic` | string | No | Category type: general, news, or finance \(default: general\) |
| `search_depth` | string | No | Search scope: basic \(1 credit\) or advanced \(2 credits\) \(default: basic\) |
| `include_answer` | string | No | LLM-generated response: true/basic for quick answer or advanced for detailed |
| `include_raw_content` | string | No | Parsed HTML content: true/markdown or text format |
| `include_images` | boolean | No | Include image search results |
| `include_image_descriptions` | boolean | No | Add descriptive text for images |
| `include_favicon` | boolean | No | Include favicon URLs |
| `chunks_per_source` | number | No | Maximum number of relevant chunks per source \(1-3, default: 3\) |
| `time_range` | string | No | Filter by recency: day/d, week/w, month/m, year/y |
| `start_date` | string | No | Earliest publication date \(YYYY-MM-DD format\) |
| `end_date` | string | No | Latest publication date \(YYYY-MM-DD format\) |
| `include_domains` | string | No | Comma-separated list of domains to whitelist \(max 300\) |
| `exclude_domains` | string | No | Comma-separated list of domains to blacklist \(max 150\) |
| `country` | string | No | Boost results from specified country \(general topic only\) |
| `auto_parameters` | boolean | No | Automatic parameter configuration based on query intent |
| `apiKey` | string | Yes | Tavily API Key |
#### Output
@@ -93,6 +108,9 @@ Extract raw content from multiple web pages simultaneously using Tavily
| --------- | ---- | -------- | ----------- |
| `urls` | string | Yes | URL or array of URLs to extract content from |
| `extract_depth` | string | No | The depth of extraction \(basic=1 credit/5 URLs, advanced=2 credits/5 URLs\) |
| `format` | string | No | Output format: markdown or text \(default: markdown\) |
| `include_images` | boolean | No | Incorporate images in extraction output |
| `include_favicon` | boolean | No | Add favicon URL for each result |
| `apiKey` | string | Yes | Tavily API Key |
#### Output
@@ -101,6 +119,64 @@ Extract raw content from multiple web pages simultaneously using Tavily
| --------- | ---- | ----------- |
| `results` | array | The URL that was extracted |
### `tavily_crawl`
Systematically crawl and extract content from websites using Tavily
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `url` | string | Yes | The root URL to begin the crawl |
| `instructions` | string | No | Natural language directions for the crawler \(costs 2 credits per 10 pages\) |
| `max_depth` | number | No | How far from base URL to explore \(1-5, default: 1\) |
| `max_breadth` | number | No | Links followed per page level \(≥1, default: 20\) |
| `limit` | number | No | Total links processed before stopping \(≥1, default: 50\) |
| `select_paths` | string | No | Comma-separated regex patterns to include specific URL paths \(e.g., /docs/.*\) |
| `select_domains` | string | No | Comma-separated regex patterns to restrict crawling to certain domains |
| `exclude_paths` | string | No | Comma-separated regex patterns to skip specific URL paths |
| `exclude_domains` | string | No | Comma-separated regex patterns to block certain domains |
| `allow_external` | boolean | No | Include external domain links in results \(default: true\) |
| `include_images` | boolean | No | Incorporate images in crawl output |
| `extract_depth` | string | No | Extraction depth: basic \(1 credit/5 pages\) or advanced \(2 credits/5 pages\) |
| `format` | string | No | Output format: markdown or text \(default: markdown\) |
| `include_favicon` | boolean | No | Add favicon URL for each result |
| `apiKey` | string | Yes | Tavily API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `base_url` | string | The base URL that was crawled |
| `results` | array | The crawled page URL |
### `tavily_map`
Discover and visualize website structure using Tavily
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `url` | string | Yes | The root URL to begin mapping |
| `instructions` | string | No | Natural language guidance for mapping behavior \(costs 2 credits per 10 pages\) |
| `max_depth` | number | No | How far from base URL to explore \(1-5, default: 1\) |
| `max_breadth` | number | No | Links to follow per level \(default: 20\) |
| `limit` | number | No | Total links to process \(default: 50\) |
| `select_paths` | string | No | Comma-separated regex patterns for URL path filtering \(e.g., /docs/.*\) |
| `select_domains` | string | No | Comma-separated regex patterns to restrict mapping to specific domains |
| `exclude_paths` | string | No | Comma-separated regex patterns to exclude specific URL paths |
| `exclude_domains` | string | No | Comma-separated regex patterns to exclude domains |
| `allow_external` | boolean | No | Include external domain links in results \(default: true\) |
| `apiKey` | string | Yes | Tavily API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `base_url` | string | The base URL that was mapped |
| `results` | array | Discovered URL |
## Notes

View File

@@ -191,6 +191,26 @@ Send animations (GIFs) to Telegram channels or users through the Telegram Bot AP
| `message` | string | Success or error message |
| `data` | object | Telegram message data including optional media |
### `telegram_send_document`
Send documents (PDF, ZIP, DOC, etc.) to Telegram channels or users through the Telegram Bot API.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `botToken` | string | Yes | Your Telegram Bot API Token |
| `chatId` | string | Yes | Target Telegram chat ID |
| `files` | file[] | No | Document file to send \(PDF, ZIP, DOC, etc.\). Max size: 50MB |
| `caption` | string | No | Document caption \(optional\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success or error message |
| `data` | object | Telegram message data including document |
## Notes

View File

@@ -0,0 +1,146 @@
---
title: Twilio Voice
description: Make and manage phone calls
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="twilio_voice"
color="#F22F46"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'>
<path
fill='currentColor'
d='M128 0c70.656 0 128 57.344 128 128s-57.344 128-128 128S0 198.656 0 128 57.344 0 128 0zm0 33.792c-52.224 0-94.208 41.984-94.208 94.208S75.776 222.208 128 222.208s94.208-41.984 94.208-94.208S180.224 33.792 128 33.792zm31.744 99.328c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm-63.488 0c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm63.488-63.488c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm-63.488 0c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624z'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Twilio Voice](https://www.twilio.com/en-us/voice) is a powerful cloud communications platform that enables businesses to make, receive, and manage phone calls programmatically through a simple API.
Twilio Voice provides a robust API for building sophisticated voice applications with global reach. With coverage in over 100 countries, carrier-grade reliability, and a 99.95% uptime SLA, Twilio has established itself as the industry leader in programmable voice communications.
Key features of Twilio Voice include:
- **Global Voice Network**: Make and receive calls worldwide with local phone numbers in multiple countries
- **Programmable Call Control**: Use TwiML to control call flow, record conversations, gather DTMF input, and implement IVR systems
- **Advanced Capabilities**: Speech recognition, text-to-speech, call forwarding, conferencing, and answering machine detection
- **Real-time Analytics**: Track call quality, duration, costs, and optimize your voice applications
In Sim, the Twilio Voice integration enables your agents to leverage these powerful voice capabilities as part of their workflows. This creates opportunities for sophisticated customer engagement scenarios like appointment reminders, verification calls, automated support lines, and interactive voice response systems. The integration bridges the gap between your AI workflows and voice communication channels, enabling your agents to deliver timely, relevant information directly through phone calls. By connecting Sim with Twilio Voice, you can create intelligent agents that engage customers through their preferred communication channel, enhancing the user experience while automating routine calling tasks.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Twilio Voice into the workflow. Make outbound calls and retrieve call recordings.
## Tools
### `twilio_voice_make_call`
Make an outbound phone call using Twilio Voice API.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `to` | string | Yes | Phone number to call \(E.164 format, e.g., +14155551234\) |
| `from` | string | Yes | Your Twilio phone number to call from \(E.164 format\) |
| `url` | string | No | URL that returns TwiML instructions for the call |
| `twiml` | string | No | TwiML instructions to execute \(alternative to URL\). Use square brackets instead of angle brackets, e.g., \[Response\]\[Say\]Hello\[/Say\]\[/Response\] |
| `statusCallback` | string | No | Webhook URL for call status updates |
| `statusCallbackMethod` | string | No | HTTP method for status callback \(GET or POST\) |
| `accountSid` | string | Yes | Twilio Account SID |
| `authToken` | string | Yes | Twilio Auth Token |
| `record` | boolean | No | Whether to record the call |
| `recordingStatusCallback` | string | No | Webhook URL for recording status updates |
| `timeout` | number | No | Time to wait for answer before giving up \(seconds, default: 60\) |
| `machineDetection` | string | No | Answering machine detection: Enable or DetectMessageEnd |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the call was successfully initiated |
| `callSid` | string | Unique identifier for the call |
| `status` | string | Call status \(queued, ringing, in-progress, completed, etc.\) |
| `direction` | string | Call direction \(outbound-api\) |
| `from` | string | Phone number the call is from |
| `to` | string | Phone number the call is to |
| `duration` | number | Call duration in seconds |
| `price` | string | Cost of the call |
| `priceUnit` | string | Currency of the price |
| `error` | string | Error message if call failed |
### `twilio_voice_list_calls`
Retrieve a list of calls made to and from an account.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `accountSid` | string | Yes | Twilio Account SID |
| `authToken` | string | Yes | Twilio Auth Token |
| `to` | string | No | Filter by calls to this phone number |
| `from` | string | No | Filter by calls from this phone number |
| `status` | string | No | Filter by call status \(queued, ringing, in-progress, completed, etc.\) |
| `startTimeAfter` | string | No | Filter calls that started on or after this date \(YYYY-MM-DD\) |
| `startTimeBefore` | string | No | Filter calls that started on or before this date \(YYYY-MM-DD\) |
| `pageSize` | number | No | Number of records to return \(max 1000, default 50\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the calls were successfully retrieved |
| `calls` | array | Array of call objects |
| `total` | number | Total number of calls returned |
| `page` | number | Current page number |
| `pageSize` | number | Number of calls per page |
| `error` | string | Error message if retrieval failed |
### `twilio_voice_get_recording`
Retrieve call recording information and transcription (if enabled via TwiML).
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `recordingSid` | string | Yes | Recording SID to retrieve |
| `accountSid` | string | Yes | Twilio Account SID |
| `authToken` | string | Yes | Twilio Auth Token |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the recording was successfully retrieved |
| `recordingSid` | string | Unique identifier for the recording |
| `callSid` | string | Call SID this recording belongs to |
| `duration` | number | Duration of the recording in seconds |
| `status` | string | Recording status \(completed, processing, etc.\) |
| `channels` | number | Number of channels \(1 for mono, 2 for dual\) |
| `source` | string | How the recording was created |
| `mediaUrl` | string | URL to download the recording media file |
| `price` | string | Cost of the recording |
| `priceUnit` | string | Currency of the price |
| `uri` | string | Relative URI of the recording resource |
| `transcriptionText` | string | Transcribed text from the recording \(if available\) |
| `transcriptionStatus` | string | Transcription status \(completed, in-progress, failed\) |
| `transcriptionPrice` | string | Cost of the transcription |
| `transcriptionPriceUnit` | string | Currency of the transcription price |
| `error` | string | Error message if retrieval failed |
## Notes
- Category: `tools`
- Type: `twilio_voice`

View File

@@ -47,7 +47,7 @@ In Sim, the Typeform integration enables your agents to programmatically interac
## Usage Instructions
Integrate Typeform into the workflow. Can retrieve responses, download files, and get form insights. Requires API Key.
Integrate Typeform into the workflow. Can retrieve responses, download files, and get form insights. Can be used in trigger mode to trigger a workflow when a form is submitted. Requires API Key.
@@ -72,9 +72,25 @@ Retrieve form responses from Typeform
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `total_items` | number | Total response count |
| `total_items` | number | Total response/form count |
| `page_count` | number | Total page count |
| `items` | json | Response items |
| `items` | json | Response/form items array |
| `id` | string | Form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | json | Form settings object |
| `theme` | json | Theme configuration object |
| `workspace` | json | Workspace information |
| `fields` | json | Form fields/questions array |
| `thankyou_screens` | json | Thank you screens array |
| `_links` | json | Related resource links |
| `deleted` | boolean | Whether the form was successfully deleted |
| `message` | string | Deletion confirmation message |
| `fileUrl` | string | Downloaded file URL |
| `contentType` | string | File content type |
| `filename` | string | File name |
### `typeform_files`
@@ -116,6 +132,129 @@ Retrieve insights and analytics for Typeform forms
| --------- | ---- | ----------- |
| `fields` | array | Number of users who dropped off at this field |
### `typeform_list_forms`
Retrieve a list of all forms in your Typeform account
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Typeform Personal Access Token |
| `search` | string | No | Search query to filter forms by title |
| `page` | number | No | Page number \(default: 1\) |
| `pageSize` | number | No | Number of forms per page \(default: 10, max: 200\) |
| `workspaceId` | string | No | Filter forms by workspace ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `total_items` | number | Total number of forms in the account |
| `page_count` | number | Total number of pages available |
| `items` | array | Array of form objects |
### `typeform_get_form`
Retrieve complete details and structure of a specific form
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Typeform Personal Access Token |
| `formId` | string | Yes | Form unique identifier |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type \(form, quiz, etc.\) |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | object | Form settings including language, progress bar, etc. |
| `theme` | object | Theme configuration with colors, fonts, and design settings |
| `workspace` | object | Workspace information |
### `typeform_create_form`
Create a new form with fields and settings
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Typeform Personal Access Token |
| `title` | string | Yes | Form title |
| `type` | string | No | Form type \(default: "form"\). Options: "form", "quiz" |
| `workspaceId` | string | No | Workspace ID to create the form in |
| `fields` | json | No | Array of field objects defining the form structure. Each field needs: type, title, and optional properties/validations |
| `settings` | json | No | Form settings object \(language, progress_bar, etc.\) |
| `themeId` | string | No | Theme ID to apply to the form |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Created form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | object | Form settings |
| `theme` | object | Applied theme configuration |
| `workspace` | object | Workspace information |
| `fields` | array | Array of created form fields |
| `_links` | object | Related resource links |
### `typeform_update_form`
Update an existing form using JSON Patch operations
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Typeform Personal Access Token |
| `formId` | string | Yes | Form unique identifier to update |
| `operations` | json | Yes | Array of JSON Patch operations \(RFC 6902\). Each operation needs: op \(add/remove/replace\), path, and value \(for add/replace\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Updated form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | object | Form settings |
| `theme` | object | Theme configuration |
| `workspace` | object | Workspace information |
| `fields` | array | Array of form fields |
| `thankyou_screens` | array | Array of thank you screens |
| `_links` | object | Related resource links |
### `typeform_delete_form`
Permanently delete a form and all its responses
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Typeform Personal Access Token |
| `formId` | string | Yes | Form unique identifier to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the form was successfully deleted |
| `message` | string | Deletion confirmation message |
## Notes

View File

@@ -62,7 +62,8 @@ Process and analyze images using advanced vision models. Capable of understandin
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | API key for the selected model provider |
| `imageUrl` | string | Yes | Publicly accessible image URL |
| `imageUrl` | string | No | Publicly accessible image URL |
| `imageFile` | file | No | Image file to analyze |
| `model` | string | No | Vision model to use \(gpt-4o, claude-3-opus-20240229, etc\) |
| `prompt` | string | No | Custom prompt for image analysis |

View File

@@ -0,0 +1,150 @@
---
title: Webflow
description: Manage Webflow CMS collections
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="webflow"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 1080 674'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
fillRule='evenodd'
clipRule='evenodd'
d='M1080 0L735.386 673.684H411.695L555.916 394.481H549.445C430.464 548.934 252.942 650.61 -0.000488281 673.684V398.344C-0.000488281 398.344 161.813 388.787 256.938 288.776H-0.000488281V0.0053214H288.771V237.515L295.252 237.489L413.254 0.0053214H631.644V236.009L638.126 235.999L760.555 0H1080Z'
fill='#146EF5'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Webflow](https://webflow.com/) is a powerful visual web design platform that enables you to build responsive websites without writing code. It combines a visual design interface with a robust CMS (Content Management System) that allows you to create, manage, and publish dynamic content for your websites.
With Webflow, you can:
- **Design visually**: Create custom websites with a visual editor that generates clean, semantic HTML/CSS code
- **Manage content dynamically**: Use the CMS to create collections of structured content like blog posts, products, team members, or any custom data
- **Publish instantly**: Deploy your sites to Webflow's hosting or export the code for custom hosting
- **Create responsive designs**: Build sites that work seamlessly across desktop, tablet, and mobile devices
- **Customize collections**: Define custom fields and data structures for your content types
- **Automate content updates**: Programmatically manage your CMS content through APIs
In Sim, the Webflow integration enables your agents to seamlessly interact with your Webflow CMS collections through API authentication. This allows for powerful automation scenarios such as automatically creating blog posts from AI-generated content, updating product information, managing team member profiles, and retrieving CMS items for dynamic content generation. Your agents can list existing items to browse your content, retrieve specific items by ID, create new entries to add fresh content, update existing items to keep information current, and delete outdated content. This integration bridges the gap between your AI workflows and your Webflow CMS, enabling automated content management, dynamic website updates, and streamlined content workflows that keep your sites fresh and up-to-date without manual intervention.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrates Webflow CMS into the workflow. Can create, get, list, update, or delete items in Webflow CMS collections. Manage your Webflow content programmatically. Can be used in trigger mode to trigger workflows when collection items change or forms are submitted.
## Tools
### `webflow_list_items`
List all items from a Webflow CMS collection
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Yes | ID of the collection |
| `offset` | number | No | Offset for pagination \(optional\) |
| `limit` | number | No | Maximum number of items to return \(optional, default: 100\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `items` | json | Array of collection items |
| `metadata` | json | Metadata about the query |
### `webflow_get_item`
Get a single item from a Webflow CMS collection
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Yes | ID of the collection |
| `itemId` | string | Yes | ID of the item to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `item` | json | The retrieved item object |
| `metadata` | json | Metadata about the retrieved item |
### `webflow_create_item`
Create a new item in a Webflow CMS collection
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Yes | ID of the collection |
| `fieldData` | json | Yes | Field data for the new item as a JSON object. Keys should match collection field names. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `item` | json | The created item object |
| `metadata` | json | Metadata about the created item |
### `webflow_update_item`
Update an existing item in a Webflow CMS collection
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Yes | ID of the collection |
| `itemId` | string | Yes | ID of the item to update |
| `fieldData` | json | Yes | Field data to update as a JSON object. Only include fields you want to change. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `item` | json | The updated item object |
| `metadata` | json | Metadata about the updated item |
### `webflow_delete_item`
Delete an item from a Webflow CMS collection
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `collectionId` | string | Yes | ID of the collection |
| `itemId` | string | Yes | ID of the item to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |
| `metadata` | json | Metadata about the deletion |
## Notes
- Category: `tools`
- Type: `webflow`

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