Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,33 @@
{
"extends": [
"../../../../.eslintrc.base.json"
],
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts",
"*.tsx",
"*.js",
"*.jsx"
],
"rules": {}
},
{
"files": [
"*.ts",
"*.tsx"
],
"rules": {}
},
{
"files": [
"*.js",
"*.jsx"
],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-wrike
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-wrike` to build the library.

View File

@@ -0,0 +1,10 @@
{
"name": "@activepieces/piece-wrike",
"version": "0.0.2",
"type": "commonjs",
"main": "./src/index.js",
"types": "./src/index.d.ts",
"dependencies": {
"tslib": "^2.3.0"
}
}

View File

@@ -0,0 +1,65 @@
{
"name": "pieces-wrike",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/wrike/src",
"projectType": "library",
"release": {
"version": {
"manifestRootsToUpdate": [
"dist/{projectRoot}"
],
"currentVersionResolver": "git-tag",
"fallbackCurrentVersionResolver": "disk"
}
},
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/wrike",
"tsConfig": "packages/pieces/community/wrike/tsconfig.lib.json",
"packageJson": "packages/pieces/community/wrike/package.json",
"main": "packages/pieces/community/wrike/src/index.ts",
"assets": [
"packages/pieces/community/wrike/*.md",
{
"input": "packages/pieces/community/wrike/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"nx-release-publish": {
"options": {
"packageRoot": "dist/{projectRoot}"
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/wrike",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
}
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n Um Ihre OAuth2-Zugangsdaten zu erhalten:\n\n 1. Gehen Sie zu Wrike (https://www. rike.com/)\n 2. Melden Sie sich bei Ihrem Konto an oder erstellen Sie einen\n 3. Gehen Sie zu Apps & Integrations (https://www.wrike.com/apps/)\n 4. Klicken Sie auf \"Neue App erstellen\" oder verwenden Sie eine vorhandene\n Anwendung. Für die lokale Entwicklung füge `http://localhost:4200/redirect` zu den erlaubten Umleitungs-URIs\n 6 hinzu. Füge für die Produktion `https://cloud. ctivepieces.com/redirect` zu den erlaubten Umleitungs-URIs\n 7. Kopieren Sie die Client-ID und Client-Geheimnis\n ",
"Create Task": "Aufgabe erstellen",
"Update Task": "Aufgabe aktualisieren",
"Create Folder": "Ordner erstellen",
"Create Project": "Projekt erstellen",
"Add Comment": "Kommentar hinzufügen",
"Upload Attachment": "Anhang hochladen",
"Find Task": "Aufgabe finden",
"Find Folder / Project": "Ordner suchen / Projekt",
"Custom API Call": "Eigener API-Aufruf",
"Create a new task in Wrike": "Neue Aufgabe in Wrike erstellen",
"Update fields of an existing task in Wrike": "Felder einer existierenden Aufgabe in Wrike aktualisieren",
"Create a new folder in Wrike": "Neuen Ordner in Wrike erstellen",
"Create a new project in Wrike": "Neues Projekt in Wrike erstellen",
"Add a comment or internal note to a task or folder": "Kommentar oder interne Notiz zu einer Aufgabe oder einem Ordner hinzufügen",
"Upload a file and attach it to a task or folder": "Datei hochladen und an eine Aufgabe oder einen Ordner anhängen",
"Retrieve a task by its ID or lookup fields": "Eine Aufgabe über ihre ID oder Suchfelder abrufen",
"Retrieve folder / project metadata by ID or name": "Ordner / Projektmetadaten mit ID oder Name abrufen",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Folder ID": "Ordner-ID",
"Task Title": "Aufgabentitel",
"Description": "Beschreibung",
"Status": "Status",
"Importance": "Bedeutung",
"Assignees": "Beauftragte",
"Start Date": "Startdatum",
"Due Date": "Fälligkeitsdatum",
"Duration": "Dauer",
"Custom Fields": "Eigene Felder",
"Task ID": "Task ID",
"Parent Folder ID": "Übergeordnete Ordner-ID",
"Folder Title": "Ordnertitel",
"Shared Users": "Geteilte Benutzer",
"Create as Project": "Als Projekt erstellen",
"Project Owner ID": "Projekt-Eigentümer-ID",
"Project Start Date": "Projekt Startdatum",
"Project End Date": "Projekt-Enddatum",
"Project Title": "Projekttitel",
"Owner IDs": "Eigentümer-IDs",
"End Date": "Enddatum",
"Entity Type": "Entitätstyp",
"Entity ID": "Entitäts-ID",
"Comment Text": "Kommentartext",
"Plain Text": "Einfacher Text",
"File": "Datei",
"File Name": "Dateiname",
"Assignee IDs": "Assignee IDs",
"Author IDs": "Autor-IDs",
"Page Size": "Einträge pro Seite",
"Sort Field": "Sortierfeld",
"Sort Order": "Sortierung",
"Title": "Titel",
"Parent IDs": "Eltern-IDs",
"Is Project": "Ist Projekt",
"Method": "Methode",
"Headers": "Kopfzeilen",
"Query Parameters": "Abfrageparameter",
"Body": "Körper",
"Response is Binary ?": "Antwort ist binär?",
"No Error on Failure": "Kein Fehler bei Fehler",
"Timeout (in seconds)": "Timeout (in Sekunden)",
"The ID of the folder where the task will be created": "Die ID des Ordners, in dem die Aufgabe erstellt wird",
"The title of the task": "Der Titel der Aufgabe",
"The description of the task": "Die Beschreibung der Aufgabe",
"The status of the task": "Der Status der Aufgabe",
"The importance/priority of the task": "Die Bedeutung/Priorität der Aufgabe",
"User IDs to assign to the task": "Benutzer-IDs für die Aufgabe zuweisen",
"Task start date (format: YYYY-MM-DD)": "Startdatum der Aufgabe (Format: JJJJ-MM-TT)",
"Task due date (format: YYYY-MM-DD)": "Fälligkeitsdatum (Format: JJJJJ-MM-TT)",
"Task duration in minutes": "Aufgabendauer in Minuten",
"Custom field values for the task": "Benutzerdefinierte Feldwerte für die Aufgabe",
"The ID of the task to update": "Die ID der zu aktualisierenden Aufgabe",
"The new title of the task": "Der neue Titel der Aufgabe",
"The new description of the task": "Die neue Beschreibung der Aufgabe",
"The new status of the task": "Der neue Status der Aufgabe",
"The new importance/priority of the task": "Die neue Bedeutung/Priorität der Aufgabe",
"User IDs to assign to the task (replaces existing assignees)": "Benutzer-IDs, die der Aufgabe zugewiesen werden sollen (ersetzt bestehende Zuweiser)",
"Custom field values to update for the task": "Benutzerdefinierte Feldwerte für die Aufgabe zu aktualisieren",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "Die ID des übergeordneten Ordners, in dem der neue Ordner erstellt wird. Leer lassen um auf Root-Ebene zu erstellen.",
"The title of the folder": "Der Titel des Ordners",
"The description of the folder": "Die Beschreibung des Ordners",
"User IDs to share the folder with": "Benutzer-IDs zum Teilen des Ordners",
"Whether this folder should be created as a project with additional project settings": "Ob dieser Ordner als Projekt mit zusätzlichen Projekteinstellungen erstellt werden soll",
"The ID of the user who will own the project (required when creating as project)": "Die ID des Benutzers, der das Projekt besitzt (erforderlich bei der Erstellung als Projekt)",
"The start date of the project (format: YYYY-MM-DD)": "Das Startdatum des Projekts (Format: JJJJ-MM-TT)",
"The end date of the project (format: YYYY-MM-DD)": "Das Enddatum des Projekts (Format: JJJJ-MM-TT)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "Die ID des übergeordneten Ordners, in dem das Projekt erstellt wird. Leer lassen um auf Root-Ebene zu erstellen.",
"The title of the project": "Der Titel des Projekts",
"The description of the project": "Die Beschreibung des Projekts",
"User IDs who will own the project": "Benutzer-IDs, die das Projekt besitzen",
"User IDs to share the project with": "Benutzer-IDs zum Teilen des Projekts",
"Project start date (format: YYYY-MM-DD)": "Startdatum des Projekts (Format: JJJJ-MM-TT)",
"Project end date (format: YYYY-MM-DD)": "Projekt-Enddatum (Format: JJJJ-MM-TT)",
"Select whether you want to add the comment to a task or folder": "Wählen Sie, ob Sie den Kommentar zu einer Aufgabe oder einem Ordner hinzufügen möchten",
"The ID of the task or folder to add the comment to": "Die ID der Aufgabe oder des Ordners zum Hinzufügen des Kommentars",
"The text content of the comment": "Der Text des Kommentars",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Ob der Kommentar als Klartext behandelt werden soll (keine HTML-Formatierung). Standard ist HTML-Formatierung.",
"Select whether to attach the file to a task or folder": "Wählen Sie, ob die Datei einer Aufgabe oder einem Ordner zugeordnet werden soll",
"The ID of the task or folder to attach the file to": "Die ID der Aufgabe oder des Ordners, an den die Datei angehängt werden soll",
"The file to upload and attach": "Die Datei zum Hochladen und Anhängen",
"Optional custom name for the uploaded file": "Optionaler benutzerdefinierter Name für die hochgeladene Datei",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "Die ID der Aufgabe, die abgerufen werden soll. Wenn vorhanden, werden andere Suchkriterien ignoriert.",
"Search for tasks by title (partial match)": "Suche nach Aufgaben nach Titel (partielle Übereinstimmung)",
"Search for tasks within a specific folder": "Suche nach Aufgaben in einem bestimmten Ordner",
"Filter tasks by status": "Aufgaben nach Status filtern",
"Filter tasks by importance/priority": "Aufgaben nach Bedeutung/Priorität filtern",
"Filter tasks by assignee user IDs": "Aufgaben nach zuweisenden Benutzer-IDs filtern",
"Filter tasks by author user IDs": "Aufgaben nach Autoren-Benutzer-IDs filtern",
"Maximum number of tasks to return (max 1000)": "Maximale Anzahl der zurückzugebenden Aufgaben (max. 1000)",
"Field to sort tasks by": "Feld um Aufgaben zu sortieren nach",
"Sort order for results": "Reihenfolge der Ergebnisse",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "Die ID des zu holenden Ordners/Projekts. Wenn angegeben, werden andere Suchkriterien ignoriert.",
"Search for folders/projects by title (partial match)": "Suche nach Ordner/Projekten nach Titel (teilweise Übereinstimmung)",
"Search for folders/projects within specific parent folders": "Nach Ordner/Projekten in bestimmten übergeordneten Ordnern suchen",
"Filter to only return projects (folders marked as projects)": "Filter um nur Projekte zurückzugeben (Ordner als Projekte markiert)",
"Maximum number of folders/projects to return (max 1000)": "Maximale Anzahl der zurückzugebenden Ordner/Projekte (max. 1000)",
"Filter by authors (users who created the folders)": "Nach Autoren filtern (Benutzer, die die Ordner erstellt haben)",
"Filter by owners (users who own the projects)": "Nach Eigentümern filtern (Benutzer, die die Projekte besitzen)",
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
"Active": "Aktiv",
"Completed": "Abgeschlossen",
"Deferred": "Aufgeschoben",
"Cancelled": "Abgebrochen",
"Low": "Niedrig",
"Normal": "Normal",
"High": "Hoch",
"Critical": "Kritisch",
"Task": "Aufgabe",
"Folder": "Ordner",
"Created Date": "Erstellungsdatum",
"Updated Date": "Aktualisiertes Datum",
"Completed Date": "Fertigstellungsdatum",
"Ascending": "Aufsteigend",
"Descending": "Absteigend",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD",
"New Task": "Neue Aufgabe",
"New Folder": "Neuer Ordner",
"New Subtask Created": "Neue Unteraufgabe erstellt",
"Fires when a new task is created in Wrike (optionally within a folder).": "Feuert ab, wenn eine neue Aufgabe in Wrike erstellt wird (optional innerhalb eines Ordners).",
"Fires when a new folder (or project) is created in Wrike.": "Feuert ab, wenn ein neuer Ordner (oder Projekt) in Wrike erstellt wird.",
"Triggers when a subtask is created.": "Wird ausgelöst, wenn eine Unteraufgabe erstellt wird.",
"Parent Task ID": "Übergeordnete Aufgaben-ID",
"Optional: Only trigger for tasks created in this specific folder": "Optional: Nur für Aufgaben, die in diesem bestimmten Ordner erstellt wurden",
"Optional: Only trigger for folders created in this specific parent folder": "Optional: Nur für Ordner auslösen, die in diesem übergeordneten Ordner erstellt wurden",
"Optional: Only trigger for subtasks created under this specific parent task": "Optional: Nur für Unteraufgaben auslösen, die unter dieser speziellen übergeordneten Aufgabe erstellt wurden"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ",
"Create Task": "Crear tarea",
"Update Task": "Actualizar tarea",
"Create Folder": "Crear carpeta",
"Create Project": "Crear proyecto",
"Add Comment": "Añadir comentario",
"Upload Attachment": "Subir adjunto",
"Find Task": "Buscar tarea",
"Find Folder / Project": "Buscar Carpeta / Proyecto",
"Custom API Call": "Llamada API personalizada",
"Create a new task in Wrike": "Crear una nueva tarea en Wrike",
"Update fields of an existing task in Wrike": "Actualizar campos de una tarea existente en Wrike",
"Create a new folder in Wrike": "Crear una nueva carpeta en Wrike",
"Create a new project in Wrike": "Crear un nuevo proyecto en Wrike",
"Add a comment or internal note to a task or folder": "Añadir un comentario o nota interna a una tarea o carpeta",
"Upload a file and attach it to a task or folder": "Subir un archivo y adjuntarlo a una tarea o carpeta",
"Retrieve a task by its ID or lookup fields": "Recuperar una tarea por su ID o campos de búsqueda",
"Retrieve folder / project metadata by ID or name": "Recuperar carpeta / metadatos del proyecto por ID o nombre",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Folder ID": "ID Carpeta",
"Task Title": "Título de la tarea",
"Description": "Descripción",
"Status": "Estado",
"Importance": "Importancia",
"Assignees": "Asignados",
"Start Date": "Fecha de inicio",
"Due Date": "Fecha de fin",
"Duration": "Duración",
"Custom Fields": "Campos personalizados",
"Task ID": "Task ID",
"Parent Folder ID": "ID de carpeta padre",
"Folder Title": "Título de carpeta",
"Shared Users": "Usuarios Compartidos",
"Create as Project": "Crear como proyecto",
"Project Owner ID": "ID del Propietario",
"Project Start Date": "Fecha de inicio del proyecto",
"Project End Date": "Fecha de fin del proyecto",
"Project Title": "Título del proyecto",
"Owner IDs": "ID del propietario",
"End Date": "Fecha de fin",
"Entity Type": "Tipo de entidad",
"Entity ID": "ID de entidad",
"Comment Text": "Comentario",
"Plain Text": "Texto simple",
"File": "Archivo",
"File Name": "Nombre del archivo",
"Assignee IDs": "Assignee IDs",
"Author IDs": "ID de autor",
"Page Size": "Tamaño de página",
"Sort Field": "Ordenar campo",
"Sort Order": "Ordenar",
"Title": "Título",
"Parent IDs": "ID padre",
"Is Project": "Es Proyecto",
"Method": "Método",
"Headers": "Encabezados",
"Query Parameters": "Parámetros de consulta",
"Body": "Cuerpo",
"Response is Binary ?": "¿Respuesta es binaria?",
"No Error on Failure": "No hay ningún error en fallo",
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
"The ID of the folder where the task will be created": "El ID de la carpeta donde se creará la tarea",
"The title of the task": "El título de la tarea",
"The description of the task": "La descripción de la tarea",
"The status of the task": "El estado de la tarea",
"The importance/priority of the task": "La importancia/prioridad de la tarea",
"User IDs to assign to the task": "ID de usuario a asignar a la tarea",
"Task start date (format: YYYY-MM-DD)": "Fecha de inicio de la tarea (formato: AAA-MM-DD)",
"Task due date (format: YYYY-MM-DD)": "Fecha de vencimiento de la tarea (formato: AAA-MM-DD)",
"Task duration in minutes": "Duración de la tarea en minutos",
"Custom field values for the task": "Valores de campos personalizados para la tarea",
"The ID of the task to update": "El ID de la tarea a actualizar",
"The new title of the task": "El nuevo título de la tarea",
"The new description of the task": "La nueva descripción de la tarea",
"The new status of the task": "El nuevo estado de la tarea",
"The new importance/priority of the task": "La nueva importancia/prioridad de la tarea",
"User IDs to assign to the task (replaces existing assignees)": "ID de usuario a asignar a la tarea (sustituye a los asignados existentes)",
"Custom field values to update for the task": "Valores de campos personalizados a actualizar para la tarea",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "El ID de la carpeta padre donde se creará la nueva carpeta. Deje en blanco para crear a nivel raíz.",
"The title of the folder": "El título de la carpeta",
"The description of the folder": "La descripción de la carpeta",
"User IDs to share the folder with": "IDs de usuario con los que compartir la carpeta",
"Whether this folder should be created as a project with additional project settings": "Si esta carpeta debe ser creada como un proyecto con ajustes adicionales del proyecto",
"The ID of the user who will own the project (required when creating as project)": "El ID del usuario que será dueño del proyecto (requerido al crear un proyecto)",
"The start date of the project (format: YYYY-MM-DD)": "La fecha de inicio del proyecto (formato: AAA-MM-DD)",
"The end date of the project (format: YYYY-MM-DD)": "Fecha de finalización del proyecto (formato: AAA-MM-DD)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "El ID de la carpeta padre donde se creará el proyecto. Deje en blanco para crear a nivel raíz.",
"The title of the project": "El título del proyecto",
"The description of the project": "La descripción del proyecto",
"User IDs who will own the project": "IDs de usuario que serán dueños del proyecto",
"User IDs to share the project with": "ID de usuario con el que compartir el proyecto",
"Project start date (format: YYYY-MM-DD)": "Fecha de inicio del proyecto (formato: AAA-MM-DD)",
"Project end date (format: YYYY-MM-DD)": "Fecha de finalización del proyecto (formato: AAA-MM-DD)",
"Select whether you want to add the comment to a task or folder": "Seleccione si desea agregar el comentario a una tarea o carpeta",
"The ID of the task or folder to add the comment to": "El ID de la tarea o carpeta a la que agregar el comentario",
"The text content of the comment": "El contenido del texto del comentario",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Si el comentario debe ser tratado como texto sin formato HTML. Por defecto es formato HTML.",
"Select whether to attach the file to a task or folder": "Seleccione si desea adjuntar el archivo a una tarea o carpeta",
"The ID of the task or folder to attach the file to": "El ID de la tarea o carpeta a la que adjuntar el archivo",
"The file to upload and attach": "El archivo a subir y adjuntar",
"Optional custom name for the uploaded file": "Nombre personalizado opcional para el archivo subido",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "El ID de la tarea a recuperar. Si se proporciona, otros criterios de búsqueda serán ignorados.",
"Search for tasks by title (partial match)": "Buscar tareas por título (coincidencia parcial)",
"Search for tasks within a specific folder": "Buscar tareas dentro de una carpeta específica",
"Filter tasks by status": "Filtrar tareas por estado",
"Filter tasks by importance/priority": "Filtrar tareas por importación/prioridad",
"Filter tasks by assignee user IDs": "Filtrar tareas por identificadores de usuario asignados",
"Filter tasks by author user IDs": "Filtrar tareas por ID de usuario autor",
"Maximum number of tasks to return (max 1000)": "Número máximo de tareas a devolver (máx. 1000)",
"Field to sort tasks by": "Campo para ordenar tareas por",
"Sort order for results": "Ordenar resultados",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "El ID de la carpeta/proyecto a recuperar. Si se proporciona, otros criterios de búsqueda serán ignorados.",
"Search for folders/projects by title (partial match)": "Buscar carpetas/proyectos por título (coincidencia parcial)",
"Search for folders/projects within specific parent folders": "Buscar carpetas/proyectos dentro de carpetas padre específicas",
"Filter to only return projects (folders marked as projects)": "Filtrar sólo para devolver proyectos (carpetas marcadas como proyectos)",
"Maximum number of folders/projects to return (max 1000)": "Número máximo de carpetas/proyectos a devolver (máx. 1000)",
"Filter by authors (users who created the folders)": "Filtrar por autores (usuarios que crearon las carpetas)",
"Filter by owners (users who own the projects)": "Filtrar por propietarios (usuarios propietarios de los proyectos)",
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
"Active": "Activo",
"Completed": "Completado",
"Deferred": "Aplazado",
"Cancelled": "Cancelado",
"Low": "Baja",
"Normal": "Normal",
"High": "Alta",
"Critical": "Crítico",
"Task": "Tarea",
"Folder": "Carpeta",
"Created Date": "Fecha de creación",
"Updated Date": "Fecha actualizada",
"Completed Date": "Fecha de finalización",
"Ascending": "Ascendiente",
"Descending": "Descendiente",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO",
"New Task": "Nueva tarea",
"New Folder": "Nueva carpeta",
"New Subtask Created": "Nueva subtarea creada",
"Fires when a new task is created in Wrike (optionally within a folder).": "Dispara cuando se crea una nueva tarea en Wrike (opcionalmente dentro de una carpeta).",
"Fires when a new folder (or project) is created in Wrike.": "Dispara cuando se crea una nueva carpeta (o proyecto) en Wrike.",
"Triggers when a subtask is created.": "Dispara cuando se crea una subtarea.",
"Parent Task ID": "ID de tarea padre",
"Optional: Only trigger for tasks created in this specific folder": "Opcional: solo para las tareas creadas en esta carpeta específica",
"Optional: Only trigger for folders created in this specific parent folder": "Opcional: solo para carpetas creadas en esta carpeta padre específica",
"Optional: Only trigger for subtasks created under this specific parent task": "Opcional: Sólo activación para subtareas creadas bajo esta tarea padre específica"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ",
"Create Task": "Créer une tâche",
"Update Task": "Tâche de mise à jour",
"Create Folder": "Créer un dossier",
"Create Project": "Créer un projet",
"Add Comment": "Ajouter un commentaire",
"Upload Attachment": "Charger une pièce jointe",
"Find Task": "Trouver une tâche",
"Find Folder / Project": "Trouver un dossier / Projet",
"Custom API Call": "Appel d'API personnalisé",
"Create a new task in Wrike": "Créer une nouvelle tâche dans Wrike",
"Update fields of an existing task in Wrike": "Mettre à jour les champs d'une tâche existante dans Wrike",
"Create a new folder in Wrike": "Créer un nouveau dossier dans Wrike",
"Create a new project in Wrike": "Créer un nouveau projet dans Wrike",
"Add a comment or internal note to a task or folder": "Ajouter un commentaire ou une note interne à une tâche ou un dossier",
"Upload a file and attach it to a task or folder": "Télécharger un fichier et l'attacher à une tâche ou un dossier",
"Retrieve a task by its ID or lookup fields": "Récupérer une tâche par son ID ou ses champs de recherche",
"Retrieve folder / project metadata by ID or name": "Récupérer les métadonnées du dossier / projet par ID ou nom",
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
"Folder ID": "ID du dossier",
"Task Title": "Titre de la tâche",
"Description": "Libellé",
"Status": "Statut",
"Importance": "Importance",
"Assignees": "Assignés",
"Start Date": "Date de début",
"Due Date": "Date de fin",
"Duration": "Durée",
"Custom Fields": "Champs personnalisés",
"Task ID": "Task ID",
"Parent Folder ID": "ID du dossier parent",
"Folder Title": "Titre du dossier",
"Shared Users": "Utilisateurs partagés",
"Create as Project": "Créer en tant que projet",
"Project Owner ID": "ID du propriétaire du projet",
"Project Start Date": "Date de début du projet",
"Project End Date": "Date de fin du projet",
"Project Title": "Titre du projet",
"Owner IDs": "ID du propriétaire",
"End Date": "Date de fin",
"Entity Type": "Type d'entité",
"Entity ID": "ID de l'entité",
"Comment Text": "Texte du commentaire",
"Plain Text": "Texte brut",
"File": "Ficher",
"File Name": "Nom du fichier",
"Assignee IDs": "Assignee IDs",
"Author IDs": "ID de l'auteur",
"Page Size": "Nombre d'élément",
"Sort Field": "Champ de tri",
"Sort Order": "Ordre de tri",
"Title": "Titre de la feuille de calcul",
"Parent IDs": "ID parent",
"Is Project": "Est un projet",
"Method": "Méthode",
"Headers": "Headers",
"Query Parameters": "Paramètres de requête",
"Body": "Body",
"Response is Binary ?": "La réponse est Binaire ?",
"No Error on Failure": "Aucune erreur en cas d'échec",
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
"The ID of the folder where the task will be created": "L'ID du dossier où la tâche sera créée",
"The title of the task": "Le titre de la tâche",
"The description of the task": "La description de la tâche",
"The status of the task": "Le statut de la tâche",
"The importance/priority of the task": "L'importance/priorité de la tâche",
"User IDs to assign to the task": "ID d'utilisateur à assigner à la tâche",
"Task start date (format: YYYY-MM-DD)": "Date de début de la tâche (format : AAAA-MM-JJ)",
"Task due date (format: YYYY-MM-DD)": "Date d'échéance de la tâche (format : AAAA-MM-JJ)",
"Task duration in minutes": "Durée de la tâche en minutes",
"Custom field values for the task": "Valeurs du champ personnalisé pour la tâche",
"The ID of the task to update": "L'ID de la tâche à mettre à jour",
"The new title of the task": "Le nouveau titre de la tâche",
"The new description of the task": "La nouvelle description de la tâche",
"The new status of the task": "Le nouveau statut de la tâche",
"The new importance/priority of the task": "La nouvelle importance/priorité de la tâche",
"User IDs to assign to the task (replaces existing assignees)": "ID utilisateur à assigner à la tâche (remplace les assignés existants)",
"Custom field values to update for the task": "Valeurs du champ personnalisé à mettre à jour pour la tâche",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "L'ID du dossier parent où le nouveau dossier sera créé. Laissez vide pour créer au niveau de la racine.",
"The title of the folder": "Le titre du dossier",
"The description of the folder": "La description du dossier",
"User IDs to share the folder with": "IDs utilisateur avec lesquels partager le dossier",
"Whether this folder should be created as a project with additional project settings": "Si ce dossier doit être créé en tant que projet avec des paramètres de projet supplémentaires",
"The ID of the user who will own the project (required when creating as project)": "L'ID de l'utilisateur qui sera propriétaire du projet (requis lors de la création du projet)",
"The start date of the project (format: YYYY-MM-DD)": "La date de début du projet (format : AAAA-MM-JJ)",
"The end date of the project (format: YYYY-MM-DD)": "La date de fin du projet (format : AAAA-MM-JJ)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "L'ID du dossier parent où le projet sera créé. Laissez vide pour créer au niveau racine.",
"The title of the project": "Le titre du projet",
"The description of the project": "La description du projet",
"User IDs who will own the project": "ID de l'utilisateur qui sera propriétaire du projet",
"User IDs to share the project with": "ID d'utilisateur avec lequel partager le projet",
"Project start date (format: YYYY-MM-DD)": "Date de début du projet (format : AAAA-MM-JJ)",
"Project end date (format: YYYY-MM-DD)": "Date de fin du projet (format : AAAA-MM-JJ)",
"Select whether you want to add the comment to a task or folder": "Sélectionnez si vous voulez ajouter le commentaire à une tâche ou un dossier",
"The ID of the task or folder to add the comment to": "L'ID de la tâche ou du dossier à ajouter au commentaire",
"The text content of the comment": "Le contenu du texte du commentaire",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Si le commentaire doit être traité comme du texte brut (pas de mise en forme HTML). La valeur par défaut est le format HTML.",
"Select whether to attach the file to a task or folder": "Sélectionnez si vous souhaitez joindre le fichier à une tâche ou un dossier",
"The ID of the task or folder to attach the file to": "L'ID de la tâche ou du dossier auquel attacher le fichier",
"The file to upload and attach": "Le fichier à télécharger et à joindre",
"Optional custom name for the uploaded file": "Nom personnalisé optionnel pour le fichier téléchargé",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "L'ID de la tâche à récupérer. Si fourni, d'autres critères de recherche seront ignorés.",
"Search for tasks by title (partial match)": "Rechercher des tâches par titre (correspondance partielle)",
"Search for tasks within a specific folder": "Rechercher des tâches dans un dossier spécifique",
"Filter tasks by status": "Filtrer les tâches par statut",
"Filter tasks by importance/priority": "Filtrer les tâches par importance/priorité",
"Filter tasks by assignee user IDs": "Filtrer les tâches par ID d'utilisateur assigné",
"Filter tasks by author user IDs": "Filtrer les tâches par ID d'utilisateur de l'auteur",
"Maximum number of tasks to return (max 1000)": "Nombre maximum de tâches à retourner (max 1000)",
"Field to sort tasks by": "Champ à trier les tâches par",
"Sort order for results": "Ordre de tri des résultats",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "L'ID du dossier/projet à récupérer. Si fourni, d'autres critères de recherche seront ignorés.",
"Search for folders/projects by title (partial match)": "Recherche de dossiers/projets par titre (correspondance partielle)",
"Search for folders/projects within specific parent folders": "Rechercher des dossiers/projets dans des dossiers parents spécifiques",
"Filter to only return projects (folders marked as projects)": "Filtrer pour ne renvoyer que les projets (dossiers marqués comme projets)",
"Maximum number of folders/projects to return (max 1000)": "Nombre maximum de dossiers/projets à retourner (max 1000)",
"Filter by authors (users who created the folders)": "Filtrer par auteurs (utilisateurs qui ont créé les dossiers)",
"Filter by owners (users who own the projects)": "Filtrer par propriétaires (utilisateurs possédant les projets)",
"Authorization headers are injected automatically from your connection.": "Les Headers d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"Active": "Actif",
"Completed": "Terminé",
"Deferred": "Retardé",
"Cancelled": "Annulé",
"Low": "Bas",
"Normal": "Normale",
"High": "Élevé",
"Critical": "Critique",
"Task": "Tâche",
"Folder": "Dossier",
"Created Date": "Date de création",
"Updated Date": "Date de mise à jour",
"Completed Date": "Date de fin",
"Ascending": "Ascendant",
"Descending": "Descendant",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New Task": "Nouvelle tâche",
"New Folder": "New Folder",
"New Subtask Created": "Nouvelle sous-tâche créée",
"Fires when a new task is created in Wrike (optionally within a folder).": "Tire quand une nouvelle tâche est créée dans Wrike (éventuellement dans un dossier).",
"Fires when a new folder (or project) is created in Wrike.": "Se déclenche lorsqu'un nouveau dossier (ou un nouveau projet) est créé dans Wrike.",
"Triggers when a subtask is created.": "Déclenche quand une sous-tâche est créée.",
"Parent Task ID": "ID de la tâche parent",
"Optional: Only trigger for tasks created in this specific folder": "Optionnel: déclenche uniquement les tâches créées dans ce dossier spécifique",
"Optional: Only trigger for folders created in this specific parent folder": "Optionnel: Ne déclencher que pour les dossiers créés dans ce dossier parent spécifique",
"Optional: Only trigger for subtasks created under this specific parent task": "Optionnel: Ne déclencher que pour les sous-tâches créées dans cette tâche parent spécifique"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ",
"Create Task": "タスクを作成",
"Update Task": "タスクの更新",
"Create Folder": "フォルダを作成",
"Create Project": "プロジェクトを作成",
"Add Comment": "コメントを追加",
"Upload Attachment": "添付ファイルをアップロード",
"Find Task": "タスクを検索",
"Find Folder / Project": "フォルダー/プロジェクトを検索",
"Custom API Call": "カスタムAPI通話",
"Create a new task in Wrike": "Wrikeに新しいタスクを作成します",
"Update fields of an existing task in Wrike": "Wrikeの既存のタスクのフィールドを更新します",
"Create a new folder in Wrike": "Wrikeに新しいフォルダを作成します",
"Create a new project in Wrike": "Wrikeに新しいプロジェクトを作成",
"Add a comment or internal note to a task or folder": "タスクまたはフォルダーにコメントまたは内部メモを追加",
"Upload a file and attach it to a task or folder": "ファイルをアップロードし、タスクまたはフォルダーに添付します",
"Retrieve a task by its ID or lookup fields": "IDまたはルックアップ項目でタスクを取得します",
"Retrieve folder / project metadata by ID or name": "ID または名前でフォルダ / プロジェクトのメタデータを取得します",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Folder ID": "フォルダID",
"Task Title": "タスクタイトル",
"Description": "説明",
"Status": "ステータス",
"Importance": "重要度",
"Assignees": "担当者",
"Start Date": "開始日",
"Due Date": "締切日",
"Duration": "期間",
"Custom Fields": "カスタムフィールド",
"Task ID": "Task ID",
"Parent Folder ID": "親フォルダID",
"Folder Title": "フォルダタイトル",
"Shared Users": "共有ユーザー",
"Create as Project": "プロジェクトとして作成",
"Project Owner ID": "プロジェクトオーナーID",
"Project Start Date": "プロジェクトの開始日",
"Project End Date": "プロジェクト終了日",
"Project Title": "プロジェクトタイトル",
"Owner IDs": "所有者ID",
"End Date": "終了日",
"Entity Type": "エンティティタイプ",
"Entity ID": "エンティティID",
"Comment Text": "コメントテキスト",
"Plain Text": "プレーンテキスト",
"File": "ファイル",
"File Name": "ファイル名",
"Assignee IDs": "Assignee IDs",
"Author IDs": "投稿者ID",
"Page Size": "ページサイズ",
"Sort Field": "ソートフィールド",
"Sort Order": "並び順",
"Title": "タイトル",
"Parent IDs": "親ID",
"Is Project": "プロジェクト",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"The ID of the folder where the task will be created": "タスクが作成されるフォルダーのID",
"The title of the task": "タスクのタイトル",
"The description of the task": "タスクの説明",
"The status of the task": "タスクの状態",
"The importance/priority of the task": "タスクの重要性/優先順位",
"User IDs to assign to the task": "タスクに割り当てるユーザー ID",
"Task start date (format: YYYY-MM-DD)": "タスク開始日 (フォーマット: YYYY-MM-DD)",
"Task due date (format: YYYY-MM-DD)": "タスクの締切日フォーマットYYYY-MM-DD",
"Task duration in minutes": "タスクの継続時間(分)",
"Custom field values for the task": "タスクのカスタムフィールド値",
"The ID of the task to update": "更新するタスクのID",
"The new title of the task": "タスクの新しいタイトル",
"The new description of the task": "タスクの新しい説明",
"The new status of the task": "タスクの新しいステータス",
"The new importance/priority of the task": "タスクの新しい重要性/優先順位",
"User IDs to assign to the task (replaces existing assignees)": "タスクに割り当てるユーザー ID (既存の担当者を置き換えます)",
"Custom field values to update for the task": "タスクを更新するカスタムフィールド値",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "新しいフォルダを作成する親フォルダのID。ルートレベルで作成するには空のままにします。",
"The title of the folder": "フォルダのタイトル",
"The description of the folder": "フォルダの説明",
"User IDs to share the folder with": "フォルダを共有するユーザー ID",
"Whether this folder should be created as a project with additional project settings": "このフォルダを追加のプロジェクト設定を持つプロジェクトとして作成するかどうか",
"The ID of the user who will own the project (required when creating as project)": "プロジェクトを所有するユーザーのIDプロジェクトとして作成する際に必要",
"The start date of the project (format: YYYY-MM-DD)": "プロジェクトの開始日 (フォーマット: YYYY-MM-DD)",
"The end date of the project (format: YYYY-MM-DD)": "プロジェクトの終了日 (フォーマット: YYYY-MM-DD)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "プロジェクトが作成される親フォルダのID。ルートレベルで作成するには空のままにします。",
"The title of the project": "プロジェクトのタイトル",
"The description of the project": "プロジェクトの説明",
"User IDs who will own the project": "プロジェクトを所有するユーザー ID",
"User IDs to share the project with": "プロジェクトを共有するユーザー ID",
"Project start date (format: YYYY-MM-DD)": "プロジェクト開始日 (フォーマット: YYYY-MM-DD)",
"Project end date (format: YYYY-MM-DD)": "プロジェクト終了日 (フォーマット: YYYY-MM-DD)",
"Select whether you want to add the comment to a task or folder": "タスクまたはフォルダーにコメントを追加するかどうかを選択します",
"The ID of the task or folder to add the comment to": "コメントを追加するタスクまたはフォルダーの ID",
"The text content of the comment": "コメントのテキスト",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "コメントをプレーンテキストとして扱うかどうかHTML 書式なし)。デフォルトは HTML 書式設定です。",
"Select whether to attach the file to a task or folder": "ファイルをタスクまたはフォルダーに添付するかどうかを選択します",
"The ID of the task or folder to attach the file to": "ファイルを添付するタスクまたはフォルダーの ID",
"The file to upload and attach": "アップロードして添付するファイル",
"Optional custom name for the uploaded file": "アップロードされたファイルの任意のカスタム名",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "取得するタスクの ID です。指定された場合、他の検索条件は無視されます。",
"Search for tasks by title (partial match)": "タスクをタイトルで検索 (部分一致)",
"Search for tasks within a specific folder": "特定のフォルダ内のタスクを検索します",
"Filter tasks by status": "状態でタスクをフィルター",
"Filter tasks by importance/priority": "タスクを重要度/優先度でフィルター",
"Filter tasks by assignee user IDs": "担当者ユーザーIDでタスクをフィルター",
"Filter tasks by author user IDs": "送信者ユーザーIDでタスクをフィルター",
"Maximum number of tasks to return (max 1000)": "返すタスクの最大数 (最大 1000)",
"Field to sort tasks by": "タスクを並べ替えるフィールド",
"Sort order for results": "結果の並び順",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "取得するフォルダー/プロジェクトの ID です。指定された場合、他の検索条件は無視されます。",
"Search for folders/projects by title (partial match)": "フォルダ/プロジェクトをタイトルで検索 (部分一致)",
"Search for folders/projects within specific parent folders": "特定の親フォルダ内のフォルダ/プロジェクトを検索",
"Filter to only return projects (folders marked as projects)": "プロジェクト(プロジェクトとしてマークされているフォルダ)のみを返すためにフィルター",
"Maximum number of folders/projects to return (max 1000)": "返すフォルダ/プロジェクトの最大数最大1000件",
"Filter by authors (users who created the folders)": "作成者(フォルダを作成したユーザー)",
"Filter by owners (users who own the projects)": "所有者(プロジェクトを所有しているユーザー)",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"Active": "有効",
"Completed": "完了",
"Deferred": "遅延しました",
"Cancelled": "キャンセルしました",
"Low": "低い",
"Normal": "標準",
"High": "高い",
"Critical": "Critical",
"Task": "タスク",
"Folder": "Folder",
"Created Date": "作成日",
"Updated Date": "更新日時",
"Completed Date": "完了日",
"Ascending": "昇順",
"Descending": "降順",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭",
"New Task": "新しいタスク",
"New Folder": "新規フォルダ",
"New Subtask Created": "新しいサブタスクが作成されました",
"Fires when a new task is created in Wrike (optionally within a folder).": "新規タスクがWrikeに作成されたときに発生します(フォルダー内に任意)。",
"Fires when a new folder (or project) is created in Wrike.": "新規フォルダ(またはプロジェクト)がWrikeに作成されたときに発生します。",
"Triggers when a subtask is created.": "サブタスクが作成されたときにトリガーします。",
"Parent Task ID": "親タスクID",
"Optional: Only trigger for tasks created in this specific folder": "オプション: この特定のフォルダに作成されたタスクのトリガーのみ",
"Optional: Only trigger for folders created in this specific parent folder": "オプション: この特定の親フォルダに作成されたフォルダのみトリガーします",
"Optional: Only trigger for subtasks created under this specific parent task": "オプション: この特定の親タスクの下で作成されたサブタスクのみトリガーします"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n Om uw OAuth2 referenties te verkrijgen:\n\n 1. Ga naar Wrike (https://www. rike.com/)\n 2. Meld je aan bij je account of maak een\n 3. Ga naar Apps & Integraties (https://www.wrike.com/apps/)\n 4. Klik op \"Nieuwe app maken\" of gebruik een bestaande\n 5. Voor lokale ontwikkeling, voeg `http://localhost:4200/redirect` toe aan de toegestane redirect URIs\n 6. Voor productie, voeg `https://cloud. ctivepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ",
"Create Task": "Taak maken",
"Update Task": "Taak bijwerken",
"Create Folder": "Map aanmaken",
"Create Project": "Project aanmaken",
"Add Comment": "Opmerking toevoegen",
"Upload Attachment": "Bijlage uploaden",
"Find Task": "Zoek Taak",
"Find Folder / Project": "Map zoeken / project",
"Custom API Call": "Custom API Call",
"Create a new task in Wrike": "Maak een nieuwe taak aan in Wrike",
"Update fields of an existing task in Wrike": "Update velden van een bestaande taak in Wrike",
"Create a new folder in Wrike": "Maak een nieuwe map in Wrike",
"Create a new project in Wrike": "Maak een nieuw project aan in Wrike",
"Add a comment or internal note to a task or folder": "Voeg commentaar of interne notitie toe aan een taak of map",
"Upload a file and attach it to a task or folder": "Upload een bestand en voeg het toe aan een taak of map",
"Retrieve a task by its ID or lookup fields": "Ophalen van een taak via ID of zoekvelden",
"Retrieve folder / project metadata by ID or name": "Haal map/projectmetagegevens op via ID of naam",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Folder ID": "Map ID",
"Task Title": "Taak titel",
"Description": "Beschrijving",
"Status": "status",
"Importance": "Belangrijkheid",
"Assignees": "Verantwoordelijken",
"Start Date": "Start datum",
"Due Date": "Inleverdatum",
"Duration": "Tijdsduur",
"Custom Fields": "Aangepaste velden",
"Task ID": "Task ID",
"Parent Folder ID": "Bovenliggende map ID",
"Folder Title": "Map Titel",
"Shared Users": "Gedeelde gebruikers",
"Create as Project": "Aanmaken als project",
"Project Owner ID": "Project Eigenaar ID",
"Project Start Date": "Project startdatum",
"Project End Date": "Project einddatum",
"Project Title": "Project titel",
"Owner IDs": "Eigenaar IDs",
"End Date": "Eind datum",
"Entity Type": "Entiteit type",
"Entity ID": "Entiteit ID",
"Comment Text": "Commentaar tekst",
"Plain Text": "Onopgemaakte tekst",
"File": "Bestand",
"File Name": "File Name",
"Assignee IDs": "Assignee IDs",
"Author IDs": "Auteur ID's",
"Page Size": "Paginagrootte",
"Sort Field": "Sorteren op veld",
"Sort Order": "Sorteren bestelling",
"Title": "Aanspreektitel",
"Parent IDs": "Bovenliggende ID's",
"Is Project": "Is Project",
"Method": "Methode",
"Headers": "Kopteksten",
"Query Parameters": "Query parameters",
"Body": "Lichaam",
"Response is Binary ?": "Antwoord is binair?",
"No Error on Failure": "Geen fout bij fout",
"Timeout (in seconds)": "Time-out (in seconden)",
"The ID of the folder where the task will be created": "Het ID van de map waar de taak zal worden aangemaakt",
"The title of the task": "De titel van de taak",
"The description of the task": "De omschrijving van de taak",
"The status of the task": "De status van de taak",
"The importance/priority of the task": "De belangrijkste/prioriteit van de taak",
"User IDs to assign to the task": "Gebruikers ID's om toe te wijzen aan de taak",
"Task start date (format: YYYY-MM-DD)": "Taak startdatum (formaat: YYYY-MM-DD)",
"Task due date (format: YYYY-MM-DD)": "Taak vervaldatum (formaat: YYYY-MM-DD)",
"Task duration in minutes": "Taak duur in minuten",
"Custom field values for the task": "Aangepaste veldwaarden voor de taak",
"The ID of the task to update": "Het ID van de taak om bij te werken",
"The new title of the task": "De nieuwe titel van de taak",
"The new description of the task": "De nieuwe beschrijving van de taak",
"The new status of the task": "De nieuwe status van de taak",
"The new importance/priority of the task": "De nieuwe belangrijkheid/prioriteit van de taak",
"User IDs to assign to the task (replaces existing assignees)": "Gebruikers-ID's om toe te wijzen aan de taak (vervangt bestaande taakontvangers)",
"Custom field values to update for the task": "Aangepaste veldwaarden om bij te werken voor de taak",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "Het ID van de bovenliggende map waar de nieuwe map zal worden gemaakt. Laat leeg op hoofdniveau.",
"The title of the folder": "De titel van de map",
"The description of the folder": "De beschrijving van de map",
"User IDs to share the folder with": "Gebruikers ID's om de map mee te delen",
"Whether this folder should be created as a project with additional project settings": "Of deze map moet worden aangemaakt als project met extra projectinstellingen",
"The ID of the user who will own the project (required when creating as project)": "Het ID van de gebruiker die eigenaar is van het project (verplicht bij het aanmaken van project als project)",
"The start date of the project (format: YYYY-MM-DD)": "De startdatum van het project (formaat: JJJJ-MM-DD)",
"The end date of the project (format: YYYY-MM-DD)": "De einddatum van het project (formaat: JJJJ-MM-DD)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "Het ID van de bovenliggende map waar het project wordt gemaakt. Laat leeg om te maken op hoofdniveau.",
"The title of the project": "De titel van het project",
"The description of the project": "De beschrijving van het project",
"User IDs who will own the project": "Gebruikers ID's die het project bezitten",
"User IDs to share the project with": "Gebruikers ID's om het project mee te delen",
"Project start date (format: YYYY-MM-DD)": "Project startdatum (formaat: YYYY-MM-DD)",
"Project end date (format: YYYY-MM-DD)": "Einddatum project (formaat: YYYY-MM-DD)",
"Select whether you want to add the comment to a task or folder": "Selecteer of u een opmerking wilt toevoegen aan een taak of map",
"The ID of the task or folder to add the comment to": "De ID van de taak of map om commentaar toe te voegen",
"The text content of the comment": "De tekst inhoud van de opmerking",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Of de opmerking behandeld moet worden als platte tekst (geen HTML-opmaak). Standaard is HTML-opmaak.",
"Select whether to attach the file to a task or folder": "Selecteer of het bestand aan een taak of map gekoppeld moet worden",
"The ID of the task or folder to attach the file to": "Het ID van de taak of map om het bestand bij te voegen",
"The file to upload and attach": "Het bestand om te uploaden en bijvoegen",
"Optional custom name for the uploaded file": "Optionele aangepaste naam voor het geüploade bestand",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "De ID van de taak om op te halen. Indien opgegeven, worden andere zoekcriteria genegeerd.",
"Search for tasks by title (partial match)": "Zoek naar taken op titel (gedeeltelijke overeenstemming)",
"Search for tasks within a specific folder": "Zoeken naar taken binnen een specifieke map",
"Filter tasks by status": "Filter taken op status",
"Filter tasks by importance/priority": "Filter taken op import/prioriteit",
"Filter tasks by assignee user IDs": "Filter taken op toegewezen gebruikers-IDs",
"Filter tasks by author user IDs": "Filter taken door auteur gebruiker IDs",
"Maximum number of tasks to return (max 1000)": "Maximum aantal taken om terug te sturen (max 1000)",
"Field to sort tasks by": "Veld om taken te sorteren op",
"Sort order for results": "Sorteer volgorde voor resultaten",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "Het ID van de ophaalmap/project . Indien opgegeven, worden andere zoekcriteria genegeerd.",
"Search for folders/projects by title (partial match)": "Zoek naar mappen/projecten op titel (gedeeltelijke wedstrijd)",
"Search for folders/projects within specific parent folders": "Zoeken naar mappen/projecten binnen specifieke bovenliggende mappen",
"Filter to only return projects (folders marked as projects)": "Alleen retour projecten (mappen gemarkeerd als projecten) filteren",
"Maximum number of folders/projects to return (max 1000)": "Maximum aantal mappen/projecten om terug te sturen (max 1000)",
"Filter by authors (users who created the folders)": "Filteren op auteurs (gebruikers die de mappen hebben gemaakt)",
"Filter by owners (users who own the projects)": "Filter op eigenaren (gebruikers die eigenaar zijn van de projecten)",
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
"Active": "Actief",
"Completed": "Voltooid",
"Deferred": "Uitgesteld",
"Cancelled": "Geannuleerd",
"Low": "laag",
"Normal": "normaal",
"High": "hoog",
"Critical": "Kritiek",
"Task": "Opdracht",
"Folder": "Map",
"Created Date": "Aangemaakt op",
"Updated Date": "Bijgewerkt op",
"Completed Date": "Datum voltooid",
"Ascending": "Oplopend",
"Descending": "Aflopend",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD",
"New Task": "Nieuwe taak",
"New Folder": "Nieuwe map",
"New Subtask Created": "Nieuwe subtaak gemaakt",
"Fires when a new task is created in Wrike (optionally within a folder).": "Vuurt wanneer een nieuwe taak wordt gemaakt in Wrike (optioneel)",
"Fires when a new folder (or project) is created in Wrike.": "Vuurt wanneer een nieuwe map (of project) wordt gemaakt in Wrike.",
"Triggers when a subtask is created.": "Triggert wanneer een subtaak is aangemaakt.",
"Parent Task ID": "Bovenliggende taak ID",
"Optional: Only trigger for tasks created in this specific folder": "Optioneel: Alleen trigger voor taken gemaakt in deze specifieke map",
"Optional: Only trigger for folders created in this specific parent folder": "Optioneel: Alleen trigger voor mappen gemaakt in deze specifieke bovenliggende map",
"Optional: Only trigger for subtasks created under this specific parent task": "Optioneel: Alleen trigger voor subtaken gemaakt onder deze specifieke bovenliggende taak"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n Para obter suas credenciais OAuth2:\n\n 1. Vá para Wrike (https://www. rike.com/)\n 2. Entre em sua conta ou crie um\n 3. Vá para Aplicativos & Integrações (https://www.wrike.com/apps/)\n 4. Clique em \"Criar novo aplicativo\" ou use um já existente\n 5. Para desenvolvimento local, adicione `http://localhost:4200/redirect` para os URIs de redirecionamento\n 6. Para produção, adicione `https://cloud. ctivepieces.com/redirect` para o URI de redirecionamento permitido\n 7. Copie o ID do Cliente e o Segredo do Cliente\n ",
"Create Task": "Criar tarefa",
"Update Task": "Atualizar Tarefa",
"Create Folder": "Criar pasta",
"Create Project": "Criar Projeto",
"Add Comment": "Adicionar comentário",
"Upload Attachment": "Carregar Anexo",
"Find Task": "Procurar Tarefa",
"Find Folder / Project": "Localizar Pasta / Projeto",
"Custom API Call": "Chamada de API personalizada",
"Create a new task in Wrike": "Criar uma nova tarefa no Wrike",
"Update fields of an existing task in Wrike": "Atualizar os campos de uma tarefa existente no Wrike",
"Create a new folder in Wrike": "Criar nova pasta no Wrike",
"Create a new project in Wrike": "Criar um novo projeto no Wrike",
"Add a comment or internal note to a task or folder": "Adicionar um comentário ou uma nota interna a uma tarefa ou pasta",
"Upload a file and attach it to a task or folder": "Enviar um arquivo e anexá-lo a uma tarefa ou pasta",
"Retrieve a task by its ID or lookup fields": "Recuperar uma tarefa por seu ID ou campos lookup",
"Retrieve folder / project metadata by ID or name": "Recuperar pasta / metadados do projeto por ID ou nome",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Folder ID": "ID da pasta",
"Task Title": "Título da tarefa",
"Description": "Descrição",
"Status": "Estado",
"Importance": "Importância",
"Assignees": "Destinatários",
"Start Date": "Data Inicial",
"Due Date": "Data de vencimento",
"Duration": "Duração",
"Custom Fields": "Campos Personalizados",
"Task ID": "Task ID",
"Parent Folder ID": "ID da pasta pai",
"Folder Title": "Título da pasta",
"Shared Users": "Usuários Compartilhados",
"Create as Project": "Criar como Projeto",
"Project Owner ID": "ID proprietário do projeto",
"Project Start Date": "Data Início do Projeto",
"Project End Date": "Data Final Projeto",
"Project Title": "Título do Projeto",
"Owner IDs": "IDs dos Proprietários",
"End Date": "Data de Término",
"Entity Type": "Tipo de entidade",
"Entity ID": "ID da entidade",
"Comment Text": "Texto do comentário",
"Plain Text": "Texto sem Formatação",
"File": "Arquivo",
"File Name": "Nome do arquivo",
"Assignee IDs": "Assignee IDs",
"Author IDs": "IDs de autor",
"Page Size": "Tamanho da página",
"Sort Field": "Classificar Campo",
"Sort Order": "Ordem de classificação",
"Title": "Título",
"Parent IDs": "IDs dos Pai",
"Is Project": "É Projeto",
"Method": "Método",
"Headers": "Cabeçalhos",
"Query Parameters": "Parâmetros da consulta",
"Body": "Conteúdo",
"Response is Binary ?": "A resposta é binária ?",
"No Error on Failure": "Nenhum erro no Failure",
"Timeout (in seconds)": "Tempo limite (em segundos)",
"The ID of the folder where the task will be created": "O ID da pasta onde a tarefa será criada",
"The title of the task": "O título da tarefa",
"The description of the task": "A descrição da tarefa",
"The status of the task": "O status da tarefa",
"The importance/priority of the task": "A importância/prioridade da tarefa",
"User IDs to assign to the task": "IDs de usuário para atribuir à tarefa",
"Task start date (format: YYYY-MM-DD)": "Data inicial da tarefa (formato: AAAA-MM-DD)",
"Task due date (format: YYYY-MM-DD)": "Data final da tarefa (formato: AAAA-MM-DD)",
"Task duration in minutes": "Duração da tarefa em minutos",
"Custom field values for the task": "Valores de campo personalizados para a tarefa",
"The ID of the task to update": "A ID da tarefa a ser atualizada",
"The new title of the task": "O novo título da tarefa",
"The new description of the task": "A nova descrição da tarefa",
"The new status of the task": "O novo status da tarefa",
"The new importance/priority of the task": "A nova importação/prioridade da tarefa",
"User IDs to assign to the task (replaces existing assignees)": "IDs de usuário para atribuir à tarefa (substitui os atribuídos existentes)",
"Custom field values to update for the task": "Valores de campo personalizados para atualização para a tarefa",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "O ID da pasta pai onde será criada a nova pasta. Deixe em branco para criar no nível raiz.",
"The title of the folder": "O título da pasta",
"The description of the folder": "A descrição da pasta",
"User IDs to share the folder with": "IDs de usuário para compartilhar a pasta com",
"Whether this folder should be created as a project with additional project settings": "Se esta pasta deve ser criada como um projeto com configurações adicionais do projeto",
"The ID of the user who will own the project (required when creating as project)": "O ID do usuário que será proprietário do projeto (necessário ao criar como projeto)",
"The start date of the project (format: YYYY-MM-DD)": "Data de início do projeto (formato: AAAA-MM-DD)",
"The end date of the project (format: YYYY-MM-DD)": "A data final do projeto (formato: AAAA-MM-DD)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "O ID da pasta pai onde o projeto será criado. Deixe em branco para criar no nível raiz.",
"The title of the project": "O título do projeto",
"The description of the project": "A descrição do projeto",
"User IDs who will own the project": "IDs de usuário que serão donos do projeto",
"User IDs to share the project with": "IDs de usuário com os quais compartilhar o projeto",
"Project start date (format: YYYY-MM-DD)": "Data inicial do projeto (formato: AAAA-MM-DD)",
"Project end date (format: YYYY-MM-DD)": "Data final do projeto (formato: AAAA-MM-DD)",
"Select whether you want to add the comment to a task or folder": "Selecione se você deseja adicionar o comentário em uma tarefa ou pasta",
"The ID of the task or folder to add the comment to": "O ID da tarefa ou pasta para adicionar o comentário",
"The text content of the comment": "O conteúdo do texto do comentário",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Se o comentário deve ser tratado como texto simples (sem formatação HTML). O padrão é a formatação HTML.",
"Select whether to attach the file to a task or folder": "Selecione se o arquivo deve ser anexado a uma tarefa ou pasta",
"The ID of the task or folder to attach the file to": "O ID da tarefa ou pasta para anexar o arquivo",
"The file to upload and attach": "O arquivo para enviar e anexar",
"Optional custom name for the uploaded file": "Nome personalizado opcional para o arquivo enviado",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "O ID da tarefa a recuperar. Se fornecido, outros critérios de pesquisa serão ignorados.",
"Search for tasks by title (partial match)": "Pesquisar tarefas por título (correspondência parcial)",
"Search for tasks within a specific folder": "Procurar por tarefas dentro de uma pasta específica",
"Filter tasks by status": "Filtrar tarefas por status",
"Filter tasks by importance/priority": "Filtrar tarefas por importação/prioridade",
"Filter tasks by assignee user IDs": "Filtrar tarefas por IDs de usuário atribuídos",
"Filter tasks by author user IDs": "Filtrar tarefas por IDs de usuários autores",
"Maximum number of tasks to return (max 1000)": "Número máximo de tarefas a retornar (máx. 1000)",
"Field to sort tasks by": "Campo para classificar tarefas por",
"Sort order for results": "Ordem de classificação para resultados",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "O ID da pasta/projeto a recuperar. Se fornecido, outros critérios de pesquisa serão ignorados.",
"Search for folders/projects by title (partial match)": "Pesquisar pastas/projetos por título (correspondência parcial)",
"Search for folders/projects within specific parent folders": "Pesquisar pastas/projetos dentro de pastas específicas dos pais",
"Filter to only return projects (folders marked as projects)": "Filtro para retornar somente projetos (pastas marcadas como projetos)",
"Maximum number of folders/projects to return (max 1000)": "Número máximo de pastas/projetos para retornar (máx. 1000)",
"Filter by authors (users who created the folders)": "Filtrar por autores (usuários que criaram as pastas)",
"Filter by owners (users who own the projects)": "Filtrar por proprietários (usuários que possuem os projetos)",
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
"Active": "Ativo",
"Completed": "Concluído",
"Deferred": "Adiado",
"Cancelled": "Cancelado",
"Low": "baixa",
"Normal": "normal",
"High": "alta",
"Critical": "Crítica",
"Task": "Tarefas",
"Folder": "Pasta",
"Created Date": "Data de Criação",
"Updated Date": "Data de atualização",
"Completed Date": "Data de conclusão",
"Ascending": "Crescente",
"Descending": "Decrescente",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA",
"New Task": "Nova tarefa",
"New Folder": "Nova Pasta",
"New Subtask Created": "Nova subtarefa criada",
"Fires when a new task is created in Wrike (optionally within a folder).": "Atira quando uma nova tarefa é criada em Wrike (opcionalmente dentro de uma pasta).",
"Fires when a new folder (or project) is created in Wrike.": "Efetua quando uma nova pasta (ou projeto) é criada no Wrike.",
"Triggers when a subtask is created.": "Dispara quando uma subtarefa é criada.",
"Parent Task ID": "ID da tarefa pai",
"Optional: Only trigger for tasks created in this specific folder": "Opcional: Somente acionar tarefas criadas nesta pasta específica",
"Optional: Only trigger for folders created in this specific parent folder": "Opcional: Somente acionar pastas criadas nesta pasta pai específica",
"Optional: Only trigger for subtasks created under this specific parent task": "Opcional: Somente acionar para subtarefas criadas sob esta tarefa pai específica"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ",
"Create Task": "Create Task",
"Update Task": "Update Task",
"Create Folder": "Create Folder",
"Create Project": "Create Project",
"Add Comment": "Add Comment",
"Upload Attachment": "Upload Attachment",
"Find Task": "Find Task",
"Find Folder / Project": "Find Folder / Project",
"Custom API Call": "Custom API Call",
"Create a new task in Wrike": "Create a new task in Wrike",
"Update fields of an existing task in Wrike": "Update fields of an existing task in Wrike",
"Create a new folder in Wrike": "Create a new folder in Wrike",
"Create a new project in Wrike": "Create a new project in Wrike",
"Add a comment or internal note to a task or folder": "Add a comment or internal note to a task or folder",
"Upload a file and attach it to a task or folder": "Upload a file and attach it to a task or folder",
"Retrieve a task by its ID or lookup fields": "Retrieve a task by its ID or lookup fields",
"Retrieve folder / project metadata by ID or name": "Retrieve folder / project metadata by ID or name",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Folder ID": "Folder ID",
"Task Title": "Task Title",
"Description": "Description",
"Status": "Status",
"Importance": "Importance",
"Assignees": "Assignees",
"Start Date": "Start Date",
"Due Date": "Due Date",
"Duration": "Duration",
"Custom Fields": "Custom Fields",
"Task ID": "Task ID",
"Parent Folder ID": "Parent Folder ID",
"Folder Title": "Folder Title",
"Shared Users": "Shared Users",
"Create as Project": "Create as Project",
"Project Owner ID": "Project Owner ID",
"Project Start Date": "Project Start Date",
"Project End Date": "Project End Date",
"Project Title": "Project Title",
"Owner IDs": "Owner IDs",
"End Date": "End Date",
"Entity Type": "Entity Type",
"Entity ID": "Entity ID",
"Comment Text": "Comment Text",
"Plain Text": "Plain Text",
"File": "File",
"File Name": "File Name",
"Assignee IDs": "Assignee IDs",
"Author IDs": "Author IDs",
"Page Size": "Page Size",
"Sort Field": "Sort Field",
"Sort Order": "Sort Order",
"Title": "Title",
"Parent IDs": "Parent IDs",
"Is Project": "Is Project",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"The ID of the folder where the task will be created": "The ID of the folder where the task will be created",
"The title of the task": "The title of the task",
"The description of the task": "The description of the task",
"The status of the task": "The status of the task",
"The importance/priority of the task": "The importance/priority of the task",
"User IDs to assign to the task": "User IDs to assign to the task",
"Task start date (format: YYYY-MM-DD)": "Task start date (format: YYYY-MM-DD)",
"Task due date (format: YYYY-MM-DD)": "Task due date (format: YYYY-MM-DD)",
"Task duration in minutes": "Task duration in minutes",
"Custom field values for the task": "Custom field values for the task",
"The ID of the task to update": "The ID of the task to update",
"The new title of the task": "The new title of the task",
"The new description of the task": "The new description of the task",
"The new status of the task": "The new status of the task",
"The new importance/priority of the task": "The new importance/priority of the task",
"User IDs to assign to the task (replaces existing assignees)": "User IDs to assign to the task (replaces existing assignees)",
"Custom field values to update for the task": "Custom field values to update for the task",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "The ID of the parent folder where the new folder will be created. Leave empty to create at root level.",
"The title of the folder": "The title of the folder",
"The description of the folder": "The description of the folder",
"User IDs to share the folder with": "User IDs to share the folder with",
"Whether this folder should be created as a project with additional project settings": "Whether this folder should be created as a project with additional project settings",
"The ID of the user who will own the project (required when creating as project)": "The ID of the user who will own the project (required when creating as project)",
"The start date of the project (format: YYYY-MM-DD)": "The start date of the project (format: YYYY-MM-DD)",
"The end date of the project (format: YYYY-MM-DD)": "The end date of the project (format: YYYY-MM-DD)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "The ID of the parent folder where the project will be created. Leave empty to create at root level.",
"The title of the project": "The title of the project",
"The description of the project": "The description of the project",
"User IDs who will own the project": "User IDs who will own the project",
"User IDs to share the project with": "User IDs to share the project with",
"Project start date (format: YYYY-MM-DD)": "Project start date (format: YYYY-MM-DD)",
"Project end date (format: YYYY-MM-DD)": "Project end date (format: YYYY-MM-DD)",
"Select whether you want to add the comment to a task or folder": "Select whether you want to add the comment to a task or folder",
"The ID of the task or folder to add the comment to": "The ID of the task or folder to add the comment to",
"The text content of the comment": "The text content of the comment",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.",
"Select whether to attach the file to a task or folder": "Select whether to attach the file to a task or folder",
"The ID of the task or folder to attach the file to": "The ID of the task or folder to attach the file to",
"The file to upload and attach": "The file to upload and attach",
"Optional custom name for the uploaded file": "Optional custom name for the uploaded file",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "The ID of the task to retrieve. If provided, other search criteria will be ignored.",
"Search for tasks by title (partial match)": "Search for tasks by title (partial match)",
"Search for tasks within a specific folder": "Search for tasks within a specific folder",
"Filter tasks by status": "Filter tasks by status",
"Filter tasks by importance/priority": "Filter tasks by importance/priority",
"Filter tasks by assignee user IDs": "Filter tasks by assignee user IDs",
"Filter tasks by author user IDs": "Filter tasks by author user IDs",
"Maximum number of tasks to return (max 1000)": "Maximum number of tasks to return (max 1000)",
"Field to sort tasks by": "Field to sort tasks by",
"Sort order for results": "Sort order for results",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.",
"Search for folders/projects by title (partial match)": "Search for folders/projects by title (partial match)",
"Search for folders/projects within specific parent folders": "Search for folders/projects within specific parent folders",
"Filter to only return projects (folders marked as projects)": "Filter to only return projects (folders marked as projects)",
"Maximum number of folders/projects to return (max 1000)": "Maximum number of folders/projects to return (max 1000)",
"Filter by authors (users who created the folders)": "Filter by authors (users who created the folders)",
"Filter by owners (users who own the projects)": "Filter by owners (users who own the projects)",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"Active": "Active",
"Completed": "Completed",
"Deferred": "Deferred",
"Cancelled": "Cancelled",
"Low": "Low",
"Normal": "Normal",
"High": "High",
"Critical": "Critical",
"Task": "Task",
"Folder": "Folder",
"Created Date": "Created Date",
"Updated Date": "Updated Date",
"Completed Date": "Completed Date",
"Ascending": "Ascending",
"Descending": "Descending",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New Task": "New Task",
"New Folder": "New Folder",
"New Subtask Created": "New Subtask Created",
"Fires when a new task is created in Wrike (optionally within a folder).": "Fires when a new task is created in Wrike (optionally within a folder).",
"Fires when a new folder (or project) is created in Wrike.": "Fires when a new folder (or project) is created in Wrike.",
"Triggers when a subtask is created.": "Triggers when a subtask is created.",
"Parent Task ID": "Parent Task ID",
"Optional: Only trigger for tasks created in this specific folder": "Optional: Only trigger for tasks created in this specific folder",
"Optional: Only trigger for folders created in this specific parent folder": "Optional: Only trigger for folders created in this specific parent folder",
"Optional: Only trigger for subtasks created under this specific parent task": "Optional: Only trigger for subtasks created under this specific parent task"
}

View File

@@ -0,0 +1,153 @@
{
"\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ": "\n To obtain your OAuth2 credentials:\n\n 1. Go to Wrike (https://www.wrike.com/)\n 2. Sign in to your account or create one\n 3. Go to Apps & Integrations (https://www.wrike.com/apps/)\n 4. Click \"Create new app\" or use an existing one\n 5. For local development, add `http://localhost:4200/redirect` to the allowed redirect URIs\n 6. For production, add `https://cloud.activepieces.com/redirect` to the allowed redirect URIs\n 7. Copy the Client ID and Client Secret\n ",
"Create Task": "Create Task",
"Update Task": "Update Task",
"Create Folder": "Create Folder",
"Create Project": "Create Project",
"Add Comment": "Add Comment",
"Upload Attachment": "Upload Attachment",
"Find Task": "Find Task",
"Find Folder / Project": "Find Folder / Project",
"Custom API Call": "自定义 API 呼叫",
"Create a new task in Wrike": "Create a new task in Wrike",
"Update fields of an existing task in Wrike": "Update fields of an existing task in Wrike",
"Create a new folder in Wrike": "Create a new folder in Wrike",
"Create a new project in Wrike": "Create a new project in Wrike",
"Add a comment or internal note to a task or folder": "Add a comment or internal note to a task or folder",
"Upload a file and attach it to a task or folder": "Upload a file and attach it to a task or folder",
"Retrieve a task by its ID or lookup fields": "Retrieve a task by its ID or lookup fields",
"Retrieve folder / project metadata by ID or name": "Retrieve folder / project metadata by ID or name",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Folder ID": "Folder ID",
"Task Title": "Task Title",
"Description": "描述",
"Status": "状态",
"Importance": "Importance",
"Assignees": "Assignees",
"Start Date": "Start Date",
"Due Date": "Due Date",
"Duration": "期限",
"Custom Fields": "Custom Fields",
"Task ID": "Task ID",
"Parent Folder ID": "Parent Folder ID",
"Folder Title": "Folder Title",
"Shared Users": "Shared Users",
"Create as Project": "Create as Project",
"Project Owner ID": "Project Owner ID",
"Project Start Date": "Project Start Date",
"Project End Date": "Project End Date",
"Project Title": "Project Title",
"Owner IDs": "Owner IDs",
"End Date": "End Date",
"Entity Type": "Entity Type",
"Entity ID": "Entity ID",
"Comment Text": "Comment Text",
"Plain Text": "Plain Text",
"File": "文件",
"File Name": "File Name",
"Assignee IDs": "Assignee IDs",
"Author IDs": "Author IDs",
"Page Size": "Page Size",
"Sort Field": "Sort Field",
"Sort Order": "Sort Order",
"Title": "标题",
"Parent IDs": "Parent IDs",
"Is Project": "Is Project",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"The ID of the folder where the task will be created": "The ID of the folder where the task will be created",
"The title of the task": "The title of the task",
"The description of the task": "The description of the task",
"The status of the task": "The status of the task",
"The importance/priority of the task": "The importance/priority of the task",
"User IDs to assign to the task": "User IDs to assign to the task",
"Task start date (format: YYYY-MM-DD)": "Task start date (format: YYYY-MM-DD)",
"Task due date (format: YYYY-MM-DD)": "Task due date (format: YYYY-MM-DD)",
"Task duration in minutes": "Task duration in minutes",
"Custom field values for the task": "Custom field values for the task",
"The ID of the task to update": "The ID of the task to update",
"The new title of the task": "The new title of the task",
"The new description of the task": "The new description of the task",
"The new status of the task": "The new status of the task",
"The new importance/priority of the task": "The new importance/priority of the task",
"User IDs to assign to the task (replaces existing assignees)": "User IDs to assign to the task (replaces existing assignees)",
"Custom field values to update for the task": "Custom field values to update for the task",
"The ID of the parent folder where the new folder will be created. Leave empty to create at root level.": "The ID of the parent folder where the new folder will be created. Leave empty to create at root level.",
"The title of the folder": "The title of the folder",
"The description of the folder": "The description of the folder",
"User IDs to share the folder with": "User IDs to share the folder with",
"Whether this folder should be created as a project with additional project settings": "Whether this folder should be created as a project with additional project settings",
"The ID of the user who will own the project (required when creating as project)": "The ID of the user who will own the project (required when creating as project)",
"The start date of the project (format: YYYY-MM-DD)": "The start date of the project (format: YYYY-MM-DD)",
"The end date of the project (format: YYYY-MM-DD)": "The end date of the project (format: YYYY-MM-DD)",
"The ID of the parent folder where the project will be created. Leave empty to create at root level.": "The ID of the parent folder where the project will be created. Leave empty to create at root level.",
"The title of the project": "The title of the project",
"The description of the project": "The description of the project",
"User IDs who will own the project": "User IDs who will own the project",
"User IDs to share the project with": "User IDs to share the project with",
"Project start date (format: YYYY-MM-DD)": "Project start date (format: YYYY-MM-DD)",
"Project end date (format: YYYY-MM-DD)": "Project end date (format: YYYY-MM-DD)",
"Select whether you want to add the comment to a task or folder": "Select whether you want to add the comment to a task or folder",
"The ID of the task or folder to add the comment to": "The ID of the task or folder to add the comment to",
"The text content of the comment": "The text content of the comment",
"Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.": "Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.",
"Select whether to attach the file to a task or folder": "Select whether to attach the file to a task or folder",
"The ID of the task or folder to attach the file to": "The ID of the task or folder to attach the file to",
"The file to upload and attach": "The file to upload and attach",
"Optional custom name for the uploaded file": "Optional custom name for the uploaded file",
"The ID of the task to retrieve. If provided, other search criteria will be ignored.": "The ID of the task to retrieve. If provided, other search criteria will be ignored.",
"Search for tasks by title (partial match)": "Search for tasks by title (partial match)",
"Search for tasks within a specific folder": "Search for tasks within a specific folder",
"Filter tasks by status": "Filter tasks by status",
"Filter tasks by importance/priority": "Filter tasks by importance/priority",
"Filter tasks by assignee user IDs": "Filter tasks by assignee user IDs",
"Filter tasks by author user IDs": "Filter tasks by author user IDs",
"Maximum number of tasks to return (max 1000)": "Maximum number of tasks to return (max 1000)",
"Field to sort tasks by": "Field to sort tasks by",
"Sort order for results": "Sort order for results",
"The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.": "The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.",
"Search for folders/projects by title (partial match)": "Search for folders/projects by title (partial match)",
"Search for folders/projects within specific parent folders": "Search for folders/projects within specific parent folders",
"Filter to only return projects (folders marked as projects)": "Filter to only return projects (folders marked as projects)",
"Maximum number of folders/projects to return (max 1000)": "Maximum number of folders/projects to return (max 1000)",
"Filter by authors (users who created the folders)": "Filter by authors (users who created the folders)",
"Filter by owners (users who own the projects)": "Filter by owners (users who own the projects)",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"Active": "使用中",
"Completed": "Completed",
"Deferred": "Deferred",
"Cancelled": "Cancelled",
"Low": "Low",
"Normal": "Normal",
"High": "High",
"Critical": "Critical",
"Task": "Task",
"Folder": "Folder",
"Created Date": "Created Date",
"Updated Date": "Updated Date",
"Completed Date": "Completed Date",
"Ascending": "升序",
"Descending": "降序",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色",
"New Task": "New Task",
"New Folder": "新建文件夹",
"New Subtask Created": "New Subtask Created",
"Fires when a new task is created in Wrike (optionally within a folder).": "Fires when a new task is created in Wrike (optionally within a folder).",
"Fires when a new folder (or project) is created in Wrike.": "Fires when a new folder (or project) is created in Wrike.",
"Triggers when a subtask is created.": "Triggers when a subtask is created.",
"Parent Task ID": "Parent Task ID",
"Optional: Only trigger for tasks created in this specific folder": "Optional: Only trigger for tasks created in this specific folder",
"Optional: Only trigger for folders created in this specific parent folder": "Optional: Only trigger for folders created in this specific parent folder",
"Optional: Only trigger for subtasks created under this specific parent task": "Optional: Only trigger for subtasks created under this specific parent task"
}

View File

@@ -0,0 +1,48 @@
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { createPiece, PieceAuth } from "@activepieces/pieces-framework";
import { PieceCategory } from '@activepieces/shared';
import { wrikeAuth } from './lib/common/auth';
import { createTask } from './lib/actions/create-task';
import { updateTask } from './lib/actions/update-task';
import { createFolder } from './lib/actions/create-folder';
import { createProject } from './lib/actions/create-project';
import { addComment } from './lib/actions/add-comment';
import { uploadAttachment } from './lib/actions/upload-attachment';
import { findTask } from './lib/actions/find-task';
import { findFolder } from './lib/actions/find-folder';
import { newTask } from './lib/triggers/new-task';
import { newFolder } from './lib/triggers/new-folder';
import { newSubtask } from './lib/triggers/new-subtask';
export const wrike = createPiece({
displayName: "Wrike",
auth: wrikeAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: "https://cdn.activepieces.com/pieces/wrike.png",
categories: [PieceCategory.PRODUCTIVITY],
authors: ['owuzo','sanket-a11y'],
actions: [
createTask,
updateTask,
createFolder,
createProject,
addComment,
uploadAttachment,
findTask,
findFolder,
createCustomApiCallAction({
baseUrl: () => 'https://www.wrike.com/api/v4',
auth: wrikeAuth,
authMapping: async (auth) => ({
Authorization: `Bearer ${(auth as any).access_token}`,
}),
}),
],
triggers: [
newTask,
newFolder,
newSubtask,
],
});

View File

@@ -0,0 +1,58 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const addComment = createAction({
name: 'add_comment',
displayName: 'Add Comment',
description: 'Add a comment or internal note to a task or folder',
auth: wrikeAuth,
props: {
entityType: Property.StaticDropdown({
displayName: 'Entity Type',
description: 'Select whether you want to add the comment to a task or folder',
required: true,
options: {
options: [
{ label: 'Task', value: 'tasks' },
{ label: 'Folder', value: 'folders' },
],
},
}),
entityId: Property.ShortText({
displayName: 'Entity ID',
description: 'The ID of the task or folder to add the comment to',
required: true,
}),
text: Property.LongText({
displayName: 'Comment Text',
description: 'The text content of the comment',
required: true,
}),
plainText: Property.Checkbox({
displayName: 'Plain Text',
description: 'Whether the comment should be treated as plain text (no HTML formatting). Default is HTML formatting.',
required: false,
defaultValue: false,
}),
},
async run(context) {
const commentData: Record<string, any> = {
text: context.propsValue['text'],
};
if (context.propsValue['plainText'] !== undefined) {
commentData['plainText'] = context.propsValue['plainText'];
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.POST,
resourceUri: `/${context.propsValue['entityType']}/${context.propsValue['entityId']}/comments`,
body: commentData,
});
return response.body;
},
});

View File

@@ -0,0 +1,110 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/dot-notation */
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const createFolder = createAction({
name: 'create_folder',
displayName: 'Create Folder',
description: 'Create a new folder in Wrike',
auth: wrikeAuth,
props: {
parentFolderId: Property.ShortText({
displayName: 'Parent Folder ID',
description: 'The ID of the parent folder where the new folder will be created. Leave empty to create at root level.',
required: false,
}),
title: Property.ShortText({
displayName: 'Folder Title',
description: 'The title of the folder',
required: true,
}),
description: Property.LongText({
displayName: 'Description',
description: 'The description of the folder',
required: false,
}),
shareds: Property.Array({
displayName: 'Shared Users',
description: 'User IDs to share the folder with',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
project: Property.Checkbox({
displayName: 'Create as Project',
description: 'Whether this folder should be created as a project with additional project settings',
required: false,
defaultValue: false,
}),
projectOwnerId: Property.ShortText({
displayName: 'Project Owner ID',
description: 'The ID of the user who will own the project (required when creating as project)',
required: false,
}),
projectStartDate: Property.DateTime({
displayName: 'Project Start Date',
description: 'The start date of the project (format: YYYY-MM-DD)',
required: false,
}),
projectEndDate: Property.DateTime({
displayName: 'Project End Date',
description: 'The end date of the project (format: YYYY-MM-DD)',
required: false,
}),
},
async run(context) {
const props = context.propsValue as any;
const { parentFolderId, title, description, shareds, project, projectOwnerId, projectStartDate, projectEndDate } = props;
const folderData: Record<string, any> = {
title,
};
if (description) folderData['description'] = description;
if (shareds && shareds.length > 0) {
folderData['shareds'] = shareds.map((shared: any) => shared.userId);
}
if (project) {
const projectData: Record<string, any> = {};
if (projectOwnerId) {
projectData['ownerIds'] = [projectOwnerId];
} else {
projectData['ownerIds'] = [context.auth.access_token.split('.')[0]];
}
if (projectStartDate) {
projectData['startDate'] = projectStartDate.split('T')[0]; // Format as YYYY-MM-DD
}
if (projectEndDate) {
projectData['endDate'] = projectEndDate.split('T')[0]; // Format as YYYY-MM-DD
}
folderData['project'] = projectData;
}
let resourceUri = '/folders';
if (parentFolderId) {
resourceUri = `/folders/${parentFolderId}/folders`;
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.POST,
resourceUri,
body: folderData,
});
return response.body;
},
});

View File

@@ -0,0 +1,99 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const createProject = createAction({
name: 'create_project',
displayName: 'Create Project',
description: 'Create a new project in Wrike',
auth: wrikeAuth,
props: {
parentFolderId: Property.ShortText({
displayName: 'Parent Folder ID',
description: 'The ID of the parent folder where the project will be created. Leave empty to create at root level.',
required: false,
}),
title: Property.ShortText({
displayName: 'Project Title',
description: 'The title of the project',
required: true,
}),
description: Property.LongText({
displayName: 'Description',
description: 'The description of the project',
required: false,
}),
ownerIds: Property.Array({
displayName: 'Owner IDs',
description: 'User IDs who will own the project',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
shareds: Property.Array({
displayName: 'Shared Users',
description: 'User IDs to share the project with',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
start_date: Property.DateTime({
displayName: 'Start Date',
description: 'Project start date (format: YYYY-MM-DD)',
required: false,
}),
end_date: Property.DateTime({
displayName: 'End Date',
description: 'Project end date (format: YYYY-MM-DD)',
required: false,
}),
},
async run(context) {
const props = context.propsValue as any;
const { parentFolderId, title, description, ownerIds, shareds, start_date, end_date } = props;
const projectData: Record<string, any> = {
title,
project: {},
};
if (ownerIds && ownerIds.length > 0) {
projectData['project']['ownerIds'] = ownerIds.map((owner: any) => owner.userId);
}
if (description) projectData['description'] = description;
if (shareds && shareds.length > 0) {
projectData['shareds'] = shareds.map((shared: any) => shared.userId);
}
if (start_date || end_date) {
projectData['project']['dates'] = {};
if (start_date) projectData['project']['dates']['start'] = start_date.split('T')[0];
if (end_date) projectData['project']['dates']['end'] = end_date.split('T')[0];
}
let resourceUri = '/folders';
if (parentFolderId) {
resourceUri = `/folders/${parentFolderId}/folders`;
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.POST,
resourceUri,
body: projectData,
});
return response.body;
},
});

View File

@@ -0,0 +1,137 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const createTask = createAction({
name: 'create_task',
displayName: 'Create Task',
description: 'Create a new task in Wrike',
auth: wrikeAuth,
props: {
folderId: Property.ShortText({
displayName: 'Folder ID',
description: 'The ID of the folder where the task will be created',
required: true,
}),
title: Property.ShortText({
displayName: 'Task Title',
description: 'The title of the task',
required: true,
}),
description: Property.LongText({
displayName: 'Description',
description: 'The description of the task',
required: false,
}),
status: Property.StaticDropdown({
displayName: 'Status',
description: 'The status of the task',
required: false,
options: {
options: [
{ label: 'Active', value: 'Active' },
{ label: 'Completed', value: 'Completed' },
{ label: 'Deferred', value: 'Deferred' },
{ label: 'Cancelled', value: 'Cancelled' },
],
},
}),
importance: Property.StaticDropdown({
displayName: 'Importance',
description: 'The importance/priority of the task',
required: false,
options: {
options: [
{ label: 'Low', value: 'Low' },
{ label: 'Normal', value: 'Normal' },
{ label: 'High', value: 'High' },
{ label: 'Critical', value: 'Critical' },
],
},
}),
assignees: Property.Array({
displayName: 'Assignees',
description: 'User IDs to assign to the task',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
start_date: Property.DateTime({
displayName: 'Start Date',
description: 'Task start date (format: YYYY-MM-DD)',
required: false,
}),
due_date: Property.DateTime({
displayName: 'Due Date',
description: 'Task due date (format: YYYY-MM-DD)',
required: false,
}),
duration: Property.Number({
displayName: 'Duration',
description: 'Task duration in minutes',
required: false,
}),
customFields: Property.Array({
displayName: 'Custom Fields',
description: 'Custom field values for the task',
required: false,
properties: {
fieldId: Property.ShortText({
displayName: 'Field ID',
description: 'Custom field identifier',
required: true,
}),
value: Property.ShortText({
displayName: 'Value',
description: 'Field value',
required: true,
}),
},
}),
},
async run(context) {
const props = context.propsValue as any;
const { folderId, title, description, status, importance, assignees, start_date, due_date, duration, customFields } = props;
const taskData: Record<string, any> = {
title,
};
if (description) taskData['description'] = description;
if (status) taskData['status'] = status;
if (importance) taskData['importance'] = importance;
if (assignees && assignees.length > 0) {
taskData['responsibles'] = assignees.map((assignee: any) => assignee.userId);
}
const dates: Record<string, any> = {};
if (start_date) dates['start'] = start_date;
if (due_date) dates['due'] = due_date;
if (duration) dates['duration'] = duration;
if (Object.keys(dates).length > 0) {
taskData['dates'] = dates;
}
if (customFields && customFields.length > 0) {
taskData['customFields'] = customFields.map((field: any) => ({
id: field.fieldId,
value: field.value,
}));
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.POST,
resourceUri: `/folders/${folderId}/tasks`,
body: taskData,
});
return response.body;
},
});

View File

@@ -0,0 +1,104 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const findFolder = createAction({
name: 'find_folder',
displayName: 'Find Folder / Project',
description: 'Retrieve folder / project metadata by ID or name',
auth: wrikeAuth,
props: {
folderId: Property.ShortText({
displayName: 'Folder ID',
description: 'The ID of the folder/project to retrieve. If provided, other search criteria will be ignored.',
required: false,
}),
title: Property.ShortText({
displayName: 'Title',
description: 'Search for folders/projects by title (partial match)',
required: false,
}),
parentIds: Property.Array({
displayName: 'Parent IDs',
description: 'Search for folders/projects within specific parent folders',
required: false,
properties: {
folderId: Property.ShortText({
displayName: 'Folder ID',
required: true,
}),
},
}),
project: Property.Checkbox({
displayName: 'Is Project',
description: 'Filter to only return projects (folders marked as projects)',
required: false,
}),
pageSize: Property.Number({
displayName: 'Page Size',
description: 'Maximum number of folders/projects to return (max 1000)',
required: false,
defaultValue: 100,
}),
authors: Property.Array({
displayName: 'Author IDs',
description: 'Filter by authors (users who created the folders)',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
owners: Property.Array({
displayName: 'Owner IDs',
description: 'Filter by owners (users who own the projects)',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
},
async run(context) {
const props = context.propsValue as any;
const { folderId, title, parentIds, project, pageSize, authors, owners } = props;
if (folderId) {
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.GET,
resourceUri: `/folders/${folderId}`,
});
return response.body;
}
const queryParams: Record<string, string> = {};
if (title) queryParams['title'] = title;
if (parentIds && parentIds.length > 0) {
queryParams['parentIds'] = parentIds.map((parent: any) => parent.folderId).join(',');
}
if (project !== undefined) queryParams['project'] = project.toString();
if (pageSize) queryParams['pageSize'] = pageSize.toString();
if (authors && authors.length > 0) {
queryParams['authors'] = authors.map((author: any) => author.userId).join(',');
}
if (owners && owners.length > 0) {
queryParams['owners'] = owners.map((owner: any) => owner.userId).join(',');
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.GET,
resourceUri: '/folders',
queryParams,
});
return response.body;
},
});

View File

@@ -0,0 +1,150 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const findTask = createAction({
name: 'find_task',
displayName: 'Find Task',
description: 'Retrieve a task by its ID or lookup fields',
auth: wrikeAuth,
props: {
taskId: Property.ShortText({
displayName: 'Task ID',
description: 'The ID of the task to retrieve. If provided, other search criteria will be ignored.',
required: false,
}),
title: Property.ShortText({
displayName: 'Task Title',
description: 'Search for tasks by title (partial match)',
required: false,
}),
folderId: Property.ShortText({
displayName: 'Folder ID',
description: 'Search for tasks within a specific folder',
required: false,
}),
status: Property.StaticDropdown({
displayName: 'Status',
description: 'Filter tasks by status',
required: false,
options: {
options: [
{ label: 'Active', value: 'Active' },
{ label: 'Completed', value: 'Completed' },
{ label: 'Deferred', value: 'Deferred' },
{ label: 'Cancelled', value: 'Cancelled' },
],
},
}),
importance: Property.StaticDropdown({
displayName: 'Importance',
description: 'Filter tasks by importance/priority',
required: false,
options: {
options: [
{ label: 'Low', value: 'Low' },
{ label: 'Normal', value: 'Normal' },
{ label: 'High', value: 'High' },
{ label: 'Critical', value: 'Critical' },
],
},
}),
assignees: Property.Array({
displayName: 'Assignee IDs',
description: 'Filter tasks by assignee user IDs',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
authors: Property.Array({
displayName: 'Author IDs',
description: 'Filter tasks by author user IDs',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
pageSize: Property.Number({
displayName: 'Page Size',
description: 'Maximum number of tasks to return (max 1000)',
required: false,
defaultValue: 100,
}),
sortField: Property.StaticDropdown({
displayName: 'Sort Field',
description: 'Field to sort tasks by',
required: false,
options: {
options: [
{ label: 'Created Date', value: 'CreatedDate' },
{ label: 'Updated Date', value: 'UpdatedDate' },
{ label: 'Due Date', value: 'DueDate' },
{ label: 'Start Date', value: 'StartDate' },
{ label: 'Completed Date', value: 'CompletedDate' },
{ label: 'Title', value: 'Title' },
{ label: 'Status', value: 'Status' },
{ label: 'Importance', value: 'Importance' },
],
},
}),
sortOrder: Property.StaticDropdown({
displayName: 'Sort Order',
description: 'Sort order for results',
required: false,
options: {
options: [
{ label: 'Ascending', value: 'Asc' },
{ label: 'Descending', value: 'Desc' },
],
},
}),
},
async run(context) {
const props = context.propsValue as any;
const { taskId, title, folderId, status, importance, assignees, authors, pageSize, sortField, sortOrder } = props;
if (taskId) {
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.GET,
resourceUri: `/tasks/${taskId}`,
});
return response.body;
}
const queryParams: Record<string, string> = {};
if (title) queryParams['title'] = title;
if (folderId) queryParams['folderId'] = folderId;
if (status) queryParams['status'] = status;
if (importance) queryParams['importance'] = importance;
if (pageSize) queryParams['pageSize'] = pageSize.toString();
if (sortField) queryParams['sortField'] = sortField;
if (sortOrder) queryParams['sortOrder'] = sortOrder;
if (assignees && assignees.length > 0) {
queryParams['responsibles'] = assignees.map((assignee: any) => assignee.userId).join(',');
}
if (authors && authors.length > 0) {
queryParams['authors'] = authors.map((author: any) => author.userId).join(',');
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.GET,
resourceUri: '/tasks',
queryParams,
});
return response.body;
},
});

View File

@@ -0,0 +1,136 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const updateTask = createAction({
name: 'update_task',
displayName: 'Update Task',
description: 'Update fields of an existing task in Wrike',
auth: wrikeAuth,
props: {
taskId: Property.ShortText({
displayName: 'Task ID',
description: 'The ID of the task to update',
required: true,
}),
title: Property.ShortText({
displayName: 'Task Title',
description: 'The new title of the task',
required: false,
}),
description: Property.LongText({
displayName: 'Description',
description: 'The new description of the task',
required: false,
}),
status: Property.StaticDropdown({
displayName: 'Status',
description: 'The new status of the task',
required: false,
options: {
options: [
{ label: 'Active', value: 'Active' },
{ label: 'Completed', value: 'Completed' },
{ label: 'Deferred', value: 'Deferred' },
{ label: 'Cancelled', value: 'Cancelled' },
],
},
}),
importance: Property.StaticDropdown({
displayName: 'Importance',
description: 'The new importance/priority of the task',
required: false,
options: {
options: [
{ label: 'Low', value: 'Low' },
{ label: 'Normal', value: 'Normal' },
{ label: 'High', value: 'High' },
{ label: 'Critical', value: 'Critical' },
],
},
}),
assignees: Property.Array({
displayName: 'Assignees',
description: 'User IDs to assign to the task (replaces existing assignees)',
required: false,
properties: {
userId: Property.ShortText({
displayName: 'User ID',
required: true,
}),
},
}),
start_date: Property.DateTime({
displayName: 'Start Date',
description: 'Task start date (format: YYYY-MM-DD)',
required: false,
}),
due_date: Property.DateTime({
displayName: 'Due Date',
description: 'Task due date (format: YYYY-MM-DD)',
required: false,
}),
duration: Property.Number({
displayName: 'Duration',
description: 'Task duration in minutes',
required: false,
}),
customFields: Property.Array({
displayName: 'Custom Fields',
description: 'Custom field values to update for the task',
required: false,
properties: {
fieldId: Property.ShortText({
displayName: 'Field ID',
description: 'Custom field identifier',
required: true,
}),
value: Property.ShortText({
displayName: 'Value',
description: 'New field value',
required: true,
}),
},
}),
},
async run(context) {
const props = context.propsValue as any;
const { taskId, title, description, status, importance, assignees, start_date, due_date, duration, customFields } = props;
const taskData: Record<string, any> = {};
if (title) taskData['title'] = title;
if (description !== undefined) taskData['description'] = description;
if (status) taskData['status'] = status;
if (importance) taskData['importance'] = importance;
if (assignees && assignees.length > 0) {
taskData['responsibles'] = assignees.map((assignee: any) => assignee.userId);
}
const dates: Record<string, any> = {};
if (start_date) dates['start'] = start_date;
if (due_date) dates['due'] = due_date;
if (duration) dates['duration'] = duration;
if (Object.keys(dates).length > 0) {
taskData['dates'] = dates;
}
if (customFields && customFields.length > 0) {
taskData['customFields'] = customFields.map((field: any) => ({
id: field.fieldId,
value: field.value,
}));
}
const response = await wrikeCommon.apiCall({
auth: context.auth,
method: HttpMethod.PUT,
resourceUri: `/tasks/${taskId}`,
body: taskData,
});
return response.body;
},
});

View File

@@ -0,0 +1,60 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient, AuthenticationType } from '@activepieces/pieces-common';
import { wrikeAuth } from '../common/auth';
import { wrikeCommon } from '../common/client';
export const uploadAttachment = createAction({
name: 'upload_attachment',
displayName: 'Upload Attachment',
description: 'Upload a file and attach it to a task or folder',
auth: wrikeAuth,
props: {
entityType: Property.StaticDropdown({
displayName: 'Entity Type',
description: 'Select whether to attach the file to a task or folder',
required: true,
options: {
options: [
{ label: 'Task', value: 'tasks' },
{ label: 'Folder', value: 'folders' },
],
},
}),
entityId: Property.ShortText({
displayName: 'Entity ID',
description: 'The ID of the task or folder to attach the file to',
required: true,
}),
file: Property.File({
displayName: 'File',
description: 'The file to upload and attach',
required: true,
}),
fileName: Property.ShortText({
displayName: 'File Name',
description: 'Optional custom name for the uploaded file',
required: false,
}),
},
async run(context) {
const props = context.propsValue as any;
const { entityType, entityId, file, fileName } = props;
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: `${wrikeCommon.baseUrl}/${entityType}/${entityId}/attachments`,
body: file.data,
authentication: {
type: AuthenticationType.BEARER_TOKEN,
token: context.auth.access_token,
},
headers: {
'Content-Type': 'application/octet-stream',
'X-Requested-With': 'XMLHttpRequest',
'X-File-Name': fileName || file.filename,
},
});
return response.body;
},
});

View File

@@ -0,0 +1,19 @@
import { PieceAuth } from '@activepieces/pieces-framework';
export const wrikeAuth = PieceAuth.OAuth2({
description: `
To obtain your OAuth2 credentials:
1. Go to Wrike (https://www.wrike.com/)
2. Sign in to your account or create one
3. Go to Apps & Integrations (https://www.wrike.com/apps/)
4. Click "Create new app" or use an existing one
5. For local development, add \`http://localhost:4200/redirect\` to the allowed redirect URIs
6. For production, add \`https://cloud.activepieces.com/redirect\` to the allowed redirect URIs
7. Copy the Client ID and Client Secret
`,
authUrl: 'https://login.wrike.com/oauth2/authorize/v4',
tokenUrl: 'https://login.wrike.com/oauth2/token',
required: true,
scope: []
});

View File

@@ -0,0 +1,33 @@
import { httpClient, HttpMethod, AuthenticationType } from '@activepieces/pieces-common';
import { OAuth2PropertyValue } from '@activepieces/pieces-framework';
const WRIKE_API_BASE_URL = 'https://www.wrike.com/api/v4';
export const wrikeCommon = {
baseUrl: WRIKE_API_BASE_URL,
async apiCall({
auth,
method,
resourceUri,
body = undefined,
queryParams = undefined,
}: {
auth: OAuth2PropertyValue;
method: HttpMethod;
resourceUri: string;
body?: any;
queryParams?: Record<string, string>;
}) {
return await httpClient.sendRequest({
method: method,
url: `${WRIKE_API_BASE_URL}${resourceUri}`,
body,
queryParams,
authentication: {
type: AuthenticationType.BEARER_TOKEN,
token: auth.access_token,
}
});
}
};

View File

@@ -0,0 +1,97 @@
import { Property } from '@activepieces/pieces-framework';
import { wrikeAuth } from '../common/auth';
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
import { wrikeCommon } from '../common/client';
export const newFolder = createTrigger({
name: 'new_folder',
displayName: 'New Folder',
description: 'Fires when a new folder (or project) is created in Wrike.',
auth: wrikeAuth,
type: TriggerStrategy.WEBHOOK,
props: {
parentFolderId: Property.ShortText({
displayName: 'Parent Folder ID',
description:
'Optional: Only trigger for folders created in this specific parent folder',
required: false,
}),
},
sampleData: {
folderId: 'IEAAABDMI4AB5FML',
webhookId: 'IEAAABDMJAAAABA7',
eventAuthorId: 'KUAAABLG',
eventType: 'FolderCreated',
lastUpdatedDate: '2024-09-05T07:49:34Z',
},
onEnable: async (context) => {
const webhookUrl = context.webhookUrl;
const { parentFolderId } = context.propsValue;
const webhookData: Record<string, any> = {
hookUrl: webhookUrl,
};
if (parentFolderId) {
webhookData['folderId'] = parentFolderId;
}
const request: HttpRequest = {
method: HttpMethod.POST,
url: `${wrikeCommon.baseUrl}/webhooks`,
body: webhookData,
headers: {
Authorization: `Bearer ${context.auth.access_token}`,
'Content-Type': 'application/json',
},
};
const { status, body } = await httpClient.sendRequest(request);
if (status !== 200) {
throw new Error(
`Failed to register webhook. Status: ${status}, Body: ${JSON.stringify(
body
)}`
);
}
await context.store.put('webhook_id', body.data[0].id);
},
onDisable: async (context) => {
const webhookId = await context.store.get('webhook_id');
if (webhookId) {
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: `${wrikeCommon.baseUrl}/webhooks/${webhookId}`,
headers: {
Authorization: `Bearer ${context.auth.access_token}`,
},
};
try {
await httpClient.sendRequest(request);
await context.store.delete('webhook_id');
} catch (error) {
console.warn('Failed to unregister webhook:', error);
}
}
},
run: async (context) => {
const payload = context.payload.body as any;
if (payload && payload.eventType === 'FolderCreated') {
return payload;
}
return [];
},
});

View File

@@ -0,0 +1,98 @@
import { Property } from '@activepieces/pieces-framework';
import { wrikeAuth } from '../common/auth';
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
import { wrikeCommon } from '../common/client';
export const newSubtask = createTrigger({
name: 'new_subtask_created',
displayName: 'New Subtask Created',
description: 'Triggers when a subtask is created.',
auth: wrikeAuth,
type: TriggerStrategy.WEBHOOK,
props: {
parentTaskId: Property.ShortText({
displayName: 'Parent Task ID',
description:
'Optional: Only trigger for subtasks created under this specific parent task',
required: false,
}),
},
sampleData: {
addedParents: ['IEAAABDCI4AB5FLD', 'IEAAABDCI4AB5FLE'],
taskId: 'IEAAABDCKQAB5FLC',
webhookId: 'IEAAABDCJAAAABAW',
eventAuthorId: 'KUAAABKY',
eventType: 'TaskParentsAdded',
lastUpdatedDate: '2024-09-05T07:22:25Z',
},
onEnable: async (context) => {
const webhookUrl = context.webhookUrl;
const { parentTaskId } = context.propsValue;
const webhookData: Record<string, any> = {
hookUrl: webhookUrl,
};
if (parentTaskId) {
webhookData['taskId'] = parentTaskId;
}
const request: HttpRequest = {
method: HttpMethod.POST,
url: `${wrikeCommon.baseUrl}/webhooks`,
body: webhookData,
headers: {
Authorization: `Bearer ${context.auth.access_token}`,
'Content-Type': 'application/json',
},
};
const { status, body } = await httpClient.sendRequest(request);
if (status !== 200) {
throw new Error(
`Failed to register webhook. Status: ${status}, Body: ${JSON.stringify(
body
)}`
);
}
await context.store.put('webhook_id', body.data[0].id);
},
onDisable: async (context) => {
const webhookId = await context.store.get('webhook_id');
if (webhookId) {
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: `${wrikeCommon.baseUrl}/webhooks/${webhookId}`,
headers: {
Authorization: `Bearer ${context.auth.access_token}`,
},
};
try {
await httpClient.sendRequest(request);
await context.store.delete('webhook_id');
} catch (error) {
console.warn('Failed to unregister webhook:', error);
}
}
},
run: async (context) => {
const payload = context.payload.body as any;
if (payload && payload.eventType === 'TaskParentsAdded') {
return payload;
}
return [payload];
},
});

View File

@@ -0,0 +1,97 @@
import { Property } from '@activepieces/pieces-framework';
import { wrikeAuth } from '../common/auth';
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { TriggerStrategy, createTrigger } from '@activepieces/pieces-framework';
import { wrikeCommon } from '../common/client';
export const newTask = createTrigger({
name: 'new_task',
displayName: 'New Task',
description:
'Fires when a new task is created in Wrike (optionally within a folder).',
auth: wrikeAuth,
type: TriggerStrategy.WEBHOOK,
props: {
folderId: Property.ShortText({
displayName: 'Folder ID',
description:
'Optional: Only trigger for tasks created in this specific folder',
required: false,
}),
},
sampleData: {
webhookId: 'IEAAABC6JAAAABAS',
eventAuthorId: 'KUAAABKU',
eventType: 'TaskCreated',
taskId: 'IEAAABC6KQAB5FKW',
lastUpdatedDate: '2016-10-10T11:33:28Z',
},
onEnable: async (context) => {
const webhookUrl = context.webhookUrl;
const { folderId } = context.propsValue;
const webhookData: Record<string, any> = {
hookUrl: webhookUrl,
};
if (folderId) {
webhookData['folderId'] = folderId;
}
const request: HttpRequest = {
method: HttpMethod.POST,
url: `${wrikeCommon.baseUrl}/webhooks`,
body: webhookData,
headers: {
Authorization: `Bearer ${context.auth.access_token}`,
'Content-Type': 'application/json',
},
};
const { status, body } = await httpClient.sendRequest(request);
if (status !== 200) {
throw new Error(
`Failed to register webhook. Status: ${status}, Body: ${JSON.stringify(
body
)}`
);
}
await context.store.put('webhook_id', body.data[0].id);
},
onDisable: async (context) => {
const webhookId = await context.store.get('webhook_id');
if (webhookId) {
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: `${wrikeCommon.baseUrl}/webhooks/${webhookId}`,
headers: {
Authorization: `Bearer ${context.auth.access_token}`,
},
};
try {
await httpClient.sendRequest(request);
await context.store.delete('webhook_id');
} catch (error) {
console.warn('Failed to unregister webhook:', error);
}
}
},
run: async (context) => {
const payload = context.payload.body as any;
if (payload && payload.eventType === 'TaskCreated') {
return payload.data;
}
return [];
},
});

View File

@@ -0,0 +1,20 @@
{
"extends": "../../../../tsconfig.base.json",
"compilerOptions": {
"module": "commonjs",
"forceConsistentCasingInFileNames": true,
"strict": true,
"importHelpers": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noPropertyAccessFromIndexSignature": true
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
]
}

View File

@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"include": ["src/**/*.ts"]
}