mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-09 23:17:59 -05:00
Compare commits
24 Commits
v0.5.26
...
improvemen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef142d3ddc | ||
|
|
ffcaa65590 | ||
|
|
cd66fa84d1 | ||
|
|
045475b9fe | ||
|
|
3334dfeefa | ||
|
|
cb9b88127f | ||
|
|
3c8478405c | ||
|
|
c4fd39df54 | ||
|
|
06d2db78ff | ||
|
|
516dee14b7 | ||
|
|
030ae5cc0a | ||
|
|
855e2c418c | ||
|
|
3bde9e853f | ||
|
|
31b795f8b1 | ||
|
|
57b6bc3684 | ||
|
|
8d4f2e0233 | ||
|
|
4da5dd7f74 | ||
|
|
3b9cbeaa49 | ||
|
|
c592e54118 | ||
|
|
d02499a915 | ||
|
|
c0bb85479d | ||
|
|
b595273c3f | ||
|
|
193a15aca4 | ||
|
|
39d5d797ec |
File diff suppressed because one or more lines are too long
@@ -90,6 +90,7 @@ import {
|
||||
ShopifyIcon,
|
||||
SlackIcon,
|
||||
SmtpIcon,
|
||||
SQSIcon,
|
||||
SshIcon,
|
||||
STTIcon,
|
||||
StagehandIcon,
|
||||
@@ -145,6 +146,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
stagehand_agent: StagehandIcon,
|
||||
stagehand: StagehandIcon,
|
||||
ssh: SshIcon,
|
||||
sqs: SQSIcon,
|
||||
smtp: SmtpIcon,
|
||||
slack: SlackIcon,
|
||||
shopify: ShopifyIcon,
|
||||
|
||||
@@ -51,10 +51,9 @@ Führe einen APIFY-Aktor synchron aus und erhalte Ergebnisse (maximal 5 Minuten)
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob die Aktor-Ausführung erfolgreich war |
|
||||
| `runId` | string | APIFY-Ausführungs-ID |
|
||||
| `status` | string | Ausführungsstatus \(SUCCEEDED, FAILED, usw.\) |
|
||||
| `datasetId` | string | Dataset-ID mit Ergebnissen |
|
||||
| `success` | boolean | Ob der Actor-Lauf erfolgreich war |
|
||||
| `runId` | string | APIFY-Lauf-ID |
|
||||
| `status` | string | Laufstatus \(SUCCEEDED, FAILED, usw.\) |
|
||||
| `items` | array | Dataset-Elemente \(falls abgeschlossen\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
@@ -34,7 +34,14 @@ Eine einzelne Aufgabe anhand der GID abrufen oder mehrere Aufgaben mit Filtern e
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Details einer einzelnen Aufgabe oder Array von Aufgaben, abhängig davon, ob taskGid angegeben wurde |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung der Aufgabe |
|
||||
| `resource_type` | string | Ressourcentyp \(task\) |
|
||||
| `resource_subtype` | string | Ressourcen-Subtyp |
|
||||
| `name` | string | Aufgabenname |
|
||||
| `notes` | string | Aufgabennotizen oder -beschreibung |
|
||||
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
|
||||
| `assignee` | object | Details zum Zugewiesenen |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -54,8 +61,14 @@ Eine neue Aufgabe in Asana erstellen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Details der erstellten Aufgabe mit Zeitstempel, GID, Name, Notizen und Permalink |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung der Aufgabe |
|
||||
| `name` | string | Aufgabenname |
|
||||
| `notes` | string | Aufgabennotizen oder -beschreibung |
|
||||
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
|
||||
| `created_at` | string | Zeitstempel der Aufgabenerstellung |
|
||||
| `permalink_url` | string | URL zur Aufgabe in Asana |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
@@ -77,7 +90,12 @@ Eine bestehende Aufgabe in Asana aktualisieren
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Aktualisierte Aufgabendetails mit Zeitstempel, GID, Name, Notizen und Änderungszeitstempel |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung der Aufgabe |
|
||||
| `name` | string | Aufgabenname |
|
||||
| `notes` | string | Aufgabennotizen oder -beschreibung |
|
||||
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
|
||||
| `modified_at` | string | Zeitstempel der letzten Änderung der Aufgabe |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
@@ -94,7 +112,8 @@ Alle Projekte aus einem Asana-Workspace abrufen
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Liste der Projekte mit ihrer GID, Name und Ressourcentyp |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `projects` | array | Array von Projekten |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -115,7 +134,8 @@ Nach Aufgaben in einem Asana-Workspace suchen
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Liste der Aufgaben, die den Suchkriterien entsprechen |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `tasks` | array | Array von passenden Aufgaben |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -133,7 +153,11 @@ Einen Kommentar (Story) zu einer Asana-Aufgabe hinzufügen
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Kommentardetails einschließlich gid, Text, Erstellungszeitstempel und Autor |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung des Kommentars |
|
||||
| `text` | string | Textinhalt des Kommentars |
|
||||
| `created_at` | string | Erstellungszeitstempel des Kommentars |
|
||||
| `created_by` | object | Details zum Autor des Kommentars |
|
||||
|
||||
## Hinweise
|
||||
|
||||
|
||||
@@ -221,9 +221,36 @@ Löscht einen Kommentar von einer Confluence-Seite.
|
||||
| `commentId` | string | Gelöschte Kommentar-ID |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
Laden Sie eine Datei als Anhang zu einer Confluence-Seite hoch.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, an die die Datei angehängt werden soll |
|
||||
| `file` | file | Ja | Die als Anhang hochzuladende Datei |
|
||||
| `fileName` | string | Nein | Optionaler benutzerdefinierter Dateiname für den Anhang |
|
||||
| `comment` | string | Nein | Optionaler Kommentar zum Anhang |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Uploads |
|
||||
| `attachmentId` | string | Hochgeladene Anhangs-ID |
|
||||
| `title` | string | Dateiname des Anhangs |
|
||||
| `fileSize` | number | Dateigröße in Bytes |
|
||||
| `mediaType` | string | MIME-Typ des Anhangs |
|
||||
| `downloadUrl` | string | Download-URL für den Anhang |
|
||||
| `pageId` | string | Seiten-ID, zu der der Anhang hinzugefügt wurde |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
Listet alle Anhänge einer Confluence-Seite auf.
|
||||
Listen Sie alle Anhänge einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
@@ -243,7 +270,7 @@ Listet alle Anhänge einer Confluence-Seite auf.
|
||||
|
||||
### `confluence_delete_attachment`
|
||||
|
||||
Löscht einen Anhang von einer Confluence-Seite (wird in den Papierkorb verschoben).
|
||||
Löschen eines Anhangs von einer Confluence-Seite (wird in den Papierkorb verschoben).
|
||||
|
||||
#### Eingabe
|
||||
|
||||
@@ -263,7 +290,7 @@ Löscht einen Anhang von einer Confluence-Seite (wird in den Papierkorb verschob
|
||||
|
||||
### `confluence_list_labels`
|
||||
|
||||
Alle Labels einer Confluence-Seite auflisten.
|
||||
Listet alle Labels einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
@@ -282,7 +309,7 @@ Alle Labels einer Confluence-Seite auflisten.
|
||||
|
||||
### `confluence_get_space`
|
||||
|
||||
Details zu einem bestimmten Confluence-Space abrufen.
|
||||
Ruft Details zu einem bestimmten Confluence-Space ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
@@ -306,7 +333,7 @@ Details zu einem bestimmten Confluence-Space abrufen.
|
||||
|
||||
### `confluence_list_spaces`
|
||||
|
||||
Alle für den Benutzer zugänglichen Confluence-Spaces auflisten.
|
||||
Listet alle Confluence-Spaces auf, auf die der Benutzer zugreifen kann.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
|
||||
@@ -144,8 +144,7 @@ Extrahieren Sie strukturierte Daten aus vollständigen Webseiten mithilfe von na
|
||||
| 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\) |
|
||||
| `data` | object | Extrahierte strukturierte Daten gemäß dem Schema oder der Eingabeaufforderung |
|
||||
|
||||
## Hinweise
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ Alle Gruppen in einer Google Workspace-Domain auflisten
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `groups` | json | Array von Gruppenobjekten |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
@@ -50,7 +51,7 @@ Details einer bestimmten Google-Gruppe nach E-Mail oder Gruppen-ID abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `group` | json | Gruppenobjekt |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
@@ -68,7 +69,7 @@ Eine neue Google-Gruppe in der Domain erstellen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `group` | json | Erstelltes Gruppenobjekt |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
@@ -87,7 +88,7 @@ Eine bestehende Google-Gruppe aktualisieren
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `group` | json | Aktualisiertes Gruppenobjekt |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
@@ -103,7 +104,7 @@ Eine Google-Gruppe löschen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `message` | string | Erfolgsmeldung |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
@@ -122,7 +123,8 @@ Alle Mitglieder einer Google-Gruppe auflisten
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `members` | json | Array von Mitgliederobjekten |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
@@ -139,7 +141,7 @@ Details eines bestimmten Mitglieds in einer Google-Gruppe abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `member` | json | Mitgliederobjekt |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
@@ -157,7 +159,7 @@ Ein neues Mitglied zu einer Google-Gruppe hinzufügen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `member` | json | Hinzugefügtes Mitgliederobjekt |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
@@ -174,7 +176,7 @@ Ein Mitglied aus einer Google-Gruppe entfernen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `message` | string | Erfolgsmeldung |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
@@ -192,7 +194,7 @@ Ein Mitglied aktualisieren
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `member` | json | Aktualisiertes Mitgliederobjekt |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
@@ -209,7 +211,7 @@ Prüfen, ob ein Benutzer Mitglied einer Google-Gruppe ist
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API-Antwortdaten |
|
||||
| `isMember` | boolean | Gibt an, ob der Benutzer ein Mitglied der Gruppe ist |
|
||||
|
||||
## Hinweise
|
||||
|
||||
|
||||
@@ -35,8 +35,7 @@ Einen Export in einer Angelegenheit erstellen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API-Antwortdaten |
|
||||
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
|
||||
| `export` | json | Erstelltes Export-Objekt |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
@@ -55,8 +54,9 @@ Exporte für eine Angelegenheit auflisten
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API-Antwortdaten |
|
||||
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
|
||||
| `exports` | json | Array von Export-Objekten |
|
||||
| `export` | json | Einzelnes Export-Objekt \(wenn exportId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
@@ -95,8 +95,7 @@ Eine Aufbewahrung in einer Angelegenheit erstellen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault-API-Antwortdaten |
|
||||
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
|
||||
| `hold` | json | Erstelltes Hold-Objekt |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
@@ -113,10 +112,11 @@ Aufbewahrungen für eine Angelegenheit auflisten
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API-Antwortdaten |
|
||||
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
|
||||
| `holds` | json | Array von Hold-Objekten |
|
||||
| `hold` | json | Einzelnes Hold-Objekt \(wenn holdId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
@@ -131,10 +131,9 @@ Einen neuen Fall in Google Vault erstellen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API-Antwortdaten |
|
||||
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
|
||||
| `matter` | json | Erstelltes Matter-Objekt |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
@@ -150,10 +149,11 @@ Fälle auflisten oder einen bestimmten Fall abrufen, wenn matterId angegeben ist
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API-Antwortdaten |
|
||||
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
|
||||
| `matters` | json | Array von Matter-Objekten |
|
||||
| `matter` | json | Einzelnes Matter-Objekt \(wenn matterId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
## Hinweise
|
||||
|
||||
|
||||
@@ -46,10 +46,11 @@ Alle Benutzer vom HubSpot-Konto abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Benutzerdaten |
|
||||
| `users` | array | Array von HubSpot-Benutzerobjekten |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
@@ -68,8 +69,10 @@ Alle Kontakte vom HubSpot-Konto mit Paginierungsunterstützung abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array von HubSpot-Kontaktobjekten |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Kontaktdaten |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
@@ -88,8 +91,9 @@ Einen einzelnen Kontakt anhand von ID oder E-Mail aus HubSpot abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | HubSpot-Kontaktobjekt mit Eigenschaften |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Kontaktdaten |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
@@ -106,8 +110,9 @@ Erstellt einen neuen Kontakt in HubSpot. Erfordert mindestens eines der folgende
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Erstelltes HubSpot-Kontaktobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Daten des erstellten Kontakts |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
@@ -125,8 +130,9 @@ Aktualisiert einen bestehenden Kontakt in HubSpot anhand von ID oder E-Mail
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Aktualisiertes HubSpot-Kontaktobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Daten des aktualisierten Kontakts |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
@@ -147,8 +153,11 @@ Suche nach Kontakten in HubSpot mit Filtern, Sortierung und Abfragen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array übereinstimmender HubSpot-Kontaktobjekte |
|
||||
| `total` | number | Gesamtanzahl übereinstimmender Kontakte |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Suchergebnisse |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
@@ -167,8 +176,10 @@ Alle Unternehmen aus dem HubSpot-Konto mit Paginierungsunterstützung abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array von HubSpot-Unternehmensobjekten |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Unternehmensdaten |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
@@ -187,8 +198,9 @@ Ruft ein einzelnes Unternehmen anhand der ID oder Domain von HubSpot ab
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | HubSpot-Unternehmensobjekt mit Eigenschaften |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Unternehmensdaten |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
@@ -205,8 +217,9 @@ Erstellt ein neues Unternehmen in HubSpot
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Erstelltes HubSpot-Unternehmensobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Daten des erstellten Unternehmens |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
@@ -224,8 +237,9 @@ Aktualisiert ein bestehendes Unternehmen in HubSpot anhand der ID oder Domain
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Aktualisiertes HubSpot-Unternehmensobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Aktualisierte Unternehmensdaten |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
@@ -246,8 +260,11 @@ Suche nach Unternehmen in HubSpot mit Filtern, Sortierung und Abfragen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array übereinstimmender HubSpot-Unternehmensobjekte |
|
||||
| `total` | number | Gesamtzahl übereinstimmender Unternehmen |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Suchergebnisse |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
@@ -266,8 +283,10 @@ Alle Deals vom HubSpot-Konto mit Paginierungsunterstützung abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array von HubSpot-Deal-Objekten |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Deals-Daten |
|
||||
|
||||
## Hinweise
|
||||
|
||||
|
||||
@@ -49,10 +49,11 @@ Alle Deals von Pipedrive mit optionalen Filtern abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array von Deal-Objekten aus Pipedrive |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Deals-Daten und Metadaten |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
|
||||
@@ -66,10 +67,11 @@ Detaillierte Informationen über einen bestimmten Deal abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Deal-Objekt mit vollständigen Details |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Deal-Details |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
|
||||
@@ -93,8 +95,9 @@ Einen neuen Deal in Pipedrive erstellen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Das erstellte Deal-Objekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Details des erstellten Deals |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
|
||||
@@ -115,8 +118,9 @@ Aktualisieren eines bestehenden Deals in Pipedrive
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Das aktualisierte Deal-Objekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Details des aktualisierten Deals |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
|
||||
@@ -133,10 +137,11 @@ Dateien von Pipedrive mit optionalen Filtern abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Dateidaten |
|
||||
| `files` | array | Array von Datei-Objekten aus Pipedrive |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
|
||||
@@ -151,10 +156,11 @@ E-Mail-Threads aus dem Pipedrive-Postfach abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | E-Mail-Thread-Daten |
|
||||
| `messages` | array | Array von E-Mail-Thread-Objekten aus der Pipedrive-Mailbox |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
|
||||
@@ -168,10 +174,11 @@ Alle Nachrichten aus einem bestimmten E-Mail-Thread abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array von E-Mail-Nachrichtenobjekten aus dem Thread |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Thread-ID |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Nachrichtendaten des E-Mail-Threads |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
|
||||
@@ -190,8 +197,9 @@ Alle Pipelines aus Pipedrive abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Pipeline-Daten |
|
||||
| `pipelines` | array | Array von Pipeline-Objekten aus Pipedrive |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
|
||||
@@ -210,8 +218,9 @@ Alle Deals in einer bestimmten Pipeline abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Pipeline-Deals-Daten |
|
||||
| `deals` | array | Array von Deal-Objekten aus der Pipeline |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Pipeline-ID |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
|
||||
@@ -229,8 +238,10 @@ Alle Projekte oder ein bestimmtes Projekt von Pipedrive abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Projektdaten oder Details eines einzelnen Projekts |
|
||||
| `projects` | array | Array von Projektobjekten (bei Auflistung aller) |
|
||||
| `project` | object | Einzelnes Projektobjekt (wenn project_id angegeben ist) |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
|
||||
@@ -249,8 +260,9 @@ Erstelle ein neues Projekt in Pipedrive
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | Das erstellte Projektobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Details des erstellten Projekts |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
|
||||
@@ -271,8 +283,9 @@ Aktivitäten (Aufgaben) von Pipedrive mit optionalen Filtern abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | Array von Aktivitätsobjekten aus Pipedrive |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Aktivitätsdaten |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
|
||||
@@ -296,8 +309,9 @@ Eine neue Aktivität (Aufgabe) in Pipedrive erstellen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | Das erstellte Aktivitätsobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
| `output` | object | Details der erstellten Aktivität |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
|
||||
@@ -317,10 +331,11 @@ Eine bestehende Aktivität (Aufgabe) in Pipedrive aktualisieren
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Aktualisierte Aktivitätsdetails |
|
||||
| `activity` | object | Das aktualisierte Aktivitätsobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
|
||||
@@ -339,10 +354,12 @@ Alle Leads oder einen bestimmten Lead von Pipedrive abrufen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Lead-Daten oder Details eines einzelnen Leads |
|
||||
| `leads` | array | Array von Lead-Objekten (bei Auflistung aller) |
|
||||
| `lead` | object | Einzelnes Lead-Objekt (wenn lead_id angegeben ist) |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
|
||||
@@ -363,10 +380,11 @@ Einen neuen Lead in Pipedrive erstellen
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Details des erstellten Leads |
|
||||
| `lead` | object | Das erstellte Lead-Objekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
|
||||
@@ -388,10 +406,11 @@ Einen vorhandenen Lead in Pipedrive aktualisieren
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Details des aktualisierten Leads |
|
||||
| `lead` | object | Das aktualisierte Lead-Objekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
|
||||
@@ -407,8 +426,9 @@ Einen bestimmten Lead aus Pipedrive löschen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `output` | object | Löschergebnis |
|
||||
| `data` | object | Löschbestätigungsdaten |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Status des Operationserfolgs |
|
||||
|
||||
## Hinweise
|
||||
|
||||
|
||||
63
apps/docs/content/docs/de/tools/sqs.mdx
Normal file
63
apps/docs/content/docs/de/tools/sqs.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Amazon SQS
|
||||
description: Verbindung zu Amazon SQS
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="sqs"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) ist ein vollständig verwalteter Message-Queuing-Dienst, der es ermöglicht, Microservices, verteilte Systeme und serverlose Anwendungen zu entkoppeln und zu skalieren. SQS beseitigt die Komplexität und den Aufwand, die mit der Verwaltung und dem Betrieb von nachrichtenorientierter Middleware verbunden sind, und ermöglicht Entwicklern, sich auf differenzierende Arbeit zu konzentrieren.
|
||||
|
||||
Mit Amazon SQS können Sie:
|
||||
|
||||
- **Nachrichten senden**: Veröffentlichen Sie Nachrichten in Warteschlangen für asynchrone Verarbeitung
|
||||
- **Anwendungen entkoppeln**: Ermöglichen Sie eine lose Kopplung zwischen Komponenten Ihres Systems
|
||||
- **Workloads skalieren**: Bewältigen Sie variable Arbeitslasten ohne Bereitstellung von Infrastruktur
|
||||
- **Zuverlässigkeit gewährleisten**: Eingebaute Redundanz und hohe Verfügbarkeit
|
||||
- **FIFO-Warteschlangen unterstützen**: Strikte Nachrichtenreihenfolge und genau einmalige Verarbeitung beibehalten
|
||||
|
||||
In Sim ermöglicht die SQS-Integration Ihren Agenten, Nachrichten sicher und programmatisch an Amazon SQS-Warteschlangen zu senden. Unterstützte Operationen umfassen:
|
||||
|
||||
- **Nachricht senden**: Senden Sie Nachrichten an SQS-Warteschlangen mit optionaler Nachrichtengruppen-ID und Deduplizierungs-ID für FIFO-Warteschlangen
|
||||
|
||||
Diese Integration ermöglicht es Ihren Agenten, Workflows zum Senden von Nachrichten ohne manuelle Eingriffe zu automatisieren. Durch die Verbindung von Sim mit Amazon SQS können Sie Agenten erstellen, die Nachrichten innerhalb Ihrer Workflows in Warteschlangen veröffentlichen – alles ohne Verwaltung der Warteschlangen-Infrastruktur oder Verbindungen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Amazon SQS in den Workflow. Kann Nachrichten an SQS-Warteschlangen senden.
|
||||
|
||||
## Tools
|
||||
|
||||
### `sqs_send`
|
||||
|
||||
Eine Nachricht an eine Amazon SQS-Warteschlange senden
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `queueUrl` | string | Ja | Queue-URL |
|
||||
| `data` | object | Ja | Zu sendender Nachrichtentext |
|
||||
| `messageGroupId` | string | Nein | Nachrichtengruppen-ID (optional) |
|
||||
| `messageDeduplicationId` | string | Nein | Nachrichtendeduplizierungs-ID (optional) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `id` | string | Nachrichten-ID |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `sqs`
|
||||
@@ -48,25 +48,9 @@ Formularantworten von Typeform abrufen
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `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 |
|
||||
| `total_items` | number | Gesamtanzahl der Antworten |
|
||||
| `page_count` | number | Gesamtanzahl der verfügbaren Seiten |
|
||||
| `items` | array | Array von Antwortobjekten mit response_id, submitted_at, answers und metadata |
|
||||
|
||||
### `typeform_files`
|
||||
|
||||
@@ -128,7 +112,7 @@ Eine Liste aller Formulare in Ihrem Typeform-Konto abrufen
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | Gesamtanzahl der Formulare im Konto |
|
||||
| `page_count` | number | Gesamtanzahl der verfügbaren Seiten |
|
||||
| `items` | array | Array von Formularobjekten |
|
||||
| `items` | array | Array von Formularobjekten mit id, title, created_at, last_updated_at, settings, theme und _links |
|
||||
|
||||
### `typeform_get_form`
|
||||
|
||||
@@ -148,11 +132,13 @@ Vollständige Details und Struktur eines bestimmten Formulars abrufen
|
||||
| `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 |
|
||||
| `theme` | object | Theme-Referenz |
|
||||
| `workspace` | object | Workspace-Referenz |
|
||||
| `fields` | array | Array von Formularfeldern/Fragen |
|
||||
| `welcome_screens` | array | Array von Begrüßungsbildschirmen |
|
||||
| `thankyou_screens` | array | Array von Dankesbildschirmen |
|
||||
| `_links` | object | Links zu verwandten Ressourcen einschließlich öffentlicher Formular-URL |
|
||||
|
||||
### `typeform_create_form`
|
||||
|
||||
@@ -177,13 +163,8 @@ Ein neues Formular mit Feldern und Einstellungen erstellen
|
||||
| `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 |
|
||||
| `_links` | object | Links zu verwandten Ressourcen einschließlich öffentlicher Formular-URL |
|
||||
|
||||
### `typeform_update_form`
|
||||
|
||||
@@ -204,13 +185,12 @@ Ein bestehendes Formular mit JSON Patch-Operationen aktualisieren
|
||||
| `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 |
|
||||
| `theme` | object | Theme-Referenz |
|
||||
| `workspace` | object | Workspace-Referenz |
|
||||
| `fields` | array | Array von Formularfeldern |
|
||||
| `welcome_screens` | array | Array von Begrüßungsbildschirmen |
|
||||
| `thankyou_screens` | array | Array von Dankesbildschirmen |
|
||||
| `_links` | object | Links zu verwandten Ressourcen |
|
||||
|
||||
### `typeform_delete_form`
|
||||
|
||||
@@ -57,7 +57,6 @@ Run an APIFY actor synchronously and get results (max 5 minutes)
|
||||
| `success` | boolean | Whether the actor run succeeded |
|
||||
| `runId` | string | APIFY run ID |
|
||||
| `status` | string | Run status \(SUCCEEDED, FAILED, etc.\) |
|
||||
| `datasetId` | string | Dataset ID containing results |
|
||||
| `items` | array | Dataset items \(if completed\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
@@ -36,7 +36,14 @@ Retrieve a single task by GID or get multiple tasks with filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Single task details or array of tasks, depending on whether taskGid was provided |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `gid` | string | Task globally unique identifier |
|
||||
| `resource_type` | string | Resource type \(task\) |
|
||||
| `resource_subtype` | string | Resource subtype |
|
||||
| `name` | string | Task name |
|
||||
| `notes` | string | Task notes or description |
|
||||
| `completed` | boolean | Whether the task is completed |
|
||||
| `assignee` | object | Assignee details |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -57,7 +64,13 @@ Create a new task in Asana
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created task details with timestamp, gid, name, notes, and permalink |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `gid` | string | Task globally unique identifier |
|
||||
| `name` | string | Task name |
|
||||
| `notes` | string | Task notes or description |
|
||||
| `completed` | boolean | Whether the task is completed |
|
||||
| `created_at` | string | Task creation timestamp |
|
||||
| `permalink_url` | string | URL to the task in Asana |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
@@ -79,7 +92,12 @@ Update an existing task in Asana
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated task details with timestamp, gid, name, notes, and modified timestamp |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `gid` | string | Task globally unique identifier |
|
||||
| `name` | string | Task name |
|
||||
| `notes` | string | Task notes or description |
|
||||
| `completed` | boolean | Whether the task is completed |
|
||||
| `modified_at` | string | Task last modified timestamp |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
@@ -96,7 +114,8 @@ Retrieve all projects from an Asana workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | List of projects with their gid, name, and resource type |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `projects` | array | Array of projects |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -117,7 +136,8 @@ Search for tasks in an Asana workspace
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | List of tasks matching the search criteria |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `tasks` | array | Array of matching tasks |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -135,7 +155,11 @@ Add a comment (story) to an Asana task
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Comment details including gid, text, created timestamp, and author |
|
||||
| `ts` | string | Timestamp of the response |
|
||||
| `gid` | string | Comment globally unique identifier |
|
||||
| `text` | string | Comment text content |
|
||||
| `created_at` | string | Comment creation timestamp |
|
||||
| `created_by` | object | Comment author details |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -224,6 +224,33 @@ Delete a comment from a Confluence page.
|
||||
| `commentId` | string | Deleted comment ID |
|
||||
| `deleted` | boolean | Deletion status |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
Upload a file as an attachment 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 attach the file to |
|
||||
| `file` | file | Yes | The file to upload as an attachment |
|
||||
| `fileName` | string | No | Optional custom file name for the attachment |
|
||||
| `comment` | string | No | Optional comment to add to the attachment |
|
||||
| `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 upload |
|
||||
| `attachmentId` | string | Uploaded attachment ID |
|
||||
| `title` | string | Attachment file name |
|
||||
| `fileSize` | number | File size in bytes |
|
||||
| `mediaType` | string | MIME type of the attachment |
|
||||
| `downloadUrl` | string | Download URL for the attachment |
|
||||
| `pageId` | string | Page ID the attachment was added to |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
List all attachments on a Confluence page.
|
||||
|
||||
@@ -148,7 +148,6 @@ Extract structured data from entire webpages using natural language prompts and
|
||||
| --------- | ---- | ----------- |
|
||||
| `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\) |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,8 @@ List all groups in a Google Workspace domain
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `groups` | json | Array of group objects |
|
||||
| `nextPageToken` | string | Token for fetching next page of results |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
@@ -52,7 +53,7 @@ Get details of a specific Google Group by email or group ID
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `group` | json | Group object |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
@@ -70,7 +71,7 @@ Create a new Google Group in the domain
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `group` | json | Created group object |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
@@ -89,7 +90,7 @@ Update an existing Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `group` | json | Updated group object |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
@@ -105,7 +106,7 @@ Delete a Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `message` | string | Success message |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
@@ -124,7 +125,8 @@ List all members of a Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `members` | json | Array of member objects |
|
||||
| `nextPageToken` | string | Token for fetching next page of results |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
@@ -141,7 +143,7 @@ Get details of a specific member in a Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `member` | json | Member object |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
@@ -159,7 +161,7 @@ Add a new member to a Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `member` | json | Added member object |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
@@ -176,7 +178,7 @@ Remove a member from a Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `message` | string | Success message |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
@@ -194,7 +196,7 @@ Update a member
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `member` | json | Updated member object |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
@@ -211,7 +213,7 @@ Check if a user is a member of a Google Group
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API response data |
|
||||
| `isMember` | boolean | Whether the user is a member of the group |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@ Create an export in a matter
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API response data |
|
||||
| `file` | json | Downloaded export file \(UserFile\) from execution files |
|
||||
| `export` | json | Created export object |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
@@ -56,8 +55,9 @@ List exports for a matter
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API response data |
|
||||
| `file` | json | Downloaded export file \(UserFile\) from execution files |
|
||||
| `exports` | json | Array of export objects |
|
||||
| `export` | json | Single export object \(when exportId is provided\) |
|
||||
| `nextPageToken` | string | Token for fetching next page of results |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
@@ -96,8 +96,7 @@ Create a hold in a matter
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API response data |
|
||||
| `file` | json | Downloaded export file \(UserFile\) from execution files |
|
||||
| `hold` | json | Created hold object |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
@@ -116,8 +115,9 @@ List holds for a matter
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API response data |
|
||||
| `file` | json | Downloaded export file \(UserFile\) from execution files |
|
||||
| `holds` | json | Array of hold objects |
|
||||
| `hold` | json | Single hold object \(when holdId is provided\) |
|
||||
| `nextPageToken` | string | Token for fetching next page of results |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
@@ -134,8 +134,7 @@ Create a new matter in Google Vault
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API response data |
|
||||
| `file` | json | Downloaded export file \(UserFile\) from execution files |
|
||||
| `matter` | json | Created matter object |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
@@ -153,8 +152,9 @@ List matters, or get a specific matter if matterId is provided
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API response data |
|
||||
| `file` | json | Downloaded export file \(UserFile\) from execution files |
|
||||
| `matters` | json | Array of matter objects |
|
||||
| `matter` | json | Single matter object \(when matterId is provided\) |
|
||||
| `nextPageToken` | string | Token for fetching next page of results |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -50,8 +50,9 @@ Retrieve all users from HubSpot account
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of HubSpot user objects |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Users data |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
@@ -70,8 +71,10 @@ Retrieve all contacts from HubSpot account with pagination support
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of HubSpot contact objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Contacts data |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
@@ -90,8 +93,9 @@ Retrieve a single contact by ID or email from HubSpot
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | HubSpot contact object with properties |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Contact data |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
@@ -108,8 +112,9 @@ Create a new contact in HubSpot. Requires at least one of: email, firstname, or
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Created HubSpot contact object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created contact data |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
@@ -127,8 +132,9 @@ Update an existing contact in HubSpot by ID or email
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Updated HubSpot contact object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated contact data |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
@@ -149,8 +155,11 @@ Search for contacts in HubSpot using filters, sorting, and queries
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of matching HubSpot contact objects |
|
||||
| `total` | number | Total number of matching contacts |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Search results |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
@@ -169,8 +178,10 @@ Retrieve all companies from HubSpot account with pagination support
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array of HubSpot company objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Companies data |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
@@ -189,8 +200,9 @@ Retrieve a single company by ID or domain from HubSpot
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | HubSpot company object with properties |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Company data |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
@@ -207,8 +219,9 @@ Create a new company in HubSpot
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Created HubSpot company object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created company data |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
@@ -226,8 +239,9 @@ Update an existing company in HubSpot by ID or domain
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Updated HubSpot company object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated company data |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
@@ -248,8 +262,11 @@ Search for companies in HubSpot using filters, sorting, and queries
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array of matching HubSpot company objects |
|
||||
| `total` | number | Total number of matching companies |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Search results |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
@@ -268,8 +285,10 @@ Retrieve all deals from HubSpot account with pagination support
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array of HubSpot deal objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deals data |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
"shopify",
|
||||
"slack",
|
||||
"smtp",
|
||||
"sqs",
|
||||
"ssh",
|
||||
"stagehand",
|
||||
"stagehand_agent",
|
||||
|
||||
@@ -54,8 +54,9 @@ Retrieve all deals from Pipedrive with optional filters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array of deal objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deals data and metadata |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
|
||||
@@ -71,8 +72,9 @@ Retrieve detailed information about a specific deal
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Deal object with full details |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deal details |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
|
||||
@@ -96,8 +98,9 @@ Create a new deal in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | The created deal object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created deal details |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
|
||||
@@ -118,8 +121,9 @@ Update an existing deal in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | The updated deal object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated deal details |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
|
||||
@@ -138,8 +142,9 @@ Retrieve files from Pipedrive with optional filters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Array of file objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Files data |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
|
||||
@@ -156,8 +161,9 @@ Retrieve mail threads from Pipedrive mailbox
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array of mail thread objects from Pipedrive mailbox |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Mail threads data |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
|
||||
@@ -173,8 +179,9 @@ Retrieve all messages from a specific mail thread
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array of mail message objects from the thread |
|
||||
| `metadata` | object | Operation metadata including thread ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Mail thread messages data |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
|
||||
@@ -193,8 +200,9 @@ Retrieve all pipelines from Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | Array of pipeline objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Pipelines data |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
|
||||
@@ -213,8 +221,9 @@ Retrieve all deals in a specific pipeline
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array of deal objects from the pipeline |
|
||||
| `metadata` | object | Operation metadata including pipeline ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Pipeline deals data |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
|
||||
@@ -232,8 +241,10 @@ Retrieve all projects or a specific project from Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | Array of project objects \(when listing all\) |
|
||||
| `project` | object | Single project object \(when project_id is provided\) |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Projects data or single project details |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
|
||||
@@ -252,8 +263,9 @@ Create a new project in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The created project object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created project details |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
|
||||
@@ -274,8 +286,9 @@ Retrieve activities (tasks) from Pipedrive with optional filters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | Array of activity objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Activities data |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
|
||||
@@ -299,8 +312,9 @@ Create a new activity (task) in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | The created activity object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created activity details |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
|
||||
@@ -322,8 +336,9 @@ Update an existing activity (task) in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | The updated activity object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated activity details |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
|
||||
@@ -344,8 +359,10 @@ Retrieve all leads or a specific lead from Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `leads` | array | Array of lead objects \(when listing all\) |
|
||||
| `lead` | object | Single lead object \(when lead_id is provided\) |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Leads data or single lead details |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
|
||||
@@ -368,8 +385,9 @@ Create a new lead in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | The created lead object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created lead details |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
|
||||
@@ -393,8 +411,9 @@ Update an existing lead in Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | The updated lead object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated lead details |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
|
||||
@@ -410,8 +429,9 @@ Delete a specific lead from Pipedrive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Deletion confirmation data |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion result |
|
||||
|
||||
|
||||
|
||||
|
||||
68
apps/docs/content/docs/en/tools/sqs.mdx
Normal file
68
apps/docs/content/docs/en/tools/sqs.mdx
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Amazon SQS
|
||||
description: Connect to Amazon SQS
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="sqs"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware, and empowers developers to focus on differentiating work.
|
||||
|
||||
With Amazon SQS, you can:
|
||||
|
||||
- **Send messages**: Publish messages to queues for asynchronous processing
|
||||
- **Decouple applications**: Enable loose coupling between components of your system
|
||||
- **Scale workloads**: Handle variable workloads without provisioning infrastructure
|
||||
- **Ensure reliability**: Built-in redundancy and high availability
|
||||
- **Support FIFO queues**: Maintain strict message ordering and exactly-once processing
|
||||
|
||||
In Sim, the SQS integration enables your agents to send messages to Amazon SQS queues securely and programmatically. Supported operations include:
|
||||
|
||||
- **Send Message**: Send messages to SQS queues with optional message group ID and deduplication ID for FIFO queues
|
||||
|
||||
This integration allows your agents to automate message sending workflows without manual intervention. By connecting Sim with Amazon SQS, you can build agents that publish messages to queues within your workflows—all without handling queue infrastructure or connections.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate Amazon SQS into the workflow. Can send messages to SQS queues.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `sqs_send`
|
||||
|
||||
Send a message to an Amazon SQS queue
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Yes | AWS region \(e.g., us-east-1\) |
|
||||
| `accessKeyId` | string | Yes | AWS access key ID |
|
||||
| `secretAccessKey` | string | Yes | AWS secret access key |
|
||||
| `queueUrl` | string | Yes | Queue URL |
|
||||
| `data` | object | Yes | Message body to send |
|
||||
| `messageGroupId` | string | No | Message group ID \(optional\) |
|
||||
| `messageDeduplicationId` | string | No | Message deduplication ID \(optional\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Operation status message |
|
||||
| `id` | string | Message ID |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `sqs`
|
||||
@@ -51,25 +51,9 @@ Retrieve form responses from Typeform
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | Total response/form count |
|
||||
| `page_count` | number | Total page count |
|
||||
| `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 |
|
||||
| `total_items` | number | Total number of responses |
|
||||
| `page_count` | number | Total number of pages available |
|
||||
| `items` | array | Array of response objects with response_id, submitted_at, answers, and metadata |
|
||||
|
||||
### `typeform_files`
|
||||
|
||||
@@ -131,7 +115,7 @@ Retrieve a list of all forms in your Typeform account
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | Total number of forms in the account |
|
||||
| `page_count` | number | Total number of pages available |
|
||||
| `items` | array | Array of form objects |
|
||||
| `items` | array | Array of form objects with id, title, created_at, last_updated_at, settings, theme, and _links |
|
||||
|
||||
### `typeform_get_form`
|
||||
|
||||
@@ -151,11 +135,13 @@ Retrieve complete details and structure of a specific form
|
||||
| `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 |
|
||||
| `theme` | object | Theme reference |
|
||||
| `workspace` | object | Workspace reference |
|
||||
| `fields` | array | Array of form fields/questions |
|
||||
| `welcome_screens` | array | Array of welcome screens |
|
||||
| `thankyou_screens` | array | Array of thank you screens |
|
||||
| `_links` | object | Related resource links including public form URL |
|
||||
|
||||
### `typeform_create_form`
|
||||
|
||||
@@ -180,13 +166,8 @@ Create a new form with fields and settings
|
||||
| `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 |
|
||||
| `_links` | object | Related resource links including public form URL |
|
||||
|
||||
### `typeform_update_form`
|
||||
|
||||
@@ -207,12 +188,11 @@ Update an existing form using JSON Patch operations
|
||||
| `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 |
|
||||
| `theme` | object | Theme reference |
|
||||
| `workspace` | object | Workspace reference |
|
||||
| `fields` | array | Array of form fields |
|
||||
| `welcome_screens` | array | Array of welcome screens |
|
||||
| `thankyou_screens` | array | Array of thank you screens |
|
||||
| `_links` | object | Related resource links |
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ Ejecuta un actor de APIFY de forma sincrónica y obtén resultados (máximo 5 mi
|
||||
| `success` | boolean | Si la ejecución del actor tuvo éxito |
|
||||
| `runId` | string | ID de ejecución de APIFY |
|
||||
| `status` | string | Estado de la ejecución \(SUCCEEDED, FAILED, etc.\) |
|
||||
| `datasetId` | string | ID del conjunto de datos que contiene los resultados |
|
||||
| `items` | array | Elementos del conjunto de datos \(si se completó\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
@@ -34,7 +34,14 @@ Recupera una tarea individual por GID u obtén múltiples tareas con filtros
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles de una tarea individual o matriz de tareas, dependiendo de si se proporcionó taskGid |
|
||||
| `ts` | string | Marca de tiempo de la respuesta |
|
||||
| `gid` | string | Identificador único global de la tarea |
|
||||
| `resource_type` | string | Tipo de recurso \(tarea\) |
|
||||
| `resource_subtype` | string | Subtipo de recurso |
|
||||
| `name` | string | Nombre de la tarea |
|
||||
| `notes` | string | Notas o descripción de la tarea |
|
||||
| `completed` | boolean | Si la tarea está completada |
|
||||
| `assignee` | object | Detalles del asignado |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -55,7 +62,13 @@ Crear una nueva tarea en Asana
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles de la tarea creada con marca de tiempo, gid, nombre, notas y enlace permanente |
|
||||
| `ts` | string | Marca de tiempo de la respuesta |
|
||||
| `gid` | string | Identificador único global de la tarea |
|
||||
| `name` | string | Nombre de la tarea |
|
||||
| `notes` | string | Notas o descripción de la tarea |
|
||||
| `completed` | boolean | Si la tarea está completada |
|
||||
| `created_at` | string | Marca de tiempo de creación de la tarea |
|
||||
| `permalink_url` | string | URL a la tarea en Asana |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
@@ -77,7 +90,12 @@ Actualizar una tarea existente en Asana
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles actualizados de la tarea con marca de tiempo, gid, nombre, notas y marca de tiempo de modificación |
|
||||
| `ts` | string | Marca de tiempo de la respuesta |
|
||||
| `gid` | string | Identificador único global de la tarea |
|
||||
| `name` | string | Nombre de la tarea |
|
||||
| `notes` | string | Notas o descripción de la tarea |
|
||||
| `completed` | boolean | Si la tarea está completada |
|
||||
| `modified_at` | string | Marca de tiempo de última modificación de la tarea |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
@@ -94,7 +112,8 @@ Recuperar todos los proyectos de un espacio de trabajo de Asana
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Lista de proyectos con su gid, nombre y tipo de recurso |
|
||||
| `ts` | string | Marca de tiempo de la respuesta |
|
||||
| `projects` | array | Array de proyectos |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -115,7 +134,8 @@ Buscar tareas en un espacio de trabajo de Asana
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Lista de tareas que coinciden con los criterios de búsqueda |
|
||||
| `ts` | string | Marca de tiempo de la respuesta |
|
||||
| `tasks` | array | Array de tareas coincidentes |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -133,7 +153,11 @@ Añadir un comentario (historia) a una tarea de Asana
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del comentario incluyendo gid, texto, marca de tiempo de creación y autor |
|
||||
| `ts` | string | Marca de tiempo de la respuesta |
|
||||
| `gid` | string | Identificador único global del comentario |
|
||||
| `text` | string | Contenido de texto del comentario |
|
||||
| `created_at` | string | Marca de tiempo de creación del comentario |
|
||||
| `created_by` | object | Detalles del autor del comentario |
|
||||
|
||||
## Notas
|
||||
|
||||
|
||||
@@ -221,17 +221,44 @@ Eliminar un comentario de una página de Confluence.
|
||||
| `commentId` | string | ID del comentario eliminado |
|
||||
| `deleted` | boolean | Estado de eliminación |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
Listar todos los archivos adjuntos en una página de Confluence.
|
||||
Sube un archivo como adjunto a una página de Confluence.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Obligatorio | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Confluence \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `pageId` | string | Sí | ID de la página de Confluence de la que listar los archivos adjuntos |
|
||||
| `limit` | number | No | Número máximo de archivos adjuntos a devolver \(predeterminado: 25\) |
|
||||
| `pageId` | string | Sí | ID de la página de Confluence a la que adjuntar el archivo |
|
||||
| `file` | file | Sí | El archivo a subir como adjunto |
|
||||
| `fileName` | string | No | Nombre de archivo personalizado opcional para el adjunto |
|
||||
| `comment` | string | No | Comentario opcional para añadir al adjunto |
|
||||
| `cloudId` | string | No | ID de Confluence Cloud para la instancia. Si no se proporciona, se obtendrá utilizando el dominio. |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la subida |
|
||||
| `attachmentId` | string | ID del adjunto subido |
|
||||
| `title` | string | Nombre del archivo adjunto |
|
||||
| `fileSize` | number | Tamaño del archivo en bytes |
|
||||
| `mediaType` | string | Tipo MIME del adjunto |
|
||||
| `downloadUrl` | string | URL de descarga del adjunto |
|
||||
| `pageId` | string | ID de la página a la que se añadió el adjunto |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
Lista todos los adjuntos en una página de Confluence.
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Obligatorio | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Confluence \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `pageId` | string | Sí | ID de la página de Confluence de la que listar adjuntos |
|
||||
| `limit` | number | No | Número máximo de adjuntos a devolver \(predeterminado: 25\) |
|
||||
| `cloudId` | string | No | ID de Confluence Cloud para la instancia. Si no se proporciona, se obtendrá utilizando el dominio. |
|
||||
|
||||
#### Salida
|
||||
@@ -239,31 +266,31 @@ Listar todos los archivos adjuntos en una página de Confluence.
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la recuperación |
|
||||
| `attachments` | array | Lista de adjuntos |
|
||||
| `attachments` | array | Lista de archivos adjuntos |
|
||||
|
||||
### `confluence_delete_attachment`
|
||||
|
||||
Eliminar un adjunto de una página de Confluence (se mueve a la papelera).
|
||||
Eliminar un archivo adjunto de una página de Confluence (lo mueve a la papelera).
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Obligatorio | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Sí | Tu dominio de Confluence \(p. ej., tuempresa.atlassian.net\) |
|
||||
| `attachmentId` | string | Sí | ID del adjunto de Confluence a eliminar |
|
||||
| `attachmentId` | string | Sí | ID del archivo adjunto de Confluence a eliminar |
|
||||
| `cloudId` | string | No | ID de Confluence Cloud para la instancia. Si no se proporciona, se obtendrá utilizando el dominio. |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Marca de tiempo de la eliminación |
|
||||
| `attachmentId` | string | ID del adjunto eliminado |
|
||||
| `deleted` | boolean | Estado de la eliminación |
|
||||
| `ts` | string | Marca de tiempo de eliminación |
|
||||
| `attachmentId` | string | ID del archivo adjunto eliminado |
|
||||
| `deleted` | boolean | Estado de eliminación |
|
||||
|
||||
### `confluence_list_labels`
|
||||
|
||||
Listar todas las etiquetas en una página de Confluence.
|
||||
Listar todas las etiquetas de una página de Confluence.
|
||||
|
||||
#### Entrada
|
||||
|
||||
|
||||
@@ -144,8 +144,7 @@ Extrae datos estructurados de páginas web completas utilizando instrucciones en
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Si la operación de extracción fue exitosa |
|
||||
| `data` | object | Datos estructurados extraídos según el esquema o prompt |
|
||||
| `sources` | array | Fuentes de datos \(solo si showSources está habilitado\) |
|
||||
| `data` | object | Datos estructurados extraídos según el esquema o indicación |
|
||||
|
||||
## Notas
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ Listar todos los grupos en un dominio de Google Workspace
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `groups` | json | Array de objetos de grupo |
|
||||
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
@@ -50,7 +51,7 @@ Obtener detalles de un Grupo de Google específico por correo electrónico o ID
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `group` | json | Objeto de grupo |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
@@ -68,7 +69,7 @@ Crear un nuevo Grupo de Google en el dominio
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `group` | json | Objeto de grupo creado |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
@@ -87,7 +88,7 @@ Actualizar un grupo de Google existente
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `group` | json | Objeto de grupo actualizado |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
@@ -103,7 +104,7 @@ Eliminar un grupo de Google
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `message` | string | Mensaje de éxito |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
@@ -122,7 +123,8 @@ Listar todos los miembros de un Grupo de Google
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Grupos de Google |
|
||||
| `members` | json | Array de objetos de miembro |
|
||||
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
@@ -139,7 +141,7 @@ Obtener detalles de un miembro específico en un Grupo de Google
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Grupos de Google |
|
||||
| `member` | json | Objeto de miembro |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
@@ -157,7 +159,7 @@ Añadir un nuevo miembro a un Grupo de Google
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `member` | json | Objeto de miembro añadido |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
@@ -174,7 +176,7 @@ Eliminar un miembro de un grupo de Google
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `message` | string | Mensaje de éxito |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
@@ -192,7 +194,7 @@ Actualizar un miembro
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `member` | json | Objeto de miembro actualizado |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
@@ -209,7 +211,7 @@ Comprobar si un usuario es miembro de un grupo de Google
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Google Groups |
|
||||
| `isMember` | boolean | Indica si el usuario es miembro del grupo |
|
||||
|
||||
## Notas
|
||||
|
||||
|
||||
@@ -34,8 +34,7 @@ Crear una exportación en un asunto
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Vault |
|
||||
| `file` | json | Archivo de exportación descargado \(UserFile\) de los archivos de ejecución |
|
||||
| `export` | json | Objeto de exportación creado |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
@@ -54,8 +53,9 @@ Listar exportaciones para un asunto
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Vault |
|
||||
| `file` | json | Archivo de exportación descargado \(UserFile\) de los archivos de ejecución |
|
||||
| `exports` | json | Array de objetos de exportación |
|
||||
| `export` | json | Objeto de exportación único \(cuando se proporciona exportId\) |
|
||||
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
@@ -94,8 +94,7 @@ Crear una retención en un asunto
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Vault |
|
||||
| `file` | json | Archivo de exportación descargado \(UserFile\) de los archivos de ejecución |
|
||||
| `hold` | json | Objeto de retención creado |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
@@ -114,8 +113,9 @@ Listar retenciones para un asunto
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Vault |
|
||||
| `file` | json | Archivo de exportación descargado (UserFile) de los archivos de ejecución |
|
||||
| `holds` | json | Array de objetos de retención |
|
||||
| `hold` | json | Objeto de retención único \(cuando se proporciona holdId\) |
|
||||
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
@@ -132,8 +132,7 @@ Crear un nuevo asunto en Google Vault
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Vault |
|
||||
| `file` | json | Archivo de exportación descargado (UserFile) de los archivos de ejecución |
|
||||
| `matter` | json | Objeto de asunto creado |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
@@ -151,8 +150,9 @@ Listar asuntos, o obtener un asunto específico si se proporciona matterId
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Datos de respuesta de la API de Vault |
|
||||
| `file` | json | Archivo de exportación descargado (UserFile) de los archivos de ejecución |
|
||||
| `matters` | json | Array de objetos de asunto |
|
||||
| `matter` | json | Objeto de asunto único \(cuando se proporciona matterId\) |
|
||||
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
|
||||
|
||||
## Notas
|
||||
|
||||
|
||||
@@ -47,8 +47,9 @@ Recuperar todos los usuarios de la cuenta de HubSpot
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array de objetos de usuario de HubSpot |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de usuarios |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
@@ -67,8 +68,10 @@ Recuperar todos los contactos de la cuenta de HubSpot con soporte de paginación
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array de objetos de contacto de HubSpot |
|
||||
| `paging` | object | Información de paginación |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de contactos |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
@@ -87,8 +90,9 @@ Recuperar un solo contacto por ID o email desde HubSpot
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Objeto de contacto de HubSpot con propiedades |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos del contacto |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
@@ -105,8 +109,9 @@ Crear un nuevo contacto en HubSpot. Requiere al menos uno de: email, firstname o
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Objeto de contacto de HubSpot creado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | objeto | Datos del contacto creado |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
@@ -124,8 +129,9 @@ Actualizar un contacto existente en HubSpot por ID o email
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Objeto de contacto de HubSpot actualizado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | objeto | Datos del contacto actualizado |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
@@ -146,8 +152,11 @@ Buscar contactos en HubSpot usando filtros, ordenación y consultas
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array de objetos de contacto de HubSpot coincidentes |
|
||||
| `total` | number | Número total de contactos coincidentes |
|
||||
| `paging` | object | Información de paginación |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Resultados de la búsqueda |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
@@ -166,8 +175,10 @@ Recuperar todas las empresas de la cuenta de HubSpot con soporte de paginación
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array de objetos de empresa de HubSpot |
|
||||
| `paging` | object | Información de paginación |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de las empresas |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
@@ -186,8 +197,9 @@ Recuperar una sola empresa por ID o dominio desde HubSpot
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Objeto de empresa de HubSpot con propiedades |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de la empresa |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
@@ -204,8 +216,9 @@ Crear una nueva empresa en HubSpot
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Objeto de empresa de HubSpot creado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de la empresa creada |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
@@ -223,8 +236,9 @@ Actualizar una empresa existente en HubSpot por ID o dominio
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Objeto de empresa de HubSpot actualizado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos actualizados de la empresa |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
@@ -245,8 +259,11 @@ Buscar empresas en HubSpot usando filtros, ordenación y consultas
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array de objetos de empresa de HubSpot coincidentes |
|
||||
| `total` | number | Número total de empresas coincidentes |
|
||||
| `paging` | object | Información de paginación |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Resultados de la búsqueda |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
@@ -265,8 +282,10 @@ Recuperar todos los acuerdos de la cuenta de HubSpot con soporte de paginación
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array de objetos de negocio de HubSpot |
|
||||
| `paging` | object | Información de paginación |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de ofertas |
|
||||
|
||||
## Notas
|
||||
|
||||
|
||||
@@ -51,8 +51,9 @@ Recupera todos los acuerdos de Pipedrive con filtros opcionales
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array de objetos de acuerdos de Pipedrive |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos y metadatos de los acuerdos |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
|
||||
@@ -68,8 +69,9 @@ Recuperar información detallada sobre un acuerdo específico
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Objeto de acuerdo con detalles completos |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del acuerdo |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
|
||||
@@ -93,8 +95,9 @@ Crear un nuevo acuerdo en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | El objeto de acuerdo creado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del acuerdo creado |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
|
||||
@@ -115,8 +118,9 @@ Actualizar un acuerdo existente en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | El objeto de acuerdo actualizado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del acuerdo actualizado |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
|
||||
@@ -135,8 +139,9 @@ Recuperar archivos de Pipedrive con filtros opcionales
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Array de objetos de archivo de Pipedrive |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de archivos |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
|
||||
@@ -153,8 +158,9 @@ Recuperar hilos de correo del buzón de Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array de objetos de hilos de correo del buzón de Pipedrive |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de hilos de correo |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
|
||||
@@ -170,8 +176,9 @@ Recuperar todos los mensajes de un hilo de correo específico
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array de objetos de mensajes de correo del hilo |
|
||||
| `metadata` | object | Metadatos de la operación incluyendo ID del hilo |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de mensajes del hilo de correo |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
|
||||
@@ -190,8 +197,9 @@ Recuperar todos los pipelines de Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | Array de objetos de pipeline de Pipedrive |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de los pipelines |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
|
||||
@@ -210,8 +218,9 @@ Recuperar todos los acuerdos en un pipeline específico
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array de objetos de acuerdos del pipeline |
|
||||
| `metadata` | object | Metadatos de la operación incluyendo ID del pipeline |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de acuerdos del pipeline |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
|
||||
@@ -229,8 +238,10 @@ Recuperar todos los proyectos o un proyecto específico de Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | Array de objetos de proyectos \(al listar todos\) |
|
||||
| `project` | object | Objeto de un solo proyecto \(cuando se proporciona project_id\) |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de proyectos o detalles de un solo proyecto |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
|
||||
@@ -249,8 +260,9 @@ Crear un nuevo proyecto en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | El objeto del proyecto creado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del proyecto creado |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
|
||||
@@ -271,8 +283,9 @@ Recuperar actividades (tareas) de Pipedrive con filtros opcionales
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | Array de objetos de actividades de Pipedrive |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de actividades |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
|
||||
@@ -296,8 +309,9 @@ Crear una nueva actividad (tarea) en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | El objeto de actividad creado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles de la actividad creada |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
|
||||
@@ -319,8 +333,9 @@ Actualizar una actividad existente (tarea) en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | El objeto de actividad actualizado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles de la actividad actualizada |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
|
||||
@@ -341,8 +356,10 @@ Recuperar todos los leads o un lead específico de Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `leads` | array | Array de objetos de leads \(al listar todos\) |
|
||||
| `lead` | object | Objeto de lead individual \(cuando se proporciona lead_id\) |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Datos de leads o detalles de un solo lead |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
|
||||
@@ -365,8 +382,9 @@ Crear un nuevo lead en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | El objeto de lead creado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del lead creado |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
|
||||
@@ -390,8 +408,9 @@ Actualizar un lead existente en Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | El objeto de lead actualizado |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Detalles del lead actualizado |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
|
||||
@@ -407,8 +426,9 @@ Eliminar un lead específico de Pipedrive
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Datos de confirmación de eliminación |
|
||||
| `metadata` | object | Metadatos de la operación |
|
||||
| `success` | boolean | Estado de éxito de la operación |
|
||||
| `output` | object | Resultado de la eliminación |
|
||||
|
||||
## Notas
|
||||
|
||||
|
||||
63
apps/docs/content/docs/es/tools/sqs.mdx
Normal file
63
apps/docs/content/docs/es/tools/sqs.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Amazon SQS
|
||||
description: Conectar a Amazon SQS
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="sqs"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) es un servicio de cola de mensajes completamente administrado que permite desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor. SQS elimina la complejidad y la sobrecarga asociadas con la gestión y operación de middleware orientado a mensajes, y permite a los desarrolladores centrarse en el trabajo diferenciador.
|
||||
|
||||
Con Amazon SQS, puedes:
|
||||
|
||||
- **Enviar mensajes**: Publicar mensajes en colas para procesamiento asíncrono
|
||||
- **Desacoplar aplicaciones**: Permitir un acoplamiento flexible entre los componentes de tu sistema
|
||||
- **Escalar cargas de trabajo**: Manejar cargas de trabajo variables sin aprovisionar infraestructura
|
||||
- **Garantizar fiabilidad**: Redundancia incorporada y alta disponibilidad
|
||||
- **Soportar colas FIFO**: Mantener un orden estricto de mensajes y procesamiento exactamente una vez
|
||||
|
||||
En Sim, la integración con SQS permite a tus agentes enviar mensajes a las colas de Amazon SQS de forma segura y programática. Las operaciones compatibles incluyen:
|
||||
|
||||
- **Enviar mensaje**: Enviar mensajes a colas SQS con ID de grupo de mensajes opcional e ID de deduplicación para colas FIFO
|
||||
|
||||
Esta integración permite a tus agentes automatizar flujos de trabajo de envío de mensajes sin intervención manual. Al conectar Sim con Amazon SQS, puedes crear agentes que publiquen mensajes en colas dentro de tus flujos de trabajo, todo sin tener que gestionar la infraestructura o las conexiones de las colas.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instrucciones de uso
|
||||
|
||||
Integra Amazon SQS en el flujo de trabajo. Puede enviar mensajes a colas SQS.
|
||||
|
||||
## Herramientas
|
||||
|
||||
### `sqs_send`
|
||||
|
||||
Enviar un mensaje a una cola de Amazon SQS
|
||||
|
||||
#### Entrada
|
||||
|
||||
| Parámetro | Tipo | Obligatorio | Descripción |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Sí | Región de AWS (p. ej., us-east-1) |
|
||||
| `accessKeyId` | string | Sí | ID de clave de acceso de AWS |
|
||||
| `secretAccessKey` | string | Sí | Clave de acceso secreta de AWS |
|
||||
| `queueUrl` | string | Sí | URL de la cola |
|
||||
| `data` | object | Sí | Cuerpo del mensaje a enviar |
|
||||
| `messageGroupId` | string | No | ID del grupo de mensajes (opcional) |
|
||||
| `messageDeduplicationId` | string | No | ID de deduplicación del mensaje (opcional) |
|
||||
|
||||
#### Salida
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Mensaje de estado de la operación |
|
||||
| `id` | string | ID del mensaje |
|
||||
|
||||
## Notas
|
||||
|
||||
- Categoría: `tools`
|
||||
- Tipo: `sqs`
|
||||
@@ -48,25 +48,9 @@ Recuperar respuestas de formularios de Typeform
|
||||
|
||||
| Parámetro | Tipo | Descripción |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | Recuento total de respuestas/formularios |
|
||||
| `page_count` | number | Recuento total de páginas |
|
||||
| `items` | json | Array de elementos de respuesta/formulario |
|
||||
| `id` | string | Identificador único del formulario |
|
||||
| `title` | string | Título del formulario |
|
||||
| `type` | string | Tipo de formulario |
|
||||
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
|
||||
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
|
||||
| `settings` | json | Objeto de configuración del formulario |
|
||||
| `theme` | json | Objeto de configuración del tema |
|
||||
| `workspace` | json | Información del espacio de trabajo |
|
||||
| `fields` | json | Array de campos/preguntas del formulario |
|
||||
| `thankyou_screens` | json | Array de pantallas de agradecimiento |
|
||||
| `_links` | json | Enlaces a recursos relacionados |
|
||||
| `deleted` | boolean | Si el formulario se eliminó correctamente |
|
||||
| `message` | string | Mensaje de confirmación de eliminación |
|
||||
| `fileUrl` | string | URL del archivo descargado |
|
||||
| `contentType` | string | Tipo de contenido del archivo |
|
||||
| `filename` | string | Nombre del archivo |
|
||||
| `total_items` | number | Número total de respuestas |
|
||||
| `page_count` | number | Número total de páginas disponibles |
|
||||
| `items` | array | Array de objetos de respuesta con response_id, submitted_at, answers y metadata |
|
||||
|
||||
### `typeform_files`
|
||||
|
||||
@@ -128,7 +112,7 @@ Recupera una lista de todos los formularios en tu cuenta de Typeform
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | Número total de formularios en la cuenta |
|
||||
| `page_count` | number | Número total de páginas disponibles |
|
||||
| `items` | array | Array de objetos de formulario |
|
||||
| `items` | array | Array de objetos de formulario con id, title, created_at, last_updated_at, settings, theme y _links |
|
||||
|
||||
### `typeform_get_form`
|
||||
|
||||
@@ -148,11 +132,13 @@ Recuperar detalles completos y estructura de un formulario específico
|
||||
| `id` | string | Identificador único del formulario |
|
||||
| `title` | string | Título del formulario |
|
||||
| `type` | string | Tipo de formulario \(form, quiz, etc.\) |
|
||||
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
|
||||
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
|
||||
| `settings` | object | Configuración del formulario incluyendo idioma, barra de progreso, etc. |
|
||||
| `theme` | object | Configuración del tema con colores, fuentes y ajustes de diseño |
|
||||
| `workspace` | object | Información del espacio de trabajo |
|
||||
| `theme` | object | Referencia del tema |
|
||||
| `workspace` | object | Referencia del espacio de trabajo |
|
||||
| `fields` | array | Array de campos/preguntas del formulario |
|
||||
| `welcome_screens` | array | Array de pantallas de bienvenida |
|
||||
| `thankyou_screens` | array | Array de pantallas de agradecimiento |
|
||||
| `_links` | object | Enlaces a recursos relacionados incluyendo URL pública del formulario |
|
||||
|
||||
### `typeform_create_form`
|
||||
|
||||
@@ -177,13 +163,8 @@ Crear un nuevo formulario con campos y configuraciones
|
||||
| `id` | string | Identificador único del formulario creado |
|
||||
| `title` | string | Título del formulario |
|
||||
| `type` | string | Tipo de formulario |
|
||||
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
|
||||
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
|
||||
| `settings` | object | Configuración del formulario |
|
||||
| `theme` | object | Configuración del tema aplicado |
|
||||
| `workspace` | object | Información del espacio de trabajo |
|
||||
| `fields` | array | Array de campos del formulario creados |
|
||||
| `_links` | object | Enlaces a recursos relacionados |
|
||||
| `fields` | array | Array de campos del formulario creado |
|
||||
| `_links` | object | Enlaces a recursos relacionados incluyendo URL pública del formulario |
|
||||
|
||||
### `typeform_update_form`
|
||||
|
||||
@@ -204,12 +185,11 @@ Actualizar un formulario existente usando operaciones JSON Patch
|
||||
| `id` | string | Identificador único del formulario actualizado |
|
||||
| `title` | string | Título del formulario |
|
||||
| `type` | string | Tipo de formulario |
|
||||
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
|
||||
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
|
||||
| `settings` | object | Configuración del formulario |
|
||||
| `theme` | object | Configuración del tema |
|
||||
| `workspace` | object | Información del espacio de trabajo |
|
||||
| `theme` | object | Referencia del tema |
|
||||
| `workspace` | object | Referencia del espacio de trabajo |
|
||||
| `fields` | array | Array de campos del formulario |
|
||||
| `welcome_screens` | array | Array de pantallas de bienvenida |
|
||||
| `thankyou_screens` | array | Array de pantallas de agradecimiento |
|
||||
| `_links` | object | Enlaces a recursos relacionados |
|
||||
|
||||
|
||||
@@ -51,11 +51,10 @@ Exécuter un acteur APIFY de manière synchrone et obtenir les résultats (maxim
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Indique si l'exécution de l'acteur a réussi |
|
||||
| `runId` | chaîne | ID d'exécution APIFY |
|
||||
| `status` | chaîne | Statut d'exécution \(SUCCEEDED, FAILED, etc.\) |
|
||||
| `datasetId` | chaîne | ID du jeu de données contenant les résultats |
|
||||
| `items` | tableau | Éléments du jeu de données \(si terminé\) |
|
||||
| `success` | boolean | Indique si l'exécution de l'acteur a réussi |
|
||||
| `runId` | string | ID d'exécution APIFY |
|
||||
| `status` | string | Statut d'exécution \(SUCCEEDED, FAILED, etc.\) |
|
||||
| `items` | array | Éléments du dataset \(si terminé\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
|
||||
@@ -34,7 +34,14 @@ Récupérer une tâche unique par GID ou obtenir plusieurs tâches avec des filt
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails d'une tâche unique ou tableau de tâches, selon que taskGid a été fourni ou non |
|
||||
| `ts` | string | Horodatage de la réponse |
|
||||
| `gid` | string | Identifiant unique global de la tâche |
|
||||
| `resource_type` | string | Type de ressource \(tâche\) |
|
||||
| `resource_subtype` | string | Sous-type de ressource |
|
||||
| `name` | string | Nom de la tâche |
|
||||
| `notes` | string | Notes ou description de la tâche |
|
||||
| `completed` | boolean | Si la tâche est terminée |
|
||||
| `assignee` | object | Détails de l'assigné |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -54,8 +61,14 @@ Créer une nouvelle tâche dans Asana
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Statut de réussite de l'opération |
|
||||
| `output` | objet | Détails de la tâche créée avec horodatage, gid, nom, notes et lien permanent |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `ts` | string | Horodatage de la réponse |
|
||||
| `gid` | string | Identifiant unique global de la tâche |
|
||||
| `name` | string | Nom de la tâche |
|
||||
| `notes` | string | Notes ou description de la tâche |
|
||||
| `completed` | boolean | Si la tâche est terminée |
|
||||
| `created_at` | string | Horodatage de création de la tâche |
|
||||
| `permalink_url` | string | URL vers la tâche dans Asana |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
@@ -77,7 +90,12 @@ Mettre à jour une tâche existante dans Asana
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails de la tâche mise à jour avec horodatage, gid, nom, notes et horodatage de modification |
|
||||
| `ts` | string | Horodatage de la réponse |
|
||||
| `gid` | string | Identifiant unique global de la tâche |
|
||||
| `name` | string | Nom de la tâche |
|
||||
| `notes` | string | Notes ou description de la tâche |
|
||||
| `completed` | boolean | Si la tâche est terminée |
|
||||
| `modified_at` | string | Horodatage de dernière modification de la tâche |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
@@ -94,7 +112,8 @@ Récupérer tous les projets d'un espace de travail Asana
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Liste des projets avec leur gid, nom et type de ressource |
|
||||
| `ts` | string | Horodatage de la réponse |
|
||||
| `projects` | array | Tableau de projets |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -115,7 +134,8 @@ Rechercher des tâches dans un espace de travail Asana
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Liste des tâches correspondant aux critères de recherche |
|
||||
| `ts` | string | Horodatage de la réponse |
|
||||
| `tasks` | array | Tableau des tâches correspondantes |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -133,7 +153,11 @@ Ajouter un commentaire (story) à une tâche Asana
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails du commentaire incluant gid, texte, horodatage de création et auteur |
|
||||
| `ts` | string | Horodatage de la réponse |
|
||||
| `gid` | string | Identifiant unique global du commentaire |
|
||||
| `text` | string | Contenu textuel du commentaire |
|
||||
| `created_at` | string | Horodatage de création du commentaire |
|
||||
| `created_by` | object | Détails de l'auteur du commentaire |
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
@@ -221,6 +221,33 @@ Supprimer un commentaire d'une page Confluence.
|
||||
| `commentId` | chaîne | ID du commentaire supprimé |
|
||||
| `deleted` | booléen | Statut de la suppression |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
Téléverser un fichier en tant que pièce jointe à une page Confluence.
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Obligatoire | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | chaîne | Oui | Votre domaine Confluence \(ex. : votreentreprise.atlassian.net\) |
|
||||
| `pageId` | chaîne | Oui | ID de la page Confluence à laquelle joindre le fichier |
|
||||
| `file` | fichier | Oui | Le fichier à téléverser en tant que pièce jointe |
|
||||
| `fileName` | chaîne | Non | Nom de fichier personnalisé optionnel pour la pièce jointe |
|
||||
| `comment` | chaîne | Non | Commentaire optionnel à ajouter à la pièce jointe |
|
||||
| `cloudId` | chaîne | Non | ID Cloud Confluence pour l'instance. S'il n'est pas fourni, il sera récupéré à l'aide du domaine. |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | chaîne | Horodatage du téléversement |
|
||||
| `attachmentId` | chaîne | ID de la pièce jointe téléversée |
|
||||
| `title` | chaîne | Nom du fichier de la pièce jointe |
|
||||
| `fileSize` | nombre | Taille du fichier en octets |
|
||||
| `mediaType` | chaîne | Type MIME de la pièce jointe |
|
||||
| `downloadUrl` | chaîne | URL de téléchargement de la pièce jointe |
|
||||
| `pageId` | chaîne | ID de la page à laquelle la pièce jointe a été ajoutée |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
Lister toutes les pièces jointes d'une page Confluence.
|
||||
|
||||
@@ -145,7 +145,6 @@ Extrayez des données structurées de pages web entières à l'aide d'instructio
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Indique si l'opération d'extraction a réussi |
|
||||
| `data` | object | Données structurées extraites selon le schéma ou l'invite |
|
||||
| `sources` | array | Sources de données \(uniquement si showSources est activé\) |
|
||||
|
||||
## Remarques
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ Lister tous les groupes dans un domaine Google Workspace
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `groups` | json | Tableau d'objets de groupe |
|
||||
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
@@ -50,7 +51,7 @@ Obtenir les détails d'un groupe Google spécifique par email ou ID de groupe
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `group` | json | Objet de groupe |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
@@ -68,7 +69,7 @@ Créer un nouveau groupe Google dans le domaine
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `group` | json | Objet de groupe créé |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
@@ -87,7 +88,7 @@ Mettre à jour un groupe Google existant
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `group` | json | Objet de groupe mis à jour |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
@@ -103,7 +104,7 @@ Supprimer un groupe Google
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `message` | string | Message de succès |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
@@ -122,7 +123,8 @@ Lister tous les membres d'un groupe Google
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `members` | json | Tableau d'objets de membre |
|
||||
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
@@ -139,7 +141,7 @@ Obtenir les détails d'un membre spécifique dans un groupe Google
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `member` | json | Objet de membre |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
@@ -157,7 +159,7 @@ Ajouter un nouveau membre à un groupe Google
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `member` | json | Objet de membre ajouté |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
@@ -174,7 +176,7 @@ Supprimer un membre d'un groupe Google
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `message` | string | Message de succès |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
@@ -192,7 +194,7 @@ Mettre à jour un membre
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `member` | json | Objet de membre mis à jour |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
@@ -209,7 +211,7 @@ Vérifier si un utilisateur est membre d'un groupe Google
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Google Groups |
|
||||
| `isMember` | boolean | Indique si l'utilisateur est membre du groupe |
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
@@ -35,8 +35,7 @@ Créer une exportation dans une affaire
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Vault |
|
||||
| `file` | json | Fichier d'exportation téléchargé \(UserFile\) depuis les fichiers d'exécution |
|
||||
| `export` | json | Objet d'exportation créé |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
@@ -55,8 +54,9 @@ Lister les exportations pour une affaire
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Vault |
|
||||
| `file` | json | Fichier d'exportation téléchargé \(UserFile\) depuis les fichiers d'exécution |
|
||||
| `exports` | json | Tableau d'objets d'exportation |
|
||||
| `export` | json | Objet d'exportation unique \(lorsque exportId est fourni\) |
|
||||
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
@@ -95,8 +95,7 @@ Créer une suspension dans une affaire
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Vault |
|
||||
| `file` | json | Fichier d'exportation téléchargé \(UserFile\) depuis les fichiers d'exécution |
|
||||
| `hold` | json | Objet de suspension créé |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
@@ -115,8 +114,9 @@ Lister les suspensions pour une affaire
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Vault |
|
||||
| `file` | json | Fichier d'exportation téléchargé (UserFile) à partir des fichiers d'exécution |
|
||||
| `holds` | json | Tableau d'objets de suspension |
|
||||
| `hold` | json | Objet de suspension unique \(lorsque holdId est fourni\) |
|
||||
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
@@ -133,8 +133,7 @@ Créer une nouvelle affaire dans Google Vault
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Vault |
|
||||
| `file` | json | Fichier d'exportation téléchargé (UserFile) à partir des fichiers d'exécution |
|
||||
| `matter` | json | Objet d'affaire créé |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
@@ -152,8 +151,9 @@ Lister les affaires, ou obtenir une affaire spécifique si matterId est fourni
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Données de réponse de l'API Vault |
|
||||
| `file` | json | Fichier d'exportation téléchargé (UserFile) à partir des fichiers d'exécution |
|
||||
| `matters` | json | Tableau d'objets d'affaire |
|
||||
| `matter` | json | Objet d'affaire unique \(lorsque matterId est fourni\) |
|
||||
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
@@ -48,8 +48,9 @@ Récupérer tous les utilisateurs du compte HubSpot
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Tableau d'objets utilisateur HubSpot |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des utilisateurs |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
@@ -68,8 +69,10 @@ Récupérer tous les contacts du compte HubSpot avec prise en charge de la pagin
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Statut de réussite de l'opération |
|
||||
| `output` | objet | Données des contacts |
|
||||
| `contacts` | array | Tableau d'objets contact HubSpot |
|
||||
| `paging` | object | Informations de pagination |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
@@ -88,8 +91,9 @@ Récupérer un seul contact par ID ou email depuis HubSpot
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Statut de réussite de l'opération |
|
||||
| `output` | objet | Données du contact |
|
||||
| `contact` | object | Objet contact HubSpot avec propriétés |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
@@ -106,8 +110,9 @@ Créer un nouveau contact dans HubSpot. Nécessite au moins l'un des éléments
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Statut de réussite de l'opération |
|
||||
| `output` | objet | Données du contact créé |
|
||||
| `contact` | object | Objet contact HubSpot créé |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
@@ -125,8 +130,9 @@ Mettre à jour un contact existant dans HubSpot par ID ou email
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Statut de réussite de l'opération |
|
||||
| `output` | objet | Données du contact mis à jour |
|
||||
| `contact` | object | Objet contact HubSpot mis à jour |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
@@ -147,8 +153,11 @@ Rechercher des contacts dans HubSpot en utilisant des filtres, des tris et des r
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Tableau d'objets contact HubSpot correspondants |
|
||||
| `total` | number | Nombre total de contacts correspondants |
|
||||
| `paging` | object | Informations de pagination |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Résultats de la recherche |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
@@ -167,8 +176,10 @@ Récupérer toutes les entreprises du compte HubSpot avec prise en charge de la
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Tableau d'objets entreprise HubSpot |
|
||||
| `paging` | object | Informations de pagination |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des entreprises |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
@@ -187,8 +198,9 @@ Récupérer une seule entreprise par ID ou domaine depuis HubSpot
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Objet entreprise HubSpot avec propriétés |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données de l'entreprise |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
@@ -205,8 +217,9 @@ Créer une nouvelle entreprise dans HubSpot
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Objet entreprise HubSpot créé |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données de l'entreprise créée |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
@@ -224,8 +237,9 @@ Mettre à jour une entreprise existante dans HubSpot par ID ou domaine
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Objet entreprise HubSpot mis à jour |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données de l'entreprise mises à jour |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
@@ -246,8 +260,11 @@ Rechercher des entreprises dans HubSpot en utilisant des filtres, des tris et de
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Tableau d'objets entreprise HubSpot correspondants |
|
||||
| `total` | number | Nombre total d'entreprises correspondantes |
|
||||
| `paging` | object | Informations de pagination |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Résultats de la recherche |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
@@ -266,8 +283,10 @@ Récupérer toutes les affaires du compte HubSpot avec prise en charge de la pag
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Tableau d'objets affaire HubSpot |
|
||||
| `paging` | object | Informations de pagination |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des offres |
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
@@ -51,8 +51,9 @@ Récupérer toutes les affaires de Pipedrive avec des filtres optionnels
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Tableau d'objets d'affaires de Pipedrive |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données et métadonnées des affaires |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
|
||||
@@ -68,8 +69,9 @@ Récupérer des informations détaillées sur une affaire spécifique
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Objet d'affaire avec tous les détails |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails de l'affaire |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
|
||||
@@ -93,8 +95,9 @@ Créer une nouvelle affaire dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | L'objet d'affaire créé |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails de l'affaire créée |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
|
||||
@@ -115,8 +118,9 @@ Mettre à jour une affaire existante dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | L'objet d'affaire mis à jour |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails de l'affaire mise à jour |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
|
||||
@@ -135,8 +139,9 @@ Récupérer des fichiers depuis Pipedrive avec des filtres optionnels
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Tableau d'objets fichiers de Pipedrive |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des fichiers |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
|
||||
@@ -153,8 +158,9 @@ Récupérer les fils de discussion de la boîte mail Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Tableau d'objets de fils de discussion de la boîte mail Pipedrive |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des fils de discussion |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
|
||||
@@ -170,8 +176,9 @@ Récupérer tous les messages d'un fil de discussion spécifique
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Tableau d'objets de messages électroniques du fil de discussion |
|
||||
| `metadata` | object | Métadonnées de l'opération incluant l'ID du fil de discussion |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des messages du fil de discussion |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
|
||||
@@ -190,8 +197,9 @@ Récupérer tous les pipelines de Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | Tableau d'objets de pipeline de Pipedrive |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des pipelines |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
|
||||
@@ -210,8 +218,9 @@ Récupérer toutes les affaires dans un pipeline spécifique
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Tableau d'objets d'affaires du pipeline |
|
||||
| `metadata` | object | Métadonnées de l'opération incluant l'ID du pipeline |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des affaires du pipeline |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
|
||||
@@ -229,8 +238,10 @@ Récupérer tous les projets ou un projet spécifique de Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | Tableau d'objets de projet (lors du listage de tous) |
|
||||
| `project` | object | Objet de projet unique (lorsque project_id est fourni) |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des projets ou détails d'un projet unique |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
|
||||
@@ -249,8 +260,9 @@ Créer un nouveau projet dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | L'objet du projet créé |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails du projet créé |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
|
||||
@@ -271,8 +283,9 @@ Récupérer les activités (tâches) de Pipedrive avec filtres optionnels
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | Tableau d'objets d'activité de Pipedrive |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des activités |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
|
||||
@@ -296,8 +309,9 @@ Créer une nouvelle activité (tâche) dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | booléen | Statut de réussite de l'opération |
|
||||
| `output` | objet | Détails de l'activité créée |
|
||||
| `activity` | object | L'objet activité créé |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
|
||||
@@ -319,8 +333,9 @@ Mettre à jour une activité existante (tâche) dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | L'objet activité mis à jour |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails de l'activité mise à jour |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
|
||||
@@ -341,8 +356,10 @@ Récupérer tous les prospects ou un prospect spécifique depuis Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `leads` | array | Tableau d'objets prospect \(lors de la liste complète\) |
|
||||
| `lead` | object | Objet prospect unique \(lorsque lead_id est fourni\) |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Données des prospects ou détails d'un prospect spécifique |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
|
||||
@@ -365,8 +382,9 @@ Créer un nouveau prospect dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | L'objet prospect créé |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails du lead créé |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
|
||||
@@ -390,8 +408,9 @@ Mettre à jour un lead existant dans Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | L'objet prospect mis à jour |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Détails du lead mis à jour |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
|
||||
@@ -407,8 +426,9 @@ Supprimer un lead spécifique de Pipedrive
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Données de confirmation de suppression |
|
||||
| `metadata` | object | Métadonnées de l'opération |
|
||||
| `success` | boolean | Statut de réussite de l'opération |
|
||||
| `output` | object | Résultat de la suppression |
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
63
apps/docs/content/docs/fr/tools/sqs.mdx
Normal file
63
apps/docs/content/docs/fr/tools/sqs.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Amazon SQS
|
||||
description: Se connecter à Amazon SQS
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="sqs"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) est un service de file d'attente de messages entièrement géré qui permet de découpler et de mettre à l'échelle des microservices, des systèmes distribués et des applications sans serveur. SQS élimine la complexité et les frais généraux associés à la gestion et à l'exploitation d'un middleware orienté messages, et permet aux développeurs de se concentrer sur un travail différenciant.
|
||||
|
||||
Avec Amazon SQS, vous pouvez :
|
||||
|
||||
- **Envoyer des messages** : publier des messages dans des files d'attente pour un traitement asynchrone
|
||||
- **Découpler des applications** : permettre un couplage souple entre les composants de votre système
|
||||
- **Mettre à l'échelle les charges de travail** : gérer des charges de travail variables sans provisionner d'infrastructure
|
||||
- **Assurer la fiabilité** : redondance intégrée et haute disponibilité
|
||||
- **Prendre en charge les files d'attente FIFO** : maintenir un ordre strict des messages et un traitement exactement une fois
|
||||
|
||||
Dans Sim, l'intégration SQS permet à vos agents d'envoyer des messages aux files d'attente Amazon SQS de manière sécurisée et programmatique. Les opérations prises en charge comprennent :
|
||||
|
||||
- **Envoi de message** : envoyer des messages aux files d'attente SQS avec un ID de groupe de messages facultatif et un ID de déduplication pour les files d'attente FIFO
|
||||
|
||||
Cette intégration permet à vos agents d'automatiser les flux de travail d'envoi de messages sans intervention manuelle. En connectant Sim à Amazon SQS, vous pouvez créer des agents qui publient des messages dans des files d'attente au sein de vos flux de travail, le tout sans avoir à gérer l'infrastructure ou les connexions des files d'attente.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Instructions d'utilisation
|
||||
|
||||
Intégrez Amazon SQS dans le flux de travail. Peut envoyer des messages aux files d'attente SQS.
|
||||
|
||||
## Outils
|
||||
|
||||
### `sqs_send`
|
||||
|
||||
Envoyer un message à une file d'attente Amazon SQS
|
||||
|
||||
#### Entrée
|
||||
|
||||
| Paramètre | Type | Obligatoire | Description |
|
||||
| --------- | ---- | ----------- | ----------- |
|
||||
| `region` | string | Oui | Région AWS (par ex., us-east-1) |
|
||||
| `accessKeyId` | string | Oui | ID de clé d'accès AWS |
|
||||
| `secretAccessKey` | string | Oui | Clé d'accès secrète AWS |
|
||||
| `queueUrl` | string | Oui | URL de la file d'attente |
|
||||
| `data` | object | Oui | Corps du message à envoyer |
|
||||
| `messageGroupId` | string | Non | ID de groupe de messages (facultatif) |
|
||||
| `messageDeduplicationId` | string | Non | ID de déduplication de message (facultatif) |
|
||||
|
||||
#### Sortie
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Message d'état de l'opération |
|
||||
| `id` | string | ID du message |
|
||||
|
||||
## Notes
|
||||
|
||||
- Catégorie : `tools`
|
||||
- Type : `sqs`
|
||||
@@ -48,25 +48,9 @@ Récupérer les réponses aux formulaires depuis Typeform
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | nombre | Nombre total de réponses/formulaires |
|
||||
| `page_count` | nombre | Nombre total de pages |
|
||||
| `items` | json | Tableau des éléments de réponse/formulaire |
|
||||
| `id` | chaîne | Identifiant unique du formulaire |
|
||||
| `title` | chaîne | Titre du formulaire |
|
||||
| `type` | chaîne | Type de formulaire |
|
||||
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
|
||||
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
|
||||
| `settings` | json | Objet des paramètres du formulaire |
|
||||
| `theme` | json | Objet de configuration du thème |
|
||||
| `workspace` | json | Informations sur l'espace de travail |
|
||||
| `fields` | json | Tableau des champs/questions du formulaire |
|
||||
| `thankyou_screens` | json | Tableau des écrans de remerciement |
|
||||
| `_links` | json | Liens vers les ressources associées |
|
||||
| `deleted` | booléen | Indique si le formulaire a été supprimé avec succès |
|
||||
| `message` | chaîne | Message de confirmation de suppression |
|
||||
| `fileUrl` | chaîne | URL du fichier téléchargé |
|
||||
| `contentType` | chaîne | Type de contenu du fichier |
|
||||
| `filename` | chaîne | Nom du fichier |
|
||||
| `total_items` | nombre | Nombre total de réponses |
|
||||
| `page_count` | nombre | Nombre total de pages disponibles |
|
||||
| `items` | tableau | Tableau d'objets de réponse avec response_id, submitted_at, answers et metadata |
|
||||
|
||||
### `typeform_files`
|
||||
|
||||
@@ -128,7 +112,7 @@ Récupérer la liste de tous les formulaires dans votre compte Typeform
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | nombre | Nombre total de formulaires dans le compte |
|
||||
| `page_count` | nombre | Nombre total de pages disponibles |
|
||||
| `items` | tableau | Tableau d'objets de formulaire |
|
||||
| `items` | tableau | Tableau d'objets de formulaire avec id, title, created_at, last_updated_at, settings, theme et _links |
|
||||
|
||||
### `typeform_get_form`
|
||||
|
||||
@@ -148,11 +132,13 @@ Récupérer les détails complets et la structure d'un formulaire spécifique
|
||||
| `id` | chaîne | Identifiant unique du formulaire |
|
||||
| `title` | chaîne | Titre du formulaire |
|
||||
| `type` | chaîne | Type de formulaire \(form, quiz, etc.\) |
|
||||
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
|
||||
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
|
||||
| `settings` | objet | Paramètres du formulaire incluant langue, barre de progression, etc. |
|
||||
| `theme` | objet | Configuration du thème avec couleurs, polices et paramètres de design |
|
||||
| `workspace` | objet | Informations sur l'espace de travail |
|
||||
| `theme` | objet | Référence du thème |
|
||||
| `workspace` | objet | Référence de l'espace de travail |
|
||||
| `fields` | tableau | Tableau des champs/questions du formulaire |
|
||||
| `welcome_screens` | tableau | Tableau des écrans d'accueil |
|
||||
| `thankyou_screens` | tableau | Tableau des écrans de remerciement |
|
||||
| `_links` | objet | Liens vers les ressources associées, y compris l'URL publique du formulaire |
|
||||
|
||||
### `typeform_create_form`
|
||||
|
||||
@@ -177,13 +163,8 @@ Créer un nouveau formulaire avec champs et paramètres
|
||||
| `id` | chaîne | Identifiant unique du formulaire créé |
|
||||
| `title` | chaîne | Titre du formulaire |
|
||||
| `type` | chaîne | Type de formulaire |
|
||||
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
|
||||
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
|
||||
| `settings` | objet | Paramètres du formulaire |
|
||||
| `theme` | objet | Configuration du thème appliqué |
|
||||
| `workspace` | objet | Informations sur l'espace de travail |
|
||||
| `fields` | tableau | Tableau des champs de formulaire créés |
|
||||
| `_links` | objet | Liens vers les ressources associées |
|
||||
| `fields` | tableau | Tableau des champs du formulaire créé |
|
||||
| `_links` | objet | Liens vers les ressources associées, y compris l'URL publique du formulaire |
|
||||
|
||||
### `typeform_update_form`
|
||||
|
||||
@@ -204,12 +185,11 @@ Mettre à jour un formulaire existant à l'aide d'opérations JSON Patch
|
||||
| `id` | chaîne | Identifiant unique du formulaire mis à jour |
|
||||
| `title` | chaîne | Titre du formulaire |
|
||||
| `type` | chaîne | Type de formulaire |
|
||||
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
|
||||
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
|
||||
| `settings` | objet | Paramètres du formulaire |
|
||||
| `theme` | objet | Configuration du thème |
|
||||
| `workspace` | objet | Informations sur l'espace de travail |
|
||||
| `theme` | objet | Référence du thème |
|
||||
| `workspace` | objet | Référence de l'espace de travail |
|
||||
| `fields` | tableau | Tableau des champs du formulaire |
|
||||
| `welcome_screens` | tableau | Tableau des écrans d'accueil |
|
||||
| `thankyou_screens` | tableau | Tableau des écrans de remerciement |
|
||||
| `_links` | objet | Liens vers les ressources associées |
|
||||
|
||||
|
||||
@@ -51,10 +51,9 @@ APIPYアクターを同期的に実行して結果を取得(最大5分)
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | アクター実行が成功したかどうか |
|
||||
| `success` | boolean | アクターの実行が成功したかどうか |
|
||||
| `runId` | string | APIFY実行ID |
|
||||
| `status` | string | 実行ステータス(SUCCEEDED、FAILEDなど) |
|
||||
| `datasetId` | string | 結果を含むデータセットID |
|
||||
| `status` | string | 実行ステータス(SUCCEEDED、FAILED、など) |
|
||||
| `items` | array | データセット項目(完了した場合) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
@@ -33,8 +33,15 @@ GIDで単一のタスクを取得するか、フィルターを使用して複
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | taskGidが提供されたかどうかに応じて、単一のタスクの詳細またはタスクの配列 |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `ts` | string | レスポンスのタイムスタンプ |
|
||||
| `gid` | string | タスクのグローバル一意識別子 |
|
||||
| `resource_type` | string | リソースタイプ(タスク) |
|
||||
| `resource_subtype` | string | リソースのサブタイプ |
|
||||
| `name` | string | タスク名 |
|
||||
| `notes` | string | タスクのメモや説明 |
|
||||
| `completed` | boolean | タスクが完了しているかどうか |
|
||||
| `assignee` | object | 担当者の詳細 |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -54,8 +61,14 @@ Asanaで新しいタスクを作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | タイムスタンプ、GID、名前、メモ、パーマリンクを含む作成されたタスクの詳細 |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `ts` | string | レスポンスのタイムスタンプ |
|
||||
| `gid` | string | タスクのグローバル一意識別子 |
|
||||
| `name` | string | タスク名 |
|
||||
| `notes` | string | タスクのメモや説明 |
|
||||
| `completed` | boolean | タスクが完了しているかどうか |
|
||||
| `created_at` | string | タスク作成のタイムスタンプ |
|
||||
| `permalink_url` | string | Asana内のタスクへのURL |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
@@ -77,7 +90,12 @@ Asanaの既存タスクを更新する
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | タイムスタンプ、gid、名前、メモ、更新タイムスタンプを含む更新されたタスクの詳細 |
|
||||
| `ts` | string | レスポンスのタイムスタンプ |
|
||||
| `gid` | string | タスクのグローバル一意識別子 |
|
||||
| `name` | string | タスク名 |
|
||||
| `notes` | string | タスクのメモや説明 |
|
||||
| `completed` | boolean | タスクが完了しているかどうか |
|
||||
| `modified_at` | string | タスクの最終更新タイムスタンプ |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
@@ -94,7 +112,8 @@ Asanaワークスペースからすべてのプロジェクトを取得する
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | gid、名前、リソースタイプを含むプロジェクトのリスト |
|
||||
| `ts` | string | レスポンスのタイムスタンプ |
|
||||
| `projects` | array | プロジェクトの配列 |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -115,7 +134,8 @@ Asanaワークスペース内のタスクを検索する
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 検索条件に一致するタスクのリスト |
|
||||
| `ts` | string | レスポンスのタイムスタンプ |
|
||||
| `tasks` | array | 一致するタスクの配列 |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -133,7 +153,11 @@ Asanaタスクにコメント(ストーリー)を追加する
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | gid、テキスト、作成タイムスタンプ、作成者を含むコメントの詳細 |
|
||||
| `ts` | string | レスポンスのタイムスタンプ |
|
||||
| `gid` | string | コメントのグローバル一意識別子 |
|
||||
| `text` | string | コメントのテキスト内容 |
|
||||
| `created_at` | string | コメント作成タイムスタンプ |
|
||||
| `created_by` | object | コメント投稿者の詳細 |
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
@@ -221,6 +221,33 @@ Confluenceページからコメントを削除します。
|
||||
| `commentId` | string | 削除されたコメントID |
|
||||
| `deleted` | boolean | 削除ステータス |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
ファイルをConfluenceページに添付ファイルとしてアップロードします。
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | はい | あなたのConfluenceドメイン(例:yourcompany.atlassian.net) |
|
||||
| `pageId` | string | はい | ファイルを添付するConfluenceページID |
|
||||
| `file` | file | はい | 添付ファイルとしてアップロードするファイル |
|
||||
| `fileName` | string | いいえ | 添付ファイルのオプションのカスタムファイル名 |
|
||||
| `comment` | string | いいえ | 添付ファイルに追加するオプションのコメント |
|
||||
| `cloudId` | string | いいえ | インスタンスのConfluence Cloud ID。提供されない場合、ドメインを使用して取得されます。 |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | アップロードのタイムスタンプ |
|
||||
| `attachmentId` | string | アップロードされた添付ファイルID |
|
||||
| `title` | string | 添付ファイル名 |
|
||||
| `fileSize` | number | ファイルサイズ(バイト単位) |
|
||||
| `mediaType` | string | 添付ファイルのMIMEタイプ |
|
||||
| `downloadUrl` | string | 添付ファイルのダウンロードURL |
|
||||
| `pageId` | string | 添付ファイルが追加されたページID |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
Confluenceページのすべての添付ファイルを一覧表示します。
|
||||
@@ -282,7 +309,7 @@ Confluenceページのすべてのラベルを一覧表示します。
|
||||
|
||||
### `confluence_get_space`
|
||||
|
||||
特定のConfluenceスペースの詳細を取得します。
|
||||
特定のConfluenceスペースに関する詳細を取得します。
|
||||
|
||||
#### 入力
|
||||
|
||||
|
||||
@@ -145,7 +145,6 @@ Firecrawlを使用してウェブ上の情報を検索します
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 抽出操作が成功したかどうか |
|
||||
| `data` | object | スキーマまたはプロンプトに従って抽出された構造化データ |
|
||||
| `sources` | array | データソース(showSourcesが有効な場合のみ) |
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google グループ API レスポンスデータ |
|
||||
| `groups` | json | グループオブジェクトの配列 |
|
||||
| `nextPageToken` | string | 次のページの結果を取得するためのトークン |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
@@ -50,7 +51,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google グループ API レスポンスデータ |
|
||||
| `group` | json | グループオブジェクト |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
@@ -68,7 +69,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIのレスポンスデータ |
|
||||
| `group` | json | 作成されたグループオブジェクト |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
@@ -87,7 +88,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIのレスポンスデータ |
|
||||
| `group` | json | 更新されたグループオブジェクト |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
@@ -103,7 +104,7 @@ Googleグループを削除する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIのレスポンスデータ |
|
||||
| `message` | string | 成功メッセージ |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
@@ -122,7 +123,8 @@ Google グループのすべてのメンバーを一覧表示する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIのレスポンスデータ |
|
||||
| `members` | json | メンバーオブジェクトの配列 |
|
||||
| `nextPageToken` | string | 次のページの結果を取得するためのトークン |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
@@ -139,7 +141,7 @@ Google グループ内の特定のメンバーの詳細を取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIのレスポンスデータ |
|
||||
| `member` | json | メンバーオブジェクト |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
@@ -157,7 +159,7 @@ Google グループに新しいメンバーを追加する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIレスポンスデータ |
|
||||
| `member` | json | 追加されたメンバーオブジェクト |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
@@ -174,7 +176,7 @@ Google Groupからメンバーを削除する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIレスポンスデータ |
|
||||
| `message` | string | 成功メッセージ |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
@@ -192,7 +194,7 @@ Google Groupからメンバーを削除する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups APIレスポンスデータ |
|
||||
| `member` | json | 更新されたメンバーオブジェクト |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
@@ -209,7 +211,7 @@ Google Groupからメンバーを削除する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google グループ API レスポンスデータ |
|
||||
| `isMember` | boolean | ユーザーがグループのメンバーであるかどうか |
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
@@ -34,8 +34,7 @@ Google Vaultに接続して、案件内のエクスポートの作成、エク
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault APIレスポンスデータ |
|
||||
| `file` | json | 実行ファイルからダウンロードしたエクスポートファイル(UserFile) |
|
||||
| `export` | json | 作成されたエクスポートオブジェクト |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
@@ -54,8 +53,9 @@ Google Vaultに接続して、案件内のエクスポートの作成、エク
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault APIレスポンスデータ |
|
||||
| `file` | json | 実行ファイルからダウンロードしたエクスポートファイル(UserFile) |
|
||||
| `exports` | json | エクスポートオブジェクトの配列 |
|
||||
| `export` | json | 単一のエクスポートオブジェクト(exportIdが提供された場合) |
|
||||
| `nextPageToken` | string | 結果の次のページを取得するためのトークン |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
@@ -94,8 +94,7 @@ Google Vaultエクスポート(GCSオブジェクト)から単一ファイ
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault APIレスポンスデータ |
|
||||
| `file` | json | 実行ファイルからダウンロードしたエクスポートファイル(UserFile) |
|
||||
| `hold` | json | 作成された保留オブジェクト |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
@@ -112,10 +111,11 @@ Google Vaultエクスポート(GCSオブジェクト)から単一ファイ
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | タイプ | 説明 |
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault APIレスポンスデータ |
|
||||
| `file` | json | 実行ファイルからダウンロードされたエクスポートファイル(UserFile) |
|
||||
| `holds` | json | 保留オブジェクトの配列 |
|
||||
| `hold` | json | 単一の保留オブジェクト(holdIdが提供された場合) |
|
||||
| `nextPageToken` | string | 結果の次のページを取得するためのトークン |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
@@ -130,10 +130,9 @@ Google Vaultで新しい案件を作成する
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | タイプ | 説明 |
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault APIレスポンスデータ |
|
||||
| `file` | json | 実行ファイルからダウンロードされたエクスポートファイル(UserFile) |
|
||||
| `matter` | json | 作成された案件オブジェクト |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
@@ -149,10 +148,11 @@ Google Vaultで新しい案件を作成する
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | タイプ | 説明 |
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault APIレスポンスデータ |
|
||||
| `file` | json | 実行ファイルからダウンロードされたエクスポートファイル(UserFile) |
|
||||
| `matters` | json | 案件オブジェクトの配列 |
|
||||
| `matter` | json | 単一の案件オブジェクト(matterIdが提供された場合) |
|
||||
| `nextPageToken` | string | 結果の次のページを取得するためのトークン |
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
@@ -47,8 +47,9 @@ HubSpotアカウントからすべてのユーザーを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | ユーザーデータ |
|
||||
| `users` | array | HubSpotユーザーオブジェクトの配列 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
@@ -67,8 +68,10 @@ HubSpotアカウントからすべてのユーザーを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | HubSpotコンタクトオブジェクトの配列 |
|
||||
| `paging` | object | ページネーション情報 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | コンタクトデータ |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
@@ -87,8 +90,9 @@ HubSpotからIDまたはメールで単一のコンタクトを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | プロパティを持つHubSpotコンタクトオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | コンタクトデータ |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
@@ -105,8 +109,9 @@ HubSpotで新しい連絡先を作成します。少なくともemail、firstnam
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | 作成された連絡先データ |
|
||||
| `contact` | object | 作成されたHubSpotコンタクトオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
@@ -124,8 +129,9 @@ IDまたはメールアドレスでHubSpotの既存の連絡先を更新しま
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | 更新された連絡先データ |
|
||||
| `contact` | object | 更新されたHubSpotコンタクトオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
@@ -146,8 +152,11 @@ IDまたはメールアドレスでHubSpotの既存の連絡先を更新しま
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | 検索結果 |
|
||||
| `contacts` | array | 一致するHubSpotコンタクトオブジェクトの配列 |
|
||||
| `total` | number | 一致するコンタクトの総数 |
|
||||
| `paging` | object | ページネーション情報 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
@@ -166,8 +175,10 @@ IDまたはメールアドレスでHubSpotの既存の連絡先を更新しま
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | 企業データ |
|
||||
| `companies` | array | HubSpot会社オブジェクトの配列 |
|
||||
| `paging` | object | ページネーション情報 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
@@ -186,8 +197,9 @@ IDまたはドメインからHubSpotの単一企業を取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | プロパティを持つHubSpot会社オブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 企業データ |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
@@ -204,8 +216,9 @@ HubSpotに新しい企業を作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | 作成されたHubSpot会社オブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 作成された企業データ |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
@@ -223,8 +236,9 @@ IDまたはドメインによってHubSpotの既存企業を更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | 更新されたHubSpot会社オブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 更新された会社データ |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
@@ -245,8 +259,11 @@ IDまたはドメインによってHubSpotの既存企業を更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | 一致するHubSpot会社オブジェクトの配列 |
|
||||
| `total` | number | 一致する会社の総数 |
|
||||
| `paging` | object | ページネーション情報 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 検索結果 |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
@@ -265,8 +282,10 @@ IDまたはドメインによってHubSpotの既存企業を更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | HubSpotディールオブジェクトの配列 |
|
||||
| `paging` | object | ページネーション情報 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 取引データ |
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
@@ -51,8 +51,9 @@ Pipedriveをワークフローに統合します。強力なCRM機能を使用
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Pipedriveからの取引オブジェクトの配列 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 取引データとメタデータ |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
|
||||
@@ -68,8 +69,9 @@ Pipedriveをワークフローに統合します。強力なCRM機能を使用
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | 詳細情報を含む取引オブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 取引の詳細 |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
|
||||
@@ -93,8 +95,9 @@ Pipedriveで新しい取引を作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | 作成された取引オブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 作成されたディールの詳細 |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
|
||||
@@ -115,8 +118,9 @@ Pipedriveの既存のディールを更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | 更新された取引オブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 更新されたディールの詳細 |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
|
||||
@@ -135,8 +139,9 @@ Pipedriveの既存のディールを更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Pipedriveからのファイルオブジェクトの配列 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | ファイルデータ |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
|
||||
@@ -153,8 +158,9 @@ Pipedriveメールボックスからメールスレッドを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Pipedriveメールボックスからのメールスレッドオブジェクトの配列 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | メールスレッドデータ |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
|
||||
@@ -170,8 +176,9 @@ Pipedriveメールボックスからメールスレッドを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | スレッドからのメールメッセージオブジェクトの配列 |
|
||||
| `metadata` | object | スレッドIDを含む操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | メールスレッドメッセージデータ |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
|
||||
@@ -190,8 +197,9 @@ Pipedriveからすべてのパイプラインを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | Pipedriveからのパイプラインオブジェクトの配列 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | パイプラインデータ |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
|
||||
@@ -210,8 +218,9 @@ Pipedriveからすべてのパイプラインを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | パイプラインからの取引オブジェクトの配列 |
|
||||
| `metadata` | object | パイプラインIDを含む操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | パイプライン取引データ |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
|
||||
@@ -229,8 +238,10 @@ Pipedriveからすべてのプロジェクトまたは特定のプロジェク
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | プロジェクトオブジェクトの配列(すべてをリスト表示する場合) |
|
||||
| `project` | object | 単一のプロジェクトオブジェクト(project_idが提供される場合) |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | プロジェクトデータまたは単一プロジェクトの詳細 |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
|
||||
@@ -249,8 +260,9 @@ Pipedriveで新しいプロジェクトを作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | 作成されたプロジェクトオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 作成されたプロジェクトの詳細 |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
|
||||
@@ -271,8 +283,9 @@ Pipedriveで新しいプロジェクトを作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | Pipedriveからのアクティビティオブジェクトの配列 |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | アクティビティデータ |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
|
||||
@@ -296,8 +309,9 @@ Pipedriveで新しいアクティビティ(タスク)を作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作の成功ステータス |
|
||||
| `output` | object | 作成されたアクティビティの詳細 |
|
||||
| `activity` | object | 作成されたアクティビティオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
|
||||
@@ -319,8 +333,9 @@ Pipedriveで既存のアクティビティ(タスク)を更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | 更新されたアクティビティオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 更新されたアクティビティの詳細 |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
|
||||
@@ -341,8 +356,10 @@ Pipedriveからすべてのリードまたは特定のリードを取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `leads` | array | リード オブジェクトの配列(すべてをリスト表示する場合) |
|
||||
| `lead` | object | 単一のリード オブジェクト(lead_id が提供される場合) |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | リードデータまたは単一リードの詳細 |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
|
||||
@@ -365,8 +382,9 @@ Pipedriveに新しいリードを作成する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | 作成されたリードオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 作成されたリードの詳細 |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
|
||||
@@ -390,8 +408,9 @@ Pipedriveの既存リードを更新する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | 更新されたリードオブジェクト |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 更新されたリードの詳細 |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
|
||||
@@ -407,8 +426,9 @@ Pipedriveから特定のリードを削除する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | 削除確認データ |
|
||||
| `metadata` | object | 操作メタデータ |
|
||||
| `success` | boolean | 操作成功ステータス |
|
||||
| `output` | object | 削除結果 |
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
63
apps/docs/content/docs/ja/tools/sqs.mdx
Normal file
63
apps/docs/content/docs/ja/tools/sqs.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Amazon SQS
|
||||
description: Amazon SQSに接続
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="sqs"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/)は、マイクロサービス、分散システム、サーバーレスアプリケーションの分離とスケーリングを可能にする完全マネージド型のメッセージキューイングサービスです。SQSは、メッセージ指向のミドルウェアの管理と運用に関連する複雑さとオーバーヘッドを排除し、開発者が差別化作業に集中できるようにします。
|
||||
|
||||
Amazon SQSでは、以下のことが可能です:
|
||||
|
||||
- **メッセージの送信**:非同期処理のためにキューにメッセージを公開
|
||||
- **アプリケーションの分離**:システムのコンポーネント間の疎結合を実現
|
||||
- **ワークロードのスケーリング**:インフラストラクチャをプロビジョニングせずに変動するワークロードを処理
|
||||
- **信頼性の確保**:組み込みの冗長性と高可用性
|
||||
- **FIFOキューのサポート**:厳密なメッセージ順序と完全に一度だけの処理を維持
|
||||
|
||||
Simでは、SQS統合により、エージェントがAmazon SQSキューにメッセージを安全にプログラムで送信できるようになります。サポートされている操作には以下が含まれます:
|
||||
|
||||
- **メッセージ送信**:FIFOキュー用のオプションのメッセージグループIDと重複排除IDを使用してSQSキューにメッセージを送信
|
||||
|
||||
この統合により、エージェントは手動介入なしでメッセージ送信ワークフローを自動化できます。SimとAmazon SQSを接続することで、キューインフラストラクチャや接続を処理することなく、ワークフロー内でキューにメッセージを公開するエージェントを構築できます。
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## 使用手順
|
||||
|
||||
Amazon SQSをワークフローに統合します。SQSキューにメッセージを送信できます。
|
||||
|
||||
## ツール
|
||||
|
||||
### `sqs_send`
|
||||
|
||||
Amazon SQSキューにメッセージを送信
|
||||
|
||||
#### 入力
|
||||
|
||||
| パラメータ | 型 | 必須 | 説明 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | はい | AWS リージョン(例:us-east-1) |
|
||||
| `accessKeyId` | string | はい | AWS アクセスキーID |
|
||||
| `secretAccessKey` | string | はい | AWS シークレットアクセスキー |
|
||||
| `queueUrl` | string | はい | キューURL |
|
||||
| `data` | object | はい | 送信するメッセージ本文 |
|
||||
| `messageGroupId` | string | いいえ | メッセージグループID(オプション) |
|
||||
| `messageDeduplicationId` | string | いいえ | メッセージ重複排除ID(オプション) |
|
||||
|
||||
#### 出力
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | 操作ステータスメッセージ |
|
||||
| `id` | string | メッセージID |
|
||||
|
||||
## 注意事項
|
||||
|
||||
- カテゴリー: `tools`
|
||||
- タイプ: `sqs`
|
||||
@@ -48,25 +48,9 @@ Typeformからフォームの回答を取得する
|
||||
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | 回答/フォームの総数 |
|
||||
| `page_count` | number | 総ページ数 |
|
||||
| `items` | json | 回答/フォーム項目の配列 |
|
||||
| `id` | string | フォームの一意の識別子 |
|
||||
| `title` | string | フォームのタイトル |
|
||||
| `type` | string | フォームのタイプ |
|
||||
| `created_at` | string | フォーム作成のISOタイムスタンプ |
|
||||
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
|
||||
| `settings` | json | フォーム設定オブジェクト |
|
||||
| `theme` | json | テーマ設定オブジェクト |
|
||||
| `workspace` | json | ワークスペース情報 |
|
||||
| `fields` | json | フォームフィールド/質問の配列 |
|
||||
| `thankyou_screens` | json | サンキュースクリーンの配列 |
|
||||
| `_links` | json | 関連リソースリンク |
|
||||
| `deleted` | boolean | フォームが正常に削除されたかどうか |
|
||||
| `message` | string | 削除確認メッセージ |
|
||||
| `fileUrl` | string | ダウンロードされたファイルのURL |
|
||||
| `contentType` | string | ファイルのコンテンツタイプ |
|
||||
| `filename` | string | ファイル名 |
|
||||
| `total_items` | number | 回答の総数 |
|
||||
| `page_count` | number | 利用可能なページの総数 |
|
||||
| `items` | array | response_id、submitted_at、answers、およびmetadataを含む回答オブジェクトの配列 |
|
||||
|
||||
### `typeform_files`
|
||||
|
||||
@@ -127,8 +111,8 @@ Typeformアカウント内のすべてのフォームのリストを取得する
|
||||
| パラメータ | 型 | 説明 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | アカウント内のフォームの総数 |
|
||||
| `page_count` | number | 利用可能な総ページ数 |
|
||||
| `items` | array | フォームオブジェクトの配列 |
|
||||
| `page_count` | number | 利用可能なページの総数 |
|
||||
| `items` | array | id、title、created_at、last_updated_at、settings、theme、および_linksを含むフォームオブジェクトの配列 |
|
||||
|
||||
### `typeform_get_form`
|
||||
|
||||
@@ -148,11 +132,13 @@ Typeformアカウント内のすべてのフォームのリストを取得する
|
||||
| `id` | string | フォームの一意の識別子 |
|
||||
| `title` | string | フォームのタイトル |
|
||||
| `type` | string | フォームのタイプ(form、quizなど) |
|
||||
| `created_at` | string | フォーム作成のISOタイムスタンプ |
|
||||
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
|
||||
| `settings` | object | 言語、進捗バーなどを含むフォーム設定 |
|
||||
| `theme` | object | 色、フォント、デザイン設定を含むテーマ構成 |
|
||||
| `workspace` | object | ワークスペース情報 |
|
||||
| `settings` | object | 言語、プログレスバーなどを含むフォーム設定 |
|
||||
| `theme` | object | テーマ参照 |
|
||||
| `workspace` | object | ワークスペース参照 |
|
||||
| `fields` | array | フォームフィールド/質問の配列 |
|
||||
| `welcome_screens` | array | ウェルカム画面の配列 |
|
||||
| `thankyou_screens` | array | サンキュー画面の配列 |
|
||||
| `_links` | object | 公開フォームURLを含む関連リソースリンク |
|
||||
|
||||
### `typeform_create_form`
|
||||
|
||||
@@ -177,13 +163,8 @@ Typeformアカウント内のすべてのフォームのリストを取得する
|
||||
| `id` | string | 作成されたフォームの一意の識別子 |
|
||||
| `title` | string | フォームのタイトル |
|
||||
| `type` | string | フォームのタイプ |
|
||||
| `created_at` | string | フォーム作成のISOタイムスタンプ |
|
||||
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
|
||||
| `settings` | object | フォーム設定 |
|
||||
| `theme` | object | 適用されたテーマ設定 |
|
||||
| `workspace` | object | ワークスペース情報 |
|
||||
| `fields` | array | 作成されたフォームフィールドの配列 |
|
||||
| `_links` | object | 関連リソースリンク |
|
||||
| `_links` | object | 公開フォームURLを含む関連リソースリンク |
|
||||
|
||||
### `typeform_update_form`
|
||||
|
||||
@@ -204,13 +185,12 @@ JSON Patchオペレーションを使用して既存のフォームを更新す
|
||||
| `id` | string | 更新されたフォームの一意の識別子 |
|
||||
| `title` | string | フォームのタイトル |
|
||||
| `type` | string | フォームのタイプ |
|
||||
| `created_at` | string | フォーム作成のISOタイムスタンプ |
|
||||
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
|
||||
| `settings` | object | フォーム設定 |
|
||||
| `theme` | object | テーマ設定 |
|
||||
| `workspace` | object | ワークスペース情報 |
|
||||
| `theme` | object | テーマ参照 |
|
||||
| `workspace` | object | ワークスペース参照 |
|
||||
| `fields` | array | フォームフィールドの配列 |
|
||||
| `thankyou_screens` | array | サンキュー画面の配列 |
|
||||
| `welcome_screens` | array | ウェルカム画面の配列 |
|
||||
| `thankyou_screens` | array | サンクスページの配列 |
|
||||
| `_links` | object | 関連リソースリンク |
|
||||
|
||||
### `typeform_delete_form`
|
||||
|
||||
@@ -54,7 +54,6 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| `success` | boolean | actor 运行是否成功 |
|
||||
| `runId` | string | APIFY 运行 ID |
|
||||
| `status` | string | 运行状态 \(SUCCEEDED, FAILED 等\) |
|
||||
| `datasetId` | string | 包含结果的数据集 ID |
|
||||
| `items` | array | 数据集条目 \(如果已完成\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
@@ -34,7 +34,14 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 单个任务详情或任务数组,取决于是否提供了 taskGid |
|
||||
| `ts` | string | 响应的时间戳 |
|
||||
| `gid` | string | 任务的全局唯一标识符 |
|
||||
| `resource_type` | string | 资源类型(任务) |
|
||||
| `resource_subtype` | string | 资源子类型 |
|
||||
| `name` | string | 任务名称 |
|
||||
| `notes` | string | 任务备注或描述 |
|
||||
| `completed` | boolean | 任务是否已完成 |
|
||||
| `assignee` | object | 分配人详情 |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
@@ -55,7 +62,13 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 包含时间戳、gid、名称、备注和永久链接的已创建任务详情 |
|
||||
| `ts` | string | 响应的时间戳 |
|
||||
| `gid` | string | 任务的全局唯一标识符 |
|
||||
| `name` | string | 任务名称 |
|
||||
| `notes` | string | 任务备注或描述 |
|
||||
| `completed` | boolean | 任务是否已完成 |
|
||||
| `created_at` | string | 任务创建时间戳 |
|
||||
| `permalink_url` | string | 任务在 Asana 中的 URL |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
@@ -77,7 +90,12 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 更新的任务详情,包括时间戳、gid、名称、备注和修改时间戳 |
|
||||
| `ts` | string | 响应的时间戳 |
|
||||
| `gid` | string | 任务的全局唯一标识符 |
|
||||
| `name` | string | 任务名称 |
|
||||
| `notes` | string | 任务备注或描述 |
|
||||
| `completed` | boolean | 任务是否已完成 |
|
||||
| `modified_at` | string | 任务最后修改时间戳 |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
@@ -94,7 +112,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 项目列表,包括它们的 gid、名称和资源类型 |
|
||||
| `ts` | string | 响应的时间戳 |
|
||||
| `projects` | array | 项目数组 |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
@@ -115,7 +134,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 符合搜索条件的任务列表 |
|
||||
| `ts` | string | 响应的时间戳 |
|
||||
| `tasks` | array | 匹配任务的数组 |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
@@ -133,7 +153,11 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 评论详情,包括 gid、文本、创建时间戳和作者 |
|
||||
| `ts` | string | 响应的时间戳 |
|
||||
| `gid` | string | 评论的全局唯一标识符 |
|
||||
| `text` | string | 评论的文本内容 |
|
||||
| `created_at` | string | 评论的创建时间戳 |
|
||||
| `created_by` | object | 评论作者的详细信息 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
@@ -220,6 +220,33 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| `commentId` | string | 删除的评论 ID |
|
||||
| `deleted` | boolean | 删除状态 |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
将文件作为附件上传到 Confluence 页面。
|
||||
|
||||
#### 输入
|
||||
|
||||
| 参数 | 类型 | 必需 | 描述 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | 是 | 您的 Confluence 域名 \(例如:yourcompany.atlassian.net\) |
|
||||
| `pageId` | string | 是 | 要附加文件的 Confluence 页面 ID |
|
||||
| `file` | file | 是 | 要作为附件上传的文件 |
|
||||
| `fileName` | string | 否 | 附件的可选自定义文件名 |
|
||||
| `comment` | string | 否 | 附件的可选评论 |
|
||||
| `cloudId` | string | 否 | 实例的 Confluence Cloud ID。如果未提供,将使用域名进行获取。 |
|
||||
|
||||
#### 输出
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 上传的时间戳 |
|
||||
| `attachmentId` | string | 上传的附件 ID |
|
||||
| `title` | string | 附件文件名 |
|
||||
| `fileSize` | number | 文件大小(以字节为单位) |
|
||||
| `mediaType` | string | 附件的 MIME 类型 |
|
||||
| `downloadUrl` | string | 附件的下载 URL |
|
||||
| `pageId` | string | 添加附件的页面 ID |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
列出 Confluence 页面上的所有附件。
|
||||
@@ -230,7 +257,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | 是 | 您的 Confluence 域名 \(例如:yourcompany.atlassian.net\) |
|
||||
| `pageId` | string | 是 | 要列出附件的 Confluence 页面 ID |
|
||||
| `limit` | number | 否 | 返回的附件最大数量 \(默认值:25\) |
|
||||
| `limit` | number | 否 | 返回的最大附件数量 \(默认值:25\) |
|
||||
| `cloudId` | string | 否 | 实例的 Confluence Cloud ID。如果未提供,将使用域名进行获取。 |
|
||||
|
||||
#### 输出
|
||||
@@ -257,7 +284,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | 删除的时间戳 |
|
||||
| `attachmentId` | string | 已删除的附件 ID |
|
||||
| `attachmentId` | string | 删除的附件 ID |
|
||||
| `deleted` | boolean | 删除状态 |
|
||||
|
||||
### `confluence_list_labels`
|
||||
@@ -281,7 +308,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
### `confluence_get_space`
|
||||
|
||||
获取特定 Confluence 空间的详细信息。
|
||||
获取有关特定 Confluence 空间的详细信息。
|
||||
|
||||
#### 输入
|
||||
|
||||
|
||||
@@ -145,7 +145,6 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 提取操作是否成功 |
|
||||
| `data` | object | 根据模式或提示提取的结构化数据 |
|
||||
| `sources` | array | 数据来源(仅在启用 showSources 时) |
|
||||
|
||||
## 注意
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `groups` | json | 群组对象的数组 |
|
||||
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
@@ -50,7 +51,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `group` | json | 群组对象 |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
@@ -68,7 +69,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `group` | json | 创建的群组对象 |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
@@ -87,7 +88,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `group` | json | 更新的群组对象 |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
@@ -103,7 +104,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `message` | string | 成功消息 |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
@@ -122,7 +123,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `members` | json | 成员对象的数组 |
|
||||
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
@@ -139,7 +141,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `member` | json | 成员对象 |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
@@ -157,7 +159,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `member` | json | 添加的成员对象 |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
@@ -174,7 +176,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `message` | string | 成功消息 |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
@@ -192,7 +194,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `member` | json | 更新的成员对象 |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
@@ -209,7 +211,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Google Groups API 响应数据 |
|
||||
| `isMember` | boolean | 用户是否是该群组的成员 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
@@ -34,8 +34,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API 响应数据 |
|
||||
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
|
||||
| `export` | json | 创建的导出对象 |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
@@ -54,8 +53,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API 响应数据 |
|
||||
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
|
||||
| `exports` | json | 导出对象的数组 |
|
||||
| `export` | json | 单个导出对象(当提供 exportId 时) |
|
||||
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
@@ -94,8 +94,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API 响应数据 |
|
||||
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
|
||||
| `hold` | json | 创建的保留对象 |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
@@ -114,8 +113,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API 响应数据 |
|
||||
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
|
||||
| `holds` | json | 保留对象的数组 |
|
||||
| `hold` | json | 单个保留对象(当提供 holdId 时) |
|
||||
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
@@ -132,8 +132,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API 响应数据 |
|
||||
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
|
||||
| `matter` | json | 创建的事项对象 |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
@@ -151,8 +150,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `output` | json | Vault API 响应数据 |
|
||||
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
|
||||
| `matters` | json | 事项对象的数组 |
|
||||
| `matter` | json | 单个事项对象(当提供 matterId 时) |
|
||||
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
@@ -47,8 +47,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 用户数据 |
|
||||
| `users` | 数组 | HubSpot 用户对象的数组 |
|
||||
| `metadata` | 对象 | 操作元数据 |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
@@ -67,8 +68,10 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 联系人数据 |
|
||||
| `contacts` | 数组 | HubSpot 联系人对象的数组 |
|
||||
| `paging` | 对象 | 分页信息 |
|
||||
| `metadata` | 对象 | 操作元数据 |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
@@ -87,8 +90,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 联系人数据 |
|
||||
| `contact` | 对象 | 带有属性的 HubSpot 联系人对象 |
|
||||
| `metadata` | 对象 | 操作元数据 |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
@@ -105,8 +109,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 创建的联系人数据 |
|
||||
| `contact` | 对象 | 创建的 HubSpot 联系人对象 |
|
||||
| `metadata` | 对象 | 操作元数据 |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
@@ -124,8 +129,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 更新的联系人数据 |
|
||||
| `contact` | 对象 | 更新的 HubSpot 联系人对象 |
|
||||
| `metadata` | 对象 | 操作元数据 |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
@@ -146,8 +152,11 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 搜索结果 |
|
||||
| `contacts` | 数组 | 匹配的 HubSpot 联系人对象的数组 |
|
||||
| `total` | 数字 | 匹配的联系人总数 |
|
||||
| `paging` | 对象 | 分页信息 |
|
||||
| `metadata` | 对象 | 操作元数据 |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
@@ -166,8 +175,10 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | HubSpot 公司对象的数组 |
|
||||
| `paging` | object | 分页信息 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 公司数据 |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
@@ -186,8 +197,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | 带有属性的 HubSpot 公司对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 公司数据 |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
@@ -204,8 +216,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | 创建的 HubSpot 公司对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 创建的公司数据 |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
@@ -223,8 +236,9 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | 更新的 HubSpot 公司对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 更新的公司数据 |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
@@ -245,8 +259,11 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | 匹配的 HubSpot 公司对象的数组 |
|
||||
| `total` | number | 匹配的公司总数 |
|
||||
| `paging` | object | 分页信息 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 搜索结果 |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
@@ -265,8 +282,10 @@ HubSpot CRM 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | 布尔值 | 操作成功状态 |
|
||||
| `output` | 对象 | 交易数据 |
|
||||
| `deals` | array | HubSpot 交易对象的数组 |
|
||||
| `paging` | object | 分页信息 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
@@ -51,8 +51,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | 来自 Pipedrive 的交易对象数组 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 交易数据和元数据 |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
|
||||
@@ -68,8 +69,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | 包含完整详细信息的交易对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 交易详情 |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
|
||||
@@ -93,8 +95,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | 创建的交易对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 创建的交易详情 |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
|
||||
@@ -115,8 +118,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | 更新的交易对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 更新的交易详情 |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
|
||||
@@ -135,8 +139,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | 来自 Pipedrive 的文件对象数组 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 文件数据 |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
|
||||
@@ -153,8 +158,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | 来自 Pipedrive 邮箱的邮件线程对象数组 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 邮件线程数据 |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
|
||||
@@ -170,8 +176,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | 邮件线程中的邮件消息对象数组 |
|
||||
| `metadata` | object | 包含线程 ID 的操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 邮件线程消息数据 |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
|
||||
@@ -190,8 +197,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | 来自 Pipedrive 的管道对象数组 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 管道数据 |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
|
||||
@@ -210,8 +218,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | 管道中的交易对象数组 |
|
||||
| `metadata` | object | 包含管道 ID 的操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 管道交易数据 |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
|
||||
@@ -229,8 +238,10 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | 项目对象数组(列出所有项目时) |
|
||||
| `project` | object | 单个项目对象(提供 project_id 时) |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 项目数据或单个项目详情 |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
|
||||
@@ -249,8 +260,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | 创建的项目对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 创建的项目详情 |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
|
||||
@@ -271,8 +283,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | 来自 Pipedrive 的活动对象数组 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 活动数据 |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
|
||||
@@ -296,8 +309,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | 创建的活动对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 创建的活动详情 |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
|
||||
@@ -319,8 +333,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | 更新的活动对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 更新的活动详情 |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
|
||||
@@ -341,8 +356,10 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `leads` | array | 潜在客户对象数组(列出所有时) |
|
||||
| `lead` | object | 单个潜在客户对象(提供 lead_id 时) |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 潜在客户数据或单个潜在客户详情 |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
|
||||
@@ -365,8 +382,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | 创建的潜在客户对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 创建的潜在客户详情 |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
|
||||
@@ -390,8 +408,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | 更新的潜在客户对象 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 更新的潜在客户详情 |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
|
||||
@@ -407,8 +426,9 @@ Pipedrive 的主要功能包括:
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | 删除确认数据 |
|
||||
| `metadata` | object | 操作元数据 |
|
||||
| `success` | boolean | 操作成功状态 |
|
||||
| `output` | object | 删除结果 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
63
apps/docs/content/docs/zh/tools/sqs.mdx
Normal file
63
apps/docs/content/docs/zh/tools/sqs.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Amazon SQS
|
||||
description: 连接到 Amazon SQS
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="sqs"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) 是一项完全托管的消息队列服务,可帮助您解耦和扩展微服务、分布式系统和无服务器应用程序。SQS 消除了与管理和操作面向消息的中间件相关的复杂性和开销,使开发人员能够专注于差异化工作。
|
||||
|
||||
使用 Amazon SQS,您可以:
|
||||
|
||||
- **发送消息**:将消息发布到队列以进行异步处理
|
||||
- **解耦应用程序**:实现系统组件之间的松耦合
|
||||
- **扩展工作负载**:处理可变工作负载,无需预置基础设施
|
||||
- **确保可靠性**:内置冗余和高可用性
|
||||
- **支持 FIFO 队列**:保持严格的消息顺序和精确的一次性处理
|
||||
|
||||
在 Sim 中,SQS 集成使您的代理能够安全且以编程方式将消息发送到 Amazon SQS 队列。支持的操作包括:
|
||||
|
||||
- **发送消息**:将消息发送到 SQS 队列,并为 FIFO 队列提供可选的消息组 ID 和去重 ID
|
||||
|
||||
此集成允许您的代理自动化消息发送工作流,无需人工干预。通过将 Sim 与 Amazon SQS 连接,您可以构建代理,在工作流中将消息发布到队列,而无需处理队列基础设施或连接。
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## 使用说明
|
||||
|
||||
将 Amazon SQS 集成到工作流中。可以将消息发送到 SQS 队列。
|
||||
|
||||
## 工具
|
||||
|
||||
### `sqs_send`
|
||||
|
||||
向 Amazon SQS 队列发送消息
|
||||
|
||||
#### 输入
|
||||
|
||||
| 参数 | 类型 | 必需 | 描述 |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | 是 | AWS 区域 \(例如,us-east-1\) |
|
||||
| `accessKeyId` | string | 是 | AWS 访问密钥 ID |
|
||||
| `secretAccessKey` | string | 是 | AWS 秘密访问密钥 |
|
||||
| `queueUrl` | string | 是 | 队列 URL |
|
||||
| `data` | object | 是 | 要发送的消息正文 |
|
||||
| `messageGroupId` | string | 否 | 消息组 ID \(可选\) |
|
||||
| `messageDeduplicationId` | string | 否 | 消息去重 ID \(可选\) |
|
||||
|
||||
#### 输出
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | 操作状态消息 |
|
||||
| `id` | string | 消息 ID |
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 类别: `tools`
|
||||
- 类型: `sqs`
|
||||
@@ -48,25 +48,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | 响应/表单总数 |
|
||||
| `page_count` | number | 总页数 |
|
||||
| `items` | json | 响应/表单项目数组 |
|
||||
| `id` | string | 表单唯一标识符 |
|
||||
| `title` | string | 表单标题 |
|
||||
| `type` | string | 表单类型 |
|
||||
| `created_at` | string | 表单创建的 ISO 时间戳 |
|
||||
| `last_updated_at` | string | 上次更新的 ISO 时间戳 |
|
||||
| `settings` | json | 表单设置对象 |
|
||||
| `theme` | json | 主题配置对象 |
|
||||
| `workspace` | json | 工作区信息 |
|
||||
| `fields` | json | 表单字段/问题数组 |
|
||||
| `thankyou_screens` | json | 感谢页面数组 |
|
||||
| `_links` | json | 相关资源链接 |
|
||||
| `deleted` | boolean | 表单是否成功删除 |
|
||||
| `message` | string | 删除确认消息 |
|
||||
| `fileUrl` | string | 下载文件的 URL |
|
||||
| `contentType` | string | 文件内容类型 |
|
||||
| `filename` | string | 文件名 |
|
||||
| `total_items` | number | 响应的总数 |
|
||||
| `page_count` | number | 可用页面的总数 |
|
||||
| `items` | array | 包含 response_id、submitted_at、answers 和 metadata 的响应对象数组 |
|
||||
|
||||
### `typeform_files`
|
||||
|
||||
@@ -126,9 +110,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
| --------- | ---- | ----------- |
|
||||
| `total_items` | number | 帐户中表单的总数 |
|
||||
| `total_items` | number | 账户中的表单总数 |
|
||||
| `page_count` | number | 可用页面的总数 |
|
||||
| `items` | array | 表单对象的数组 |
|
||||
| `items` | array | 包含 id、title、created_at、last_updated_at、settings、theme 和 _links 的表单对象数组 |
|
||||
|
||||
### `typeform_get_form`
|
||||
|
||||
@@ -147,12 +131,14 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | 表单唯一标识符 |
|
||||
| `title` | string | 表单标题 |
|
||||
| `type` | string | 表单类型 \(表单、测验等\) |
|
||||
| `created_at` | string | 表单创建的 ISO 时间戳 |
|
||||
| `last_updated_at` | string | 上次更新的 ISO 时间戳 |
|
||||
| `type` | string | 表单类型 \(form, quiz 等\) |
|
||||
| `settings` | object | 表单设置,包括语言、进度条等 |
|
||||
| `theme` | object | 主题配置,包括颜色、字体和设计设置 |
|
||||
| `workspace` | object | 工作区信息 |
|
||||
| `theme` | object | 主题引用 |
|
||||
| `workspace` | object | 工作区引用 |
|
||||
| `fields` | array | 表单字段/问题数组 |
|
||||
| `welcome_screens` | array | 欢迎页面数组 |
|
||||
| `thankyou_screens` | array | 感谢页面数组 |
|
||||
| `_links` | object | 包括公共表单 URL 在内的相关资源链接 |
|
||||
|
||||
### `typeform_create_form`
|
||||
|
||||
@@ -177,13 +163,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| `id` | string | 创建的表单唯一标识符 |
|
||||
| `title` | string | 表单标题 |
|
||||
| `type` | string | 表单类型 |
|
||||
| `created_at` | string | 表单创建的 ISO 时间戳 |
|
||||
| `last_updated_at` | string | 最后更新的 ISO 时间戳 |
|
||||
| `settings` | object | 表单设置 |
|
||||
| `theme` | object | 应用的主题配置 |
|
||||
| `workspace` | object | 工作区信息 |
|
||||
| `fields` | array | 创建的表单字段数组 |
|
||||
| `_links` | object | 相关资源链接 |
|
||||
| `_links` | object | 包括公共表单 URL 在内的相关资源链接 |
|
||||
|
||||
### `typeform_update_form`
|
||||
|
||||
@@ -204,13 +185,12 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
| `id` | string | 更新的表单唯一标识符 |
|
||||
| `title` | string | 表单标题 |
|
||||
| `type` | string | 表单类型 |
|
||||
| `created_at` | string | 表单创建的 ISO 时间戳 |
|
||||
| `last_updated_at` | string | 最后更新的 ISO 时间戳 |
|
||||
| `settings` | object | 表单设置 |
|
||||
| `theme` | object | 主题配置 |
|
||||
| `workspace` | object | 工作区信息 |
|
||||
| `theme` | object | 主题引用 |
|
||||
| `workspace` | object | 工作区引用 |
|
||||
| `fields` | array | 表单字段数组 |
|
||||
| `thankyou_screens` | array | 感谢页面数组 |
|
||||
| `welcome_screens` | array | 欢迎屏幕数组 |
|
||||
| `thankyou_screens` | array | 感谢屏幕数组 |
|
||||
| `_links` | object | 相关资源链接 |
|
||||
|
||||
### `typeform_delete_form`
|
||||
|
||||
@@ -477,7 +477,7 @@ checksums:
|
||||
content/11: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/12: f86b4f5f2c68f43bb30c31455e3be9b6
|
||||
content/13: bcadfc362b69078beee0088e5936c98b
|
||||
content/14: a29319a7824fc50f83f50b8d616371d4
|
||||
content/14: 5112eece1ec6b0be680f45e1135a3281
|
||||
content/15: 0bf7daaa3e25f831e867651f1f741b42
|
||||
content/16: 194950d92c8162c418cb14eec4ab5a18
|
||||
content/17: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
@@ -495,25 +495,25 @@ checksums:
|
||||
content/29: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/30: 1cc22f14b53f6cb1508c9d9e76a97ffc
|
||||
content/31: bcadfc362b69078beee0088e5936c98b
|
||||
content/32: 52de3b8f239d1c17c53364d781b0e644
|
||||
content/32: bfb1f1db8e96160f94f6edb40fa3faad
|
||||
content/33: 13f4e18c7e77c96613108cfe64e4d364
|
||||
content/34: aaada0cb81a7e70297d9d47f936e51fd
|
||||
content/35: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/36: 4c6a3b159dfff0106b67269130253eba
|
||||
content/37: bcadfc362b69078beee0088e5936c98b
|
||||
content/38: 93282e29fd004417112ebfee716b2e29
|
||||
content/38: 21cc925781120afc2c4568f74ed8191a
|
||||
content/39: 5de052cae5ada1f845f7257ba431ebd1
|
||||
content/40: 1a36fc873771b68a67d95a2130487aec
|
||||
content/41: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/42: b000bca7bd6658d4b5d21e6c7787d05e
|
||||
content/43: bcadfc362b69078beee0088e5936c98b
|
||||
content/44: 8fa5b975e46b4e488b17cc497de86694
|
||||
content/44: 448922b8585b0b4599e7023c80faa449
|
||||
content/45: 776f62636d112cbd27d5064a40e29ec9
|
||||
content/46: f512a5096a1d5a4e4a0afd762152b714
|
||||
content/47: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/48: 06de592289fb5f4dff42f451ebf9658a
|
||||
content/49: bcadfc362b69078beee0088e5936c98b
|
||||
content/50: d3696981fefa1f9c436e23842f69e172
|
||||
content/50: d242a9680311743714a60bf1941ef9ac
|
||||
content/51: a4cfd36d36633eee441423283d4d5fb3
|
||||
content/52: 85ea23183709f33902aec778c7cb62b0
|
||||
content/53: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
@@ -3464,7 +3464,7 @@ checksums:
|
||||
content/37: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/38: 3e7b1f581c8ef51fb3d9b6ecff47deb4
|
||||
content/39: bcadfc362b69078beee0088e5936c98b
|
||||
content/40: 8f63ba4785aed72b1840e562ff0d0df7
|
||||
content/40: 07994574571bcaeb3b86ce92c46d0527
|
||||
content/41: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/42: dc809f5be4a108f769310dd8290c0db4
|
||||
bda76150deadd23f7803a15b39c4db66:
|
||||
@@ -3845,38 +3845,44 @@ checksums:
|
||||
content/60: 5901c2c84678c889c2d48e77b40014ec
|
||||
content/61: bcadfc362b69078beee0088e5936c98b
|
||||
content/62: d76ee741e1888731742798f2794101ed
|
||||
content/63: 496b5789a744fec56b165a7f7ccbefc0
|
||||
content/64: 976b5c09fddc3981a1881e62624fb1f6
|
||||
content/63: a81589f2200fc67b255fe43614d22976
|
||||
content/64: 37784f302e365fcd636a86adf08c0297
|
||||
content/65: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/66: c9ea0e2c6bfb9abd73572d021f74a7de
|
||||
content/66: fed65968404d4a377eaf8d2387a15926
|
||||
content/67: bcadfc362b69078beee0088e5936c98b
|
||||
content/68: e01308629566a2c3e95cc26304188ef0
|
||||
content/69: 1de796fec3488fe36d6e811727a916a9
|
||||
content/70: 75f92c54e71d2734e3901343240ab29e
|
||||
content/68: bdfc6b8dc4f285b5636054bda5073f28
|
||||
content/69: 496b5789a744fec56b165a7f7ccbefc0
|
||||
content/70: 976b5c09fddc3981a1881e62624fb1f6
|
||||
content/71: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/72: 2e80241a94359c7165b7eee705674e31
|
||||
content/72: c9ea0e2c6bfb9abd73572d021f74a7de
|
||||
content/73: bcadfc362b69078beee0088e5936c98b
|
||||
content/74: e843dcc7e9c933e4a5747379c1e51f2e
|
||||
content/75: 72c749dd7c4c64b84e8764c606c9599e
|
||||
content/76: d3feee2154fc7a46b842e2435a649727
|
||||
content/74: e01308629566a2c3e95cc26304188ef0
|
||||
content/75: 1de796fec3488fe36d6e811727a916a9
|
||||
content/76: 75f92c54e71d2734e3901343240ab29e
|
||||
content/77: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/78: 7465a5023e6ba134f07e12e588a85671
|
||||
content/78: 2e80241a94359c7165b7eee705674e31
|
||||
content/79: bcadfc362b69078beee0088e5936c98b
|
||||
content/80: a2817ce70b061ae3f2c1bf62c4078001
|
||||
content/81: 119c212dac0135f1ccedfbf0eb8d27ae
|
||||
content/82: 83dd6ad7872478f4ec41b4362792b883
|
||||
content/80: e843dcc7e9c933e4a5747379c1e51f2e
|
||||
content/81: 72c749dd7c4c64b84e8764c606c9599e
|
||||
content/82: d3feee2154fc7a46b842e2435a649727
|
||||
content/83: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/84: d2acf911462ae4e825d47e8a386d6d1c
|
||||
content/84: 7465a5023e6ba134f07e12e588a85671
|
||||
content/85: bcadfc362b69078beee0088e5936c98b
|
||||
content/86: f69940bcedadf67b0e474682577207cf
|
||||
content/87: db73fc05316809b28857ca697ceeffe7
|
||||
content/88: 3277861c34a8958c3a6d47b5978ae867
|
||||
content/86: a2817ce70b061ae3f2c1bf62c4078001
|
||||
content/87: 119c212dac0135f1ccedfbf0eb8d27ae
|
||||
content/88: 83dd6ad7872478f4ec41b4362792b883
|
||||
content/89: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/90: 07003e71b6286e0588f606d8e063c783
|
||||
content/90: d2acf911462ae4e825d47e8a386d6d1c
|
||||
content/91: bcadfc362b69078beee0088e5936c98b
|
||||
content/92: 5c0becafe66dc048e541fe7330336c3f
|
||||
content/93: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/94: 05207a2c6155f6912f2945a2ca85d5fc
|
||||
content/92: f69940bcedadf67b0e474682577207cf
|
||||
content/93: db73fc05316809b28857ca697ceeffe7
|
||||
content/94: 3277861c34a8958c3a6d47b5978ae867
|
||||
content/95: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/96: 07003e71b6286e0588f606d8e063c783
|
||||
content/97: bcadfc362b69078beee0088e5936c98b
|
||||
content/98: 5c0becafe66dc048e541fe7330336c3f
|
||||
content/99: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/100: 05207a2c6155f6912f2945a2ca85d5fc
|
||||
63c9ac4220dfb233b39daaa9c82ade00:
|
||||
meta/title: 50de3a91960f18340fe2672a889fcfd7
|
||||
meta/description: 4dd9ce8fa67af977678af57427c65e0b
|
||||
@@ -5674,13 +5680,13 @@ checksums:
|
||||
content/7: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/8: a3c11477d8439403d831759eaf853014
|
||||
content/9: bcadfc362b69078beee0088e5936c98b
|
||||
content/10: f383a8845c0fe57f4eb82c1c69009925
|
||||
content/10: 845660ec2cdd9b96a52f7fd6edb7e069
|
||||
content/11: 6ec042e76b23443637c5318f52794824
|
||||
content/12: 8b5f9dc14880c8c000fb31d2609b472d
|
||||
content/13: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/14: 0a261f4aa9ed78d0d064e2bb0d62044c
|
||||
content/15: bcadfc362b69078beee0088e5936c98b
|
||||
content/16: f383a8845c0fe57f4eb82c1c69009925
|
||||
content/16: e69b63114342a49f24a67f2867164814
|
||||
content/17: da5389d425a2ed3cfc699b8b305b92ca
|
||||
content/18: 2f8d4817554dde3883597dc00beb677a
|
||||
content/19: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
@@ -5692,25 +5698,25 @@ checksums:
|
||||
content/25: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/26: d5b98c983daa7d8b92969933a797b4fd
|
||||
content/27: bcadfc362b69078beee0088e5936c98b
|
||||
content/28: f383a8845c0fe57f4eb82c1c69009925
|
||||
content/28: ba52aed0f57ba4b4616a67f7648c2d3b
|
||||
content/29: 156255b2849bbf28a1aa98516dee39e1
|
||||
content/30: 226995d6023bacd5ebeb6568cef38d32
|
||||
content/31: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/32: 3d10386c77486a8fb7777eb2e616762f
|
||||
content/33: bcadfc362b69078beee0088e5936c98b
|
||||
content/34: f383a8845c0fe57f4eb82c1c69009925
|
||||
content/34: 2556172bac9279ba61689e93a75077cc
|
||||
content/35: e4d7bc479212113e9ce1e4a4bd76f86a
|
||||
content/36: ce9c08055f6ec84a646c1fb90aab9fc4
|
||||
content/37: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/38: 0f29418fa0c7fe544613330b91940f6a
|
||||
content/39: bcadfc362b69078beee0088e5936c98b
|
||||
content/40: f383a8845c0fe57f4eb82c1c69009925
|
||||
content/40: 60cc1342d1475d0b822aacfcc9d162d8
|
||||
content/41: 6226071e782ecd50a31e3667852aeaae
|
||||
content/42: 6253ab1d2159b9179728769cc223b05a
|
||||
content/43: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/44: 6ea2166f86fd38641c7cbbf7ff7dde14
|
||||
content/45: bcadfc362b69078beee0088e5936c98b
|
||||
content/46: f383a8845c0fe57f4eb82c1c69009925
|
||||
content/46: 4c9b5b6404367f05cf17c80f718a9722
|
||||
content/47: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/48: 5e1c856b28d30016198e90cda5b05e57
|
||||
5d496ee293efcfeeabc8ba9cb5bea389:
|
||||
@@ -6698,109 +6704,109 @@ checksums:
|
||||
content/12: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/13: dae5c302ede2453d0009c5a685feb022
|
||||
content/14: bcadfc362b69078beee0088e5936c98b
|
||||
content/15: 6fa0deda19439292c55097ef25239c77
|
||||
content/15: 1602503ae72d1314b640123d677cc633
|
||||
content/16: 51bce1eb49f5202343f9826024223b31
|
||||
content/17: 2350cbe796d8d46f5952029c863fda06
|
||||
content/18: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/19: 9c06876470db23917a2a3ee5a4315733
|
||||
content/20: bcadfc362b69078beee0088e5936c98b
|
||||
content/21: 2e035c1b9af4b2beef1f5b5fdc0f2308
|
||||
content/21: 106fd592034d1f004c98d526cf3f3d73
|
||||
content/22: 7c0ac45f6f6630777a388cffda717b5b
|
||||
content/23: 49cb82a2975f9088dab6b37cf7cc0554
|
||||
content/24: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/25: 1479d81949322910928d3986fda177c8
|
||||
content/26: bcadfc362b69078beee0088e5936c98b
|
||||
content/27: 7a0fbeb1d352c71128b6c71919428414
|
||||
content/27: b747e7b327f0dd4ae3672533e4e6eb62
|
||||
content/28: afb55d14fa0dddda2ff67bdb87aa04b5
|
||||
content/29: b06d024ce4c861572929702e551501c0
|
||||
content/30: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/31: e23ce76d94ca15f112c3da007d896376
|
||||
content/32: bcadfc362b69078beee0088e5936c98b
|
||||
content/33: d88238e92bd4da31e893dbef2602577f
|
||||
content/33: 4a8637b7a6dfe444af42778d5dea8953
|
||||
content/34: 573ed349fb115c8e2b262639eb1cee94
|
||||
content/35: 2cf83cedde0bf34c0126d10fa57d8ea7
|
||||
content/36: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/37: ced779c0459899d9934ed9d5e9c16027
|
||||
content/38: bcadfc362b69078beee0088e5936c98b
|
||||
content/39: a7eebb30e28a7b07316b224c7a2a8d65
|
||||
content/39: a22c0adf9f7af9920ffd005ea77f0973
|
||||
content/40: 7346be42f9672ab948b276c6bcd6f7f6
|
||||
content/41: 1aee2da8c1e7b0d6869959103bffb799
|
||||
content/42: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/43: 87a0ac973fd1af8f8282589860fc9846
|
||||
content/44: bcadfc362b69078beee0088e5936c98b
|
||||
content/45: 4c20536f0e8a44cd5f4e4fbac837c84d
|
||||
content/45: 5963fe44971a0c55f0a1a63305ee0489
|
||||
content/46: 0a4667f0fe6170c78f12dab6c8f43545
|
||||
content/47: 168d47bf81f43b2f07f68a6135dc6e20
|
||||
content/48: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/49: f0e41e3c3b7472bbe309abaaf3251faf
|
||||
content/50: bcadfc362b69078beee0088e5936c98b
|
||||
content/51: b8d43e8492c521206c7698b16ad47a77
|
||||
content/51: 431aa94527010c6e8da4c205ec739e34
|
||||
content/52: 194e0dcae0b72f23ae9b7d5422a99b33
|
||||
content/53: 3c4fdc8e069f2802c73471908fddd25a
|
||||
content/54: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/55: 6014a6b6972597a13edc66f8bd65a9a0
|
||||
content/56: bcadfc362b69078beee0088e5936c98b
|
||||
content/57: 739083ffe3711c4dfb580ee7f2949343
|
||||
content/57: 10e5475e4ba1928c6f409c962d48b1d7
|
||||
content/58: 53e2acf4473d4182244c34aa421d8a43
|
||||
content/59: d768c66310b7a829344a7ee4ac897e72
|
||||
content/60: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/61: cd4caf9d3ae8aef3785a78db4fdadc9f
|
||||
content/62: bcadfc362b69078beee0088e5936c98b
|
||||
content/63: 9b70d9ae3fda05442e911dee1614f27e
|
||||
content/63: 680395d47cd8d1134facf052e0a2a38b
|
||||
content/64: 48b29aa751b26ed0f9db1e95e760cd27
|
||||
content/65: 6b8826b7fe1b3639465cd267f149673a
|
||||
content/66: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/67: bded72160da14ccf151b0a0eb06bb56f
|
||||
content/68: bcadfc362b69078beee0088e5936c98b
|
||||
content/69: e54159fa3e3620cc49bee79e772cb87e
|
||||
content/69: e0b7ea1fe1ef728e53492b5993b15d14
|
||||
content/70: ae4b76165d096d64525d1aee1e18fee0
|
||||
content/71: a18956fdd8ce9a265626539f75e96084
|
||||
content/72: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/73: 573b4147d240e71a452c45d772f28b33
|
||||
content/74: bcadfc362b69078beee0088e5936c98b
|
||||
content/75: b8aa04222de1cd87b5ef6ffcad8e63fd
|
||||
content/75: 209a7be82a8c8f943a2b6eae46fdf59d
|
||||
content/76: 4bd432a7a3e1440b6b71f235a6ad65cd
|
||||
content/77: fd8fbeb55ef74c575281f61b04ec31c0
|
||||
content/78: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/79: e558fa14a8f54ad2957a0715c8fc131d
|
||||
content/80: bcadfc362b69078beee0088e5936c98b
|
||||
content/81: 5e681a2ba92d15d5efdbd3269bbd595c
|
||||
content/81: 8cdef68820d5b731b817485136203e2e
|
||||
content/82: a617faea0b4556a3e2cdd76854be4eeb
|
||||
content/83: 3a4f2fec3210cd6caaceaff1ade1d25d
|
||||
content/84: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/85: 6268a8ef99f3c8edfbb54adb702252c2
|
||||
content/86: bcadfc362b69078beee0088e5936c98b
|
||||
content/87: 2db32021d8c338ff378c041bdd771b36
|
||||
content/87: c4005cf9f2be966687a8e1657053b658
|
||||
content/88: e594b6968a32cc114836e7d338b2ae72
|
||||
content/89: ecbe896e30d37803f062d774c3fed61e
|
||||
content/90: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/91: 31bb12c5fecb55e000fb6548ff84611d
|
||||
content/92: bcadfc362b69078beee0088e5936c98b
|
||||
content/93: cbb110de4c385f111ba0c2cfd2bee9ba
|
||||
content/93: 13881b819f65455ba6eaa79578a69416
|
||||
content/94: 232c00f66421f98d3acfe0066c25a861
|
||||
content/95: 29cea11c97efbd2d46163eb3f091fe54
|
||||
content/96: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/97: 1e7dbcb716a318b2861889422fdc16cc
|
||||
content/98: bcadfc362b69078beee0088e5936c98b
|
||||
content/99: bf86387df51e9fba30a22614e23450e0
|
||||
content/99: 5642bc5da8834e5c1b825393e59138bb
|
||||
content/100: b9fa49fac9189484fb4952264802b2fa
|
||||
content/101: 730c30b24067e75bf4bd88067281d869
|
||||
content/102: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/103: 80bad3d5d39d84dddf169515ea34e867
|
||||
content/104: bcadfc362b69078beee0088e5936c98b
|
||||
content/105: 1f974e39ff95cbb8f217448e40537a7a
|
||||
content/105: 8424c37fc3a7ab3c14673df85ffdb97e
|
||||
content/106: 7d3f547f7d19f6f08b6501de082e9d22
|
||||
content/107: 410cfe5d22625805edc6d68e6cdd9606
|
||||
content/108: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/109: 5ad03aa50355f0c83f7bb6cb8795a598
|
||||
content/110: bcadfc362b69078beee0088e5936c98b
|
||||
content/111: f9e40bfcca798561cf3fa41ecea16079
|
||||
content/111: fbcea5843f0ceacfada9473d602b5073
|
||||
content/112: 940c561f84e0e3cb3c75cf789ce886b8
|
||||
content/113: 83d531300698c39ce89ff22a4a699722
|
||||
content/114: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/115: 3015c78bbe4877ab591f25b04f026f1b
|
||||
content/116: bcadfc362b69078beee0088e5936c98b
|
||||
content/117: 45d8bfeced635336cacc9d4a8d08dbca
|
||||
content/117: 0db5be06d1f87f79a56b19c0cd33c5d9
|
||||
content/118: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/119: 58da44cca95db12222bd186cf4042384
|
||||
f8151918dd7b32173a979241c19134ba:
|
||||
@@ -6821,73 +6827,73 @@ checksums:
|
||||
content/12: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/13: cf0eb00889d3fbe8f11192fbde69d152
|
||||
content/14: bcadfc362b69078beee0088e5936c98b
|
||||
content/15: ddea0f29c3b0b39d4d68accb1ee22f1d
|
||||
content/15: 903282a17337b15eb942f93814ca7e27
|
||||
content/16: dacdc7f65574fccd17af803318f08ef9
|
||||
content/17: 1e91462ed3829658d2ec8c5e19b44276
|
||||
content/18: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/19: 3f75fb03850d89c3746403ab778e6c6e
|
||||
content/20: bcadfc362b69078beee0088e5936c98b
|
||||
content/21: a91e46a2855f87996b8dae5dc6a9aaf6
|
||||
content/21: 91827ecd0a9656291c376a3ad8f4d496
|
||||
content/22: 8d068110b8b042b41197680cbcbd0927
|
||||
content/23: dde6ab55890a4d8cc9327080ce0597c3
|
||||
content/24: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/25: 3e92d8c3f4040a803e8b607960c29b6c
|
||||
content/26: bcadfc362b69078beee0088e5936c98b
|
||||
content/27: b74416361f94e71f2a94139711a5dd21
|
||||
content/27: 237639e938a067fec5678d0515b7d168
|
||||
content/28: 713d826a38614b3652126a3fe9c6126f
|
||||
content/29: f5a0bd20a329a7dd67288c689b47e2d9
|
||||
content/30: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/31: 98ca93ddd2a2aee2f61dec9fe632384a
|
||||
content/32: bcadfc362b69078beee0088e5936c98b
|
||||
content/33: 59c08999f9c404330ebd8f8a7d21e1a1
|
||||
content/33: a911e619373da2bd26a6ab96aec81055
|
||||
content/34: 7d04f221614ad1354fe3621c30df226d
|
||||
content/35: 7e180b7c89c19f1e2cd120262e57ba38
|
||||
content/36: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/37: 58087b9c1752a00e213ae852c0bd8809
|
||||
content/38: bcadfc362b69078beee0088e5936c98b
|
||||
content/39: a9096a341b00ce4f4891daaca2586d1c
|
||||
content/39: 299684025f9e6e850ab16d6baf418b26
|
||||
content/40: 3c244b481f57915598dd929f5b8a23cc
|
||||
content/41: d6d85996497b2381017261d33d5cd1b0
|
||||
content/42: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/43: 4fac81b063955c77058d3baa9163b3d0
|
||||
content/44: bcadfc362b69078beee0088e5936c98b
|
||||
content/45: d84fb23e5dfc9d41a177acd7dfb28e72
|
||||
content/45: f49a920a3b7cde671b28907e8b502139
|
||||
content/46: 5931a0fc92f49d3319a105262d5ca128
|
||||
content/47: b08cbcbb1e221857dac6f92381f5bcb3
|
||||
content/48: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/49: 6d1626fc785f9ada58825976e51a31f9
|
||||
content/50: bcadfc362b69078beee0088e5936c98b
|
||||
content/51: 024d1b1b1865fe5a64117e56e8787378
|
||||
content/51: ccb1eb5dabe073b1c58ab500f799e52f
|
||||
content/52: ebe21f836617d8f9fac6bc1c2adb80f6
|
||||
content/53: db8df7c9b04b016eeb2b9a47e0719206
|
||||
content/54: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/55: 66bbc953313a2075ca8598e291251910
|
||||
content/56: bcadfc362b69078beee0088e5936c98b
|
||||
content/57: a7e001e39652db8eeb4d32968bda102b
|
||||
content/57: 368234e1ffbba050e602cfa12151c3ea
|
||||
content/58: 688707edc447f458dd66ed554d4d4b3f
|
||||
content/59: 2a2834d73d8ff43d7e3b4e5bda10325e
|
||||
content/60: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/61: ade51ba73d7a75e12fc928288ff20ea9
|
||||
content/62: bcadfc362b69078beee0088e5936c98b
|
||||
content/63: 4c03414c0a9acc3ea28293b627b5b881
|
||||
content/63: 7c3270bc6736a2bd7c0f5496d1c5f5ce
|
||||
content/64: 76aaca4f2b31aac6deaeaa1d71882912
|
||||
content/65: b05b49d0597283e9c4c672f0b45ecda0
|
||||
content/66: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/67: 0ba45c91fa13677917e47e88297e5a20
|
||||
content/68: bcadfc362b69078beee0088e5936c98b
|
||||
content/69: 3155eda71c6003c7382f3f1c7c793c4d
|
||||
content/69: ddfbf3d4e45cae666af814d9c855f219
|
||||
content/70: 41fdc537cc5a4f117f4e51b10d4b893c
|
||||
content/71: 2aab9e60a5ddef37cc45e839fd265d10
|
||||
content/72: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/73: 4fac81b063955c77058d3baa9163b3d0
|
||||
content/74: bcadfc362b69078beee0088e5936c98b
|
||||
content/75: d84fb23e5dfc9d41a177acd7dfb28e72
|
||||
content/75: 043b526a4286ce4cd2dac146a6e4da9a
|
||||
content/76: 1e064911f29516b36aac2252d09d3264
|
||||
content/77: 8872c46680fb5433e3e0e0a77e003b22
|
||||
content/78: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/79: 6d1626fc785f9ada58825976e51a31f9
|
||||
content/80: bcadfc362b69078beee0088e5936c98b
|
||||
content/81: fed2311ba97e58ae76786292a757702e
|
||||
content/81: 4edfee5770f54034f27f9bc59ee7d1f4
|
||||
content/82: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/83: dd6d6480c2ae6bc7c827ec9564ec7ef9
|
||||
ed72a377ba81c1bf04db2423f73d062b:
|
||||
@@ -6903,37 +6909,37 @@ checksums:
|
||||
content/7: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/8: 3266fdc66f47be026e3d85ab90eb7d16
|
||||
content/9: bcadfc362b69078beee0088e5936c98b
|
||||
content/10: 365ddc9f29d7be92c2728fa31acd422e
|
||||
content/10: 2f41e84609ff3ba897a32f8e033b97a4
|
||||
content/11: 886903f11f98dfe38a6e6f29fdbb8528
|
||||
content/12: 3d11d1d78714f9e4075abf1953e75419
|
||||
content/13: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/14: fa21911c64ea75c918e352059eb2fe7f
|
||||
content/15: bcadfc362b69078beee0088e5936c98b
|
||||
content/16: 73fafa520a11921f8df9fa8d8b587d92
|
||||
content/16: 662dacdee0a82c71c7b630238514aaf3
|
||||
content/17: 82a733d968d25120950aaf9fd928c63c
|
||||
content/18: bef062551faa2678b2112920a5bda1d2
|
||||
content/19: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/20: 4aeb05322a8d1e939a3b3b64d28f08a5
|
||||
content/21: bcadfc362b69078beee0088e5936c98b
|
||||
content/22: 1619572a3d37abd3ce129d2504ecbdcb
|
||||
content/22: 25e898053049f3125589308873970895
|
||||
content/23: 5cf8947a4e28bad973b58526cb57d0ab
|
||||
content/24: 0093e8689859deeb465584a5338891fd
|
||||
content/25: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/26: aebeebc35e961034b2800b44d3c8c50a
|
||||
content/27: bcadfc362b69078beee0088e5936c98b
|
||||
content/28: f0659feb482e9a487ff14d3babc59851
|
||||
content/28: 87d76638ba698c2b3e5b8f67377eff5f
|
||||
content/29: 69d5a8e4bf6275107b232f78bb67162a
|
||||
content/30: 37fd64adf8a955b203d31a19bd328878
|
||||
content/31: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/32: 78657a4d018e378ca7aea2e00d1aa602
|
||||
content/33: bcadfc362b69078beee0088e5936c98b
|
||||
content/34: e267b11cdce02732ed71edd6cce119ae
|
||||
content/34: d05d8d278738bb917a7e0f88ff94458b
|
||||
content/35: 1f5a6b20541ced797f9bf32db70f972d
|
||||
content/36: 9cec30d66167e3a54f01f27b500026f2
|
||||
content/37: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/38: 1705a4a7e36233333aa624fd7c561bef
|
||||
content/39: bcadfc362b69078beee0088e5936c98b
|
||||
content/40: 60efbb9e08ce955c225a0e8cf69626be
|
||||
content/40: 9ca0c224a20194a7efe00c52d1ce3218
|
||||
content/41: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/42: e7d074449d490a0eb0f4cbf2ca1886ab
|
||||
b7341c73e73c19fbe18dd999900d8f7c:
|
||||
@@ -47473,7 +47479,7 @@ checksums:
|
||||
content/13: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/14: 6c217c31e3269045db51e0ca2e02dc40
|
||||
content/15: bcadfc362b69078beee0088e5936c98b
|
||||
content/16: 9a5ecda96a3113d95900df597cffc636
|
||||
content/16: cff09b9499de76d13da4478d7365dec2
|
||||
content/17: e28cdc705de05af33fc86ed8d5d900d3
|
||||
content/18: 0e38f19d9fbfbd36051d2e5c7f65d0c0
|
||||
content/19: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
@@ -48948,67 +48954,67 @@ checksums:
|
||||
content/7: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/8: ddf9f33ab00bc63ba73d935e9a9461bb
|
||||
content/9: bcadfc362b69078beee0088e5936c98b
|
||||
content/10: 83f29573676a9d1ccb33827ff578858a
|
||||
content/10: 221e358865139adec497f1cb5d0b1a99
|
||||
content/11: 16b29a33d78bf2344e7b204ca98c0b82
|
||||
content/12: 97b8063d8d1ada29666d9ec525694a93
|
||||
content/13: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/14: 6e295e5dcf37ad9f7ee602652b93c5bf
|
||||
content/15: bcadfc362b69078beee0088e5936c98b
|
||||
content/16: 83f29573676a9d1ccb33827ff578858a
|
||||
content/16: 5c47ddc296b16e10a7b1594b7dcfd825
|
||||
content/17: 20c596f9dbdfe0cfa2d8f5b60dc71514
|
||||
content/18: 1448d524a996ed212e7dbdbe967339b0
|
||||
content/19: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/20: 0c9e28a7cf7bcfee1fe692fbd502dbb4
|
||||
content/21: bcadfc362b69078beee0088e5936c98b
|
||||
content/22: 83f29573676a9d1ccb33827ff578858a
|
||||
content/22: f559cd33f4b35b97e66d822945f63137
|
||||
content/23: 24e966f4a7a7f97a355b749b74377e64
|
||||
content/24: 968f985de62e1fe2ad21716d7c215fc3
|
||||
content/25: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/26: fd89e6852579854ef98eef8a76a261c5
|
||||
content/27: bcadfc362b69078beee0088e5936c98b
|
||||
content/28: 83f29573676a9d1ccb33827ff578858a
|
||||
content/28: 08765f663111f814f0f7e0d3343f6cef
|
||||
content/29: 84bf7ab082392d81a1347dd4091df95c
|
||||
content/30: e6d21b5e83b22fcee600f5863114f76b
|
||||
content/31: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/32: 6357650b93cf00ec79d620f75336a063
|
||||
content/33: bcadfc362b69078beee0088e5936c98b
|
||||
content/34: 83f29573676a9d1ccb33827ff578858a
|
||||
content/34: 2b3c80bcbce92fe344b5d92ace204b15
|
||||
content/35: 9a047f1df87fa8980889528cd4a7e23e
|
||||
content/36: 10a705b69f4de0cafb55b579a091ff3e
|
||||
content/37: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/38: a5f1409dffad379396a370fc6ef0b784
|
||||
content/39: bcadfc362b69078beee0088e5936c98b
|
||||
content/40: 83f29573676a9d1ccb33827ff578858a
|
||||
content/40: 49d0e9315a756ad56e74dd4554d65f25
|
||||
content/41: bc110e334defc4a0037ba2ef9fb75083
|
||||
content/42: 741dfd7becb14378932cbad9bd3f1aaa
|
||||
content/43: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/44: 5bf2c3d8e1f679dffa34a23728e09d3d
|
||||
content/45: bcadfc362b69078beee0088e5936c98b
|
||||
content/46: 83f29573676a9d1ccb33827ff578858a
|
||||
content/46: ee3bece021d785fa491f484d2647efa9
|
||||
content/47: 007ad7c8b597dd1638c1d730ae57c18b
|
||||
content/48: 66114378d52751790fb30b1d4a49fb4b
|
||||
content/49: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/50: 2f9f05b2bdf789cfda1791b0a274de0f
|
||||
content/51: bcadfc362b69078beee0088e5936c98b
|
||||
content/52: 83f29573676a9d1ccb33827ff578858a
|
||||
content/52: d08b87675acf0952c583781b4344377f
|
||||
content/53: b812f4c86dc86447c8aab2e6fc7ee77b
|
||||
content/54: d368e64c4bc2884ac4af1c046d3043fc
|
||||
content/55: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/56: 8d96a5aad7ba60cbbe6c4ab8b816c8f5
|
||||
content/57: bcadfc362b69078beee0088e5936c98b
|
||||
content/58: 83f29573676a9d1ccb33827ff578858a
|
||||
content/58: 2b3c80bcbce92fe344b5d92ace204b15
|
||||
content/59: bb444040039dcefd837703242f69b3f2
|
||||
content/60: 2ca4d597cf85afe0c09441a1c55dc588
|
||||
content/61: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/62: f90f9e7f20b3c4bf832a71e2dcbc1fe5
|
||||
content/63: bcadfc362b69078beee0088e5936c98b
|
||||
content/64: 83f29573676a9d1ccb33827ff578858a
|
||||
content/64: 41fcb4df99d2ba5f87c86d126a017227
|
||||
content/65: cdbf6d4d4066c241de37637f23944a51
|
||||
content/66: 1f1ad7c241c27cf4614ba7b0b67fb584
|
||||
content/67: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/68: 705cf28994842a8a455ba3dcb61c3f11
|
||||
content/69: bcadfc362b69078beee0088e5936c98b
|
||||
content/70: 83f29573676a9d1ccb33827ff578858a
|
||||
content/70: a03d9bf68ad5a88bf70953996c51b951
|
||||
content/71: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/72: fe020be6c017a995d0355c99c6b034ec
|
||||
1b5c57a63b2d38e097b7f96b6e054db8:
|
||||
@@ -49305,3 +49311,25 @@ checksums:
|
||||
content/9: 7a3be8a3771ee428ecf09008e42c0e2e
|
||||
content/10: 42e4caf9b036a8d7726a8968f3ed201f
|
||||
content/11: e74f8ee79105babdaa8dfec520ecdf74
|
||||
01bda2a6417895b3b24a3d2b543866d4:
|
||||
meta/title: 55272c40df2a877093c8470e52102e87
|
||||
meta/description: 13e8a6591a8addf009cb647bb7ee6a0d
|
||||
content/0: 1b031fb0c62c46b177aeed5c3d3f8f80
|
||||
content/1: 13c31b22dc8320eea4766871b5bdb2b1
|
||||
content/2: da04d549734a9cf9c8cc168dbd6952dc
|
||||
content/3: ecde46402d67144e99794c51b616c17d
|
||||
content/4: 8884d8cca8ee6de94be5d8116e2f94b6
|
||||
content/5: 3b6cc1660e95dc03733da604d98f19b9
|
||||
content/6: 2167786106b3d684b5175827be6b3a1f
|
||||
content/7: 3271375c7c99de5bdf13fad0b98b466d
|
||||
content/8: 821e6394b0a953e2b0842b04ae8f3105
|
||||
content/9: 88b0ee08769002bb9b22b4683e7a8e4c
|
||||
content/10: 9c8aa3f09c9b2bd50ea4cdff3598ea4e
|
||||
content/11: b1a2d0fd1320fb6a73e3fda153b9c7ae
|
||||
content/12: cba5245faf73a6067d5720b824e1bef0
|
||||
content/13: 371d0e46b4bd2c23f559b8bc112f6955
|
||||
content/14: c93b79e5e1d98454c11e30fc97049725
|
||||
content/15: bcadfc362b69078beee0088e5936c98b
|
||||
content/16: a064887f5c777b54e029ba6ba1b56848
|
||||
content/17: b3f310d5ef115bea5a8b75bf25d7ea9a
|
||||
content/18: a4748f8ce0a4667675ca03e4d9fef87b
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"fumadocs-mdx": "14.1.0",
|
||||
"fumadocs-ui": "16.2.3",
|
||||
"lucide-react": "^0.511.0",
|
||||
"next": "16.0.7",
|
||||
"next": "16.0.9",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "19.2.1",
|
||||
"react-dom": "19.2.1",
|
||||
|
||||
@@ -135,6 +135,7 @@ export default function Nav({ hideAuthButtons = false, variant = 'landing' }: Na
|
||||
priority
|
||||
loading='eager'
|
||||
quality={100}
|
||||
unoptimized
|
||||
/>
|
||||
) : (
|
||||
<Image
|
||||
|
||||
@@ -5,7 +5,7 @@ import path from 'path'
|
||||
import binaryExtensionsList from 'binary-extensions'
|
||||
import { type NextRequest, NextResponse } from 'next/server'
|
||||
import { checkHybridAuth } from '@/lib/auth/hybrid'
|
||||
import { validateExternalUrl } from '@/lib/core/security/input-validation'
|
||||
import { createPinnedUrl, validateUrlWithDNS } from '@/lib/core/security/input-validation'
|
||||
import { isSupportedFileType, parseFile } from '@/lib/file-parsers'
|
||||
import { createLogger } from '@/lib/logs/console/logger'
|
||||
import { isUsingCloudStorage, type StorageContext, StorageService } from '@/lib/uploads'
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
extractCleanFilename,
|
||||
extractStorageKey,
|
||||
extractWorkspaceIdFromExecutionKey,
|
||||
getMimeTypeFromExtension,
|
||||
getViewerUrl,
|
||||
inferContextFromKey,
|
||||
} from '@/lib/uploads/utils/file-utils'
|
||||
@@ -44,36 +45,6 @@ interface ParseResult {
|
||||
}
|
||||
}
|
||||
|
||||
const fileTypeMap: Record<string, string> = {
|
||||
// Text formats
|
||||
txt: 'text/plain',
|
||||
csv: 'text/csv',
|
||||
json: 'application/json',
|
||||
xml: 'application/xml',
|
||||
md: 'text/markdown',
|
||||
html: 'text/html',
|
||||
css: 'text/css',
|
||||
js: 'application/javascript',
|
||||
ts: 'application/typescript',
|
||||
// Document formats
|
||||
pdf: 'application/pdf',
|
||||
doc: 'application/msword',
|
||||
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||||
// Spreadsheet formats
|
||||
xls: 'application/vnd.ms-excel',
|
||||
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||
// Presentation formats
|
||||
ppt: 'application/vnd.ms-powerpoint',
|
||||
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
||||
// Image formats
|
||||
png: 'image/png',
|
||||
jpg: 'image/jpeg',
|
||||
jpeg: 'image/jpeg',
|
||||
gif: 'image/gif',
|
||||
// Archive formats
|
||||
zip: 'application/zip',
|
||||
}
|
||||
|
||||
/**
|
||||
* Main API route handler
|
||||
*/
|
||||
@@ -270,7 +241,7 @@ async function handleExternalUrl(
|
||||
logger.info('Fetching external URL:', url)
|
||||
logger.info('WorkspaceId for URL save:', workspaceId)
|
||||
|
||||
const urlValidation = validateExternalUrl(url, 'fileUrl')
|
||||
const urlValidation = await validateUrlWithDNS(url, 'fileUrl')
|
||||
if (!urlValidation.isValid) {
|
||||
logger.warn(`Blocked external URL request: ${urlValidation.error}`)
|
||||
return {
|
||||
@@ -346,8 +317,12 @@ async function handleExternalUrl(
|
||||
}
|
||||
}
|
||||
|
||||
const response = await fetch(url, {
|
||||
const pinnedUrl = createPinnedUrl(url, urlValidation.resolvedIP!)
|
||||
const response = await fetch(pinnedUrl, {
|
||||
signal: AbortSignal.timeout(DOWNLOAD_TIMEOUT_MS),
|
||||
headers: {
|
||||
Host: urlValidation.originalHostname!,
|
||||
},
|
||||
})
|
||||
if (!response.ok) {
|
||||
throw new Error(`Failed to fetch URL: ${response.status} ${response.statusText}`)
|
||||
@@ -378,7 +353,8 @@ async function handleExternalUrl(
|
||||
})
|
||||
} else {
|
||||
const { uploadWorkspaceFile } = await import('@/lib/uploads/contexts/workspace')
|
||||
const mimeType = response.headers.get('content-type') || getMimeType(extension)
|
||||
const mimeType =
|
||||
response.headers.get('content-type') || getMimeTypeFromExtension(extension)
|
||||
await uploadWorkspaceFile(workspaceId, userId, buffer, filename, mimeType)
|
||||
logger.info(`Saved URL file to workspace storage: ${filename}`)
|
||||
}
|
||||
@@ -570,7 +546,7 @@ async function handleLocalFile(
|
||||
content: result.content,
|
||||
filePath,
|
||||
metadata: {
|
||||
fileType: fileType || getMimeType(extension),
|
||||
fileType: fileType || getMimeTypeFromExtension(extension),
|
||||
size: stats.size,
|
||||
hash,
|
||||
processingTime: 0,
|
||||
@@ -705,7 +681,7 @@ async function handleGenericTextBuffer(
|
||||
content: result.content,
|
||||
filePath: originalPath || filename,
|
||||
metadata: {
|
||||
fileType: fileType || getMimeType(extension),
|
||||
fileType: fileType || getMimeTypeFromExtension(extension),
|
||||
size: fileBuffer.length,
|
||||
hash: createHash('md5').update(fileBuffer).digest('hex'),
|
||||
processingTime: 0,
|
||||
@@ -723,7 +699,7 @@ async function handleGenericTextBuffer(
|
||||
content,
|
||||
filePath: originalPath || filename,
|
||||
metadata: {
|
||||
fileType: fileType || getMimeType(extension),
|
||||
fileType: fileType || getMimeTypeFromExtension(extension),
|
||||
size: fileBuffer.length,
|
||||
hash: createHash('md5').update(fileBuffer).digest('hex'),
|
||||
processingTime: 0,
|
||||
@@ -764,7 +740,7 @@ function handleGenericBuffer(
|
||||
content,
|
||||
filePath: filename,
|
||||
metadata: {
|
||||
fileType: fileType || getMimeType(extension),
|
||||
fileType: fileType || getMimeTypeFromExtension(extension),
|
||||
size: fileBuffer.length,
|
||||
hash: createHash('md5').update(fileBuffer).digest('hex'),
|
||||
processingTime: 0,
|
||||
@@ -787,13 +763,6 @@ async function parseBufferAsPdf(buffer: Buffer) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get MIME type from file extension
|
||||
*/
|
||||
function getMimeType(extension: string): string {
|
||||
return fileTypeMap[extension] || 'application/octet-stream'
|
||||
}
|
||||
|
||||
/**
|
||||
* Format bytes to human readable size
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,11 @@ import { getParsedBody, withMcpAuth } from '@/lib/mcp/middleware'
|
||||
import { mcpService } from '@/lib/mcp/service'
|
||||
import type { McpTransport } from '@/lib/mcp/types'
|
||||
import { validateMcpServerUrl } from '@/lib/mcp/url-validator'
|
||||
import { createMcpErrorResponse, createMcpSuccessResponse } from '@/lib/mcp/utils'
|
||||
import {
|
||||
createMcpErrorResponse,
|
||||
createMcpSuccessResponse,
|
||||
generateMcpServerId,
|
||||
} from '@/lib/mcp/utils'
|
||||
|
||||
const logger = createLogger('McpServersAPI')
|
||||
|
||||
@@ -50,13 +54,20 @@ export const GET = withMcpAuth('read')(
|
||||
|
||||
/**
|
||||
* POST - Register a new MCP server for the workspace (requires write permission)
|
||||
*
|
||||
* Uses deterministic server IDs based on URL hash to ensure that re-adding
|
||||
* the same server produces the same ID. This prevents "server not found" errors
|
||||
* when workflows reference the old server ID after delete/re-add cycles.
|
||||
*
|
||||
* If a server with the same ID already exists (same URL in same workspace),
|
||||
* it will be updated instead of creating a duplicate.
|
||||
*/
|
||||
export const POST = withMcpAuth('write')(
|
||||
async (request: NextRequest, { userId, workspaceId, requestId }) => {
|
||||
try {
|
||||
const body = getParsedBody(request) || (await request.json())
|
||||
|
||||
logger.info(`[${requestId}] Registering new MCP server:`, {
|
||||
logger.info(`[${requestId}] Registering MCP server:`, {
|
||||
name: body.name,
|
||||
transport: body.transport,
|
||||
workspaceId,
|
||||
@@ -82,7 +93,43 @@ export const POST = withMcpAuth('write')(
|
||||
body.url = urlValidation.normalizedUrl
|
||||
}
|
||||
|
||||
const serverId = body.id || crypto.randomUUID()
|
||||
const serverId = body.url ? generateMcpServerId(workspaceId, body.url) : crypto.randomUUID()
|
||||
|
||||
const [existingServer] = await db
|
||||
.select({ id: mcpServers.id, deletedAt: mcpServers.deletedAt })
|
||||
.from(mcpServers)
|
||||
.where(and(eq(mcpServers.id, serverId), eq(mcpServers.workspaceId, workspaceId)))
|
||||
.limit(1)
|
||||
|
||||
if (existingServer) {
|
||||
logger.info(
|
||||
`[${requestId}] Server with ID ${serverId} already exists, updating instead of creating`
|
||||
)
|
||||
|
||||
await db
|
||||
.update(mcpServers)
|
||||
.set({
|
||||
name: body.name,
|
||||
description: body.description,
|
||||
transport: body.transport,
|
||||
url: body.url,
|
||||
headers: body.headers || {},
|
||||
timeout: body.timeout || 30000,
|
||||
retries: body.retries || 3,
|
||||
enabled: body.enabled !== false,
|
||||
updatedAt: new Date(),
|
||||
deletedAt: null,
|
||||
})
|
||||
.where(eq(mcpServers.id, serverId))
|
||||
|
||||
mcpService.clearCache(workspaceId)
|
||||
|
||||
logger.info(
|
||||
`[${requestId}] Successfully updated MCP server: ${body.name} (ID: ${serverId})`
|
||||
)
|
||||
|
||||
return createMcpSuccessResponse({ serverId, updated: true }, 200)
|
||||
}
|
||||
|
||||
await db
|
||||
.insert(mcpServers)
|
||||
@@ -105,9 +152,10 @@ export const POST = withMcpAuth('write')(
|
||||
|
||||
mcpService.clearCache(workspaceId)
|
||||
|
||||
logger.info(`[${requestId}] Successfully registered MCP server: ${body.name}`)
|
||||
logger.info(
|
||||
`[${requestId}] Successfully registered MCP server: ${body.name} (ID: ${serverId})`
|
||||
)
|
||||
|
||||
// Track MCP server registration
|
||||
try {
|
||||
const { trackPlatformEvent } = await import('@/lib/core/telemetry')
|
||||
trackPlatformEvent('platform.mcp.server_added', {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { z } from 'zod'
|
||||
import { checkHybridAuth } from '@/lib/auth/hybrid'
|
||||
import { generateInternalToken } from '@/lib/auth/internal'
|
||||
import { isDev } from '@/lib/core/config/environment'
|
||||
import { validateProxyUrl } from '@/lib/core/security/input-validation'
|
||||
import { createPinnedUrl, validateUrlWithDNS } from '@/lib/core/security/input-validation'
|
||||
import { generateRequestId } from '@/lib/core/utils/request'
|
||||
import { getBaseUrl } from '@/lib/core/utils/urls'
|
||||
import { createLogger } from '@/lib/logs/console/logger'
|
||||
@@ -173,7 +173,7 @@ export async function GET(request: Request) {
|
||||
return createErrorResponse("Missing 'url' parameter", 400)
|
||||
}
|
||||
|
||||
const urlValidation = validateProxyUrl(targetUrl)
|
||||
const urlValidation = await validateUrlWithDNS(targetUrl)
|
||||
if (!urlValidation.isValid) {
|
||||
logger.warn(`[${requestId}] Blocked proxy request`, {
|
||||
url: targetUrl.substring(0, 100),
|
||||
@@ -211,11 +211,13 @@ export async function GET(request: Request) {
|
||||
logger.info(`[${requestId}] Proxying ${method} request to: ${targetUrl}`)
|
||||
|
||||
try {
|
||||
const response = await fetch(targetUrl, {
|
||||
const pinnedUrl = createPinnedUrl(targetUrl, urlValidation.resolvedIP!)
|
||||
const response = await fetch(pinnedUrl, {
|
||||
method: method,
|
||||
headers: {
|
||||
...getProxyHeaders(),
|
||||
...customHeaders,
|
||||
Host: urlValidation.originalHostname!,
|
||||
},
|
||||
body: body || undefined,
|
||||
})
|
||||
|
||||
@@ -86,18 +86,16 @@ export async function POST(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
gid: story.gid,
|
||||
text: story.text || '',
|
||||
created_at: story.created_at,
|
||||
created_by: story.created_by
|
||||
? {
|
||||
gid: story.created_by.gid,
|
||||
name: story.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
gid: story.gid,
|
||||
text: story.text || '',
|
||||
created_at: story.created_at,
|
||||
created_by: story.created_by
|
||||
? {
|
||||
gid: story.created_by.gid,
|
||||
name: story.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
})
|
||||
} catch (error) {
|
||||
logger.error('Error processing request:', error)
|
||||
|
||||
@@ -99,15 +99,13 @@ export async function POST(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
gid: task.gid,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
created_at: task.created_at,
|
||||
permalink_url: task.permalink_url,
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
gid: task.gid,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
created_at: task.created_at,
|
||||
permalink_url: task.permalink_url,
|
||||
})
|
||||
} catch (error: any) {
|
||||
logger.error('Error creating Asana task:', {
|
||||
|
||||
@@ -73,14 +73,12 @@ export async function POST(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
projects: projects.map((project: any) => ({
|
||||
gid: project.gid,
|
||||
name: project.name,
|
||||
resource_type: project.resource_type,
|
||||
})),
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
projects: projects.map((project: any) => ({
|
||||
gid: project.gid,
|
||||
name: project.name,
|
||||
resource_type: project.resource_type,
|
||||
})),
|
||||
})
|
||||
} catch (error) {
|
||||
logger.error('Error processing request:', error)
|
||||
|
||||
@@ -69,31 +69,29 @@ export async function POST(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
gid: task.gid,
|
||||
resource_type: task.resource_type,
|
||||
resource_subtype: task.resource_subtype,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
assignee: task.assignee
|
||||
? {
|
||||
gid: task.assignee.gid,
|
||||
name: task.assignee.name,
|
||||
}
|
||||
: undefined,
|
||||
created_by: task.created_by
|
||||
? {
|
||||
gid: task.created_by.gid,
|
||||
resource_type: task.created_by.resource_type,
|
||||
name: task.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
due_on: task.due_on || undefined,
|
||||
created_at: task.created_at,
|
||||
modified_at: task.modified_at,
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
gid: task.gid,
|
||||
resource_type: task.resource_type,
|
||||
resource_subtype: task.resource_subtype,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
assignee: task.assignee
|
||||
? {
|
||||
gid: task.assignee.gid,
|
||||
name: task.assignee.name,
|
||||
}
|
||||
: undefined,
|
||||
created_by: task.created_by
|
||||
? {
|
||||
gid: task.created_by.gid,
|
||||
resource_type: task.created_by.resource_type,
|
||||
name: task.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
due_on: task.due_on || undefined,
|
||||
created_at: task.created_at,
|
||||
modified_at: task.modified_at,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -180,34 +178,32 @@ export async function POST(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
tasks: tasks.map((task: any) => ({
|
||||
gid: task.gid,
|
||||
resource_type: task.resource_type,
|
||||
resource_subtype: task.resource_subtype,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
assignee: task.assignee
|
||||
? {
|
||||
gid: task.assignee.gid,
|
||||
name: task.assignee.name,
|
||||
}
|
||||
: undefined,
|
||||
created_by: task.created_by
|
||||
? {
|
||||
gid: task.created_by.gid,
|
||||
resource_type: task.created_by.resource_type,
|
||||
name: task.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
due_on: task.due_on || undefined,
|
||||
created_at: task.created_at,
|
||||
modified_at: task.modified_at,
|
||||
})),
|
||||
next_page: result.next_page,
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
tasks: tasks.map((task: any) => ({
|
||||
gid: task.gid,
|
||||
resource_type: task.resource_type,
|
||||
resource_subtype: task.resource_subtype,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
assignee: task.assignee
|
||||
? {
|
||||
gid: task.assignee.gid,
|
||||
name: task.assignee.name,
|
||||
}
|
||||
: undefined,
|
||||
created_by: task.created_by
|
||||
? {
|
||||
gid: task.created_by.gid,
|
||||
resource_type: task.created_by.resource_type,
|
||||
name: task.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
due_on: task.due_on || undefined,
|
||||
created_at: task.created_at,
|
||||
modified_at: task.modified_at,
|
||||
})),
|
||||
next_page: result.next_page,
|
||||
})
|
||||
} catch (error) {
|
||||
logger.error('Error processing request:', error)
|
||||
|
||||
@@ -96,34 +96,32 @@ export async function POST(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
tasks: tasks.map((task: any) => ({
|
||||
gid: task.gid,
|
||||
resource_type: task.resource_type,
|
||||
resource_subtype: task.resource_subtype,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
assignee: task.assignee
|
||||
? {
|
||||
gid: task.assignee.gid,
|
||||
name: task.assignee.name,
|
||||
}
|
||||
: undefined,
|
||||
created_by: task.created_by
|
||||
? {
|
||||
gid: task.created_by.gid,
|
||||
resource_type: task.created_by.resource_type,
|
||||
name: task.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
due_on: task.due_on || undefined,
|
||||
created_at: task.created_at,
|
||||
modified_at: task.modified_at,
|
||||
})),
|
||||
next_page: result.next_page,
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
tasks: tasks.map((task: any) => ({
|
||||
gid: task.gid,
|
||||
resource_type: task.resource_type,
|
||||
resource_subtype: task.resource_subtype,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
assignee: task.assignee
|
||||
? {
|
||||
gid: task.assignee.gid,
|
||||
name: task.assignee.name,
|
||||
}
|
||||
: undefined,
|
||||
created_by: task.created_by
|
||||
? {
|
||||
gid: task.created_by.gid,
|
||||
resource_type: task.created_by.resource_type,
|
||||
name: task.created_by.name,
|
||||
}
|
||||
: undefined,
|
||||
due_on: task.due_on || undefined,
|
||||
created_at: task.created_at,
|
||||
modified_at: task.modified_at,
|
||||
})),
|
||||
next_page: result.next_page,
|
||||
})
|
||||
} catch (error) {
|
||||
logger.error('Error processing request:', error)
|
||||
|
||||
@@ -99,14 +99,12 @@ export async function PUT(request: Request) {
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
output: {
|
||||
ts: new Date().toISOString(),
|
||||
gid: task.gid,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
modified_at: task.modified_at,
|
||||
},
|
||||
ts: new Date().toISOString(),
|
||||
gid: task.gid,
|
||||
name: task.name,
|
||||
notes: task.notes || '',
|
||||
completed: task.completed || false,
|
||||
modified_at: task.modified_at,
|
||||
})
|
||||
} catch (error: any) {
|
||||
logger.error('Error updating Asana task:', {
|
||||
|
||||
@@ -31,6 +31,16 @@ export async function POST(request: Request) {
|
||||
return NextResponse.json({ error: 'Space ID is required' }, { status: 400 })
|
||||
}
|
||||
|
||||
if (!/^\d+$/.test(String(spaceId))) {
|
||||
return NextResponse.json(
|
||||
{
|
||||
error:
|
||||
'Invalid Space ID. The Space ID must be a numeric value, not the space key from the URL. Use the "list" operation to get all spaces with their numeric IDs.',
|
||||
},
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
|
||||
if (!title) {
|
||||
return NextResponse.json({ error: 'Title is required' }, { status: 400 })
|
||||
}
|
||||
@@ -91,10 +101,24 @@ export async function POST(request: Request) {
|
||||
statusText: response.statusText,
|
||||
error: JSON.stringify(errorData, null, 2),
|
||||
})
|
||||
const errorMessage =
|
||||
errorData?.message ||
|
||||
(errorData?.errors && JSON.stringify(errorData.errors)) ||
|
||||
`Failed to create Confluence page (${response.status})`
|
||||
|
||||
let errorMessage = `Failed to create Confluence page (${response.status})`
|
||||
if (errorData?.message) {
|
||||
errorMessage = errorData.message
|
||||
} else if (errorData?.errors && Array.isArray(errorData.errors)) {
|
||||
const firstError = errorData.errors[0]
|
||||
if (firstError?.title) {
|
||||
if (firstError.title.includes("'spaceId'") && firstError.title.includes('Long')) {
|
||||
errorMessage =
|
||||
'Invalid Space ID. Use the list spaces operation to find valid space IDs.'
|
||||
} else {
|
||||
errorMessage = firstError.title
|
||||
}
|
||||
} else {
|
||||
errorMessage = JSON.stringify(errorData.errors)
|
||||
}
|
||||
}
|
||||
|
||||
return NextResponse.json({ error: errorMessage }, { status: response.status })
|
||||
}
|
||||
|
||||
|
||||
135
apps/sim/app/api/tools/confluence/upload-attachment/route.ts
Normal file
135
apps/sim/app/api/tools/confluence/upload-attachment/route.ts
Normal file
@@ -0,0 +1,135 @@
|
||||
import { type NextRequest, NextResponse } from 'next/server'
|
||||
import { validateAlphanumericId, validateJiraCloudId } from '@/lib/core/security/input-validation'
|
||||
import { createLogger } from '@/lib/logs/console/logger'
|
||||
import { processSingleFileToUserFile } from '@/lib/uploads/utils/file-utils'
|
||||
import { downloadFileFromStorage } from '@/lib/uploads/utils/file-utils.server'
|
||||
import { getConfluenceCloudId } from '@/tools/confluence/utils'
|
||||
|
||||
const logger = createLogger('ConfluenceUploadAttachmentAPI')
|
||||
|
||||
export const dynamic = 'force-dynamic'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
const body = await request.json()
|
||||
const { domain, accessToken, cloudId: providedCloudId, pageId, file, fileName, comment } = body
|
||||
|
||||
if (!domain) {
|
||||
return NextResponse.json({ error: 'Domain is required' }, { status: 400 })
|
||||
}
|
||||
|
||||
if (!accessToken) {
|
||||
return NextResponse.json({ error: 'Access token is required' }, { status: 400 })
|
||||
}
|
||||
|
||||
if (!pageId) {
|
||||
return NextResponse.json({ error: 'Page ID is required' }, { status: 400 })
|
||||
}
|
||||
|
||||
if (!file) {
|
||||
return NextResponse.json({ error: 'File is required' }, { status: 400 })
|
||||
}
|
||||
|
||||
const pageIdValidation = validateAlphanumericId(pageId, 'pageId', 255)
|
||||
if (!pageIdValidation.isValid) {
|
||||
return NextResponse.json({ error: pageIdValidation.error }, { status: 400 })
|
||||
}
|
||||
|
||||
const cloudId = providedCloudId || (await getConfluenceCloudId(domain, accessToken))
|
||||
|
||||
const cloudIdValidation = validateJiraCloudId(cloudId, 'cloudId')
|
||||
if (!cloudIdValidation.isValid) {
|
||||
return NextResponse.json({ error: cloudIdValidation.error }, { status: 400 })
|
||||
}
|
||||
|
||||
let fileToProcess = file
|
||||
if (Array.isArray(file)) {
|
||||
if (file.length === 0) {
|
||||
return NextResponse.json({ error: 'No file provided' }, { status: 400 })
|
||||
}
|
||||
fileToProcess = file[0]
|
||||
}
|
||||
|
||||
let userFile
|
||||
try {
|
||||
userFile = processSingleFileToUserFile(fileToProcess, 'confluence-upload', logger)
|
||||
} catch (error) {
|
||||
return NextResponse.json(
|
||||
{ error: error instanceof Error ? error.message : 'Failed to process file' },
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
|
||||
let fileBuffer: Buffer
|
||||
try {
|
||||
fileBuffer = await downloadFileFromStorage(userFile, 'confluence-upload', logger)
|
||||
} catch (error) {
|
||||
logger.error('Failed to download file from storage:', error)
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: `Failed to download file: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
||||
},
|
||||
{ status: 500 }
|
||||
)
|
||||
}
|
||||
|
||||
const uploadFileName = fileName || userFile.name || 'attachment'
|
||||
const mimeType = userFile.type || 'application/octet-stream'
|
||||
|
||||
const url = `https://api.atlassian.com/ex/confluence/${cloudId}/wiki/rest/api/content/${pageId}/child/attachment`
|
||||
|
||||
const formData = new FormData()
|
||||
const blob = new Blob([new Uint8Array(fileBuffer)], { type: mimeType })
|
||||
formData.append('file', blob, uploadFileName)
|
||||
|
||||
if (comment) {
|
||||
formData.append('comment', comment)
|
||||
}
|
||||
|
||||
const response = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: `Bearer ${accessToken}`,
|
||||
'X-Atlassian-Token': 'nocheck',
|
||||
},
|
||||
body: formData,
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => null)
|
||||
logger.error('Confluence API error response:', {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
error: JSON.stringify(errorData, null, 2),
|
||||
})
|
||||
|
||||
let errorMessage = `Failed to upload attachment to Confluence (${response.status})`
|
||||
if (errorData?.message) {
|
||||
errorMessage = errorData.message
|
||||
} else if (errorData?.errorMessage) {
|
||||
errorMessage = errorData.errorMessage
|
||||
}
|
||||
|
||||
return NextResponse.json({ error: errorMessage }, { status: response.status })
|
||||
}
|
||||
|
||||
const data = await response.json()
|
||||
|
||||
const attachment = data.results?.[0] || data
|
||||
|
||||
return NextResponse.json({
|
||||
attachmentId: attachment.id,
|
||||
title: attachment.title,
|
||||
fileSize: attachment.extensions?.fileSize || 0,
|
||||
mediaType: attachment.extensions?.mediaType || mimeType,
|
||||
downloadUrl: attachment._links?.download || '',
|
||||
pageId: pageId,
|
||||
})
|
||||
} catch (error) {
|
||||
logger.error('Error uploading Confluence attachment:', error)
|
||||
return NextResponse.json(
|
||||
{ error: (error as Error).message || 'Internal server error' },
|
||||
{ status: 500 }
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,10 @@ import { z } from 'zod'
|
||||
import { checkHybridAuth } from '@/lib/auth/hybrid'
|
||||
import { generateRequestId } from '@/lib/core/utils/request'
|
||||
import { createLogger } from '@/lib/logs/console/logger'
|
||||
import { processSingleFileToUserFile } from '@/lib/uploads/utils/file-utils'
|
||||
import {
|
||||
getExtensionFromMimeType,
|
||||
processSingleFileToUserFile,
|
||||
} from '@/lib/uploads/utils/file-utils'
|
||||
import { downloadFileFromStorage } from '@/lib/uploads/utils/file-utils.server'
|
||||
import { normalizeExcelValues } from '@/tools/onedrive/utils'
|
||||
|
||||
@@ -27,9 +30,8 @@ const OneDriveUploadSchema = z.object({
|
||||
fileName: z.string().min(1, 'File name is required'),
|
||||
file: z.any().optional(), // UserFile object (optional for blank Excel creation)
|
||||
folderId: z.string().optional().nullable(),
|
||||
mimeType: z.string().optional(),
|
||||
// Optional Excel write-after-create inputs
|
||||
values: ExcelValuesSchema.optional(),
|
||||
mimeType: z.string().nullish(), // Accept string, null, or undefined
|
||||
values: ExcelValuesSchema.optional().nullable(),
|
||||
})
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
@@ -149,9 +151,17 @@ export async function POST(request: NextRequest) {
|
||||
)
|
||||
}
|
||||
|
||||
// Ensure file name has correct extension for Excel files
|
||||
// Ensure file name has an appropriate extension
|
||||
let fileName = validatedData.fileName
|
||||
if (isExcelCreation && !fileName.endsWith('.xlsx')) {
|
||||
const hasExtension = fileName.includes('.') && fileName.lastIndexOf('.') > 0
|
||||
|
||||
if (!hasExtension) {
|
||||
const extension = getExtensionFromMimeType(mimeType)
|
||||
if (extension) {
|
||||
fileName = `${fileName}.${extension}`
|
||||
logger.info(`[${requestId}] Added extension to filename: ${fileName}`)
|
||||
}
|
||||
} else if (isExcelCreation && !fileName.endsWith('.xlsx')) {
|
||||
fileName = `${fileName.replace(/\.[^.]*$/, '')}.xlsx`
|
||||
}
|
||||
|
||||
|
||||
@@ -33,9 +33,10 @@ export async function executeQuery(
|
||||
params: unknown[] = []
|
||||
): Promise<{ rows: unknown[]; rowCount: number }> {
|
||||
const result = await sql.unsafe(query, params)
|
||||
const rowCount = result.count ?? result.length ?? 0
|
||||
return {
|
||||
rows: Array.isArray(result) ? result : [result],
|
||||
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
|
||||
rowCount,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,9 +108,10 @@ export async function executeInsert(
|
||||
const query = `INSERT INTO ${sanitizedTable} (${sanitizedColumns.join(', ')}) VALUES (${placeholders.join(', ')}) RETURNING *`
|
||||
const result = await sql.unsafe(query, values)
|
||||
|
||||
const rowCount = result.count ?? result.length ?? 0
|
||||
return {
|
||||
rows: Array.isArray(result) ? result : [result],
|
||||
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
|
||||
rowCount,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,9 +132,10 @@ export async function executeUpdate(
|
||||
const query = `UPDATE ${sanitizedTable} SET ${setClause} WHERE ${where} RETURNING *`
|
||||
const result = await sql.unsafe(query, values)
|
||||
|
||||
const rowCount = result.count ?? result.length ?? 0
|
||||
return {
|
||||
rows: Array.isArray(result) ? result : [result],
|
||||
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
|
||||
rowCount,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,8 +150,9 @@ export async function executeDelete(
|
||||
const query = `DELETE FROM ${sanitizedTable} WHERE ${where} RETURNING *`
|
||||
const result = await sql.unsafe(query, [])
|
||||
|
||||
const rowCount = result.count ?? result.length ?? 0
|
||||
return {
|
||||
rows: Array.isArray(result) ? result : [result],
|
||||
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
|
||||
rowCount,
|
||||
}
|
||||
}
|
||||
|
||||
70
apps/sim/app/api/tools/sqs/send/route.ts
Normal file
70
apps/sim/app/api/tools/sqs/send/route.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
import { randomUUID } from 'crypto'
|
||||
import { type NextRequest, NextResponse } from 'next/server'
|
||||
import { z } from 'zod'
|
||||
import { createLogger } from '@/lib/logs/console/logger'
|
||||
import { createSqsClient, sendMessage } from '../utils'
|
||||
|
||||
const logger = createLogger('SQSSendMessageAPI')
|
||||
|
||||
const SendMessageSchema = z.object({
|
||||
region: z.string().min(1, 'AWS region is required'),
|
||||
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
|
||||
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
|
||||
queueUrl: z.string().min(1, 'Queue URL is required'),
|
||||
messageGroupId: z.string().nullish(),
|
||||
messageDeduplicationId: z.string().nullish(),
|
||||
data: z.record(z.unknown()).refine((obj) => Object.keys(obj).length > 0, {
|
||||
message: 'Data object must have at least one field',
|
||||
}),
|
||||
})
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
const requestId = randomUUID().slice(0, 8)
|
||||
|
||||
try {
|
||||
const body = await request.json()
|
||||
const params = SendMessageSchema.parse(body)
|
||||
|
||||
logger.info(`[${requestId}] Sending message to SQS queue ${params.queueUrl}`)
|
||||
|
||||
const client = createSqsClient({
|
||||
region: params.region,
|
||||
accessKeyId: params.accessKeyId,
|
||||
secretAccessKey: params.secretAccessKey,
|
||||
})
|
||||
|
||||
try {
|
||||
const result = await sendMessage(
|
||||
client,
|
||||
params.queueUrl,
|
||||
params.data,
|
||||
params.messageGroupId,
|
||||
params.messageDeduplicationId
|
||||
)
|
||||
|
||||
logger.info(`[${requestId}] Message sent to SQS queue ${params.queueUrl}`)
|
||||
|
||||
return NextResponse.json({
|
||||
message: `Message sent to SQS queue ${params.queueUrl}`,
|
||||
id: result?.id,
|
||||
})
|
||||
} finally {
|
||||
client.destroy()
|
||||
}
|
||||
} catch (error) {
|
||||
if (error instanceof z.ZodError) {
|
||||
logger.warn(`[${requestId}] Invalid request data`, {
|
||||
errors: error.errors,
|
||||
})
|
||||
return NextResponse.json(
|
||||
{ error: 'Invalid request data', details: error.errors },
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
|
||||
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'
|
||||
logger.error(`[${requestId}] SQS send message failed:`, error)
|
||||
|
||||
return NextResponse.json({ error: `SQS send message failed: ${errorMessage}` }, { status: 500 })
|
||||
}
|
||||
}
|
||||
40
apps/sim/app/api/tools/sqs/utils.ts
Normal file
40
apps/sim/app/api/tools/sqs/utils.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { SendMessageCommand, type SendMessageCommandOutput, SQSClient } from '@aws-sdk/client-sqs'
|
||||
import type { SqsConnectionConfig } from '@/tools/sqs/types'
|
||||
|
||||
export function createSqsClient(config: SqsConnectionConfig): SQSClient {
|
||||
return new SQSClient({
|
||||
region: config.region,
|
||||
credentials: {
|
||||
accessKeyId: config.accessKeyId,
|
||||
secretAccessKey: config.secretAccessKey,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export async function sendMessage(
|
||||
client: SQSClient,
|
||||
queueUrl: string,
|
||||
data: Record<string, unknown>,
|
||||
messageGroupId?: string | null,
|
||||
messageDeduplicationId?: string | null
|
||||
): Promise<Record<string, unknown> | null> {
|
||||
const command = new SendMessageCommand({
|
||||
QueueUrl: queueUrl,
|
||||
MessageBody: JSON.stringify(data),
|
||||
MessageGroupId: messageGroupId ?? undefined,
|
||||
...(messageDeduplicationId ? { MessageDeduplicationId: messageDeduplicationId } : {}),
|
||||
})
|
||||
|
||||
const response = await client.send(command)
|
||||
return parseSendMessageResponse(response)
|
||||
}
|
||||
|
||||
function parseSendMessageResponse(
|
||||
response: SendMessageCommandOutput
|
||||
): Record<string, unknown> | null {
|
||||
if (!response) {
|
||||
return null
|
||||
}
|
||||
|
||||
return { id: response.MessageId }
|
||||
}
|
||||
@@ -496,7 +496,7 @@ export async function POST(request: NextRequest) {
|
||||
verbose: 1,
|
||||
logger: (msg) => logger.info(typeof msg === 'string' ? msg : JSON.stringify(msg)),
|
||||
model: {
|
||||
modelName: 'claude-sonnet-4-20250514',
|
||||
modelName: 'anthropic/claude-3-7-sonnet-latest',
|
||||
apiKey: apiKey,
|
||||
},
|
||||
})
|
||||
@@ -704,7 +704,14 @@ The system will substitute actual values when these placeholders are used, keepi
|
||||
`.trim()
|
||||
|
||||
const agent = stagehand.agent({
|
||||
model: 'anthropic/claude-sonnet-4-20250514',
|
||||
model: {
|
||||
modelName: 'anthropic/claude-3-7-sonnet-latest',
|
||||
apiKey: apiKey,
|
||||
},
|
||||
executionModel: {
|
||||
modelName: 'anthropic/claude-3-7-sonnet-latest',
|
||||
apiKey: apiKey,
|
||||
},
|
||||
systemPrompt: `${agentInstructions}\n\n${additionalContext}`,
|
||||
})
|
||||
|
||||
@@ -795,6 +802,9 @@ The system will substitute actual values when these placeholders are used, keepi
|
||||
})
|
||||
|
||||
let structuredOutput = null
|
||||
const hasOutputSchema =
|
||||
outputSchema && typeof outputSchema === 'object' && outputSchema !== null
|
||||
|
||||
if (agentResult.message) {
|
||||
try {
|
||||
let jsonContent = agentResult.message
|
||||
@@ -807,33 +817,31 @@ The system will substitute actual values when these placeholders are used, keepi
|
||||
structuredOutput = JSON.parse(jsonContent)
|
||||
logger.info('Successfully parsed structured output from agent response')
|
||||
} catch (parseError) {
|
||||
logger.error('Failed to parse JSON from agent message', {
|
||||
error: parseError,
|
||||
message: agentResult.message,
|
||||
})
|
||||
if (hasOutputSchema) {
|
||||
logger.warn('Failed to parse JSON from agent message, attempting fallback extraction', {
|
||||
error: parseError,
|
||||
})
|
||||
|
||||
if (
|
||||
outputSchema &&
|
||||
typeof outputSchema === 'object' &&
|
||||
outputSchema !== null &&
|
||||
stagehand
|
||||
) {
|
||||
try {
|
||||
logger.info('Attempting to extract structured data using Stagehand extract')
|
||||
const schemaObj = getSchemaObject(outputSchema)
|
||||
const zodSchema = ensureZodObject(logger, schemaObj)
|
||||
if (stagehand) {
|
||||
try {
|
||||
logger.info('Attempting to extract structured data using Stagehand extract')
|
||||
const schemaObj = getSchemaObject(outputSchema)
|
||||
const zodSchema = ensureZodObject(logger, schemaObj)
|
||||
|
||||
structuredOutput = await stagehand.extract(
|
||||
'Extract the requested information from this page according to the schema',
|
||||
zodSchema
|
||||
)
|
||||
structuredOutput = await stagehand.extract(
|
||||
'Extract the requested information from this page according to the schema',
|
||||
zodSchema
|
||||
)
|
||||
|
||||
logger.info('Successfully extracted structured data as fallback', {
|
||||
keys: structuredOutput ? Object.keys(structuredOutput) : [],
|
||||
})
|
||||
} catch (extractError) {
|
||||
logger.error('Fallback extraction also failed', { error: extractError })
|
||||
logger.info('Successfully extracted structured data as fallback', {
|
||||
keys: structuredOutput ? Object.keys(structuredOutput) : [],
|
||||
})
|
||||
} catch (extractError) {
|
||||
logger.error('Fallback extraction also failed', { error: extractError })
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.info('Agent returned plain text response (no schema provided)')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ export async function POST(request: NextRequest) {
|
||||
verbose: 1,
|
||||
logger: (msg) => logger.info(typeof msg === 'string' ? msg : JSON.stringify(msg)),
|
||||
model: {
|
||||
modelName: 'gpt-4o',
|
||||
modelName: 'openai/gpt-4o',
|
||||
apiKey: apiKey,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -466,7 +466,7 @@ export function KnowledgeBase({
|
||||
*/
|
||||
const checkForDeadProcesses = async () => {
|
||||
const now = new Date()
|
||||
const DEAD_PROCESS_THRESHOLD_MS = 150 * 1000
|
||||
const DEAD_PROCESS_THRESHOLD_MS = 600 * 1000 // 10 minutes
|
||||
|
||||
const staleDocuments = documents.filter((doc) => {
|
||||
if (doc.processingStatus !== 'processing' || !doc.processingStartedAt) {
|
||||
@@ -928,9 +928,22 @@ export function KnowledgeBase({
|
||||
Tags
|
||||
</Button>
|
||||
)}
|
||||
<Button onClick={() => setShowDeleteDialog(true)} className='h-[32px] rounded-[6px]'>
|
||||
<Trash className='h-[14px] w-[14px]' />
|
||||
</Button>
|
||||
<Tooltip.Root>
|
||||
<Tooltip.Trigger asChild>
|
||||
<Button
|
||||
onClick={() => setShowDeleteDialog(true)}
|
||||
disabled={!userPermissions.canEdit}
|
||||
className='h-[32px] rounded-[6px]'
|
||||
>
|
||||
<Trash className='h-[14px] w-[14px]' />
|
||||
</Button>
|
||||
</Tooltip.Trigger>
|
||||
{!userPermissions.canEdit && (
|
||||
<Tooltip.Content>
|
||||
Write permission required to delete knowledge base
|
||||
</Tooltip.Content>
|
||||
)}
|
||||
</Tooltip.Root>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -940,7 +953,7 @@ export function KnowledgeBase({
|
||||
</p>
|
||||
)}
|
||||
|
||||
<div className='mt-[12px] flex items-center gap-[8px]'>
|
||||
<div className='mt-[16px] flex items-center gap-[8px]'>
|
||||
<span className='text-[14px] text-[var(--text-muted)]'>
|
||||
{pagination.total} {pagination.total === 1 ? 'document' : 'documents'}
|
||||
</span>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use client'
|
||||
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
import { AlertCircle, Loader2, RotateCcw, X } from 'lucide-react'
|
||||
import { Loader2, RotateCcw, X } from 'lucide-react'
|
||||
import { useParams } from 'next/navigation'
|
||||
import {
|
||||
Button,
|
||||
@@ -283,11 +283,11 @@ export function AddDocumentsModal({
|
||||
return (
|
||||
<div
|
||||
key={index}
|
||||
className='flex items-center gap-2 rounded-[4px] border p-[8px]'
|
||||
>
|
||||
{isFailed && !isRetrying && (
|
||||
<AlertCircle className='h-4 w-4 flex-shrink-0 text-[var(--text-error)]' />
|
||||
className={cn(
|
||||
'flex items-center gap-2 rounded-[4px] border p-[8px]',
|
||||
isFailed && !isRetrying && 'border-[var(--text-error)]'
|
||||
)}
|
||||
>
|
||||
<span
|
||||
className={cn(
|
||||
'min-w-0 flex-1 truncate text-[12px]',
|
||||
@@ -301,29 +301,31 @@ export function AddDocumentsModal({
|
||||
{formatFileSize(file.size)}
|
||||
</span>
|
||||
<div className='flex flex-shrink-0 items-center gap-1'>
|
||||
{isFailed && !isRetrying && (
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0 text-[var(--text-muted)] hover:text-[var(--text-primary)]'
|
||||
onClick={() => handleRetryFile(index)}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<RotateCcw className='h-3.5 w-3.5' />
|
||||
</Button>
|
||||
)}
|
||||
{isProcessing ? (
|
||||
<Loader2 className='h-4 w-4 animate-spin text-[var(--text-muted)]' />
|
||||
) : (
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0'
|
||||
onClick={() => removeFile(index)}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<X className='h-3.5 w-3.5' />
|
||||
</Button>
|
||||
<>
|
||||
{isFailed && (
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0'
|
||||
onClick={() => handleRetryFile(index)}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<RotateCcw className='h-3 w-3' />
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0'
|
||||
onClick={() => removeFile(index)}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<X className='h-3.5 w-3.5' />
|
||||
</Button>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
@@ -336,30 +338,34 @@ export function AddDocumentsModal({
|
||||
</div>
|
||||
</ModalBody>
|
||||
|
||||
<ModalFooter className='flex-col items-stretch gap-[12px]'>
|
||||
{uploadError && (
|
||||
<p className='text-[11px] text-[var(--text-error)] leading-tight'>
|
||||
{uploadError.message}
|
||||
</p>
|
||||
)}
|
||||
<div className='flex justify-end gap-[8px]'>
|
||||
<Button variant='default' onClick={handleClose} type='button' disabled={isUploading}>
|
||||
Cancel
|
||||
</Button>
|
||||
<Button
|
||||
variant='primary'
|
||||
type='button'
|
||||
onClick={handleUpload}
|
||||
disabled={files.length === 0 || isUploading}
|
||||
>
|
||||
{isUploading
|
||||
? uploadProgress.stage === 'uploading'
|
||||
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
|
||||
: uploadProgress.stage === 'processing'
|
||||
? 'Processing...'
|
||||
: 'Uploading...'
|
||||
: 'Upload'}
|
||||
</Button>
|
||||
<ModalFooter>
|
||||
<div className='flex w-full items-center justify-between gap-[12px]'>
|
||||
{uploadError ? (
|
||||
<p className='min-w-0 flex-1 truncate text-[11px] text-[var(--text-error)] leading-tight'>
|
||||
{uploadError.message}
|
||||
</p>
|
||||
) : (
|
||||
<div />
|
||||
)}
|
||||
<div className='flex flex-shrink-0 gap-[8px]'>
|
||||
<Button variant='default' onClick={handleClose} type='button' disabled={isUploading}>
|
||||
Cancel
|
||||
</Button>
|
||||
<Button
|
||||
variant='primary'
|
||||
type='button'
|
||||
onClick={handleUpload}
|
||||
disabled={files.length === 0 || isUploading}
|
||||
>
|
||||
{isUploading
|
||||
? uploadProgress.stage === 'uploading'
|
||||
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
|
||||
: uploadProgress.stage === 'processing'
|
||||
? 'Processing...'
|
||||
: 'Uploading...'
|
||||
: 'Upload'}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
import { zodResolver } from '@hookform/resolvers/zod'
|
||||
import { AlertCircle, Loader2, RotateCcw, X } from 'lucide-react'
|
||||
import { Loader2, RotateCcw, X } from 'lucide-react'
|
||||
import { useParams } from 'next/navigation'
|
||||
import { useForm } from 'react-hook-form'
|
||||
import { z } from 'zod'
|
||||
@@ -449,11 +449,11 @@ export function CreateBaseModal({
|
||||
return (
|
||||
<div
|
||||
key={index}
|
||||
className='flex items-center gap-2 rounded-[4px] border p-[8px]'
|
||||
>
|
||||
{isFailed && !isRetrying && (
|
||||
<AlertCircle className='h-4 w-4 flex-shrink-0 text-[var(--text-error)]' />
|
||||
className={cn(
|
||||
'flex items-center gap-2 rounded-[4px] border p-[8px]',
|
||||
isFailed && !isRetrying && 'border-[var(--text-error)]'
|
||||
)}
|
||||
>
|
||||
<span
|
||||
className={cn(
|
||||
'min-w-0 flex-1 truncate text-[12px]',
|
||||
@@ -467,32 +467,34 @@ export function CreateBaseModal({
|
||||
{formatFileSize(file.size)}
|
||||
</span>
|
||||
<div className='flex flex-shrink-0 items-center gap-1'>
|
||||
{isFailed && !isRetrying && (
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0 text-[var(--text-muted)] hover:text-[var(--text-primary)]'
|
||||
onClick={() => {
|
||||
setRetryingIndexes((prev) => new Set(prev).add(index))
|
||||
removeFile(index)
|
||||
}}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<RotateCcw className='h-3.5 w-3.5' />
|
||||
</Button>
|
||||
)}
|
||||
{isProcessing ? (
|
||||
<Loader2 className='h-4 w-4 animate-spin text-[var(--text-muted)]' />
|
||||
) : (
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0'
|
||||
onClick={() => removeFile(index)}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<X className='h-3.5 w-3.5' />
|
||||
</Button>
|
||||
<>
|
||||
{isFailed && (
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0'
|
||||
onClick={() => {
|
||||
setRetryingIndexes((prev) => new Set(prev).add(index))
|
||||
removeFile(index)
|
||||
}}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<RotateCcw className='h-3 w-3' />
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
type='button'
|
||||
variant='ghost'
|
||||
className='h-4 w-4 p-0'
|
||||
onClick={() => removeFile(index)}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<X className='h-3.5 w-3.5' />
|
||||
</Button>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
@@ -509,32 +511,40 @@ export function CreateBaseModal({
|
||||
</div>
|
||||
</ModalBody>
|
||||
|
||||
<ModalFooter className='flex-col items-stretch gap-[12px]'>
|
||||
{(submitStatus?.type === 'error' || uploadError) && (
|
||||
<p className='text-[11px] text-[var(--text-error)] leading-tight'>
|
||||
{uploadError?.message || submitStatus?.message}
|
||||
</p>
|
||||
)}
|
||||
<div className='flex justify-end gap-[8px]'>
|
||||
<Button
|
||||
variant='default'
|
||||
onClick={() => handleClose(false)}
|
||||
type='button'
|
||||
disabled={isSubmitting}
|
||||
>
|
||||
Cancel
|
||||
</Button>
|
||||
<Button variant='primary' type='submit' disabled={isSubmitting || !nameValue?.trim()}>
|
||||
{isSubmitting
|
||||
? isUploading
|
||||
? uploadProgress.stage === 'uploading'
|
||||
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
|
||||
: uploadProgress.stage === 'processing'
|
||||
? 'Processing...'
|
||||
: 'Creating...'
|
||||
: 'Creating...'
|
||||
: 'Create'}
|
||||
</Button>
|
||||
<ModalFooter>
|
||||
<div className='flex w-full items-center justify-between gap-[12px]'>
|
||||
{submitStatus?.type === 'error' || uploadError ? (
|
||||
<p className='min-w-0 flex-1 truncate text-[11px] text-[var(--text-error)] leading-tight'>
|
||||
{uploadError?.message || submitStatus?.message}
|
||||
</p>
|
||||
) : (
|
||||
<div />
|
||||
)}
|
||||
<div className='flex flex-shrink-0 gap-[8px]'>
|
||||
<Button
|
||||
variant='default'
|
||||
onClick={() => handleClose(false)}
|
||||
type='button'
|
||||
disabled={isSubmitting}
|
||||
>
|
||||
Cancel
|
||||
</Button>
|
||||
<Button
|
||||
variant='primary'
|
||||
type='submit'
|
||||
disabled={isSubmitting || !nameValue?.trim()}
|
||||
>
|
||||
{isSubmitting
|
||||
? isUploading
|
||||
? uploadProgress.stage === 'uploading'
|
||||
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
|
||||
: uploadProgress.stage === 'processing'
|
||||
? 'Processing...'
|
||||
: 'Creating...'
|
||||
: 'Creating...'
|
||||
: 'Create'}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</ModalFooter>
|
||||
</form>
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import type React from 'react'
|
||||
import {
|
||||
SUPPORTED_AUDIO_EXTENSIONS,
|
||||
SUPPORTED_VIDEO_EXTENSIONS,
|
||||
} from '@/lib/uploads/utils/validation'
|
||||
|
||||
interface IconProps {
|
||||
className?: string
|
||||
@@ -223,13 +227,19 @@ export const DefaultFileIcon: React.FC<IconProps> = ({ className = 'w-6 h-6' })
|
||||
export function getDocumentIcon(mimeType: string, filename: string): React.FC<IconProps> {
|
||||
const extension = filename.split('.').pop()?.toLowerCase()
|
||||
|
||||
const audioExtensions = ['mp3', 'm4a', 'wav', 'webm', 'ogg', 'flac', 'aac', 'opus']
|
||||
if (mimeType.startsWith('audio/') || (extension && audioExtensions.includes(extension))) {
|
||||
if (
|
||||
mimeType.startsWith('audio/') ||
|
||||
(extension &&
|
||||
SUPPORTED_AUDIO_EXTENSIONS.includes(extension as (typeof SUPPORTED_AUDIO_EXTENSIONS)[number]))
|
||||
) {
|
||||
return AudioIcon
|
||||
}
|
||||
|
||||
const videoExtensions = ['mp4', 'mov', 'avi', 'mkv']
|
||||
if (mimeType.startsWith('video/') || (extension && videoExtensions.includes(extension))) {
|
||||
if (
|
||||
mimeType.startsWith('video/') ||
|
||||
(extension &&
|
||||
SUPPORTED_VIDEO_EXTENSIONS.includes(extension as (typeof SUPPORTED_VIDEO_EXTENSIONS)[number]))
|
||||
) {
|
||||
return VideoIcon
|
||||
}
|
||||
|
||||
|
||||
@@ -423,6 +423,10 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
|
||||
return await uploadFileInChunks(file, presignedData, timeoutMs, fileIndex)
|
||||
}
|
||||
|
||||
if (presignedOverride?.directUploadSupported && presignedOverride.presignedUrl) {
|
||||
return await uploadFileDirectly(file, presignedOverride, timeoutMs, controller, fileIndex)
|
||||
}
|
||||
|
||||
return await uploadFileThroughAPI(file, timeoutMs)
|
||||
} finally {
|
||||
clearTimeout(timeoutId)
|
||||
@@ -510,7 +514,6 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
|
||||
if (event.lengthComputable && fileIndex !== undefined && !isCompleted) {
|
||||
const percentComplete = Math.round((event.loaded / event.total) * 100)
|
||||
setUploadProgress((prev) => {
|
||||
// Only update if this file is still uploading
|
||||
if (prev.fileStatuses?.[fileIndex]?.status === 'uploading') {
|
||||
return {
|
||||
...prev,
|
||||
@@ -638,7 +641,6 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
|
||||
})
|
||||
|
||||
if (!partUrlsResponse.ok) {
|
||||
// Abort the multipart upload if we can't get URLs
|
||||
await fetch('/api/files/multipart?action=abort', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
@@ -822,9 +824,6 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload files using batch presigned URLs (works for both S3 and Azure Blob)
|
||||
*/
|
||||
/**
|
||||
* Uploads files in batches using presigned URLs
|
||||
*/
|
||||
|
||||
@@ -206,7 +206,30 @@ const generateOutputPaths = (outputs: Record<string, any>, prefix = ''): string[
|
||||
paths.push(currentPath)
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
if ('type' in value && typeof value.type === 'string') {
|
||||
paths.push(currentPath)
|
||||
const hasNestedProperties =
|
||||
(value.type === 'object' && value.properties) ||
|
||||
(value.type === 'array' && value.items?.properties) ||
|
||||
(value.type === 'array' &&
|
||||
value.items &&
|
||||
typeof value.items === 'object' &&
|
||||
!('type' in value.items))
|
||||
|
||||
if (!hasNestedProperties) {
|
||||
paths.push(currentPath)
|
||||
}
|
||||
|
||||
if (value.type === 'object' && value.properties) {
|
||||
paths.push(...generateOutputPaths(value.properties, currentPath))
|
||||
} else if (value.type === 'array' && value.items?.properties) {
|
||||
paths.push(...generateOutputPaths(value.items.properties, currentPath))
|
||||
} else if (
|
||||
value.type === 'array' &&
|
||||
value.items &&
|
||||
typeof value.items === 'object' &&
|
||||
!('type' in value.items)
|
||||
) {
|
||||
paths.push(...generateOutputPaths(value.items, currentPath))
|
||||
}
|
||||
} else {
|
||||
const subPaths = generateOutputPaths(value, currentPath)
|
||||
paths.push(...subPaths)
|
||||
|
||||
@@ -70,7 +70,7 @@ const edgeTypes: EdgeTypes = {
|
||||
|
||||
// Memoized ReactFlow props to prevent unnecessary re-renders
|
||||
const defaultEdgeOptions = { type: 'custom' }
|
||||
const snapGrid: [number, number] = [20, 20]
|
||||
const snapGrid: [number, number] = [50, 50]
|
||||
const reactFlowFitViewOptions = { padding: 0.6 } as const
|
||||
const reactFlowProOptions = { hideAttribution: true } as const
|
||||
|
||||
@@ -134,6 +134,9 @@ const WorkflowContent = React.memo(() => {
|
||||
// Get copilot cleanup function
|
||||
const copilotCleanup = useCopilotStore((state) => state.cleanup)
|
||||
|
||||
// Get snap to grid setting
|
||||
const isSnapToGridEnabled = useGeneralStore((state) => state.isSnapToGridEnabled)
|
||||
|
||||
// Handle copilot stream cleanup on page unload and component unmount
|
||||
useStreamCleanup(copilotCleanup)
|
||||
|
||||
@@ -2294,7 +2297,7 @@ const WorkflowContent = React.memo(() => {
|
||||
onNodeDrag={effectivePermissions.canEdit ? onNodeDrag : undefined}
|
||||
onNodeDragStop={effectivePermissions.canEdit ? onNodeDragStop : undefined}
|
||||
onNodeDragStart={effectivePermissions.canEdit ? onNodeDragStart : undefined}
|
||||
snapToGrid={false}
|
||||
snapToGrid={isSnapToGridEnabled}
|
||||
snapGrid={snapGrid}
|
||||
elevateEdgesOnSelect={true}
|
||||
// Performance optimizations
|
||||
|
||||
@@ -10,6 +10,7 @@ import { useBrandConfig } from '@/lib/branding/branding'
|
||||
import { cn } from '@/lib/core/utils/cn'
|
||||
import { getTriggersForSidebar, hasTriggerCapability } from '@/lib/workflows/triggers/trigger-utils'
|
||||
import { searchItems } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/search-utils'
|
||||
import { SIDEBAR_SCROLL_EVENT } from '@/app/workspace/[workspaceId]/w/components/sidebar/sidebar'
|
||||
import { getAllBlocks } from '@/blocks'
|
||||
|
||||
interface SearchModalProps {
|
||||
@@ -430,6 +431,12 @@ export function SearchModal({
|
||||
window.open(item.href, '_blank', 'noopener,noreferrer')
|
||||
} else {
|
||||
router.push(item.href)
|
||||
// Scroll to the workflow in the sidebar after navigation
|
||||
if (item.type === 'workflow') {
|
||||
window.dispatchEvent(
|
||||
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: item.id } })
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
break
|
||||
|
||||
@@ -352,13 +352,48 @@ export function EnvironmentVariables({ registerBeforeLeaveHandler }: Environment
|
||||
}, [])
|
||||
|
||||
const parseEnvVarLine = useCallback((line: string): UIEnvironmentVariable | null => {
|
||||
const equalIndex = line.indexOf('=')
|
||||
const trimmed = line.trim()
|
||||
|
||||
if (!trimmed || trimmed.startsWith('#')) return null
|
||||
|
||||
const withoutExport = trimmed.replace(/^export\s+/, '')
|
||||
|
||||
const equalIndex = withoutExport.indexOf('=')
|
||||
if (equalIndex === -1 || equalIndex === 0) return null
|
||||
|
||||
const potentialKey = line.substring(0, equalIndex).trim()
|
||||
const potentialKey = withoutExport.substring(0, equalIndex).trim()
|
||||
if (!ENV_VAR_PATTERN.test(potentialKey)) return null
|
||||
|
||||
const value = line.substring(equalIndex + 1).trim()
|
||||
let value = withoutExport.substring(equalIndex + 1)
|
||||
|
||||
const looksLikeBase64Key = /^[A-Za-z0-9+/]+$/.test(potentialKey) && !potentialKey.includes('_')
|
||||
const valueIsJustPadding = /^=+$/.test(value.trim())
|
||||
if (looksLikeBase64Key && valueIsJustPadding && potentialKey.length > 20) {
|
||||
return null
|
||||
}
|
||||
|
||||
const trimmedValue = value.trim()
|
||||
if (
|
||||
!trimmedValue.startsWith('"') &&
|
||||
!trimmedValue.startsWith("'") &&
|
||||
!trimmedValue.startsWith('`')
|
||||
) {
|
||||
const commentIndex = value.search(/\s#/)
|
||||
if (commentIndex !== -1) {
|
||||
value = value.substring(0, commentIndex)
|
||||
}
|
||||
}
|
||||
|
||||
value = value.trim()
|
||||
|
||||
if (
|
||||
(value.startsWith('"') && value.endsWith('"')) ||
|
||||
(value.startsWith("'") && value.endsWith("'")) ||
|
||||
(value.startsWith('`') && value.endsWith('`'))
|
||||
) {
|
||||
value = value.slice(1, -1)
|
||||
}
|
||||
|
||||
return { key: potentialKey, value, id: generateRowId() }
|
||||
}, [])
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import { useProfilePictureUpload } from '@/app/workspace/[workspaceId]/w/compone
|
||||
import { useGeneralSettings, useUpdateGeneralSetting } from '@/hooks/queries/general-settings'
|
||||
import { useUpdateUserProfile, useUserProfile } from '@/hooks/queries/user-profile'
|
||||
import { clearUserData } from '@/stores'
|
||||
import { useGeneralStore } from '@/stores/settings/general/store'
|
||||
|
||||
const logger = createLogger('General')
|
||||
|
||||
@@ -56,6 +57,9 @@ export function General({ onOpenChange }: GeneralProps) {
|
||||
const { data: settings, isLoading: isSettingsLoading } = useGeneralSettings()
|
||||
const updateSetting = useUpdateGeneralSetting()
|
||||
|
||||
const isSnapToGridEnabled = useGeneralStore((state) => state.isSnapToGridEnabled)
|
||||
const setSettings = useGeneralStore((state) => state.setSettings)
|
||||
|
||||
const isLoading = isProfileLoading || isSettingsLoading
|
||||
|
||||
const isTrainingEnabled = isTruthy(getEnv('NEXT_PUBLIC_COPILOT_TRAINING_ENABLED'))
|
||||
@@ -232,6 +236,10 @@ export function General({ onOpenChange }: GeneralProps) {
|
||||
}
|
||||
}
|
||||
|
||||
const handleSnapToGridChange = (checked: boolean) => {
|
||||
setSettings({ isSnapToGridEnabled: checked })
|
||||
}
|
||||
|
||||
const handleTrainingControlsChange = async (checked: boolean) => {
|
||||
if (checked !== settings?.showTrainingControls && !updateSetting.isPending) {
|
||||
await updateSetting.mutateAsync({ key: 'showTrainingControls', value: checked })
|
||||
@@ -412,6 +420,15 @@ export function General({ onOpenChange }: GeneralProps) {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className='flex items-center justify-between'>
|
||||
<Label htmlFor='snap-to-grid'>Snap to grid</Label>
|
||||
<Switch
|
||||
id='snap-to-grid'
|
||||
checked={isSnapToGridEnabled}
|
||||
onCheckedChange={handleSnapToGridChange}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className='flex items-center justify-between'>
|
||||
<Label htmlFor='error-notifications'>Run error notifications</Label>
|
||||
<Switch
|
||||
|
||||
@@ -20,6 +20,7 @@ import {
|
||||
useDeleteMcpServer,
|
||||
useMcpServers,
|
||||
useMcpToolsQuery,
|
||||
useRefreshMcpServer,
|
||||
} from '@/hooks/queries/mcp'
|
||||
import { useMcpServerTest } from '@/hooks/use-mcp-server-test'
|
||||
import type { InputFieldType, McpServerFormData, McpServerTestResult } from './components'
|
||||
@@ -89,27 +90,24 @@ export function MCP() {
|
||||
} = useMcpToolsQuery(workspaceId)
|
||||
const createServerMutation = useCreateMcpServer()
|
||||
const deleteServerMutation = useDeleteMcpServer()
|
||||
const refreshServerMutation = useRefreshMcpServer()
|
||||
const { testResult, isTestingConnection, testConnection, clearTestResult } = useMcpServerTest()
|
||||
|
||||
const urlInputRef = useRef<HTMLInputElement>(null)
|
||||
|
||||
// Form state
|
||||
const [showAddForm, setShowAddForm] = useState(false)
|
||||
const [formData, setFormData] = useState<McpServerFormData>(DEFAULT_FORM_DATA)
|
||||
const [isAddingServer, setIsAddingServer] = useState(false)
|
||||
|
||||
// Search and filtering state
|
||||
const [searchTerm, setSearchTerm] = useState('')
|
||||
const [deletingServers, setDeletingServers] = useState<Set<string>>(new Set())
|
||||
|
||||
// Delete confirmation dialog state
|
||||
const [showDeleteDialog, setShowDeleteDialog] = useState(false)
|
||||
const [serverToDelete, setServerToDelete] = useState<{ id: string; name: string } | null>(null)
|
||||
|
||||
// Server details view state
|
||||
const [selectedServerId, setSelectedServerId] = useState<string | null>(null)
|
||||
const [refreshStatus, setRefreshStatus] = useState<'idle' | 'refreshing' | 'refreshed'>('idle')
|
||||
|
||||
// Environment variable dropdown state
|
||||
const [showEnvVars, setShowEnvVars] = useState(false)
|
||||
const [envSearchTerm, setEnvSearchTerm] = useState('')
|
||||
const [cursorPosition, setCursorPosition] = useState(0)
|
||||
@@ -255,7 +253,6 @@ export function MCP() {
|
||||
workspaceId,
|
||||
}
|
||||
|
||||
// Test connection if not already tested
|
||||
if (!testResult) {
|
||||
const result = await testConnection(serverConfig)
|
||||
if (!result.success) return
|
||||
@@ -396,6 +393,25 @@ export function MCP() {
|
||||
setSelectedServerId(null)
|
||||
}, [])
|
||||
|
||||
/**
|
||||
* Refreshes a server's tools by re-discovering them from the MCP server.
|
||||
*/
|
||||
const handleRefreshServer = useCallback(
|
||||
async (serverId: string) => {
|
||||
try {
|
||||
setRefreshStatus('refreshing')
|
||||
await refreshServerMutation.mutateAsync({ workspaceId, serverId })
|
||||
logger.info(`Refreshed MCP server: ${serverId}`)
|
||||
setRefreshStatus('refreshed')
|
||||
setTimeout(() => setRefreshStatus('idle'), 2000)
|
||||
} catch (error) {
|
||||
logger.error('Failed to refresh MCP server:', error)
|
||||
setRefreshStatus('idle')
|
||||
}
|
||||
},
|
||||
[refreshServerMutation, workspaceId]
|
||||
)
|
||||
|
||||
/**
|
||||
* Gets the selected server and its tools for the detail view.
|
||||
*/
|
||||
@@ -412,12 +428,10 @@ export function MCP() {
|
||||
const showEmptyState = !hasServers && !showAddForm
|
||||
const showNoResults = searchTerm.trim() && filteredServers.length === 0 && servers.length > 0
|
||||
|
||||
// Form validation state
|
||||
const isFormValid = formData.name.trim() && formData.url?.trim()
|
||||
const isSubmitDisabled = serversLoading || isAddingServer || !isFormValid
|
||||
const testButtonLabel = getTestButtonLabel(testResult, isTestingConnection)
|
||||
|
||||
// Show detail view if a server is selected
|
||||
if (selectedServer) {
|
||||
const { server, tools } = selectedServer
|
||||
const transportLabel = formatTransportLabel(server.transport || 'http')
|
||||
@@ -478,7 +492,18 @@ export function MCP() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className='mt-auto flex items-center justify-end'>
|
||||
<div className='mt-auto flex items-center justify-between'>
|
||||
<Button
|
||||
onClick={() => handleRefreshServer(server.id)}
|
||||
variant='default'
|
||||
disabled={refreshStatus !== 'idle'}
|
||||
>
|
||||
{refreshStatus === 'refreshing'
|
||||
? 'Refreshing...'
|
||||
: refreshStatus === 'refreshed'
|
||||
? 'Refreshed'
|
||||
: 'Refresh Tools'}
|
||||
</Button>
|
||||
<Button
|
||||
onClick={handleBackToList}
|
||||
variant='primary'
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
useItemDrag,
|
||||
useItemRename,
|
||||
} from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks'
|
||||
import { SIDEBAR_SCROLL_EVENT } from '@/app/workspace/[workspaceId]/w/components/sidebar/sidebar'
|
||||
import { useDeleteFolder, useDuplicateFolder } from '@/app/workspace/[workspaceId]/w/hooks'
|
||||
import { useCreateFolder, useUpdateFolder } from '@/hooks/queries/folders'
|
||||
import { useCreateWorkflow } from '@/hooks/queries/workflows'
|
||||
@@ -87,6 +88,10 @@ export function FolderItem({ folder, level, hoverHandlers }: FolderItemProps) {
|
||||
|
||||
if (result.id) {
|
||||
router.push(`/workspace/${workspaceId}/w/${result.id}`)
|
||||
// Scroll to the newly created workflow
|
||||
window.dispatchEvent(
|
||||
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: result.id } })
|
||||
)
|
||||
}
|
||||
} catch (error) {
|
||||
// Error already handled by mutation's onError callback
|
||||
@@ -100,11 +105,17 @@ export function FolderItem({ folder, level, hoverHandlers }: FolderItemProps) {
|
||||
*/
|
||||
const handleCreateFolderInFolder = useCallback(async () => {
|
||||
try {
|
||||
await createFolderMutation.mutateAsync({
|
||||
const result = await createFolderMutation.mutateAsync({
|
||||
workspaceId,
|
||||
name: 'New Folder',
|
||||
parentId: folder.id,
|
||||
})
|
||||
if (result.id) {
|
||||
// Scroll to the newly created folder
|
||||
window.dispatchEvent(
|
||||
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: result.id } })
|
||||
)
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error('Failed to create folder:', error)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
'use client'
|
||||
|
||||
import { useCallback, useEffect, useMemo, useRef } from 'react'
|
||||
import { useCallback, useEffect, useMemo } from 'react'
|
||||
import clsx from 'clsx'
|
||||
import { useParams, usePathname } from 'next/navigation'
|
||||
import { FolderItem } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item'
|
||||
@@ -144,11 +144,8 @@ export function WorkflowList({
|
||||
[pathname, workspaceId]
|
||||
)
|
||||
|
||||
// Track last scrolled workflow to avoid redundant scroll checks
|
||||
const lastScrolledWorkflowRef = useRef<string | null>(null)
|
||||
|
||||
/**
|
||||
* Auto-expand folders, select active workflow, and scroll into view if needed.
|
||||
* Auto-expand folders and select active workflow.
|
||||
*/
|
||||
useEffect(() => {
|
||||
if (!workflowId || isLoading || foldersLoading) return
|
||||
@@ -164,25 +161,6 @@ export function WorkflowList({
|
||||
if (!selectedWorkflows.has(workflowId)) {
|
||||
selectOnly(workflowId)
|
||||
}
|
||||
|
||||
// Skip scroll check if already handled for this workflow
|
||||
if (lastScrolledWorkflowRef.current === workflowId) return
|
||||
lastScrolledWorkflowRef.current = workflowId
|
||||
|
||||
// Scroll after render only if element is completely off-screen
|
||||
requestAnimationFrame(() => {
|
||||
const element = document.querySelector(`[data-item-id="${workflowId}"]`)
|
||||
const container = scrollContainerRef.current
|
||||
if (!element || !container) return
|
||||
|
||||
const { top: elTop, bottom: elBottom } = element.getBoundingClientRect()
|
||||
const { top: ctTop, bottom: ctBottom } = container.getBoundingClientRect()
|
||||
|
||||
// Only scroll if completely above or below the visible area
|
||||
if (elBottom <= ctTop || elTop >= ctBottom) {
|
||||
element.scrollIntoView({ behavior: 'smooth', block: 'center' })
|
||||
}
|
||||
})
|
||||
}, [workflowId, activeWorkflowFolderId, isLoading, foldersLoading, getFolderPath, setExpanded])
|
||||
|
||||
const renderWorkflowItem = useCallback(
|
||||
|
||||
@@ -34,9 +34,13 @@ import { useSearchModalStore } from '@/stores/search-modal/store'
|
||||
import { MIN_SIDEBAR_WIDTH, useSidebarStore } from '@/stores/sidebar/store'
|
||||
|
||||
const logger = createLogger('Sidebar')
|
||||
// Feature flag: Billing usage indicator visibility (matches legacy sidebar behavior)
|
||||
|
||||
/** Feature flag for billing usage indicator visibility */
|
||||
const isBillingEnabled = isTruthy(getEnv('NEXT_PUBLIC_BILLING_ENABLED'))
|
||||
|
||||
/** Event name for sidebar scroll operations - centralized for consistency */
|
||||
export const SIDEBAR_SCROLL_EVENT = 'sidebar-scroll-to-item'
|
||||
|
||||
/**
|
||||
* Sidebar component with resizable width that persists across page refreshes.
|
||||
*
|
||||
@@ -60,63 +64,79 @@ export function Sidebar() {
|
||||
const fileInputRef = useRef<HTMLInputElement>(null)
|
||||
const scrollContainerRef = useRef<HTMLDivElement>(null)
|
||||
|
||||
// Session data
|
||||
const { data: sessionData, isPending: sessionLoading } = useSession()
|
||||
|
||||
// Sidebar state - use store's hydration tracking to prevent SSR mismatch
|
||||
/**
|
||||
* Sidebar state from store with hydration tracking to prevent SSR mismatch.
|
||||
* Uses default (expanded) state until hydrated.
|
||||
*/
|
||||
const hasHydrated = useSidebarStore((state) => state._hasHydrated)
|
||||
const isCollapsedStore = useSidebarStore((state) => state.isCollapsed)
|
||||
const setIsCollapsed = useSidebarStore((state) => state.setIsCollapsed)
|
||||
const setSidebarWidth = useSidebarStore((state) => state.setSidebarWidth)
|
||||
|
||||
// Use default (expanded) state until hydrated to prevent hydration mismatch
|
||||
const isCollapsed = hasHydrated ? isCollapsedStore : false
|
||||
|
||||
// Determine if we're on a workflow page (only workflow pages allow collapse and resize)
|
||||
const isOnWorkflowPage = !!workflowId
|
||||
|
||||
// Import state
|
||||
const [isImporting, setIsImporting] = useState(false)
|
||||
|
||||
// Workspace import input ref
|
||||
const workspaceFileInputRef = useRef<HTMLInputElement>(null)
|
||||
|
||||
// Workspace import hook
|
||||
const { isImporting: isImportingWorkspace, handleImportWorkspace: importWorkspace } =
|
||||
useImportWorkspace()
|
||||
const { handleExportWorkspace: exportWorkspace } = useExportWorkspace()
|
||||
|
||||
// Workspace export hook
|
||||
const { isExporting: isExportingWorkspace, handleExportWorkspace: exportWorkspace } =
|
||||
useExportWorkspace()
|
||||
|
||||
// Workspace popover state
|
||||
const [isWorkspaceMenuOpen, setIsWorkspaceMenuOpen] = useState(false)
|
||||
|
||||
// Footer navigation modal state
|
||||
const [isHelpModalOpen, setIsHelpModalOpen] = useState(false)
|
||||
const [isSettingsModalOpen, setIsSettingsModalOpen] = useState(false)
|
||||
|
||||
// Listen for external events to open help modal
|
||||
/** Listens for external events to open help modal */
|
||||
useEffect(() => {
|
||||
const handleOpenHelpModal = () => setIsHelpModalOpen(true)
|
||||
window.addEventListener('open-help-modal', handleOpenHelpModal)
|
||||
return () => window.removeEventListener('open-help-modal', handleOpenHelpModal)
|
||||
}, [])
|
||||
|
||||
// Global search modal state
|
||||
/** Listens for scroll events and scrolls items into view if off-screen */
|
||||
useEffect(() => {
|
||||
const handleScrollToItem = (e: CustomEvent<{ itemId: string }>) => {
|
||||
const { itemId } = e.detail
|
||||
if (!itemId) return
|
||||
|
||||
const tryScroll = (retriesLeft: number) => {
|
||||
requestAnimationFrame(() => {
|
||||
const element = document.querySelector(`[data-item-id="${itemId}"]`)
|
||||
const container = scrollContainerRef.current
|
||||
|
||||
if (!element || !container) {
|
||||
if (retriesLeft > 0) tryScroll(retriesLeft - 1)
|
||||
return
|
||||
}
|
||||
|
||||
const { top: elTop, bottom: elBottom } = element.getBoundingClientRect()
|
||||
const { top: ctTop, bottom: ctBottom } = container.getBoundingClientRect()
|
||||
|
||||
if (elBottom <= ctTop || elTop >= ctBottom) {
|
||||
element.scrollIntoView({ behavior: 'smooth', block: 'center' })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
tryScroll(10)
|
||||
}
|
||||
window.addEventListener(SIDEBAR_SCROLL_EVENT, handleScrollToItem as EventListener)
|
||||
return () =>
|
||||
window.removeEventListener(SIDEBAR_SCROLL_EVENT, handleScrollToItem as EventListener)
|
||||
}, [])
|
||||
|
||||
const {
|
||||
isOpen: isSearchModalOpen,
|
||||
setOpen: setIsSearchModalOpen,
|
||||
open: openSearchModal,
|
||||
} = useSearchModalStore()
|
||||
|
||||
// Workspace management hook
|
||||
const {
|
||||
workspaces,
|
||||
activeWorkspace,
|
||||
isWorkspacesLoading,
|
||||
fetchWorkspaces,
|
||||
isWorkspaceValid,
|
||||
switchWorkspace,
|
||||
handleCreateWorkspace,
|
||||
isCreatingWorkspace,
|
||||
@@ -127,10 +147,8 @@ export function Sidebar() {
|
||||
sessionUserId: sessionData?.user?.id,
|
||||
})
|
||||
|
||||
// Sidebar resize hook
|
||||
const { handleMouseDown } = useSidebarResize()
|
||||
|
||||
// Workflow operations hook
|
||||
const {
|
||||
regularWorkflows,
|
||||
workflowsLoading,
|
||||
@@ -138,17 +156,14 @@ export function Sidebar() {
|
||||
handleCreateWorkflow: createWorkflow,
|
||||
} = useWorkflowOperations({ workspaceId })
|
||||
|
||||
// Folder operations hook
|
||||
const { isCreatingFolder, handleCreateFolder: createFolder } = useFolderOperations({
|
||||
workspaceId,
|
||||
})
|
||||
|
||||
// Duplicate workspace hook
|
||||
const { handleDuplicateWorkspace: duplicateWorkspace } = useDuplicateWorkspace({
|
||||
getWorkspaceId: () => workspaceId,
|
||||
})
|
||||
|
||||
// Prepare data for search modal
|
||||
const searchModalWorkflows = useMemo(
|
||||
() =>
|
||||
regularWorkflows.map((workflow) => ({
|
||||
@@ -172,7 +187,6 @@ export function Sidebar() {
|
||||
[workspaces, workspaceId]
|
||||
)
|
||||
|
||||
// Footer navigation items
|
||||
const footerNavigationItems = useMemo(
|
||||
() => [
|
||||
{
|
||||
@@ -209,116 +223,85 @@ export function Sidebar() {
|
||||
[workspaceId]
|
||||
)
|
||||
|
||||
// Combined loading state
|
||||
const isLoading = workflowsLoading || sessionLoading
|
||||
const initialScrollDoneRef = useRef<string | null>(null)
|
||||
|
||||
/**
|
||||
* Scrolls a newly created element into view if completely off-screen.
|
||||
* Uses requestAnimationFrame to sync with render, then scrolls.
|
||||
*/
|
||||
const scrollToElement = useCallback((elementId: string) => {
|
||||
/** Scrolls to active workflow on initial load or workspace switch */
|
||||
useEffect(() => {
|
||||
if (!workflowId || workflowsLoading || initialScrollDoneRef.current === workflowId) return
|
||||
initialScrollDoneRef.current = workflowId
|
||||
requestAnimationFrame(() => {
|
||||
const element = document.querySelector(`[data-item-id="${elementId}"]`)
|
||||
const container = scrollContainerRef.current
|
||||
if (!element || !container) return
|
||||
|
||||
const { top: elTop, bottom: elBottom } = element.getBoundingClientRect()
|
||||
const { top: ctTop, bottom: ctBottom } = container.getBoundingClientRect()
|
||||
|
||||
// Only scroll if element is completely off-screen
|
||||
if (elBottom <= ctTop || elTop >= ctBottom) {
|
||||
element.scrollIntoView({ behavior: 'smooth', block: 'center' })
|
||||
}
|
||||
window.dispatchEvent(
|
||||
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: workflowId } })
|
||||
)
|
||||
})
|
||||
}, [])
|
||||
}, [workflowId, workflowsLoading])
|
||||
|
||||
/**
|
||||
* Force sidebar to minimum width and ensure it's expanded when not on a workflow page
|
||||
*/
|
||||
/** Forces sidebar to minimum width and ensures it's expanded when not on a workflow page */
|
||||
useEffect(() => {
|
||||
if (!isOnWorkflowPage) {
|
||||
// Ensure sidebar is always expanded on non-workflow pages
|
||||
if (isCollapsed) {
|
||||
setIsCollapsed(false)
|
||||
}
|
||||
// Force sidebar to minimum width
|
||||
setSidebarWidth(MIN_SIDEBAR_WIDTH)
|
||||
}
|
||||
}, [isOnWorkflowPage, isCollapsed, setIsCollapsed, setSidebarWidth])
|
||||
|
||||
/**
|
||||
* Handle create workflow - creates workflow and scrolls to it
|
||||
*/
|
||||
/** Creates a workflow and scrolls to it */
|
||||
const handleCreateWorkflow = useCallback(async () => {
|
||||
const workflowId = await createWorkflow()
|
||||
if (workflowId) {
|
||||
scrollToElement(workflowId)
|
||||
window.dispatchEvent(
|
||||
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: workflowId } })
|
||||
)
|
||||
}
|
||||
}, [createWorkflow, scrollToElement])
|
||||
}, [createWorkflow])
|
||||
|
||||
/**
|
||||
* Handle create folder - creates folder and scrolls to it
|
||||
*/
|
||||
/** Creates a folder and scrolls to it */
|
||||
const handleCreateFolder = useCallback(async () => {
|
||||
const folderId = await createFolder()
|
||||
if (folderId) {
|
||||
scrollToElement(folderId)
|
||||
window.dispatchEvent(new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: folderId } }))
|
||||
}
|
||||
}, [createFolder, scrollToElement])
|
||||
}, [createFolder])
|
||||
|
||||
/**
|
||||
* Handle import workflow button click - triggers file input
|
||||
*/
|
||||
/** Triggers file input for workflow import */
|
||||
const handleImportWorkflow = useCallback(() => {
|
||||
if (fileInputRef.current) {
|
||||
fileInputRef.current.click()
|
||||
}
|
||||
fileInputRef.current?.click()
|
||||
}, [])
|
||||
|
||||
/**
|
||||
* Handle workspace switch from popover menu
|
||||
*/
|
||||
/** Handles workspace switch from popover menu */
|
||||
const handleWorkspaceSwitch = useCallback(
|
||||
async (workspace: { id: string; name: string; ownerId: string; role?: string }) => {
|
||||
if (workspace.id === workspaceId) {
|
||||
setIsWorkspaceMenuOpen(false)
|
||||
return
|
||||
}
|
||||
|
||||
await switchWorkspace(workspace)
|
||||
setIsWorkspaceMenuOpen(false)
|
||||
},
|
||||
[workspaceId, switchWorkspace]
|
||||
)
|
||||
|
||||
/**
|
||||
* Handle sidebar collapse toggle
|
||||
*/
|
||||
/** Toggles sidebar collapse state */
|
||||
const handleToggleCollapse = useCallback(() => {
|
||||
setIsCollapsed(!isCollapsed)
|
||||
}, [isCollapsed, setIsCollapsed])
|
||||
|
||||
/**
|
||||
* Handle click on sidebar elements to revert to active workflow selection
|
||||
*/
|
||||
/** Reverts to active workflow selection when clicking sidebar background */
|
||||
const handleSidebarClick = useCallback(
|
||||
(e: React.MouseEvent<HTMLElement>) => {
|
||||
const target = e.target as HTMLElement
|
||||
// Revert to active workflow selection if clicking on sidebar background, header, or search area
|
||||
// But not on interactive elements like buttons or links
|
||||
if (target.tagName === 'BUTTON' || target.closest('button, [role="button"], a')) {
|
||||
return
|
||||
}
|
||||
|
||||
const { selectOnly, clearSelection } = useFolderStore.getState()
|
||||
workflowId ? selectOnly(workflowId) : clearSelection()
|
||||
},
|
||||
[workflowId]
|
||||
)
|
||||
|
||||
/**
|
||||
* Handle workspace rename
|
||||
*/
|
||||
/** Renames a workspace */
|
||||
const handleRenameWorkspace = useCallback(
|
||||
async (workspaceIdToRename: string, newName: string) => {
|
||||
await updateWorkspaceName(workspaceIdToRename, newName)
|
||||
@@ -326,9 +309,7 @@ export function Sidebar() {
|
||||
[updateWorkspaceName]
|
||||
)
|
||||
|
||||
/**
|
||||
* Handle workspace delete
|
||||
*/
|
||||
/** Deletes a workspace */
|
||||
const handleDeleteWorkspace = useCallback(
|
||||
async (workspaceIdToDelete: string) => {
|
||||
const workspaceToDelete = workspaces.find((w) => w.id === workspaceIdToDelete)
|
||||
@@ -339,9 +320,7 @@ export function Sidebar() {
|
||||
[workspaces, confirmDeleteWorkspace]
|
||||
)
|
||||
|
||||
/**
|
||||
* Handle workspace duplicate
|
||||
*/
|
||||
/** Duplicates a workspace */
|
||||
const handleDuplicateWorkspace = useCallback(
|
||||
async (_workspaceIdToDuplicate: string, workspaceName: string) => {
|
||||
await duplicateWorkspace(workspaceName)
|
||||
@@ -349,9 +328,7 @@ export function Sidebar() {
|
||||
[duplicateWorkspace]
|
||||
)
|
||||
|
||||
/**
|
||||
* Handle workspace export
|
||||
*/
|
||||
/** Exports a workspace */
|
||||
const handleExportWorkspace = useCallback(
|
||||
async (workspaceIdToExport: string, workspaceName: string) => {
|
||||
await exportWorkspace(workspaceIdToExport, workspaceName)
|
||||
@@ -359,18 +336,12 @@ export function Sidebar() {
|
||||
[exportWorkspace]
|
||||
)
|
||||
|
||||
/**
|
||||
* Handle workspace import button click
|
||||
*/
|
||||
/** Triggers file input for workspace import */
|
||||
const handleImportWorkspace = useCallback(() => {
|
||||
if (workspaceFileInputRef.current) {
|
||||
workspaceFileInputRef.current.click()
|
||||
}
|
||||
workspaceFileInputRef.current?.click()
|
||||
}, [])
|
||||
|
||||
/**
|
||||
* Handle workspace import file change
|
||||
*/
|
||||
/** Handles workspace import file selection */
|
||||
const handleWorkspaceFileChange = useCallback(
|
||||
async (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
const files = event.target.files
|
||||
@@ -379,7 +350,6 @@ export function Sidebar() {
|
||||
const zipFile = files[0]
|
||||
await importWorkspace(zipFile)
|
||||
|
||||
// Reset file input
|
||||
if (event.target) {
|
||||
event.target.value = ''
|
||||
}
|
||||
@@ -387,12 +357,7 @@ export function Sidebar() {
|
||||
[importWorkspace]
|
||||
)
|
||||
|
||||
/**
|
||||
* Resolve a workspace id from either params or the current URL path.
|
||||
*
|
||||
* This mirrors existing behavior but is wrapped in a helper to keep command
|
||||
* handlers small and focused.
|
||||
*/
|
||||
/** Resolves workspace ID from params or URL path */
|
||||
const resolveWorkspaceIdFromPath = useCallback((): string | undefined => {
|
||||
if (workspaceId) return workspaceId
|
||||
if (typeof window === 'undefined') return undefined
|
||||
@@ -404,12 +369,7 @@ export function Sidebar() {
|
||||
return parts[idx + 1]
|
||||
}, [workspaceId])
|
||||
|
||||
/**
|
||||
* Register global sidebar commands using the central commands registry.
|
||||
*
|
||||
* Only commands declared in the registry can be registered here. The
|
||||
* registry owns ids and shortcut strings; this component supplies handlers.
|
||||
*/
|
||||
/** Registers global sidebar commands with the central commands registry */
|
||||
useRegisterGlobalCommands(() =>
|
||||
createCommands([
|
||||
{
|
||||
|
||||
@@ -287,6 +287,19 @@ export const AsanaBlock: BlockConfig<AsanaResponse> = {
|
||||
},
|
||||
outputs: {
|
||||
success: { type: 'boolean', description: 'Operation success status' },
|
||||
output: { type: 'string', description: 'Operation result (JSON)' },
|
||||
ts: { type: 'string', description: 'Timestamp of the response' },
|
||||
gid: { type: 'string', description: 'Resource globally unique identifier' },
|
||||
name: { type: 'string', description: 'Resource name' },
|
||||
notes: { type: 'string', description: 'Task notes or description' },
|
||||
completed: { type: 'boolean', description: 'Whether the task is completed' },
|
||||
text: { type: 'string', description: 'Comment text content' },
|
||||
assignee: { type: 'json', description: 'Assignee details (gid, name)' },
|
||||
created_by: { type: 'json', description: 'Creator details (gid, name)' },
|
||||
due_on: { type: 'string', description: 'Due date (YYYY-MM-DD)' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
modified_at: { type: 'string', description: 'Last modified timestamp' },
|
||||
permalink_url: { type: 'string', description: 'URL to the resource in Asana' },
|
||||
tasks: { type: 'json', description: 'Array of tasks' },
|
||||
projects: { type: 'json', description: 'Array of projects' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -32,11 +32,23 @@ export const BrowserUseBlock: BlockConfig<BrowserUseResponse> = {
|
||||
title: 'Model',
|
||||
type: 'dropdown',
|
||||
options: [
|
||||
{ label: 'gpt-4o', id: 'gpt-4o' },
|
||||
{ label: 'gemini-2.0-flash', id: 'gemini-2.0-flash' },
|
||||
{ label: 'gemini-2.0-flash-lite', id: 'gemini-2.0-flash-lite' },
|
||||
{ label: 'claude-3-7-sonnet-20250219', id: 'claude-3-7-sonnet-20250219' },
|
||||
{ label: 'llama-4-maverick-17b-128e-instruct', id: 'llama-4-maverick-17b-128e-instruct' },
|
||||
{ label: 'Browser Use LLM', id: 'browser-use-llm' },
|
||||
{ label: 'GPT-4o', id: 'gpt-4o' },
|
||||
{ label: 'GPT-4o Mini', id: 'gpt-4o-mini' },
|
||||
{ label: 'GPT-4.1', id: 'gpt-4.1' },
|
||||
{ label: 'GPT-4.1 Mini', id: 'gpt-4.1-mini' },
|
||||
{ label: 'O3', id: 'o3' },
|
||||
{ label: 'O4 Mini', id: 'o4-mini' },
|
||||
{ label: 'Gemini 2.5 Flash', id: 'gemini-2.5-flash' },
|
||||
{ label: 'Gemini 2.5 Pro', id: 'gemini-2.5-pro' },
|
||||
{ label: 'Gemini 3 Pro Preview', id: 'gemini-3-pro-preview' },
|
||||
{ label: 'Gemini Flash Latest', id: 'gemini-flash-latest' },
|
||||
{ label: 'Gemini Flash Lite Latest', id: 'gemini-flash-lite-latest' },
|
||||
{ label: 'Claude 3.7 Sonnet', id: 'claude-3-7-sonnet-20250219' },
|
||||
{ label: 'Claude Sonnet 4', id: 'claude-sonnet-4-20250514' },
|
||||
{ label: 'Claude Sonnet 4.5', id: 'claude-sonnet-4-5-20250929' },
|
||||
{ label: 'Claude Opus 4.5', id: 'claude-opus-4-5-20251101' },
|
||||
{ label: 'Llama 4 Maverick', id: 'llama-4-maverick-17b-128e-instruct' },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -29,6 +29,7 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
{ label: 'List Comments', id: 'list_comments' },
|
||||
{ label: 'Update Comment', id: 'update_comment' },
|
||||
{ label: 'Delete Comment', id: 'delete_comment' },
|
||||
{ label: 'Upload Attachment', id: 'upload_attachment' },
|
||||
{ label: 'List Attachments', id: 'list_attachments' },
|
||||
{ label: 'Delete Attachment', id: 'delete_attachment' },
|
||||
{ label: 'List Labels', id: 'list_labels' },
|
||||
@@ -155,6 +156,28 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
required: true,
|
||||
condition: { field: 'operation', value: 'delete_attachment' },
|
||||
},
|
||||
{
|
||||
id: 'attachmentFile',
|
||||
title: 'File',
|
||||
type: 'file-upload',
|
||||
placeholder: 'Select file to upload',
|
||||
required: true,
|
||||
condition: { field: 'operation', value: 'upload_attachment' },
|
||||
},
|
||||
{
|
||||
id: 'attachmentFileName',
|
||||
title: 'File Name',
|
||||
type: 'short-input',
|
||||
placeholder: 'Optional custom file name',
|
||||
condition: { field: 'operation', value: 'upload_attachment' },
|
||||
},
|
||||
{
|
||||
id: 'attachmentComment',
|
||||
title: 'Comment',
|
||||
type: 'short-input',
|
||||
placeholder: 'Optional comment for the attachment',
|
||||
condition: { field: 'operation', value: 'upload_attachment' },
|
||||
},
|
||||
{
|
||||
id: 'labelName',
|
||||
title: 'Label Name',
|
||||
@@ -185,6 +208,7 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
'confluence_list_comments',
|
||||
'confluence_update_comment',
|
||||
'confluence_delete_comment',
|
||||
'confluence_upload_attachment',
|
||||
'confluence_list_attachments',
|
||||
'confluence_delete_attachment',
|
||||
'confluence_list_labels',
|
||||
@@ -212,6 +236,8 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
return 'confluence_update_comment'
|
||||
case 'delete_comment':
|
||||
return 'confluence_delete_comment'
|
||||
case 'upload_attachment':
|
||||
return 'confluence_upload_attachment'
|
||||
case 'list_attachments':
|
||||
return 'confluence_list_attachments'
|
||||
case 'delete_attachment':
|
||||
@@ -227,11 +253,19 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
}
|
||||
},
|
||||
params: (params) => {
|
||||
const { credential, pageId, manualPageId, operation, ...rest } = params
|
||||
const {
|
||||
credential,
|
||||
pageId,
|
||||
manualPageId,
|
||||
operation,
|
||||
attachmentFile,
|
||||
attachmentFileName,
|
||||
attachmentComment,
|
||||
...rest
|
||||
} = params
|
||||
|
||||
const effectivePageId = (pageId || manualPageId || '').trim()
|
||||
|
||||
// Operations that require pageId
|
||||
const requiresPageId = [
|
||||
'read',
|
||||
'update',
|
||||
@@ -240,9 +274,9 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
'list_comments',
|
||||
'list_attachments',
|
||||
'list_labels',
|
||||
'upload_attachment',
|
||||
]
|
||||
|
||||
// Operations that require spaceId
|
||||
const requiresSpaceId = ['create', 'get_space']
|
||||
|
||||
if (requiresPageId.includes(operation) && !effectivePageId) {
|
||||
@@ -253,6 +287,18 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
throw new Error('Space ID is required for this operation.')
|
||||
}
|
||||
|
||||
if (operation === 'upload_attachment') {
|
||||
return {
|
||||
credential,
|
||||
pageId: effectivePageId,
|
||||
operation,
|
||||
file: attachmentFile,
|
||||
fileName: attachmentFileName,
|
||||
comment: attachmentComment,
|
||||
...rest,
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
credential,
|
||||
pageId: effectivePageId || undefined,
|
||||
@@ -276,6 +322,9 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
comment: { type: 'string', description: 'Comment text' },
|
||||
commentId: { type: 'string', description: 'Comment identifier' },
|
||||
attachmentId: { type: 'string', description: 'Attachment identifier' },
|
||||
attachmentFile: { type: 'json', description: 'File to upload as attachment' },
|
||||
attachmentFileName: { type: 'string', description: 'Custom file name for attachment' },
|
||||
attachmentComment: { type: 'string', description: 'Comment for the attachment' },
|
||||
labelName: { type: 'string', description: 'Label name' },
|
||||
limit: { type: 'number', description: 'Maximum number of results' },
|
||||
},
|
||||
@@ -297,6 +346,9 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
|
||||
spaces: { type: 'array', description: 'List of spaces' },
|
||||
commentId: { type: 'string', description: 'Comment identifier' },
|
||||
attachmentId: { type: 'string', description: 'Attachment identifier' },
|
||||
fileSize: { type: 'number', description: 'Attachment file size in bytes' },
|
||||
mediaType: { type: 'string', description: 'Attachment MIME type' },
|
||||
downloadUrl: { type: 'string', description: 'Attachment download URL' },
|
||||
labelName: { type: 'string', description: 'Label name' },
|
||||
spaceId: { type: 'string', description: 'Space identifier' },
|
||||
name: { type: 'string', description: 'Space name' },
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user