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:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"extends": ["../../../../.eslintrc.json"],
|
||||
"ignorePatterns": ["!**/*"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.ts", "*.tsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-monday
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Running lint
|
||||
|
||||
Run `nx lint pieces-monday` to execute the lint via [ESLint](https://eslint.org/).
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "@activepieces/piece-monday",
|
||||
"version": "0.2.20",
|
||||
"dependencies": {
|
||||
"monday-sdk-js": "0.5.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "pieces-monday",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/monday/src",
|
||||
"projectType": "library",
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/monday",
|
||||
"tsConfig": "packages/pieces/community/monday/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/monday/package.json",
|
||||
"main": "packages/pieces/community/monday/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/monday/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/monday/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/monday",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"monday.com": "monday.com",
|
||||
"Work operating system for businesses": "Work operating system for businesses",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Create Column",
|
||||
"Create Group": "Create Group",
|
||||
"Create Item": "Create Item",
|
||||
"Create Update": "Create Update",
|
||||
"Get Board Values": "Get Board Values",
|
||||
"Get an Item's Column Values": "Get an Item's Column Values",
|
||||
"Update Column Values of Specific Item": "Update Column Values of Specific Item",
|
||||
"Update Item Name": "Update Item Name",
|
||||
"Upload File to Column": "Upload File to Column",
|
||||
"Creates a new column in board.": "Creates a new column in board.",
|
||||
"Creates a new group in board.": "Creates a new group in board.",
|
||||
"Creates a new item inside a board.": "Creates a new item inside a board.",
|
||||
"Creates a new update.": "Creates a new update.",
|
||||
"Gets a list of board's items.": "Gets a list of board's items.",
|
||||
"Gets column values of an item.": "Gets column values of an item.",
|
||||
"Updates multiple columns values of specific item.": "Updates multiple columns values of specific item.",
|
||||
"Updates an item name.": "Updates an item name.",
|
||||
"Upload a file to a column in Monday.": "Upload a file to a column in Monday.",
|
||||
"Workspace ID": "Workspace ID",
|
||||
"Board ID": "Board ID",
|
||||
"Column Title": "Column Title",
|
||||
"Column Type": "Column Type",
|
||||
"Group Name": "Group Name",
|
||||
"Board Group ID": "Board Group ID",
|
||||
"Item Name": "Item Name",
|
||||
"Columns": "Columns",
|
||||
"Create Labels if Missing": "Create Labels if Missing",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Body",
|
||||
"Column IDs": "Column IDs",
|
||||
"New Item name": "New Item name",
|
||||
"File Column ID": "File Column ID",
|
||||
"File": "File",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Creates status/dropdown labels if they are missing. This requires permission to change the board structure.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limit data output by specifying column IDs; leave empty to display all columns.",
|
||||
"The file URL or base64 to upload.": "The file URL or base64 to upload.",
|
||||
"Auto Number": "Auto Number",
|
||||
"Color Picker": "Color Picker",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Country",
|
||||
"Creation Log": "Creation Log",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "Email",
|
||||
"Hour": "Hour",
|
||||
"Last Updated": "Last Updated",
|
||||
"Link": "Link",
|
||||
"Location": "Location",
|
||||
"Long Text": "Long Text",
|
||||
"Numbers": "Numbers",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"Progress Tracking": "Progress Tracking",
|
||||
"Rating": "Rating",
|
||||
"Status": "Status",
|
||||
"Tags": "Tags",
|
||||
"Text": "Text",
|
||||
"Timeline": "Timeline",
|
||||
"Time Tracking": "Time Tracking",
|
||||
"Vote": "Vote",
|
||||
"Week": "Week",
|
||||
"World Clock": "World Clock",
|
||||
"New Item in Board": "New Item in Board",
|
||||
"Specific Column Value Updated in Board": "Specific Column Value Updated in Board",
|
||||
"Triggers when a new item is created in board.": "Triggers when a new item is created in board.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggers when a specific column value is updated in board.",
|
||||
"Column ID": "Column ID"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Arbeitsbetriebssystem für Unternehmen",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Loggen Sie sich in Ihr Monday.com-Konto ein.\n\n2.Klicken Sie auf Ihr Avatar/Profilbild in der oberen rechten Ecke.\n\n3. **Verwaltung** wählen (dies erfordert Administratorrechte zu haben).\n\n4.Gehen Sie zur **API** Sektion.\n\n5.Kopieren Sie Ihr persönliches Token",
|
||||
"Create Column": "Spalte erstellen",
|
||||
"Create Group": "Gruppe erstellen",
|
||||
"Create Item": "Erstelle Element",
|
||||
"Create Update": "Update erstellen",
|
||||
"Get Board Values": "Brettwerte erhalten",
|
||||
"Get an Item's Column Values": "Hole dir die Spaltenwerte eines Artikels",
|
||||
"Update Column Values of Specific Item": "Spaltenwerte des spezifischen Elements aktualisieren",
|
||||
"Update Item Name": "Artikelname aktualisieren",
|
||||
"Upload File to Column": "Datei in Spalte hochladen",
|
||||
"Creates a new column in board.": "Erstellt eine neue Spalte im Board.",
|
||||
"Creates a new group in board.": "Erstellt eine neue Gruppe im Board.",
|
||||
"Creates a new item inside a board.": "Erstellt einen neuen Gegenstand in einem Board.",
|
||||
"Creates a new update.": "Erstellt ein neues Update.",
|
||||
"Gets a list of board's items.": "Ruft eine Liste der Elemente des Boards ab.",
|
||||
"Gets column values of an item.": "Ruft die Spaltenwerte eines Elements ab.",
|
||||
"Updates multiple columns values of specific item.": "Aktualisiert mehrere Spalten von bestimmten Elementen.",
|
||||
"Updates an item name.": "Aktualisiert einen Artikelnamen.",
|
||||
"Upload a file to a column in Monday.": "Laden Sie eine Datei in eine Spalte am Montag hoch.",
|
||||
"Workspace ID": "Arbeitsbereich-ID",
|
||||
"Board ID": "Board-ID",
|
||||
"Column Title": "Spaltentitel",
|
||||
"Column Type": "Spaltentyp",
|
||||
"Group Name": "Gruppenname",
|
||||
"Board Group ID": "Boardgruppen-ID",
|
||||
"Item Name": "Artikelname",
|
||||
"Columns": "Spalten",
|
||||
"Create Labels if Missing": "Erstelle Labels, wenn es fehlt",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Körper",
|
||||
"Column IDs": "Spalten-IDs",
|
||||
"New Item name": "Neuer Artikelname",
|
||||
"File Column ID": "Datei-Spalten-ID",
|
||||
"File": "Datei",
|
||||
"File Name": "Dateiname",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Erstellt Status/Dropdown-Beschriftungen, falls diese fehlen. Dies erfordert die Berechtigung um die Board-Struktur zu ändern.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Datenausgabe durch Angabe von Spalten-IDs begrenzen. Leer lassen, um alle Spalten anzuzeigen.",
|
||||
"The file URL or base64 to upload.": "Die URL oder base64 zum Hochladen.",
|
||||
"Auto Number": "Auto-Nummer",
|
||||
"Color Picker": "Farbauswahl",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Land",
|
||||
"Creation Log": "Erstellungsprotokoll",
|
||||
"Date": "Datum",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "E-Mail",
|
||||
"Hour": "Stunde",
|
||||
"Last Updated": "Zuletzt aktualisiert",
|
||||
"Link": "Link",
|
||||
"Location": "Standort",
|
||||
"Long Text": "Lange Text",
|
||||
"Numbers": "Nummern",
|
||||
"People": "Personen",
|
||||
"Phone": "Telefon",
|
||||
"Progress Tracking": "Fortschritt-Nachverfolgung",
|
||||
"Rating": "Bewertung",
|
||||
"Status": "Status",
|
||||
"Tags": "Tags",
|
||||
"Text": "Text",
|
||||
"Timeline": "Zeitleiste",
|
||||
"Time Tracking": "Zeiterfassung",
|
||||
"Vote": "Abstimmungen",
|
||||
"Week": "Woche",
|
||||
"World Clock": "Weltuhr",
|
||||
"New Item in Board": "Neues Element im Board",
|
||||
"Specific Column Value Updated in Board": "Spezifischer Spaltenwert im Board aktualisiert",
|
||||
"Triggers when a new item is created in board.": "Wird ausgelöst, wenn ein neues Element im Board erstellt wird.",
|
||||
"Triggers when a specific column value is updated in board.": "Wird ausgelöst, wenn ein bestimmter Spaltenwert im Board aktualisiert wird.",
|
||||
"Column ID": "Spalten-ID"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Sistema operativo de trabajo para empresas",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1. Inicie sesión en su cuenta de monday.com.\n\n2. Haga clic en su foto de avatar/perfil en la esquina superior derecha.\n\n3. Elige **Administración** (esto requiere que tengas permisos de administración).\n\n4. Ve a la sección **API**.\n\n5.Copia tu token personal",
|
||||
"Create Column": "Crear Columna",
|
||||
"Create Group": "Crear grupo",
|
||||
"Create Item": "Crear artículo",
|
||||
"Create Update": "Crear actualización",
|
||||
"Get Board Values": "Obtener Valores del Tablero",
|
||||
"Get an Item's Column Values": "Obtén los Valores de Columna del artículo",
|
||||
"Update Column Values of Specific Item": "Actualizar valores de columna del elemento específico",
|
||||
"Update Item Name": "Actualizar nombre del artículo",
|
||||
"Upload File to Column": "Subir archivo a Column",
|
||||
"Creates a new column in board.": "Crea una nueva columna en el foro.",
|
||||
"Creates a new group in board.": "Crea un nuevo grupo en el foro.",
|
||||
"Creates a new item inside a board.": "Crea un nuevo elemento dentro de un foro.",
|
||||
"Creates a new update.": "Crea una nueva actualización.",
|
||||
"Gets a list of board's items.": "Obtiene una lista de elementos del tablero.",
|
||||
"Gets column values of an item.": "Obtiene valores de columna de un elemento.",
|
||||
"Updates multiple columns values of specific item.": "Actualiza varios valores de columnas de un elemento específico.",
|
||||
"Updates an item name.": "Actualiza un nombre de elemento.",
|
||||
"Upload a file to a column in Monday.": "Subir un archivo a una columna en lunes.",
|
||||
"Workspace ID": "ID del área de trabajo",
|
||||
"Board ID": "ID del foro",
|
||||
"Column Title": "Título de columna",
|
||||
"Column Type": "Tipo de columna",
|
||||
"Group Name": "Nombre del grupo",
|
||||
"Board Group ID": "ID de grupo de foros",
|
||||
"Item Name": "Nombre del artículo",
|
||||
"Columns": "Columnas",
|
||||
"Create Labels if Missing": "Crear etiquetas si faltan",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Cuerpo",
|
||||
"Column IDs": "IDs de columna",
|
||||
"New Item name": "Nuevo nombre de elemento",
|
||||
"File Column ID": "ID de columna de archivo",
|
||||
"File": "Archivo",
|
||||
"File Name": "Nombre del archivo",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Crea etiquetas de estado/desplegable si faltan. Esto requiere permiso para cambiar la estructura del foro.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limitar la salida de datos especificando ID de columna; dejar vacío para mostrar todas las columnas.",
|
||||
"The file URL or base64 to upload.": "La URL del archivo o base64 a subir.",
|
||||
"Auto Number": "Número automático",
|
||||
"Color Picker": "Selector de color",
|
||||
"Checkbox": "Casilla",
|
||||
"Country": "País",
|
||||
"Creation Log": "Registro de Creación",
|
||||
"Date": "Fecha",
|
||||
"Dropdown": "Soltar",
|
||||
"Email": "E-mail",
|
||||
"Hour": "Hora",
|
||||
"Last Updated": "Última actualización",
|
||||
"Link": "Enlace",
|
||||
"Location": "Ubicación",
|
||||
"Long Text": "Texto largo",
|
||||
"Numbers": "Números",
|
||||
"People": "Personas",
|
||||
"Phone": "Teléfono",
|
||||
"Progress Tracking": "Seguimiento de progreso",
|
||||
"Rating": "Valoración",
|
||||
"Status": "Estado",
|
||||
"Tags": "Etiquetas",
|
||||
"Text": "Texto",
|
||||
"Timeline": "Línea de tiempo",
|
||||
"Time Tracking": "Seguimiento de Tiempo",
|
||||
"Vote": "Votaciones",
|
||||
"Week": "Semana",
|
||||
"World Clock": "Reloj del Mundo",
|
||||
"New Item in Board": "Nuevo elemento en el foro",
|
||||
"Specific Column Value Updated in Board": "Valor específico de Columna actualizado en el tablero",
|
||||
"Triggers when a new item is created in board.": "Se activa cuando se crea un nuevo elemento en el foro.",
|
||||
"Triggers when a specific column value is updated in board.": "Se activa cuando se actualiza un valor de columna específico en el foro.",
|
||||
"Column ID": "ID de columna"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Système d'exploitation pour les entreprises",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Créer une colonne",
|
||||
"Create Group": "Créer un groupe",
|
||||
"Create Item": "Créer un élément",
|
||||
"Create Update": "Créer une mise à jour",
|
||||
"Get Board Values": "Obtenir les valeurs du tableau",
|
||||
"Get an Item's Column Values": "Obtenir les valeurs de colonne d'un objet",
|
||||
"Update Column Values of Specific Item": "Mettre à jour les valeurs des colonnes de l'élément spécifique",
|
||||
"Update Item Name": "Mettre à jour le nom de l'élément",
|
||||
"Upload File to Column": "Télécharger le fichier vers la colonne",
|
||||
"Creates a new column in board.": "Crée une nouvelle colonne dans le tableau.",
|
||||
"Creates a new group in board.": "Crée un nouveau groupe dans le tableau.",
|
||||
"Creates a new item inside a board.": "Crée un nouvel élément dans un tableau.",
|
||||
"Creates a new update.": "Crée une nouvelle mise à jour.",
|
||||
"Gets a list of board's items.": "Renvoie une liste des éléments du tableau.",
|
||||
"Gets column values of an item.": "Obtient les valeurs des colonnes d'un élément.",
|
||||
"Updates multiple columns values of specific item.": "Met à jour plusieurs colonnes de valeurs d'un élément spécifique.",
|
||||
"Updates an item name.": "Met à jour le nom d'un objet.",
|
||||
"Upload a file to a column in Monday.": "Télécharger un fichier dans une colonne de lundi.",
|
||||
"Workspace ID": "ID de l'espace de travail",
|
||||
"Board ID": "ID du tableau",
|
||||
"Column Title": "Titre de la colonne",
|
||||
"Column Type": "Type de colonne",
|
||||
"Group Name": "Nom du groupe",
|
||||
"Board Group ID": "ID du groupe de tableaux",
|
||||
"Item Name": "Nom de l'élément",
|
||||
"Columns": "Colonnes",
|
||||
"Create Labels if Missing": "Créer des étiquettes si elles sont manquantes",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Corps",
|
||||
"Column IDs": "ID de colonne",
|
||||
"New Item name": "Nouveau nom d'élément",
|
||||
"File Column ID": "ID de colonne du fichier",
|
||||
"File": "Ficher",
|
||||
"File Name": "Nom du fichier",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Crée des étiquettes de statut/liste déroulante si elles sont manquantes. Cela nécessite l'autorisation de modifier la structure du tableau.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limiter la sortie des données en spécifiant les identifiants de colonne; laisser vide pour afficher toutes les colonnes.",
|
||||
"The file URL or base64 to upload.": "L'URL du fichier ou base64 à télécharger.",
|
||||
"Auto Number": "Numéro automatique",
|
||||
"Color Picker": "Sélecteur de couleur",
|
||||
"Checkbox": "Case à cocher",
|
||||
"Country": "Pays",
|
||||
"Creation Log": "Journal de création",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Liste déroulante",
|
||||
"Email": "Courriel",
|
||||
"Hour": "Heure",
|
||||
"Last Updated": "Dernière mise à jour",
|
||||
"Link": "Lier",
|
||||
"Location": "Localisation",
|
||||
"Long Text": "Texte long",
|
||||
"Numbers": "Numéros",
|
||||
"People": "Personnes",
|
||||
"Phone": "Téléphone",
|
||||
"Progress Tracking": "Suivi de la progression",
|
||||
"Rating": "Évaluation",
|
||||
"Status": "Statut",
|
||||
"Tags": "Tags",
|
||||
"Text": "Texte du texte",
|
||||
"Timeline": "Échéancier",
|
||||
"Time Tracking": "Suivi du temps",
|
||||
"Vote": "Voter",
|
||||
"Week": "Semaine",
|
||||
"World Clock": "Horloge Mondiale",
|
||||
"New Item in Board": "Nouvel élément dans le tableau",
|
||||
"Specific Column Value Updated in Board": "Valeur de colonne spécifique mise à jour dans le tableau",
|
||||
"Triggers when a new item is created in board.": "Déclenche lorsqu'un nouvel élément est créé dans le tableau.",
|
||||
"Triggers when a specific column value is updated in board.": "Déclenche quand une valeur de colonne spécifique est mise à jour dans le tableau.",
|
||||
"Column ID": "ID de colonne"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"monday.com": "monday.com",
|
||||
"Work operating system for businesses": "Work operating system for businesses",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Create Column",
|
||||
"Create Group": "Create Group",
|
||||
"Create Item": "Create Item",
|
||||
"Create Update": "Create Update",
|
||||
"Get Board Values": "Get Board Values",
|
||||
"Get an Item's Column Values": "Get an Item's Column Values",
|
||||
"Update Column Values of Specific Item": "Update Column Values of Specific Item",
|
||||
"Update Item Name": "Update Item Name",
|
||||
"Upload File to Column": "Upload File to Column",
|
||||
"Creates a new column in board.": "Creates a new column in board.",
|
||||
"Creates a new group in board.": "Creates a new group in board.",
|
||||
"Creates a new item inside a board.": "Creates a new item inside a board.",
|
||||
"Creates a new update.": "Creates a new update.",
|
||||
"Gets a list of board's items.": "Gets a list of board's items.",
|
||||
"Gets column values of an item.": "Gets column values of an item.",
|
||||
"Updates multiple columns values of specific item.": "Updates multiple columns values of specific item.",
|
||||
"Updates an item name.": "Updates an item name.",
|
||||
"Upload a file to a column in Monday.": "Upload a file to a column in Monday.",
|
||||
"Workspace ID": "Workspace ID",
|
||||
"Board ID": "Board ID",
|
||||
"Column Title": "Column Title",
|
||||
"Column Type": "Column Type",
|
||||
"Group Name": "Group Name",
|
||||
"Board Group ID": "Board Group ID",
|
||||
"Item Name": "Item Name",
|
||||
"Columns": "Columns",
|
||||
"Create Labels if Missing": "Create Labels if Missing",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Body",
|
||||
"Column IDs": "Column IDs",
|
||||
"New Item name": "New Item name",
|
||||
"File Column ID": "File Column ID",
|
||||
"File": "File",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Creates status/dropdown labels if they are missing. This requires permission to change the board structure.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limit data output by specifying column IDs; leave empty to display all columns.",
|
||||
"The file URL or base64 to upload.": "The file URL or base64 to upload.",
|
||||
"Auto Number": "Auto Number",
|
||||
"Color Picker": "Color Picker",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Country",
|
||||
"Creation Log": "Creation Log",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "Email",
|
||||
"Hour": "Hour",
|
||||
"Last Updated": "Last Updated",
|
||||
"Link": "Link",
|
||||
"Location": "Location",
|
||||
"Long Text": "Long Text",
|
||||
"Numbers": "Numbers",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"Progress Tracking": "Progress Tracking",
|
||||
"Rating": "Rating",
|
||||
"Status": "Status",
|
||||
"Tags": "Tags",
|
||||
"Text": "Text",
|
||||
"Timeline": "Timeline",
|
||||
"Time Tracking": "Time Tracking",
|
||||
"Vote": "Vote",
|
||||
"Week": "Week",
|
||||
"World Clock": "World Clock",
|
||||
"New Item in Board": "New Item in Board",
|
||||
"Specific Column Value Updated in Board": "Specific Column Value Updated in Board",
|
||||
"Triggers when a new item is created in board.": "Triggers when a new item is created in board.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggers when a specific column value is updated in board.",
|
||||
"Column ID": "Column ID"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"monday.com": "monday.com",
|
||||
"Work operating system for businesses": "Work operating system for businesses",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Create Column",
|
||||
"Create Group": "Create Group",
|
||||
"Create Item": "Create Item",
|
||||
"Create Update": "Create Update",
|
||||
"Get Board Values": "Get Board Values",
|
||||
"Get an Item's Column Values": "Get an Item's Column Values",
|
||||
"Update Column Values of Specific Item": "Update Column Values of Specific Item",
|
||||
"Update Item Name": "Update Item Name",
|
||||
"Upload File to Column": "Upload File to Column",
|
||||
"Creates a new column in board.": "Creates a new column in board.",
|
||||
"Creates a new group in board.": "Creates a new group in board.",
|
||||
"Creates a new item inside a board.": "Creates a new item inside a board.",
|
||||
"Creates a new update.": "Creates a new update.",
|
||||
"Gets a list of board's items.": "Gets a list of board's items.",
|
||||
"Gets column values of an item.": "Gets column values of an item.",
|
||||
"Updates multiple columns values of specific item.": "Updates multiple columns values of specific item.",
|
||||
"Updates an item name.": "Updates an item name.",
|
||||
"Upload a file to a column in Monday.": "Upload a file to a column in Monday.",
|
||||
"Workspace ID": "Workspace ID",
|
||||
"Board ID": "Board ID",
|
||||
"Column Title": "Column Title",
|
||||
"Column Type": "Column Type",
|
||||
"Group Name": "Group Name",
|
||||
"Board Group ID": "Board Group ID",
|
||||
"Item Name": "Item Name",
|
||||
"Columns": "Columns",
|
||||
"Create Labels if Missing": "Create Labels if Missing",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Body",
|
||||
"Column IDs": "Column IDs",
|
||||
"New Item name": "New Item name",
|
||||
"File Column ID": "File Column ID",
|
||||
"File": "File",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Creates status/dropdown labels if they are missing. This requires permission to change the board structure.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limit data output by specifying column IDs; leave empty to display all columns.",
|
||||
"The file URL or base64 to upload.": "The file URL or base64 to upload.",
|
||||
"Auto Number": "Auto Number",
|
||||
"Color Picker": "Color Picker",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Country",
|
||||
"Creation Log": "Creation Log",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "Email",
|
||||
"Hour": "Hour",
|
||||
"Last Updated": "Last Updated",
|
||||
"Link": "Link",
|
||||
"Location": "Location",
|
||||
"Long Text": "Long Text",
|
||||
"Numbers": "Numbers",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"Progress Tracking": "Progress Tracking",
|
||||
"Rating": "Rating",
|
||||
"Status": "Status",
|
||||
"Tags": "Tags",
|
||||
"Text": "Text",
|
||||
"Timeline": "Timeline",
|
||||
"Time Tracking": "Time Tracking",
|
||||
"Vote": "Vote",
|
||||
"Week": "Week",
|
||||
"World Clock": "World Clock",
|
||||
"New Item in Board": "New Item in Board",
|
||||
"Specific Column Value Updated in Board": "Specific Column Value Updated in Board",
|
||||
"Triggers when a new item is created in board.": "Triggers when a new item is created in board.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggers when a specific column value is updated in board.",
|
||||
"Column ID": "Column ID"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "企業向けの作業用オペレーティング システム",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "列を作成",
|
||||
"Create Group": "グループを作成",
|
||||
"Create Item": "アイテムを作成",
|
||||
"Create Update": "更新を作成",
|
||||
"Get Board Values": "ボードの値を取得",
|
||||
"Get an Item's Column Values": "アイテムの列の値を取得する",
|
||||
"Update Column Values of Specific Item": "特定の項目の列の値を更新",
|
||||
"Update Item Name": "アイテム名を更新",
|
||||
"Upload File to Column": "列にファイルをアップロード",
|
||||
"Creates a new column in board.": "ボードに新しい列を作成します。",
|
||||
"Creates a new group in board.": "ボードに新しいグループを作成します。",
|
||||
"Creates a new item inside a board.": "ボード内に新しいアイテムを作成します。",
|
||||
"Creates a new update.": "新しい更新を作成します。",
|
||||
"Gets a list of board's items.": "ボードのアイテムのリストを取得します。",
|
||||
"Gets column values of an item.": "アイテムのカラム値を取得します。",
|
||||
"Updates multiple columns values of specific item.": "特定の項目の複数の列の値を更新します。",
|
||||
"Updates an item name.": "アイテム名を更新します。",
|
||||
"Upload a file to a column in Monday.": "月曜日に列にファイルをアップロードします。",
|
||||
"Workspace ID": "ワークスペース ID",
|
||||
"Board ID": "ボードID",
|
||||
"Column Title": "列のタイトル",
|
||||
"Column Type": "列の種類",
|
||||
"Group Name": "グループ名",
|
||||
"Board Group ID": "ボードグループID",
|
||||
"Item Name": "アイテム名",
|
||||
"Columns": "列",
|
||||
"Create Labels if Missing": "欠けている場合はラベルを作成",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "本文",
|
||||
"Column IDs": "列ID",
|
||||
"New Item name": "新しいアイテム名",
|
||||
"File Column ID": "ファイル列ID",
|
||||
"File": "ファイル",
|
||||
"File Name": "ファイル名",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "不足している場合はステータス/ドロップダウンラベルを作成します。これにはボード構造を変更する権限が必要です。",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "列IDを指定してデータ出力を制限します。空のままにするとすべての列が表示されます。",
|
||||
"The file URL or base64 to upload.": "アップロードするファイル URL または base64 。",
|
||||
"Auto Number": "自動番号",
|
||||
"Color Picker": "カラーピッカー",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "国",
|
||||
"Creation Log": "作成ログ",
|
||||
"Date": "日付",
|
||||
"Dropdown": "ドロップダウン",
|
||||
"Email": "Eメールアドレス",
|
||||
"Hour": "時間",
|
||||
"Last Updated": "最終更新",
|
||||
"Link": "リンク",
|
||||
"Location": "場所",
|
||||
"Long Text": "長いテキスト",
|
||||
"Numbers": "数値",
|
||||
"People": "人",
|
||||
"Phone": "電話番号",
|
||||
"Progress Tracking": "進行状況の追跡",
|
||||
"Rating": "評価",
|
||||
"Status": "ステータス",
|
||||
"Tags": "タグ",
|
||||
"Text": "テキスト",
|
||||
"Timeline": "タイムライン",
|
||||
"Time Tracking": "タイムトラッキング",
|
||||
"Vote": "投票",
|
||||
"Week": "週",
|
||||
"World Clock": "世界の時計",
|
||||
"New Item in Board": "ボード内の新しいアイテム",
|
||||
"Specific Column Value Updated in Board": "ボード内の特定の列の値",
|
||||
"Triggers when a new item is created in board.": "新しいアイテムがボードに作成されたときにトリガーします。",
|
||||
"Triggers when a specific column value is updated in board.": "特定の列の値がボード上で更新されたときにトリガーします。",
|
||||
"Column ID": "カラムID"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Werkingssysteem voor bedrijven",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log in op je monday.com account.\n\n2.Klik op je avatar/profiel afbeelding in de rechterbovenhoek.\n\n3. kies **Administratie** (dit vereist dat u beheerdersrechten heeft).\n\n4.Ga naar de **API** sectie.\n\n5.Kopieer uw persoonlijke token",
|
||||
"Create Column": "Kolom maken",
|
||||
"Create Group": "Groep aanmaken",
|
||||
"Create Item": "Item aanmaken",
|
||||
"Create Update": "Nieuwe Update",
|
||||
"Get Board Values": "Verkrijg Bord Waarden",
|
||||
"Get an Item's Column Values": "Verkrijg de kolomwaarden van een item",
|
||||
"Update Column Values of Specific Item": "Kolom waarden van specifiek item bijwerken",
|
||||
"Update Item Name": "Item naam bijwerken",
|
||||
"Upload File to Column": "Bestand naar kolom uploaden",
|
||||
"Creates a new column in board.": "Maakt een nieuwe kolom aan boord.",
|
||||
"Creates a new group in board.": "Maakt een nieuwe groep aan boord aan.",
|
||||
"Creates a new item inside a board.": "Maakt een nieuw item aan binnen een bord.",
|
||||
"Creates a new update.": "Maakt een nieuwe update.",
|
||||
"Gets a list of board's items.": "Haalt een lijst op van board's items.",
|
||||
"Gets column values of an item.": "Haalt kolomwaarden op van een item.",
|
||||
"Updates multiple columns values of specific item.": "Werkt meerdere kolomwaarden van een specifiek artikel bij.",
|
||||
"Updates an item name.": "Werkt een artikelnaam bij.",
|
||||
"Upload a file to a column in Monday.": "Upload een bestand naar een kolom in maandag.",
|
||||
"Workspace ID": "Werkruimte ID",
|
||||
"Board ID": "Bord ID",
|
||||
"Column Title": "Titel kolom",
|
||||
"Column Type": "Kolomtype",
|
||||
"Group Name": "Groep Naam",
|
||||
"Board Group ID": "Groep nummer bord",
|
||||
"Item Name": "Item Naam",
|
||||
"Columns": "Kolommen",
|
||||
"Create Labels if Missing": "Maak labels aan als deze ontbreken",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Lichaam",
|
||||
"Column IDs": "Kolom ID's",
|
||||
"New Item name": "Nieuwe item naam",
|
||||
"File Column ID": "Bestand Kolom ID",
|
||||
"File": "Bestand",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Maakt status/dropdown labels aan als ze ontbreken. Hiervoor is toestemming nodig om de board structuur te wijzigen.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Beperk datauitvoer door kolom-ID's te specificeren; laat leeg om alle kolommen weer te geven.",
|
||||
"The file URL or base64 to upload.": "De bestands-URL of base64 om te uploaden.",
|
||||
"Auto Number": "Automatisch Nummer",
|
||||
"Color Picker": "Kleur Kiezer",
|
||||
"Checkbox": "Selectievakje",
|
||||
"Country": "Land:",
|
||||
"Creation Log": "Aanmaken logboek",
|
||||
"Date": "Datum:",
|
||||
"Dropdown": "Uitklapmenu",
|
||||
"Email": "E-mail",
|
||||
"Hour": "Uur",
|
||||
"Last Updated": "Laatst bijgewerkt",
|
||||
"Link": "Koppeling",
|
||||
"Location": "Locatie",
|
||||
"Long Text": "Lange tekst",
|
||||
"Numbers": "Nummers",
|
||||
"People": "Mensen",
|
||||
"Phone": "Telefoonnummer",
|
||||
"Progress Tracking": "Voortgang volgen",
|
||||
"Rating": "Beoordeling",
|
||||
"Status": "status",
|
||||
"Tags": "Labels",
|
||||
"Text": "Tekstveld",
|
||||
"Timeline": "Tijdlijn",
|
||||
"Time Tracking": "Tijd bijhouden",
|
||||
"Vote": "Stemming",
|
||||
"Week": "week",
|
||||
"World Clock": "Wereld Klok",
|
||||
"New Item in Board": "Nieuw artikel in bord",
|
||||
"Specific Column Value Updated in Board": "Specifieke kolomwaarde bijgewerkt in bord",
|
||||
"Triggers when a new item is created in board.": "Triggert wanneer een nieuw item wordt aangemaakt in het bord.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggert wanneer een specifieke kolomwaarde wordt bijgewerkt in het bord.",
|
||||
"Column ID": "Kolom ID"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Sistema operacional de trabalho para empresas",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Entre na sua conta no monday.com.\n\n2.Clique na sua imagem avatar/perfil no canto superior direito.\n\n3. Selecione **Administração** (requer que você tenha permissões de administrador).\n\n4. Vá para a seção **API**.\n\n5.Copie seu token pessoal",
|
||||
"Create Column": "Criar Coluna",
|
||||
"Create Group": "Criar grupo",
|
||||
"Create Item": "Criar item",
|
||||
"Create Update": "Criar Atualização",
|
||||
"Get Board Values": "Obter Valores do Quadro",
|
||||
"Get an Item's Column Values": "Obter Valores de Coluna de um Item",
|
||||
"Update Column Values of Specific Item": "Atualizar valores de coluna de item específico",
|
||||
"Update Item Name": "Atualizar Nome do Item",
|
||||
"Upload File to Column": "Carregar Arquivo para Coluna",
|
||||
"Creates a new column in board.": "Cria uma nova coluna no quadro.",
|
||||
"Creates a new group in board.": "Cria um novo grupo na lousa.",
|
||||
"Creates a new item inside a board.": "Cria um novo item dentro de uma tabela.",
|
||||
"Creates a new update.": "Cria uma nova atualização.",
|
||||
"Gets a list of board's items.": "Obtém uma lista de itens do painel.",
|
||||
"Gets column values of an item.": "Obtém valores de coluna de um item.",
|
||||
"Updates multiple columns values of specific item.": "Atualiza valores de múltiplas colunas de item específico.",
|
||||
"Updates an item name.": "Atualiza o nome do item.",
|
||||
"Upload a file to a column in Monday.": "Upload um arquivo para uma coluna na segunda-feira.",
|
||||
"Workspace ID": "ID do workspace",
|
||||
"Board ID": "ID do Board",
|
||||
"Column Title": "Título da coluna",
|
||||
"Column Type": "Tipo de coluna",
|
||||
"Group Name": "Nome do Grupo",
|
||||
"Board Group ID": "ID do Grupo Board",
|
||||
"Item Name": "Nome do Item",
|
||||
"Columns": "Colunas",
|
||||
"Create Labels if Missing": "Criar etiquetas se estiver faltando",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Conteúdo",
|
||||
"Column IDs": "IDs da coluna",
|
||||
"New Item name": "Nome do novo item",
|
||||
"File Column ID": "ID da coluna arquivo",
|
||||
"File": "Arquivo",
|
||||
"File Name": "Nome do arquivo",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Cria etiquetas de status/dropdown se estiverem ausentes. Isto requer permissão para alterar a estrutura do tabuleiro.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limitar a saída de dados especificando IDs da coluna; deixar em branco para exibir todas as colunas.",
|
||||
"The file URL or base64 to upload.": "A URL do arquivo ou base64 para enviar.",
|
||||
"Auto Number": "Número automático",
|
||||
"Color Picker": "Selecionador de Cor",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "País/região",
|
||||
"Creation Log": "Registro de Criação",
|
||||
"Date": "Encontro",
|
||||
"Dropdown": "Suspensa",
|
||||
"Email": "e-mail",
|
||||
"Hour": "hora",
|
||||
"Last Updated": "Última atualização",
|
||||
"Link": "Vincular",
|
||||
"Location": "Local:",
|
||||
"Long Text": "Texto longo",
|
||||
"Numbers": "Números",
|
||||
"People": "Pessoas",
|
||||
"Phone": "Smartphone",
|
||||
"Progress Tracking": "Rastreamento do Progresso",
|
||||
"Rating": "Classificação",
|
||||
"Status": "Estado",
|
||||
"Tags": "Etiquetas",
|
||||
"Text": "texto",
|
||||
"Timeline": "Cronograma",
|
||||
"Time Tracking": "Rastreamento de Tempo",
|
||||
"Vote": "Votações",
|
||||
"Week": "semana",
|
||||
"World Clock": "Relógio Mundial",
|
||||
"New Item in Board": "Novo item no tabuleiro",
|
||||
"Specific Column Value Updated in Board": "Valor específico da coluna atualizada no Board",
|
||||
"Triggers when a new item is created in board.": "Dispara quando um novo item é criado no board.",
|
||||
"Triggers when a specific column value is updated in board.": "Dispara quando um valor específico de coluna é atualizado no fórum.",
|
||||
"Column ID": "ID da coluna"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"monday.com": "monday.com",
|
||||
"Work operating system for businesses": "Операционная система работы для предприятий",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Создать столбец",
|
||||
"Create Group": "Создать группу",
|
||||
"Create Item": "Создать элемент",
|
||||
"Create Update": "Создать обновление",
|
||||
"Get Board Values": "Получить значения доски",
|
||||
"Get an Item's Column Values": "Получить значения столбцов предмета",
|
||||
"Update Column Values of Specific Item": "Обновить значение столбца для конкретного элемента",
|
||||
"Update Item Name": "Обновить имя элемента",
|
||||
"Upload File to Column": "Загрузить файл в столбец",
|
||||
"Creates a new column in board.": "Создает новый столбец на борту.",
|
||||
"Creates a new group in board.": "Создает новую группу в форуме.",
|
||||
"Creates a new item inside a board.": "Создает новый элемент внутри доски.",
|
||||
"Creates a new update.": "Создает новое обновление.",
|
||||
"Gets a list of board's items.": "Получает список элементов доски.",
|
||||
"Gets column values of an item.": "Получает значения столбца элемента",
|
||||
"Updates multiple columns values of specific item.": "Обновляет несколько значений столбцов для конкретного элемента.",
|
||||
"Updates an item name.": "Обновляет название предмета.",
|
||||
"Upload a file to a column in Monday.": "Загрузить файл в столбец в понедельник.",
|
||||
"Workspace ID": "ID проекта",
|
||||
"Board ID": "ID доски",
|
||||
"Column Title": "Название колонки",
|
||||
"Column Type": "Тип столбца",
|
||||
"Group Name": "Название группы",
|
||||
"Board Group ID": "ID группы доски",
|
||||
"Item Name": "Название предмета",
|
||||
"Columns": "Столбцы",
|
||||
"Create Labels if Missing": "Создать ярлыки, если отсутствуют",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Тело",
|
||||
"Column IDs": "ID столбцов",
|
||||
"New Item name": "Новое имя элемента",
|
||||
"File Column ID": "Идентификатор столбца файла",
|
||||
"File": "Файл",
|
||||
"File Name": "Имя файла",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Создает статус/выпадающие метки, если они отсутствуют. Это требует разрешения на изменение структуры форума.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Ограничить вывод данных путем указания идентификаторов столбца; оставьте пустым для отображения всех столбцов.",
|
||||
"The file URL or base64 to upload.": "URL файла или base64 для загрузки.",
|
||||
"Auto Number": "Авто номер",
|
||||
"Color Picker": "Палитра цветов",
|
||||
"Checkbox": "Флажок",
|
||||
"Country": "Страна",
|
||||
"Creation Log": "Журнал создания",
|
||||
"Date": "Дата",
|
||||
"Dropdown": "Выпадающий список",
|
||||
"Email": "Почта",
|
||||
"Hour": "Часы",
|
||||
"Last Updated": "Последнее обновление",
|
||||
"Link": "Ссылка",
|
||||
"Location": "Местоположение",
|
||||
"Long Text": "Длинный текст",
|
||||
"Numbers": "Числа",
|
||||
"People": "Люди",
|
||||
"Phone": "Телефон",
|
||||
"Progress Tracking": "Отслеживание прогресса",
|
||||
"Rating": "Рейтинг",
|
||||
"Status": "Status",
|
||||
"Tags": "Теги",
|
||||
"Text": "Текст",
|
||||
"Timeline": "Хронология",
|
||||
"Time Tracking": "Время отслеживания",
|
||||
"Vote": "Голос",
|
||||
"Week": "Неделя",
|
||||
"World Clock": "Мировые часы",
|
||||
"New Item in Board": "Новый пункт в доске",
|
||||
"Specific Column Value Updated in Board": "Конкретное значение столбца обновлено на доске",
|
||||
"Triggers when a new item is created in board.": "Включает при создании нового элемента на доске.",
|
||||
"Triggers when a specific column value is updated in board.": "Включает при обновлении определенного значения столбца.",
|
||||
"Column ID": "ID столбца"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Work operating system for businesses",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Create Column",
|
||||
"Create Group": "Create Group",
|
||||
"Create Item": "Create Item",
|
||||
"Create Update": "Create Update",
|
||||
"Get Board Values": "Get Board Values",
|
||||
"Get an Item's Column Values": "Get an Item's Column Values",
|
||||
"Update Column Values of Specific Item": "Update Column Values of Specific Item",
|
||||
"Update Item Name": "Update Item Name",
|
||||
"Upload File to Column": "Upload File to Column",
|
||||
"Creates a new column in board.": "Creates a new column in board.",
|
||||
"Creates a new group in board.": "Creates a new group in board.",
|
||||
"Creates a new item inside a board.": "Creates a new item inside a board.",
|
||||
"Creates a new update.": "Creates a new update.",
|
||||
"Gets a list of board's items.": "Gets a list of board's items.",
|
||||
"Gets column values of an item.": "Gets column values of an item.",
|
||||
"Updates multiple columns values of specific item.": "Updates multiple columns values of specific item.",
|
||||
"Updates an item name.": "Updates an item name.",
|
||||
"Upload a file to a column in Monday.": "Upload a file to a column in Monday.",
|
||||
"Workspace ID": "Workspace ID",
|
||||
"Board ID": "Board ID",
|
||||
"Column Title": "Column Title",
|
||||
"Column Type": "Column Type",
|
||||
"Group Name": "Group Name",
|
||||
"Board Group ID": "Board Group ID",
|
||||
"Item Name": "Item Name",
|
||||
"Columns": "Columns",
|
||||
"Create Labels if Missing": "Create Labels if Missing",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Body",
|
||||
"Column IDs": "Column IDs",
|
||||
"New Item name": "New Item name",
|
||||
"File Column ID": "File Column ID",
|
||||
"File": "File",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Creates status/dropdown labels if they are missing. This requires permission to change the board structure.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limit data output by specifying column IDs; leave empty to display all columns.",
|
||||
"The file URL or base64 to upload.": "The file URL or base64 to upload.",
|
||||
"Auto Number": "Auto Number",
|
||||
"Color Picker": "Color Picker",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Country",
|
||||
"Creation Log": "Creation Log",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "Email",
|
||||
"Hour": "Hour",
|
||||
"Last Updated": "Last Updated",
|
||||
"Link": "Link",
|
||||
"Location": "Location",
|
||||
"Long Text": "Long Text",
|
||||
"Numbers": "Numbers",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"Progress Tracking": "Progress Tracking",
|
||||
"Rating": "Rating",
|
||||
"Status": "Status",
|
||||
"Tags": "Tags",
|
||||
"Text": "Text",
|
||||
"Timeline": "Timeline",
|
||||
"Time Tracking": "Time Tracking",
|
||||
"Vote": "Vote",
|
||||
"Week": "Week",
|
||||
"World Clock": "World Clock",
|
||||
"New Item in Board": "New Item in Board",
|
||||
"Specific Column Value Updated in Board": "Specific Column Value Updated in Board",
|
||||
"Triggers when a new item is created in board.": "Triggers when a new item is created in board.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggers when a specific column value is updated in board.",
|
||||
"Column ID": "Column ID"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"monday.com": "monday.com",
|
||||
"Work operating system for businesses": "Work operating system for businesses",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Create Column",
|
||||
"Create Group": "Create Group",
|
||||
"Create Item": "Create Item",
|
||||
"Create Update": "Create Update",
|
||||
"Get Board Values": "Get Board Values",
|
||||
"Get an Item's Column Values": "Get an Item's Column Values",
|
||||
"Update Column Values of Specific Item": "Update Column Values of Specific Item",
|
||||
"Update Item Name": "Update Item Name",
|
||||
"Upload File to Column": "Upload File to Column",
|
||||
"Creates a new column in board.": "Creates a new column in board.",
|
||||
"Creates a new group in board.": "Creates a new group in board.",
|
||||
"Creates a new item inside a board.": "Creates a new item inside a board.",
|
||||
"Creates a new update.": "Creates a new update.",
|
||||
"Gets a list of board's items.": "Gets a list of board's items.",
|
||||
"Gets column values of an item.": "Gets column values of an item.",
|
||||
"Updates multiple columns values of specific item.": "Updates multiple columns values of specific item.",
|
||||
"Updates an item name.": "Updates an item name.",
|
||||
"Upload a file to a column in Monday.": "Upload a file to a column in Monday.",
|
||||
"Workspace ID": "Workspace ID",
|
||||
"Board ID": "Board ID",
|
||||
"Column Title": "Column Title",
|
||||
"Column Type": "Column Type",
|
||||
"Group Name": "Group Name",
|
||||
"Board Group ID": "Board Group ID",
|
||||
"Item Name": "Item Name",
|
||||
"Columns": "Columns",
|
||||
"Create Labels if Missing": "Create Labels if Missing",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "Body",
|
||||
"Column IDs": "Column IDs",
|
||||
"New Item name": "New Item name",
|
||||
"File Column ID": "File Column ID",
|
||||
"File": "File",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Creates status/dropdown labels if they are missing. This requires permission to change the board structure.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limit data output by specifying column IDs; leave empty to display all columns.",
|
||||
"The file URL or base64 to upload.": "The file URL or base64 to upload.",
|
||||
"Auto Number": "Auto Number",
|
||||
"Color Picker": "Color Picker",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Country",
|
||||
"Creation Log": "Creation Log",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "Email",
|
||||
"Hour": "Hour",
|
||||
"Last Updated": "Last Updated",
|
||||
"Link": "Link",
|
||||
"Location": "Location",
|
||||
"Long Text": "Long Text",
|
||||
"Numbers": "Numbers",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"Progress Tracking": "Progress Tracking",
|
||||
"Rating": "Rating",
|
||||
"Status": "Status",
|
||||
"Tags": "Tags",
|
||||
"Text": "Text",
|
||||
"Timeline": "Timeline",
|
||||
"Time Tracking": "Time Tracking",
|
||||
"Vote": "Vote",
|
||||
"Week": "Week",
|
||||
"World Clock": "World Clock",
|
||||
"New Item in Board": "New Item in Board",
|
||||
"Specific Column Value Updated in Board": "Specific Column Value Updated in Board",
|
||||
"Triggers when a new item is created in board.": "Triggers when a new item is created in board.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggers when a specific column value is updated in board.",
|
||||
"Column ID": "Column ID"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"Work operating system for businesses": "Work operating system for businesses",
|
||||
"\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token": "\n1.Log into your monday.com account.\n\n2.Click on your avatar/profile picture in the top right corner.\n\n3.Select **Administration** (this requires you to have admin permissions).\n\n4.Go to the **API** section.\n\n5.Copy your personal token",
|
||||
"Create Column": "Create Column",
|
||||
"Create Group": "Create Group",
|
||||
"Create Item": "Create Item",
|
||||
"Create Update": "Create Update",
|
||||
"Get Board Values": "Get Board Values",
|
||||
"Get an Item's Column Values": "Get an Item's Column Values",
|
||||
"Update Column Values of Specific Item": "Update Column Values of Specific Item",
|
||||
"Update Item Name": "Update Item Name",
|
||||
"Upload File to Column": "Upload File to Column",
|
||||
"Creates a new column in board.": "Creates a new column in board.",
|
||||
"Creates a new group in board.": "Creates a new group in board.",
|
||||
"Creates a new item inside a board.": "Creates a new item inside a board.",
|
||||
"Creates a new update.": "Creates a new update.",
|
||||
"Gets a list of board's items.": "Gets a list of board's items.",
|
||||
"Gets column values of an item.": "Gets column values of an item.",
|
||||
"Updates multiple columns values of specific item.": "Updates multiple columns values of specific item.",
|
||||
"Updates an item name.": "Updates an item name.",
|
||||
"Upload a file to a column in Monday.": "Upload a file to a column in Monday.",
|
||||
"Workspace ID": "Workspace ID",
|
||||
"Board ID": "Board ID",
|
||||
"Column Title": "Column Title",
|
||||
"Column Type": "Column Type",
|
||||
"Group Name": "Group Name",
|
||||
"Board Group ID": "Board Group ID",
|
||||
"Item Name": "Item Name",
|
||||
"Columns": "Columns",
|
||||
"Create Labels if Missing": "Create Labels if Missing",
|
||||
"Item ID": "Item ID",
|
||||
"Body": "正文内容",
|
||||
"Column IDs": "Column IDs",
|
||||
"New Item name": "New Item name",
|
||||
"File Column ID": "File Column ID",
|
||||
"File": "文件",
|
||||
"File Name": "File Name",
|
||||
"Creates status/dropdown labels if they are missing. This requires permission to change the board structure.": "Creates status/dropdown labels if they are missing. This requires permission to change the board structure.",
|
||||
"Limit data output by specifying column IDs; leave empty to display all columns.": "Limit data output by specifying column IDs; leave empty to display all columns.",
|
||||
"The file URL or base64 to upload.": "The file URL or base64 to upload.",
|
||||
"Auto Number": "Auto Number",
|
||||
"Color Picker": "Color Picker",
|
||||
"Checkbox": "Checkbox",
|
||||
"Country": "Country",
|
||||
"Creation Log": "Creation Log",
|
||||
"Date": "Date",
|
||||
"Dropdown": "Dropdown",
|
||||
"Email": "电子邮件地址",
|
||||
"Hour": "Hour",
|
||||
"Last Updated": "Last Updated",
|
||||
"Link": "Link",
|
||||
"Location": "Location",
|
||||
"Long Text": "Long Text",
|
||||
"Numbers": "Numbers",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"Progress Tracking": "Progress Tracking",
|
||||
"Rating": "Rating",
|
||||
"Status": "状态",
|
||||
"Tags": "标签",
|
||||
"Text": "文本",
|
||||
"Timeline": "Timeline",
|
||||
"Time Tracking": "Time Tracking",
|
||||
"Vote": "Vote",
|
||||
"Week": "Week",
|
||||
"World Clock": "World Clock",
|
||||
"New Item in Board": "New Item in Board",
|
||||
"Specific Column Value Updated in Board": "Specific Column Value Updated in Board",
|
||||
"Triggers when a new item is created in board.": "Triggers when a new item is created in board.",
|
||||
"Triggers when a specific column value is updated in board.": "Triggers when a specific column value is updated in board.",
|
||||
"Column ID": "Column ID"
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
import { PieceAuth, createPiece } from '@activepieces/pieces-framework';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { createColumnAction } from './lib/actions/create-column';
|
||||
import { createGroupAction } from './lib/actions/create-group';
|
||||
import { createItemAction } from './lib/actions/create-item';
|
||||
import { createUpdateAction } from './lib/actions/create-update';
|
||||
import { getBoardItemValuesAction } from './lib/actions/get-board-values';
|
||||
import { getItemsColumnValuesAction } from './lib/actions/get-column-values';
|
||||
import { updateColumnValuesOfItemAction } from './lib/actions/update-column-values-of-item';
|
||||
import { updateItemNameAction } from './lib/actions/update-item-name';
|
||||
import { newItemInBoardTrigger } from './lib/triggers/new-item-in-board';
|
||||
import { specificColumnValueUpdatedTrigger } from './lib/triggers/specific-column-updated';
|
||||
import { uploadFileToColumnAction } from './lib/actions/upload-file-to-column';
|
||||
|
||||
const markdown = `
|
||||
1.Log into your monday.com account.\n
|
||||
2.Click on your avatar/profile picture in the top right corner.\n
|
||||
3.Select **Administration** (this requires you to have admin permissions).\n
|
||||
4.Go to the **API** section.\n
|
||||
5.Copy your personal token`;
|
||||
|
||||
export const mondayAuth = PieceAuth.SecretText({
|
||||
displayName: 'API v2 Token',
|
||||
description: markdown,
|
||||
required: true,
|
||||
});
|
||||
|
||||
export const monday = createPiece({
|
||||
displayName: 'monday.com',
|
||||
description: 'Work operating system for businesses',
|
||||
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/monday.png',
|
||||
categories: [PieceCategory.PRODUCTIVITY],
|
||||
authors: [
|
||||
'kanarelo',
|
||||
'haseebrehmanpc',
|
||||
'kishanprmr',
|
||||
'MoShizzle',
|
||||
'AbdulTheActivePiecer',
|
||||
'khaledmashaly',
|
||||
'abuaboud',
|
||||
],
|
||||
auth: mondayAuth,
|
||||
actions: [
|
||||
createColumnAction,
|
||||
createGroupAction,
|
||||
createItemAction,
|
||||
createUpdateAction,
|
||||
getBoardItemValuesAction,
|
||||
getItemsColumnValuesAction,
|
||||
updateColumnValuesOfItemAction,
|
||||
updateItemNameAction,
|
||||
uploadFileToColumnAction,
|
||||
],
|
||||
triggers: [newItemInBoardTrigger, specificColumnValueUpdatedTrigger],
|
||||
});
|
||||
@@ -0,0 +1,37 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import { COLUMN_TYPE_OPTIONS } from '../common/constants';
|
||||
|
||||
export const createColumnAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_create_column',
|
||||
displayName: 'Create Column',
|
||||
description: 'Creates a new column in board.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
column_title: Property.ShortText({
|
||||
displayName: 'Column Title',
|
||||
required: true,
|
||||
}),
|
||||
column_type: Property.StaticDropdown({
|
||||
displayName: 'Column Type',
|
||||
required: true,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: COLUMN_TYPE_OPTIONS,
|
||||
},
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, column_title, column_type } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.createColumn({
|
||||
boardId: board_id as string,
|
||||
columnTitle: column_title as string,
|
||||
columnType: column_type as string,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,27 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
|
||||
export const createGroupAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_create_group',
|
||||
displayName: 'Create Group',
|
||||
description: 'Creates a new group in board.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
group_name: Property.ShortText({
|
||||
displayName: 'Group Name',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, group_name } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.createGroup({
|
||||
boardId: board_id as string,
|
||||
groupName: group_name as string,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,70 @@
|
||||
import {
|
||||
DynamicPropsValue,
|
||||
Property,
|
||||
createAction,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import {
|
||||
convertPropValueToMondayColumnValue,
|
||||
generateColumnIdTypeMap,
|
||||
} from '../common/helper';
|
||||
|
||||
export const createItemAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_create_item',
|
||||
displayName: 'Create Item',
|
||||
description: 'Creates a new item inside a board.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
group_id: mondayCommon.group_id(false),
|
||||
item_name: Property.ShortText({
|
||||
displayName: 'Item Name',
|
||||
description: 'Item Name',
|
||||
required: true,
|
||||
}),
|
||||
column_values: mondayCommon.columnValues,
|
||||
create_labels_if_missing: Property.Checkbox({
|
||||
displayName: 'Create Labels if Missing',
|
||||
description:
|
||||
'Creates status/dropdown labels if they are missing. This requires permission to change the board structure.',
|
||||
defaultValue: false,
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, item_name, create_labels_if_missing } =
|
||||
context.propsValue;
|
||||
const group_id = context.propsValue.group_id!;
|
||||
const columnValuesInput = context.propsValue.column_values;
|
||||
const mondayColumnValues: DynamicPropsValue = {};
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.listBoardColumns({
|
||||
boardId: board_id as unknown as string,
|
||||
});
|
||||
const columns = res.data.boards[0]?.columns;
|
||||
|
||||
// map board column id with column type
|
||||
const columnIdTypeMap = generateColumnIdTypeMap(columns);
|
||||
|
||||
Object.keys(columnValuesInput).forEach((key) => {
|
||||
if (columnValuesInput[key] !== '') {
|
||||
const columnType: string = columnIdTypeMap[key];
|
||||
mondayColumnValues[key] = convertPropValueToMondayColumnValue(
|
||||
columnType,
|
||||
columnValuesInput[key]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
return await client.createItem({
|
||||
itemName: item_name,
|
||||
boardId: board_id,
|
||||
groupId: group_id,
|
||||
columnValues: JSON.stringify(mondayColumnValues),
|
||||
createLabels: create_labels_if_missing ?? false,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient } from '../common';
|
||||
|
||||
export const createUpdateAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_create_update',
|
||||
displayName: 'Create Update',
|
||||
description: 'Creates a new update.',
|
||||
props: {
|
||||
item_id: Property.ShortText({
|
||||
displayName: 'Item ID',
|
||||
required: true,
|
||||
}),
|
||||
body: Property.LongText({
|
||||
displayName: 'Body',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { item_id, body } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.createUpdate({
|
||||
itemId: item_id as string,
|
||||
body: body as string,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,40 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import { parseMondayColumnValue } from '../common/helper';
|
||||
|
||||
export const getBoardItemValuesAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_get_board_values',
|
||||
displayName: 'Get Board Values',
|
||||
description: "Gets a list of board's items.",
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
column_ids: mondayCommon.columnIds(false),
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, column_ids } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.getBoardItemValues({
|
||||
boardId: board_id as string,
|
||||
columnIds: column_ids as string[],
|
||||
});
|
||||
const items = res.data.boards[0].items_page.items;
|
||||
|
||||
const result = [];
|
||||
for (const item of items) {
|
||||
const transformedValues: Record<string, any> = {
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
};
|
||||
for (const column of item.column_values) {
|
||||
transformedValues[column.id] = parseMondayColumnValue(column);
|
||||
}
|
||||
result.push(transformedValues);
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,36 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import { parseMondayColumnValue } from '../common/helper';
|
||||
|
||||
export const getItemsColumnValuesAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_get_item_column_values',
|
||||
displayName: "Get an Item's Column Values",
|
||||
description: 'Gets column values of an item.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
item_id: mondayCommon.item_id(true),
|
||||
column_ids: mondayCommon.columnIds(false),
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, item_id, column_ids } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.getItemColumnValues({
|
||||
boardId: board_id as string,
|
||||
itemId: item_id as string,
|
||||
columnIds: column_ids as string[],
|
||||
});
|
||||
const item = res.data.boards[0].items_page.items[0];
|
||||
const transformedValues: Record<string, any> = {
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
};
|
||||
for (const column of item.column_values) {
|
||||
transformedValues[column.id] = parseMondayColumnValue(column);
|
||||
}
|
||||
return transformedValues;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,53 @@
|
||||
import {
|
||||
DynamicPropsValue,
|
||||
createAction,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import {
|
||||
convertPropValueToMondayColumnValue,
|
||||
generateColumnIdTypeMap,
|
||||
} from '../common/helper';
|
||||
|
||||
export const updateColumnValuesOfItemAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_update_column_values_of_item',
|
||||
displayName: 'Update Column Values of Specific Item',
|
||||
description: 'Updates multiple columns values of specific item.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
item_id: mondayCommon.item_id(true),
|
||||
column_values: mondayCommon.columnValues,
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, item_id } = context.propsValue;
|
||||
const columnValuesInput = context.propsValue.column_values;
|
||||
const mondayColumnValues: DynamicPropsValue = {};
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.listBoardColumns({
|
||||
boardId: board_id as unknown as string,
|
||||
});
|
||||
const columns = res.data.boards[0]?.columns;
|
||||
|
||||
// map board column id with column type
|
||||
const columnIdTypeMap = generateColumnIdTypeMap(columns);
|
||||
|
||||
Object.keys(columnValuesInput).forEach((key) => {
|
||||
if (columnValuesInput[key] !== '') {
|
||||
const columnType: string = columnIdTypeMap[key];
|
||||
mondayColumnValues[key] = convertPropValueToMondayColumnValue(
|
||||
columnType,
|
||||
columnValuesInput[key]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
return await client.updateItem({
|
||||
boardId: board_id,
|
||||
itemId: item_id,
|
||||
columnValues: JSON.stringify(mondayColumnValues),
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
import { Property, createAction } from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
|
||||
export const updateItemNameAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_update_item_name',
|
||||
displayName: 'Update Item Name',
|
||||
description: 'Updates an item name.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
item_id: mondayCommon.item_id(true),
|
||||
name: Property.ShortText({
|
||||
displayName: 'New Item name',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { board_id, item_id, name } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
return await client.updateItem({
|
||||
boardId: board_id,
|
||||
itemId: item_id,
|
||||
columnValues: JSON.stringify({ name: name }),
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,105 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import { MondayColumnType } from '../common/constants';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import FormData from 'form-data';
|
||||
import { mondayAuth } from '../../';
|
||||
|
||||
export const uploadFileToColumnAction = createAction({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_upload_file_to_column',
|
||||
displayName: 'Upload File to Column',
|
||||
description: 'Upload a file to a column in Monday.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
item_id: mondayCommon.item_id(true),
|
||||
file_column_id: Property.Dropdown({
|
||||
auth: mondayAuth,
|
||||
displayName: 'File Column ID',
|
||||
required: true,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder:
|
||||
'connect your account first and select workspace board.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listBoardColumns({
|
||||
boardId: board_id as string,
|
||||
});
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.boards[0].columns
|
||||
.filter((column) => column.type === MondayColumnType.FILE)
|
||||
.map((column) => {
|
||||
return {
|
||||
label: column.title,
|
||||
value: column.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
file: Property.File({
|
||||
displayName: 'File',
|
||||
description: 'The file URL or base64 to upload.',
|
||||
required: true,
|
||||
}),
|
||||
file_name: Property.ShortText({
|
||||
displayName: 'File Name',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const itemId = context.propsValue.item_id;
|
||||
const fileColumnId = context.propsValue.file_column_id;
|
||||
const fileName = context.propsValue.file_name;
|
||||
const file = context.propsValue.file;
|
||||
|
||||
const formData = new FormData();
|
||||
|
||||
formData.append(
|
||||
'query',
|
||||
`mutation($item_id: ID!, $column_id: String!, $file: File!)
|
||||
{
|
||||
add_file_to_column(item_id: $item_id, column_id: $column_id, file: $file)
|
||||
{
|
||||
id
|
||||
url
|
||||
name
|
||||
file_size
|
||||
file_extension
|
||||
created_at
|
||||
}
|
||||
}`
|
||||
);
|
||||
formData.append(
|
||||
'variables',
|
||||
JSON.stringify({ item_id: itemId, column_id: fileColumnId })
|
||||
);
|
||||
formData.append('map', JSON.stringify({ file: 'variables.file' }));
|
||||
formData.append(
|
||||
'file',
|
||||
Buffer.from(file.base64, 'base64'),
|
||||
fileName || file.filename
|
||||
);
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
method: HttpMethod.POST,
|
||||
url: 'https://api.monday.com/v2/file',
|
||||
headers: {
|
||||
'API-Version': '2024-01',
|
||||
Authorization: context.auth.secret_text,
|
||||
...formData.getHeaders(),
|
||||
},
|
||||
body: formData,
|
||||
});
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,101 @@
|
||||
import mondaySdk from 'monday-sdk-js';
|
||||
import { MondayClientSdk } from 'monday-sdk-js/types/client-sdk.interface';
|
||||
import { Board, MondayColumn, User } from './models';
|
||||
import { mondayGraphQLMutations } from './mutations';
|
||||
import { mondayGraphQLQueries } from './queries';
|
||||
export class mondayClient {
|
||||
private client: MondayClientSdk;
|
||||
constructor(apiKey: string) {
|
||||
this.client = mondaySdk();
|
||||
this.client.setToken(apiKey);
|
||||
this.client.setApiVersion('2023-10');
|
||||
}
|
||||
async listWorkspcaes() {
|
||||
return await this.client.api<{
|
||||
workspaces: { id: string; name: string }[];
|
||||
}>(mondayGraphQLQueries.listWorkspaces);
|
||||
}
|
||||
async listWorkspaceBoards(variables: object) {
|
||||
return await this.client.api<{
|
||||
boards: { id: string; name: string; type: string }[];
|
||||
}>(mondayGraphQLQueries.listWorkspaceBoards, { variables: variables });
|
||||
}
|
||||
async listBoardGroups(variables: object) {
|
||||
return await this.client.api<{ boards: Board[] }>(
|
||||
mondayGraphQLQueries.listBoardGroups,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
async listBoardColumns(variables: object) {
|
||||
return await this.client.api<{ boards: { columns: MondayColumn[] }[] }>(
|
||||
mondayGraphQLQueries.listBoardColumns,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
async listBoardItems(variables: object) {
|
||||
return await this.client.api<{ boards: Board[] }>(
|
||||
mondayGraphQLQueries.listBoardItems,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
async createItem(variables: object) {
|
||||
return await this.client.api(mondayGraphQLMutations.createItem, {
|
||||
variables: variables,
|
||||
});
|
||||
}
|
||||
async updateItem(variables: object) {
|
||||
return await this.client.api(mondayGraphQLMutations.updateItem, {
|
||||
variables: variables,
|
||||
});
|
||||
}
|
||||
async createWebhook(variables: object) {
|
||||
return await this.client.api<{ id: string; board_id: string }>(
|
||||
mondayGraphQLMutations.createWebhook,
|
||||
{
|
||||
variables: variables,
|
||||
}
|
||||
);
|
||||
}
|
||||
async deleteWebhook(variables: object) {
|
||||
return await this.client.api(mondayGraphQLMutations.deleteWebhook, {
|
||||
variables: variables,
|
||||
});
|
||||
}
|
||||
async listUsers() {
|
||||
return await this.client.api<{ users: User[] }>(
|
||||
mondayGraphQLQueries.listUsers
|
||||
);
|
||||
}
|
||||
async getBoardItemValues(variables: object) {
|
||||
return await this.client.api<{ boards: Board[] }>(
|
||||
mondayGraphQLQueries.getBoardItemValues,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
async getItemColumnValues(variables: object) {
|
||||
return await this.client.api<{ boards: Board[] }>(
|
||||
mondayGraphQLQueries.getItemColumnValues,
|
||||
{
|
||||
variables: variables,
|
||||
}
|
||||
);
|
||||
}
|
||||
async createColumn(variables: object) {
|
||||
return await this.client.api<{ id: string }>(
|
||||
mondayGraphQLMutations.createColumn,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
async createGroup(variables: object) {
|
||||
return await this.client.api<{ id: string }>(
|
||||
mondayGraphQLMutations.createGroup,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
async createUpdate(variables: object) {
|
||||
return await this.client.api<{ id: string }>(
|
||||
mondayGraphQLMutations.createUpdate,
|
||||
{ variables: variables }
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
export const enum MondayColumnType {
|
||||
AUTO_NUMBER = 'auto_number',
|
||||
BOARD_RELATION = 'board_relation',
|
||||
BUTTON = 'button',
|
||||
CHECKBOX = 'checkbox',
|
||||
COLOR_PICKER = 'color_picker',
|
||||
COUNTRY = 'country',
|
||||
CREATION_LOG = 'creation_log',
|
||||
DATE = 'date',
|
||||
DEPENDENCY = 'dependency',
|
||||
DOC = 'doc',
|
||||
DROPDOWN = 'dropdown',
|
||||
EMAIL = 'email',
|
||||
FILE = 'file',
|
||||
FORMULA = 'formula',
|
||||
HOUR = 'hour',
|
||||
ITEM_ASSIGNEES = 'item_assignees',
|
||||
ITEM_ID = 'item_id',
|
||||
LAST_UPDATED = 'last_updated',
|
||||
LINK = 'link',
|
||||
LOCATION = 'location',
|
||||
LONG_TEXT = 'long_text',
|
||||
MIRROR = 'mirror',
|
||||
NAME = 'name',
|
||||
NUMBERS = 'numbers',
|
||||
PHONE = 'phone',
|
||||
PEOPLE = 'people',
|
||||
PROGRESS = 'progress',
|
||||
RATING = 'rating',
|
||||
STATUS = 'status',
|
||||
SUBTASKS = 'subtasks',
|
||||
TAGS = 'tags',
|
||||
TEAM = 'team',
|
||||
TEXT = 'text',
|
||||
TIMELINE = 'timeline',
|
||||
TIME_TRACKING = 'time_tracking',
|
||||
VOTE = 'vote',
|
||||
WEEK = 'week',
|
||||
WORLD_CLOCK = 'world_clock',
|
||||
UNSUPPORTED = 'unsupported',
|
||||
}
|
||||
|
||||
export const enum MondayWebhookEventType {
|
||||
CHANGE_COLUMN_VALUE = 'change_column_value',
|
||||
CHANGE_STATUS_COLUMN_VALUE = 'change_status_column_value',
|
||||
CHANGE_SUBITEM_COLUMN_VALUE = 'change_subitem_column_value',
|
||||
CHANGE_SPECIFIC_COLUMN_VALUE = 'change_specific_column_value',
|
||||
CHANGE_NAME = 'change_name',
|
||||
CREATE_ITEM = 'create_item',
|
||||
ITEM_ARCHIVED = 'item_archived',
|
||||
ITEM_DELETED = 'item_deleted',
|
||||
ITEM_MOVED_TO_ANY_GROUP = 'item_moved_to_any_group',
|
||||
ITEM_MOVED_TO_SPECIFIC_GROUP = 'item_moved_to_specific_group',
|
||||
ITEM_RESTORED = 'item_restored',
|
||||
CREATE_SUBITEM = 'create_subitem',
|
||||
CHANGE_SUBITEM_NAME = 'change_subitem_name',
|
||||
MOVE_SUBITEM = 'move_subitem',
|
||||
SUBITEM_ARCHIVED = 'subitem_archived',
|
||||
SUBITEM_DELETED = 'subitem_deleted',
|
||||
CREATE_COLUMN = 'create_column',
|
||||
CREATE_UPDATE = 'create_update',
|
||||
EDIT_UPDATE = 'edit_update',
|
||||
DELETE_UPDATE = 'delete_update',
|
||||
CREATE_SUBITEM_UPDATE = 'create_subitem_update',
|
||||
}
|
||||
export const enum BoardType {
|
||||
BOARD = 'board',
|
||||
SUB_ITEMS_BOARD = 'sub_items_board',
|
||||
}
|
||||
export const MondayNotWritableColumnType = [
|
||||
MondayColumnType.UNSUPPORTED,
|
||||
MondayColumnType.AUTO_NUMBER,
|
||||
MondayColumnType.NAME,
|
||||
MondayColumnType.COLOR_PICKER,
|
||||
MondayColumnType.BUTTON,
|
||||
MondayColumnType.MIRROR,
|
||||
MondayColumnType.SUBTASKS,
|
||||
MondayColumnType.ITEM_ID,
|
||||
MondayColumnType.CREATION_LOG,
|
||||
MondayColumnType.FILE,
|
||||
MondayColumnType.FORMULA,
|
||||
MondayColumnType.DOC,
|
||||
MondayColumnType.LAST_UPDATED,
|
||||
MondayColumnType.PROGRESS,
|
||||
MondayColumnType.TAGS,
|
||||
MondayColumnType.TIME_TRACKING,
|
||||
MondayColumnType.VOTE,
|
||||
];
|
||||
|
||||
export const COLUMN_TYPE_OPTIONS = [
|
||||
{
|
||||
label: 'Auto Number',
|
||||
value: MondayColumnType.AUTO_NUMBER,
|
||||
},
|
||||
{
|
||||
label: 'Color Picker',
|
||||
value: MondayColumnType.COLOR_PICKER,
|
||||
},
|
||||
{
|
||||
label: 'Checkbox',
|
||||
value: MondayColumnType.CHECKBOX,
|
||||
},
|
||||
{
|
||||
label: 'Country',
|
||||
value: MondayColumnType.COUNTRY,
|
||||
},
|
||||
{
|
||||
label: 'Creation Log',
|
||||
value: MondayColumnType.CREATION_LOG,
|
||||
},
|
||||
{
|
||||
label: 'Date',
|
||||
value: MondayColumnType.DATE,
|
||||
},
|
||||
{
|
||||
label: 'Dropdown',
|
||||
value: MondayColumnType.DROPDOWN,
|
||||
},
|
||||
{
|
||||
label: 'Email',
|
||||
value: MondayColumnType.EMAIL,
|
||||
},
|
||||
{
|
||||
label: 'Hour',
|
||||
value: MondayColumnType.HOUR,
|
||||
},
|
||||
{
|
||||
label: 'Item ID',
|
||||
value: MondayColumnType.ITEM_ID,
|
||||
},
|
||||
{
|
||||
label: 'Last Updated',
|
||||
value: MondayColumnType.LAST_UPDATED,
|
||||
},
|
||||
{
|
||||
label: 'Link',
|
||||
value: MondayColumnType.LINK,
|
||||
},
|
||||
{
|
||||
label: 'Location',
|
||||
value: MondayColumnType.LOCATION,
|
||||
},
|
||||
{
|
||||
label: 'Long Text',
|
||||
value: MondayColumnType.LONG_TEXT,
|
||||
},
|
||||
{
|
||||
label: 'Numbers',
|
||||
value: MondayColumnType.NUMBERS,
|
||||
},
|
||||
{
|
||||
label: 'People',
|
||||
value: MondayColumnType.PEOPLE,
|
||||
},
|
||||
{
|
||||
label: 'Phone',
|
||||
value: MondayColumnType.PHONE,
|
||||
},
|
||||
{
|
||||
label: 'Progress Tracking',
|
||||
value: MondayColumnType.PROGRESS,
|
||||
},
|
||||
{
|
||||
label: 'Rating',
|
||||
value: MondayColumnType.RATING,
|
||||
},
|
||||
{
|
||||
label: 'Status',
|
||||
value: MondayColumnType.STATUS,
|
||||
},
|
||||
{
|
||||
label: 'Tags',
|
||||
value: MondayColumnType.TAGS,
|
||||
},
|
||||
{
|
||||
label: 'Text',
|
||||
value: MondayColumnType.TEXT,
|
||||
},
|
||||
{
|
||||
label: 'Timeline',
|
||||
value: MondayColumnType.TIMELINE,
|
||||
},
|
||||
{
|
||||
label: 'Time Tracking',
|
||||
value: MondayColumnType.TIME_TRACKING,
|
||||
},
|
||||
{
|
||||
label: 'Vote',
|
||||
value: MondayColumnType.VOTE,
|
||||
},
|
||||
{
|
||||
label: 'Week',
|
||||
value: MondayColumnType.WEEK,
|
||||
},
|
||||
{
|
||||
label: 'World Clock',
|
||||
value: MondayColumnType.WORLD_CLOCK,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,374 @@
|
||||
import {
|
||||
DynamicPropsValue,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { isEmpty } from '@activepieces/shared';
|
||||
import dayjs from 'dayjs';
|
||||
import { MondayColumnType } from './constants';
|
||||
import { ColumnValue, MondayColumn } from './models';
|
||||
|
||||
type ColumnIdTypeMap = {
|
||||
[key: string]: string;
|
||||
};
|
||||
export function generateColumnIdTypeMap(
|
||||
columns: MondayColumn[]
|
||||
): ColumnIdTypeMap {
|
||||
const result: ColumnIdTypeMap = {};
|
||||
for (const column of columns) {
|
||||
result[column.id] = column.type;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// creates activepiece prop type for monday column
|
||||
export const convertMondayColumnToActivepiecesProp = (column: MondayColumn) => {
|
||||
switch (column.type) {
|
||||
case MondayColumnType.CHECKBOX:
|
||||
return Property.Checkbox({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
});
|
||||
case MondayColumnType.BOARD_RELATION:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
description:
|
||||
'A list of item IDs to connect with. The items must be on boards that are connected to the column. Example: [125345, 5846475]',
|
||||
required: false,
|
||||
});
|
||||
case MondayColumnType.COUNTRY:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `The ISO 2-letter code and the country's name are separated by a dash. Example: US-United States`,
|
||||
});
|
||||
case MondayColumnType.DATE:
|
||||
return Property.DateTime({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: 'Use YYYY-MM-DD HH:mm:ss format.',
|
||||
});
|
||||
case MondayColumnType.DEPENDENCY:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
description:
|
||||
'A list of item IDs from the same board. Example: [188392, 20339]',
|
||||
required: false,
|
||||
});
|
||||
case MondayColumnType.DROPDOWN: {
|
||||
const labels: { id: string; name: string }[] = JSON.parse(
|
||||
column.settings_str
|
||||
).labels;
|
||||
return Property.StaticMultiSelectDropdown({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
options: {
|
||||
disabled: false,
|
||||
options:
|
||||
labels.length > 0
|
||||
? labels.map((label) => {
|
||||
return {
|
||||
label: label.name,
|
||||
value: label.name,
|
||||
};
|
||||
})
|
||||
: [],
|
||||
},
|
||||
});
|
||||
}
|
||||
case MondayColumnType.EMAIL:
|
||||
case MondayColumnType.LINK:
|
||||
case MondayColumnType.TEXT:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
});
|
||||
case MondayColumnType.HOUR:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `Represent time in 24-hour format, like '16:30' or '2:00', ensuring removal of leading zeroes from data (e.g., send '9' instead of '09').`,
|
||||
});
|
||||
case MondayColumnType.LOCATION:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `Enter location details in the following format: **latitude|longitude|address(optional)**. For example: "37.7749|-122.4194|San Francisco, CA, USA."`,
|
||||
});
|
||||
case MondayColumnType.LONG_TEXT:
|
||||
return Property.LongText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
});
|
||||
case MondayColumnType.NUMBERS:
|
||||
return Property.Number({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
});
|
||||
case MondayColumnType.PHONE:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `Enter your phone number along with the country's ISO 2-letter code, separated by a dash. For ezample, 1234567890-US.`,
|
||||
});
|
||||
case MondayColumnType.RATING:
|
||||
return Property.Number({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `A number between 1 and 5.For example, 3.`,
|
||||
});
|
||||
case MondayColumnType.STATUS: {
|
||||
const labels = JSON.parse(column.settings_str).labels;
|
||||
const options: { label: string; value: string }[] = [];
|
||||
Object.keys(labels).forEach((key) => {
|
||||
if (labels[key] !== '') {
|
||||
options.push({ value: labels[key], label: labels[key] });
|
||||
}
|
||||
});
|
||||
return Property.StaticDropdown({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: options,
|
||||
},
|
||||
});
|
||||
}
|
||||
case MondayColumnType.TIMELINE:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `Enter the start and end dates in the YYYY-MM-DD format, separated by a symbol of semicolon(;) symbol. For example: '2022-01-01;2022-12-31`,
|
||||
});
|
||||
case MondayColumnType.WEEK:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `Enter the start and end dates in the YYYY-MM-DD format, separated by a symbol of semicolon(;) symbol. The dates must be 7 days apart (inclusive of the first and last date).\n For example: '2019-06-10;2019-06-16`,
|
||||
|
||||
});
|
||||
case MondayColumnType.WORLD_CLOCK:
|
||||
return Property.ShortText({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
description: `Enter the timezone in the 'Continent/City' format, for example, Europe/London.`,
|
||||
});
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
};
|
||||
export const convertPropValueToMondayColumnValue = (
|
||||
columnType: string,
|
||||
propValue: DynamicPropsValue
|
||||
) => {
|
||||
switch (columnType) {
|
||||
case MondayColumnType.CHECKBOX:
|
||||
return {
|
||||
checked: propValue ? 'true' : 'false',
|
||||
};
|
||||
case MondayColumnType.BOARD_RELATION:
|
||||
case MondayColumnType.DEPENDENCY:
|
||||
return {
|
||||
item_ids: JSON.parse(propValue as unknown as string),
|
||||
};
|
||||
case MondayColumnType.COUNTRY:
|
||||
return {
|
||||
countryCode: propValue.split('-')[0],
|
||||
countryName: propValue.split('-')[1],
|
||||
};
|
||||
case MondayColumnType.DATE: {
|
||||
let datevalue = dayjs(propValue as unknown as string);
|
||||
if (!datevalue.isValid()) {
|
||||
datevalue = dayjs();
|
||||
}
|
||||
return {
|
||||
date: datevalue.format('YYYY-MM-DD'),
|
||||
time: datevalue.format('HH:mm:ss'),
|
||||
};
|
||||
}
|
||||
case MondayColumnType.DROPDOWN:
|
||||
return {
|
||||
labels: propValue,
|
||||
};
|
||||
case MondayColumnType.EMAIL:
|
||||
return {
|
||||
email: propValue,
|
||||
text: propValue,
|
||||
};
|
||||
case MondayColumnType.HOUR: {
|
||||
const [hour, minute] = propValue.split(':');
|
||||
return {
|
||||
hour: Number(hour) ?? 0,
|
||||
minute: Number(minute) ?? 0,
|
||||
};
|
||||
}
|
||||
case MondayColumnType.LINK:
|
||||
return {
|
||||
url: propValue,
|
||||
text: propValue,
|
||||
};
|
||||
case MondayColumnType.LOCATION: {
|
||||
const [lat, lng, address] = propValue.split('|');
|
||||
return {
|
||||
lat: lat ?? '',
|
||||
lng: lng ?? '',
|
||||
address: address ?? '',
|
||||
};
|
||||
}
|
||||
case MondayColumnType.LONG_TEXT:
|
||||
return {
|
||||
text: propValue,
|
||||
};
|
||||
case MondayColumnType.NUMBERS:
|
||||
return String(propValue);
|
||||
case MondayColumnType.PEOPLE: {
|
||||
const res: { id: string; kind: string }[] = [];
|
||||
if (Array.isArray(propValue)) {
|
||||
propValue.forEach((person) => {
|
||||
res.push({ id: person, kind: 'person' });
|
||||
});
|
||||
}
|
||||
return {
|
||||
personsAndTeams: res,
|
||||
};
|
||||
}
|
||||
case MondayColumnType.PHONE: {
|
||||
const [phone, countryCode] = propValue.split('-');
|
||||
return {
|
||||
phone: `+${phone}`,
|
||||
countryShortName: countryCode,
|
||||
};
|
||||
}
|
||||
case MondayColumnType.RATING:
|
||||
return {
|
||||
rating: Number(propValue),
|
||||
};
|
||||
case MondayColumnType.STATUS:
|
||||
return {
|
||||
label: propValue,
|
||||
};
|
||||
case MondayColumnType.TEXT:
|
||||
return propValue;
|
||||
case MondayColumnType.TIMELINE:
|
||||
return {
|
||||
from: propValue.split(';')[0],
|
||||
to: propValue.split(';')[1],
|
||||
};
|
||||
case MondayColumnType.WEEK:
|
||||
return {
|
||||
startDate: propValue.split(';')[0],
|
||||
endDate: propValue.split(';')[1],
|
||||
};
|
||||
case MondayColumnType.WORLD_CLOCK:
|
||||
return {
|
||||
timezone: propValue,
|
||||
};
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
export const parseMondayColumnValue = (columnValue: ColumnValue) => {
|
||||
switch (columnValue.type) {
|
||||
case MondayColumnType.BUTTON:
|
||||
return columnValue.label;
|
||||
case MondayColumnType.CHECKBOX:
|
||||
return JSON.parse(columnValue.value)?.checked ?? false;
|
||||
case MondayColumnType.BOARD_RELATION:
|
||||
return columnValue.linked_item_ids ?? [];
|
||||
case MondayColumnType.DEPENDENCY:
|
||||
return JSON.parse(columnValue.linked_item_ids ?? '[]');
|
||||
case MondayColumnType.SUBTASKS: {
|
||||
const res: number[] = [];
|
||||
if (!isEmpty(JSON.parse(columnValue.value))) {
|
||||
JSON.parse(columnValue.value).linkedPulseIds.map(
|
||||
(item: { linkedPulseId: number }) => {
|
||||
res.push(item.linkedPulseId);
|
||||
}
|
||||
);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
case MondayColumnType.COLOR_PICKER:
|
||||
return JSON.parse(columnValue.value)?.color.hex ?? null;
|
||||
case MondayColumnType.COUNTRY:
|
||||
return JSON.parse(columnValue.value)?.countryName ?? null;
|
||||
case MondayColumnType.CREATION_LOG:
|
||||
return JSON.parse(columnValue.value)?.created_at ?? null;
|
||||
case MondayColumnType.DATE: {
|
||||
if (isEmpty(columnValue.value)) {
|
||||
return null;
|
||||
}
|
||||
const dateTime = JSON.parse(columnValue.value);
|
||||
return `${dateTime.date} ${dateTime.time}`;
|
||||
}
|
||||
case MondayColumnType.DOC:
|
||||
return JSON.parse(columnValue.value)?.files[0].linkToFile ?? null;
|
||||
case MondayColumnType.DROPDOWN:
|
||||
return JSON.parse(columnValue.value)?.ids ?? [];
|
||||
case MondayColumnType.EMAIL:
|
||||
return JSON.parse(columnValue.value)?.email ?? null;
|
||||
case MondayColumnType.FILE:
|
||||
return columnValue.text;
|
||||
case MondayColumnType.HOUR: {
|
||||
if (isEmpty(columnValue.value)) {
|
||||
return null;
|
||||
}
|
||||
const hourTime = JSON.parse(columnValue.value);
|
||||
return `${hourTime.hour}:${hourTime.minute}`;
|
||||
}
|
||||
case MondayColumnType.ITEM_ID:
|
||||
return JSON.parse(columnValue.value)?.item_id ?? null;
|
||||
case MondayColumnType.LAST_UPDATED:
|
||||
return JSON.parse(columnValue.value).updated_at;
|
||||
case MondayColumnType.LINK:
|
||||
return JSON.parse(columnValue.value)?.url ?? null;
|
||||
case MondayColumnType.LOCATION:
|
||||
return JSON.parse(columnValue.value)?.address ?? null;
|
||||
case MondayColumnType.LONG_TEXT:
|
||||
return JSON.parse(columnValue.value)?.text ?? null;
|
||||
case MondayColumnType.MIRROR:
|
||||
return null;
|
||||
case MondayColumnType.NUMBERS:
|
||||
return Number(JSON.parse(columnValue.value));
|
||||
case MondayColumnType.PEOPLE: {
|
||||
const people: number[] = [];
|
||||
if (!isEmpty(columnValue.value)) {
|
||||
JSON.parse(columnValue.value).personsAndTeams.map(
|
||||
(item: { id: number; kind: string }) => {
|
||||
people.push(item.id);
|
||||
}
|
||||
);
|
||||
}
|
||||
return people;
|
||||
}
|
||||
case MondayColumnType.PHONE:
|
||||
return JSON.parse(columnValue.value)?.phone ?? null;
|
||||
case MondayColumnType.RATING:
|
||||
return JSON.parse(columnValue.value)?.rating ?? null;
|
||||
case MondayColumnType.STATUS:
|
||||
return columnValue.label;
|
||||
case MondayColumnType.TAGS:
|
||||
return columnValue.tags.map((item: { name: string }) => item.name);
|
||||
case MondayColumnType.TEXT:
|
||||
return JSON.parse(columnValue.value);
|
||||
case MondayColumnType.TIMELINE: {
|
||||
if (isEmpty(columnValue.value)) {
|
||||
return null;
|
||||
}
|
||||
const timeline = JSON.parse(columnValue.value);
|
||||
return { from: timeline.from, to: timeline.to };
|
||||
}
|
||||
case MondayColumnType.TIME_TRACKING:
|
||||
return JSON.parse(columnValue.value)?.duration ?? null;
|
||||
case MondayColumnType.VOTE:
|
||||
return columnValue?.vote_count ?? 0;
|
||||
case MondayColumnType.WEEK: {
|
||||
return {
|
||||
startDate: columnValue.start_date,
|
||||
endDate: columnValue.end_date,
|
||||
};
|
||||
}
|
||||
case MondayColumnType.WORLD_CLOCK:
|
||||
return JSON.parse(columnValue.value)?.timezone ?? null;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,219 @@
|
||||
import { AppConnectionValueForAuthProperty, DynamicPropsValue, Property } from '@activepieces/pieces-framework';
|
||||
import { mondayClient } from './client';
|
||||
import { MondayColumnType, MondayNotWritableColumnType } from './constants';
|
||||
import { convertMondayColumnToActivepiecesProp } from './helper';
|
||||
import { mondayAuth } from '../..';
|
||||
|
||||
export function makeClient(auth: AppConnectionValueForAuthProperty<typeof mondayAuth>): mondayClient {
|
||||
return new mondayClient(auth.secret_text);
|
||||
}
|
||||
|
||||
export const mondayCommon = {
|
||||
workspace_id: (required = true) =>
|
||||
Property.Dropdown({
|
||||
auth: mondayAuth,
|
||||
|
||||
displayName: 'Workspace ID',
|
||||
required: required,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listWorkspcaes();
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.workspaces.map((workspace) => {
|
||||
return {
|
||||
label: workspace.name,
|
||||
value: workspace.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
board_id: (required = true) =>
|
||||
Property.Dropdown({
|
||||
auth: mondayAuth,
|
||||
displayName: 'Board ID',
|
||||
required: required,
|
||||
refreshers: ['workspace_id'],
|
||||
options: async ({ auth, workspace_id }) => {
|
||||
if (!auth || !workspace_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder:
|
||||
'connect your account first and select your workspace.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listWorkspaceBoards({
|
||||
workspaceId: workspace_id as string,
|
||||
});
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.boards
|
||||
.filter((board) => board.type === 'board')
|
||||
.map((board) => {
|
||||
return {
|
||||
label: board.name,
|
||||
value: board.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
group_id: (required = false) =>
|
||||
Property.Dropdown({
|
||||
auth: mondayAuth,
|
||||
displayName: 'Board Group ID',
|
||||
required: required,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder:
|
||||
'connect your account first and select workspace board.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listBoardGroups({
|
||||
boardId: board_id as string,
|
||||
});
|
||||
return {
|
||||
disabled: false,
|
||||
options:
|
||||
res.data.boards.length > 0
|
||||
? res.data.boards[0]?.groups.map((group) => ({
|
||||
label: group.title,
|
||||
value: group.id,
|
||||
}))
|
||||
: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
item_id: (required = true) =>
|
||||
Property.Dropdown({
|
||||
auth: mondayAuth,
|
||||
displayName: 'Item ID',
|
||||
required: required,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder:
|
||||
'connect your account first and select workspace board.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listBoardItems({
|
||||
boardId: board_id as string,
|
||||
});
|
||||
|
||||
const items = res.data.boards[0]?.items_page.items;
|
||||
return {
|
||||
disabled: false,
|
||||
options: items.map((item) => {
|
||||
return {
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
columnIds: (required = true) =>
|
||||
Property.MultiSelectDropdown({
|
||||
auth: mondayAuth,
|
||||
displayName: 'Column IDs',
|
||||
description:
|
||||
'Limit data output by specifying column IDs; leave empty to display all columns.',
|
||||
required,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder:
|
||||
'connect your account first and select workspace board.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listBoardColumns({
|
||||
boardId: board_id as string,
|
||||
});
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.boards[0].columns.map((column) => {
|
||||
return {
|
||||
label: column.title,
|
||||
value: column.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
columnValues: Property.DynamicProperties({
|
||||
auth: mondayAuth,
|
||||
displayName: 'Columns',
|
||||
required: true,
|
||||
refreshers: ['board_id'],
|
||||
props: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first and select workspace board.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const fields: DynamicPropsValue = {};
|
||||
try {
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listBoardColumns({
|
||||
boardId: board_id as unknown as string,
|
||||
});
|
||||
const columns = res.data.boards[0]?.columns;
|
||||
for (const column of columns) {
|
||||
if (!MondayNotWritableColumnType.includes(column.type)) {
|
||||
if (column.type === MondayColumnType.PEOPLE) {
|
||||
const userData = await client.listUsers();
|
||||
fields[column.id] = Property.StaticMultiSelectDropdown({
|
||||
displayName: column.title,
|
||||
required: false,
|
||||
options: {
|
||||
disabled: false,
|
||||
options: userData.data.users.map((user) => {
|
||||
return {
|
||||
label: `${user.name} (${user.email})`,
|
||||
value: user.id,
|
||||
};
|
||||
}),
|
||||
},
|
||||
});
|
||||
} else {
|
||||
const prop = convertMondayColumnToActivepiecesProp(column);
|
||||
if (prop != null) fields[column.id] = prop;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
}
|
||||
return fields;
|
||||
},
|
||||
}),
|
||||
};
|
||||
@@ -0,0 +1,80 @@
|
||||
import { BoardType, MondayColumnType } from './constants';
|
||||
|
||||
export interface MondayColumn {
|
||||
id: string;
|
||||
title: string;
|
||||
type: MondayColumnType;
|
||||
description?: string;
|
||||
settings_str: string;
|
||||
}
|
||||
export interface ColumnValue {
|
||||
id: string;
|
||||
value: string;
|
||||
text: string;
|
||||
type: MondayColumnType;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type WorkspaceResponse = {
|
||||
data: { workspaces: Workspace[] };
|
||||
account_id: number;
|
||||
};
|
||||
|
||||
export interface Workspace {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
export interface Group {
|
||||
id: string;
|
||||
title: string;
|
||||
}
|
||||
export interface SubItem {
|
||||
id: string;
|
||||
board: Board;
|
||||
group: Group;
|
||||
subscribers: User[];
|
||||
name: string;
|
||||
email: string;
|
||||
created_at: string;
|
||||
}
|
||||
export interface Item {
|
||||
id: string;
|
||||
board: Board;
|
||||
group: Group;
|
||||
name: string;
|
||||
email: string;
|
||||
created_at: string;
|
||||
column_values: ColumnValue[];
|
||||
subitems: SubItem[];
|
||||
}
|
||||
export interface Board {
|
||||
id: string;
|
||||
name: string;
|
||||
groups: Group[];
|
||||
type: BoardType;
|
||||
items_page: { items: Item[] };
|
||||
}
|
||||
|
||||
export interface Update {
|
||||
body: string;
|
||||
id: string;
|
||||
created_at: string;
|
||||
creator: {
|
||||
name: string;
|
||||
id: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface User {
|
||||
id: string;
|
||||
name: string;
|
||||
email: string;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
export type BoardResponse = { data: { boards: Board[] }; account_id: number };
|
||||
|
||||
export interface WebhookInformation {
|
||||
id: string;
|
||||
board_id: string;
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
export const mondayGraphQLMutations = {
|
||||
createItem: `
|
||||
mutation createItem(
|
||||
$itemName: String!
|
||||
$boardId: ID!
|
||||
$groupId: String
|
||||
$columnValues: JSON
|
||||
$createLabels: Boolean
|
||||
) {
|
||||
create_item(
|
||||
item_name: $itemName
|
||||
board_id: $boardId
|
||||
group_id: $groupId
|
||||
column_values: $columnValues
|
||||
create_labels_if_missing: $createLabels
|
||||
) {
|
||||
id
|
||||
}
|
||||
}`,
|
||||
updateItem: `
|
||||
mutation updateItem($itemId: ID!, $boardId: ID!, $columnValues: JSON!) {
|
||||
change_multiple_column_values(
|
||||
item_id: $itemId
|
||||
board_id: $boardId
|
||||
column_values: $columnValues
|
||||
) {
|
||||
id
|
||||
name
|
||||
}
|
||||
}`,
|
||||
createWebhook: `
|
||||
mutation createWebhook(
|
||||
$boardId: ID!
|
||||
$url: String!
|
||||
$event: WebhookEventType!
|
||||
$config: JSON
|
||||
) {
|
||||
create_webhook(
|
||||
board_id: $boardId
|
||||
url: $url
|
||||
event: $event
|
||||
config: $config
|
||||
) {
|
||||
id
|
||||
board_id
|
||||
}
|
||||
}`,
|
||||
deleteWebhook: `
|
||||
mutation deleteWebhook($webhookId: ID!) {
|
||||
delete_webhook(id: $webhookId) {
|
||||
id
|
||||
board_id
|
||||
}
|
||||
}`,
|
||||
createColumn: `
|
||||
mutation createColumn(
|
||||
$boardId: ID!
|
||||
$columnTitle: String!
|
||||
$columnType: ColumnType!
|
||||
) {
|
||||
create_column(
|
||||
board_id: $boardId
|
||||
title: $columnTitle
|
||||
column_type: $columnType
|
||||
) {
|
||||
id
|
||||
}
|
||||
}`,
|
||||
createGroup: `
|
||||
mutation createGroup($boardId: ID!, $groupName: String!) {
|
||||
create_group(board_id: $boardId, group_name: $groupName) {
|
||||
id
|
||||
}
|
||||
}`,
|
||||
createUpdate: `
|
||||
mutation createUpdate($itemId: ID!, $body: String!) {
|
||||
create_update(item_id: $itemId, body: $body) {
|
||||
id
|
||||
}
|
||||
}`,
|
||||
};
|
||||
@@ -0,0 +1,158 @@
|
||||
export const mondayGraphQLQueries = {
|
||||
listWorkspaces: `
|
||||
query listWorkspaces($limit: Int)
|
||||
{
|
||||
workspaces(limit: $limit)
|
||||
{
|
||||
id
|
||||
name
|
||||
}
|
||||
}`,
|
||||
listWorkspaceBoards: `
|
||||
query listWorkspaceBoards($workspaceId: ID)
|
||||
{
|
||||
boards(workspace_ids: [$workspaceId], order_by: created_at)
|
||||
{
|
||||
id
|
||||
name
|
||||
type
|
||||
}
|
||||
}`,
|
||||
listBoardGroups: `
|
||||
query listGroups($boardId: ID!)
|
||||
{
|
||||
boards(ids: [$boardId])
|
||||
{
|
||||
groups{
|
||||
id
|
||||
title
|
||||
}
|
||||
}
|
||||
}`,
|
||||
listBoardColumns: `
|
||||
query listBoardColumns($boardId: ID!)
|
||||
{
|
||||
boards(ids: [$boardId])
|
||||
{
|
||||
columns{
|
||||
id
|
||||
title
|
||||
type
|
||||
settings_str
|
||||
description
|
||||
}
|
||||
}
|
||||
}`,
|
||||
listBoardItems: `
|
||||
query listBoardItems($boardId: ID!)
|
||||
{
|
||||
boards(ids: [$boardId])
|
||||
{
|
||||
items_page
|
||||
{
|
||||
items{
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
}`,
|
||||
listUsers: `
|
||||
query listUsers
|
||||
{
|
||||
users(newest_first: true)
|
||||
{
|
||||
id
|
||||
name
|
||||
email
|
||||
}
|
||||
}`,
|
||||
getItemColumnValues: `
|
||||
query getItemColumnValues($boardId: ID!,$itemId: ID!,$columnIds: [String!])
|
||||
{
|
||||
boards(ids: [$boardId])
|
||||
{
|
||||
items_page(query_params: {ids: [$itemId]})
|
||||
{
|
||||
items{
|
||||
id
|
||||
name
|
||||
column_values(ids: $columnIds){
|
||||
id
|
||||
type
|
||||
value
|
||||
text
|
||||
... on ButtonValue{
|
||||
label
|
||||
}
|
||||
... on StatusValue{
|
||||
label
|
||||
}
|
||||
... on VoteValue{
|
||||
vote_count
|
||||
}
|
||||
... on TagsValue{
|
||||
tags{
|
||||
name
|
||||
}
|
||||
}
|
||||
... on BoardRelationValue {
|
||||
linked_item_ids
|
||||
}
|
||||
... on DependencyValue {
|
||||
linked_item_ids
|
||||
}
|
||||
... on WeekValue {
|
||||
start_date
|
||||
end_date
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}`,
|
||||
getBoardItemValues: `
|
||||
query getItemColumnValues($boardId: ID!,$columnIds: [String!])
|
||||
{
|
||||
boards(ids: [$boardId])
|
||||
{
|
||||
items_page(query_params: {order_by: {column_id: "__last_updated__",direction: desc}})
|
||||
{
|
||||
items{
|
||||
id
|
||||
name
|
||||
column_values(ids: $columnIds){
|
||||
id
|
||||
type
|
||||
value
|
||||
text
|
||||
... on ButtonValue{
|
||||
label
|
||||
}
|
||||
... on StatusValue{
|
||||
label
|
||||
}
|
||||
... on VoteValue{
|
||||
vote_count
|
||||
}
|
||||
... on TagsValue{
|
||||
tags{
|
||||
name
|
||||
}
|
||||
}
|
||||
... on BoardRelationValue {
|
||||
linked_item_ids
|
||||
}
|
||||
... on DependencyValue {
|
||||
linked_item_ids
|
||||
}
|
||||
... on WeekValue {
|
||||
start_date
|
||||
end_date
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}`,
|
||||
};
|
||||
@@ -0,0 +1,118 @@
|
||||
import {
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import { MondayWebhookEventType } from '../common/constants';
|
||||
import { parseMondayColumnValue } from '../common/helper';
|
||||
import { WebhookInformation } from '../common/models';
|
||||
import { WebhookHandshakeStrategy } from '@activepieces/shared';
|
||||
export const newItemInBoardTrigger = createTrigger({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_new_item_in_board',
|
||||
displayName: 'New Item in Board',
|
||||
description: 'Triggers when a new item is created in board.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
sampleData: {
|
||||
event: {
|
||||
userId: 9603417,
|
||||
originalTriggerUuid: null,
|
||||
boardId: 1771812698,
|
||||
pulseId: 1772099344,
|
||||
pulseName: 'Create_item webhook',
|
||||
groupId: 'topics',
|
||||
groupName: 'Group Title',
|
||||
groupColor: '#579bfc',
|
||||
isTopGroup: true,
|
||||
columnValues: {},
|
||||
app: 'monday',
|
||||
type: 'create_pulse',
|
||||
triggerTime: '2021-10-11T09:07:28.210Z',
|
||||
subscriptionId: 73759690,
|
||||
triggerUuid: 'b5ed2e17c530f43668de130142445cba',
|
||||
},
|
||||
},
|
||||
async onEnable(context) {
|
||||
const { board_id } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.createWebhook({
|
||||
boardId: board_id,
|
||||
url: context.webhookUrl,
|
||||
event: MondayWebhookEventType.CREATE_ITEM,
|
||||
});
|
||||
await context.store.put<WebhookInformation>(
|
||||
'monday_new_item_trigger',
|
||||
res.data
|
||||
);
|
||||
},
|
||||
async onDisable(context) {
|
||||
const webhook = await context.store.get<WebhookInformation>(
|
||||
'monday_new_item_trigger'
|
||||
);
|
||||
if (webhook != null) {
|
||||
const client = makeClient(context.auth);
|
||||
await client.deleteWebhook({ webhookId: webhook.id });
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
const payload = context.payload.body as MondayWebhookPayload;
|
||||
const transformedValues: Record<string, any> = {};
|
||||
try {
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.getItemColumnValues({
|
||||
boardId: payload.event.boardId,
|
||||
itemId: payload.event.pulseId,
|
||||
});
|
||||
const item = res.data.boards[0].items_page.items[0];
|
||||
for (const column of item.column_values) {
|
||||
transformedValues[column.id] = parseMondayColumnValue(column);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
const enriched = [
|
||||
{
|
||||
...payload,
|
||||
columnValues: transformedValues,
|
||||
},
|
||||
];
|
||||
return enriched;
|
||||
},
|
||||
handshakeConfiguration: {
|
||||
strategy: WebhookHandshakeStrategy.BODY_PARAM_PRESENT,
|
||||
paramName: 'challenge',
|
||||
},
|
||||
async onHandshake(context) {
|
||||
return {
|
||||
status: 200,
|
||||
body: { challenge: (context.payload.body as any)['challenge'] },
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
interface MondayWebhookPayload {
|
||||
event: {
|
||||
userId: number;
|
||||
originalTriggerUuid: null;
|
||||
boardId: number;
|
||||
pulseId: number;
|
||||
pulseName: string;
|
||||
groupId: string;
|
||||
groupName: string;
|
||||
groupColor: string;
|
||||
isTopGroup: boolean;
|
||||
columnValues: Record<string, unknown>;
|
||||
app: string;
|
||||
type: 'create_pulse';
|
||||
triggerTime: string;
|
||||
subscriptionId: number;
|
||||
triggerUuid: string;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
import {
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
createTrigger,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { mondayAuth } from '../..';
|
||||
import { makeClient, mondayCommon } from '../common';
|
||||
import {
|
||||
MondayNotWritableColumnType,
|
||||
MondayWebhookEventType,
|
||||
} from '../common/constants';
|
||||
import { WebhookInformation } from '../common/models';
|
||||
import { WebhookHandshakeStrategy } from '@activepieces/shared';
|
||||
export const specificColumnValueUpdatedTrigger = createTrigger({
|
||||
auth: mondayAuth,
|
||||
name: 'monday_specific_column_updated',
|
||||
displayName: 'Specific Column Value Updated in Board',
|
||||
description: 'Triggers when a specific column value is updated in board.',
|
||||
props: {
|
||||
workspace_id: mondayCommon.workspace_id(true),
|
||||
board_id: mondayCommon.board_id(true),
|
||||
column_id: Property.Dropdown({
|
||||
auth: mondayAuth,
|
||||
displayName: 'Column ID',
|
||||
required: true,
|
||||
refreshers: ['board_id'],
|
||||
options: async ({ auth, board_id }) => {
|
||||
if (!auth || !board_id) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder:
|
||||
'connect your account first and select workspace board.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const client = makeClient(auth);
|
||||
const res = await client.listBoardColumns({
|
||||
boardId: board_id as string,
|
||||
});
|
||||
return {
|
||||
disabled: false,
|
||||
options: res.data.boards[0].columns
|
||||
.filter(
|
||||
(column) => !MondayNotWritableColumnType.includes(column.type)
|
||||
)
|
||||
.map((column) => {
|
||||
return {
|
||||
label: column.title,
|
||||
value: column.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
sampleData: {
|
||||
event: {
|
||||
app: 'monday',
|
||||
type: 'update_column_value',
|
||||
triggerTime: '2024-01-08T04:41:55.245Z',
|
||||
subscriptionId: 3209024,
|
||||
userId: 53812737,
|
||||
originalTriggerUuid: null,
|
||||
boardId: 1835745535,
|
||||
groupId: 'topics',
|
||||
pulseId: 1835700420,
|
||||
pulseName: 'Sample Item',
|
||||
columnId: 'country',
|
||||
columnType: 'country',
|
||||
columnTitle: 'Country',
|
||||
value: {
|
||||
countryCode: 'AW',
|
||||
countryName: 'Aruba',
|
||||
changed_at: '2024-01-08T04:42:00.109Z',
|
||||
},
|
||||
previousValue: {
|
||||
changed_at: '2024-01-08T04:41:39.461Z',
|
||||
countryCode: 'IO',
|
||||
countryName: 'British Indian Ocean Territory',
|
||||
},
|
||||
changedAt: 1704688953.239433,
|
||||
isTopGroup: true,
|
||||
triggerUuid: '72a1ec82ea678e03b55b050711b71e9d',
|
||||
},
|
||||
},
|
||||
async onEnable(context) {
|
||||
const { board_id, column_id } = context.propsValue;
|
||||
|
||||
const client = makeClient(context.auth);
|
||||
const res = await client.createWebhook({
|
||||
boardId: board_id,
|
||||
url: context.webhookUrl,
|
||||
event: MondayWebhookEventType.CHANGE_SPECIFIC_COLUMN_VALUE,
|
||||
config: JSON.stringify({ columnId: column_id }),
|
||||
});
|
||||
await context.store.put<WebhookInformation>(
|
||||
'monday_specific_column_updated',
|
||||
res.data
|
||||
);
|
||||
},
|
||||
async onDisable(context) {
|
||||
const webhook = await context.store.get<WebhookInformation>(
|
||||
'monday_specific_column_updated'
|
||||
);
|
||||
if (webhook != null) {
|
||||
const client = makeClient(context.auth);
|
||||
await client.deleteWebhook({ webhookId: webhook.id });
|
||||
}
|
||||
},
|
||||
async run(context) {
|
||||
return [context.payload.body];
|
||||
},
|
||||
handshakeConfiguration: {
|
||||
strategy: WebhookHandshakeStrategy.BODY_PARAM_PRESENT,
|
||||
paramName: 'challenge',
|
||||
},
|
||||
async onHandshake(context) {
|
||||
return {
|
||||
status: 200,
|
||||
body: { challenge: (context.payload.body as any)['challenge'] },
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
],
|
||||
"compilerOptions": {
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user