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,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Saleor Token",
|
||||
"Your Saleor GraphQL API endpoint": "Ihr Saleor GraphQL API Endpunkt",
|
||||
"Your token": "Dein Token",
|
||||
"Saleor": "Verkäufer",
|
||||
"Raw GraphQL query": "Rohe GraphQL-Abfrage",
|
||||
"Get an order": "Bestellen",
|
||||
"Add Order Note": "Bestellnotiz hinzufügen",
|
||||
"Perform a raw GraphQL query": "Eine rohe GraphQL-Abfrage ausführen",
|
||||
"Get an order according to the ID": "Erhalten Sie eine Bestellung gemäß der ID",
|
||||
"Add a note to a Saleor order": "Eine Notiz zu einer Saleor Bestellung hinzufügen",
|
||||
"Query": "Abfrage",
|
||||
"Parameters": "Parameter",
|
||||
"The ID of the order": "Die ID der Bestellung",
|
||||
"Order ID": "Bestell-ID",
|
||||
"Note Message": "Notiznachricht",
|
||||
"The content of the note": "Der Inhalt der Notiz"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Token de venta",
|
||||
"Your Saleor GraphQL API endpoint": "Su terminal API de Saleor GraphQL",
|
||||
"Your token": "Tu token",
|
||||
"Saleor": "Vendedor",
|
||||
"Raw GraphQL query": "Consulta GraphQL Raw",
|
||||
"Get an order": "Obtener un pedido",
|
||||
"Add Order Note": "Añadir nota de pedido",
|
||||
"Perform a raw GraphQL query": "Realizar una consulta GraphQL sin procesar",
|
||||
"Get an order according to the ID": "Obtener un pedido de acuerdo con el ID",
|
||||
"Add a note to a Saleor order": "Añadir una nota a un pedido de venta",
|
||||
"Query": "Consulta",
|
||||
"Parameters": "Parámetros",
|
||||
"The ID of the order": "El ID del pedido",
|
||||
"Order ID": "ID del pedido",
|
||||
"Note Message": "Mensaje de nota",
|
||||
"The content of the note": "El contenido de la nota"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Jeton de vendeur",
|
||||
"Your Saleor GraphQL API endpoint": "Votre point de terminaison API Saleor GraphQL",
|
||||
"Your token": "Votre jeton",
|
||||
"Saleor": "Vendeur",
|
||||
"Raw GraphQL query": "Requête GraphQL brute",
|
||||
"Get an order": "Obtenir une commande",
|
||||
"Add Order Note": "Ajouter une note de commande",
|
||||
"Perform a raw GraphQL query": "Effectuer une requête GraphQL brute",
|
||||
"Get an order according to the ID": "Obtenir une commande selon l'ID",
|
||||
"Add a note to a Saleor order": "Ajouter une note à une commande de vendeur",
|
||||
"Query": "Requête",
|
||||
"Parameters": "Paramètres",
|
||||
"The ID of the order": "L'ID de la prescription",
|
||||
"Order ID": "ID de la commande",
|
||||
"Note Message": "Message de note",
|
||||
"The content of the note": "Le contenu de la note"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "販売トークン",
|
||||
"Your Saleor GraphQL API endpoint": "Saleor GraphQL エンドポイント",
|
||||
"Your token": "あなたのトークン",
|
||||
"Saleor": "販売",
|
||||
"Raw GraphQL query": "生のGraphQLクエリ",
|
||||
"Get an order": "注文を取得",
|
||||
"Add Order Note": "注文の追加",
|
||||
"Perform a raw GraphQL query": "生のGraphQLクエリを実行します",
|
||||
"Get an order according to the ID": "IDに従って注文を取得する",
|
||||
"Add a note to a Saleor order": "販売注文にメモを追加する",
|
||||
"Query": "クエリ",
|
||||
"Parameters": "パラメータ",
|
||||
"The ID of the order": "注文のID",
|
||||
"Order ID": "注文ID",
|
||||
"Note Message": "メモメッセージ",
|
||||
"The content of the note": "メモの内容"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Verkoop token",
|
||||
"Your Saleor GraphQL API endpoint": "Uw Verkoper GraphQL API eindpunt",
|
||||
"Your token": "Jouw token",
|
||||
"Saleor": "Verkoper",
|
||||
"Raw GraphQL query": "Onbewerkte GraphQL query",
|
||||
"Get an order": "Vraag een bestelling aan",
|
||||
"Add Order Note": "Voeg bestellingsnotitie toe",
|
||||
"Perform a raw GraphQL query": "Een rauwe GraphQL query uitvoeren",
|
||||
"Get an order according to the ID": "Ontvang een bestelling volgens het ID",
|
||||
"Add a note to a Saleor order": "Voeg een notitie toe aan een verkooporder",
|
||||
"Query": "Zoekopdracht",
|
||||
"Parameters": "Parameters",
|
||||
"The ID of the order": "Het ID van de bestelling",
|
||||
"Order ID": "Bestelling ID",
|
||||
"Note Message": "Bericht bij notitie",
|
||||
"The content of the note": "De inhoud van de notitie"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Token de vendedor",
|
||||
"Your Saleor GraphQL API endpoint": "Seu ponto de extremidade API do Saleor GraphQL",
|
||||
"Your token": "Seu token",
|
||||
"Saleor": "Vendedor",
|
||||
"Raw GraphQL query": "Consulta de Raw GraphQL",
|
||||
"Get an order": "Obter um pedido",
|
||||
"Add Order Note": "Adicionar Nota do Pedido",
|
||||
"Perform a raw GraphQL query": "Execute uma consulta raw do GraphQL",
|
||||
"Get an order according to the ID": "Obter um pedido de acordo com o ID",
|
||||
"Add a note to a Saleor order": "Adicionar uma nota a um pedido de venda",
|
||||
"Query": "Requisição",
|
||||
"Parameters": "Parâmetros",
|
||||
"The ID of the order": "O ID do pedido",
|
||||
"Order ID": "ID da encomenda",
|
||||
"Note Message": "Mensagem de Nota",
|
||||
"The content of the note": "O conteúdo da nota"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor": "Продавец",
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Маркер продажи",
|
||||
"Your Saleor GraphQL API endpoint": "Ваша конечная точка GraphQL API продаж",
|
||||
"Your token": "Ваш токен",
|
||||
"Raw GraphQL query": "Запрос сырых GraphQL",
|
||||
"Get an order": "Получить заказ",
|
||||
"Add Order Note": "Добавить заметку к заказу",
|
||||
"Perform a raw GraphQL query": "Выполнить необработанный запрос GraphQL",
|
||||
"Get an order according to the ID": "Получить заказ по идентификатору",
|
||||
"Add a note to a Saleor order": "Добавить заметку к заказу Saleor",
|
||||
"Query": "Запрос",
|
||||
"Parameters": "Параметры",
|
||||
"The ID of the order": "ID заказа",
|
||||
"Order ID": "ID Заказа",
|
||||
"Note Message": "Примечание",
|
||||
"The content of the note": "Содержание записки"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Saleor token",
|
||||
"Your Saleor GraphQL API endpoint": "Your Saleor GraphQL API endpoint",
|
||||
"Your token": "Your token",
|
||||
"Saleor": "Saleor",
|
||||
"Raw GraphQL query": "Raw GraphQL query",
|
||||
"Get an order": "Get an order",
|
||||
"Add Order Note": "Add Order Note",
|
||||
"Perform a raw GraphQL query": "Perform a raw GraphQL query",
|
||||
"Get an order according to the ID": "Get an order according to the ID",
|
||||
"Add a note to a Saleor order": "Add a note to a Saleor order",
|
||||
"Query": "Query",
|
||||
"Parameters": "Parameters",
|
||||
"The ID of the order": "The ID of the order",
|
||||
"Order ID": "Order ID",
|
||||
"Note Message": "Note Message",
|
||||
"The content of the note": "The content of the note"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor": "Saleor",
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Saleor token",
|
||||
"Your Saleor GraphQL API endpoint": "Your Saleor GraphQL API endpoint",
|
||||
"Your token": "Your token",
|
||||
"Raw GraphQL query": "Raw GraphQL query",
|
||||
"Get an order": "Get an order",
|
||||
"Add Order Note": "Add Order Note",
|
||||
"Perform a raw GraphQL query": "Perform a raw GraphQL query",
|
||||
"Get an order according to the ID": "Get an order according to the ID",
|
||||
"Add a note to a Saleor order": "Add a note to a Saleor order",
|
||||
"Query": "Query",
|
||||
"Parameters": "Parameters",
|
||||
"The ID of the order": "The ID of the order",
|
||||
"Order ID": "Order ID",
|
||||
"Note Message": "Note Message",
|
||||
"The content of the note": "The content of the note"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Saleor API URL": "Saleor API URL",
|
||||
"Saleor token": "Saleor token",
|
||||
"Your Saleor GraphQL API endpoint": "Your Saleor GraphQL API endpoint",
|
||||
"Your token": "Your token",
|
||||
"Saleor": "Saleor",
|
||||
"Raw GraphQL query": "Raw GraphQL query",
|
||||
"Get an order": "Get an order",
|
||||
"Add Order Note": "Add Order Note",
|
||||
"Perform a raw GraphQL query": "Perform a raw GraphQL query",
|
||||
"Get an order according to the ID": "Get an order according to the ID",
|
||||
"Add a note to a Saleor order": "Add a note to a Saleor order",
|
||||
"Query": "Query",
|
||||
"Parameters": "Parameters",
|
||||
"The ID of the order": "The ID of the order",
|
||||
"Order ID": "Order ID",
|
||||
"Note Message": "Note Message",
|
||||
"The content of the note": "The content of the note"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { createPiece, PieceAuth, Property } from "@activepieces/pieces-framework";
|
||||
import { saleorRawGraphqlQuery } from "./lib/actions/raw-graphql-query";
|
||||
import { getOrder } from "./lib/actions/get-order";
|
||||
import { addOrderNote } from "./lib/actions/add-note-to-order";
|
||||
|
||||
export const saleorAuth = PieceAuth.CustomAuth({
|
||||
description: 'Saleor',
|
||||
required: true,
|
||||
props: {
|
||||
apiUrl: Property.ShortText({
|
||||
displayName: 'Saleor API URL',
|
||||
required: true,
|
||||
description: 'Your Saleor GraphQL API endpoint'
|
||||
}),
|
||||
token: Property.ShortText({
|
||||
displayName: 'Saleor token',
|
||||
required: true,
|
||||
description: 'Your token'
|
||||
}),
|
||||
}
|
||||
})
|
||||
|
||||
export const saleor = createPiece({
|
||||
displayName: "Saleor",
|
||||
auth: saleorAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl: "https://cdn.activepieces.com/pieces/saleor.png",
|
||||
authors: ["Kevinyu-alan"],
|
||||
actions: [
|
||||
saleorRawGraphqlQuery,
|
||||
getOrder,
|
||||
addOrderNote
|
||||
],
|
||||
triggers: [],
|
||||
});
|
||||
@@ -0,0 +1,58 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
|
||||
import { saleorAuth } from '../..';
|
||||
import { AuthenticationType, httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
|
||||
export const addOrderNote = createAction({
|
||||
name: 'addOrderNote',
|
||||
displayName: 'Add Order Note',
|
||||
description: 'Add a note to a Saleor order',
|
||||
auth: saleorAuth,
|
||||
props: {
|
||||
orderId: Property.ShortText({
|
||||
displayName: 'Order ID',
|
||||
description: 'The ID of the order',
|
||||
required: true
|
||||
}),
|
||||
message: Property.LongText({
|
||||
displayName: 'Note Message',
|
||||
description: 'The content of the note',
|
||||
required: true
|
||||
})
|
||||
},
|
||||
async run({auth, propsValue}) {
|
||||
const { orderId, message } = propsValue;
|
||||
const { token, apiUrl } = auth.props;
|
||||
|
||||
const query = `
|
||||
mutation AddOrderNote($orderId: ID!, $message: String!) {
|
||||
orderNoteAdd(
|
||||
order: $orderId,
|
||||
input: {
|
||||
message: $message,
|
||||
}
|
||||
) {
|
||||
order {
|
||||
id
|
||||
number
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
url: apiUrl,
|
||||
method: HttpMethod.POST,
|
||||
body: JSON.stringify({
|
||||
query: query,
|
||||
variables: { orderId, message }
|
||||
}),
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: token,
|
||||
},
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,72 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
|
||||
import { saleorAuth } from '../..';
|
||||
import { AuthenticationType, httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
|
||||
export const getOrder = createAction({
|
||||
name: 'getOrder',
|
||||
displayName: 'Get an order',
|
||||
description: 'Get an order according to the ID',
|
||||
auth: saleorAuth,
|
||||
props: {
|
||||
orderId: Property.ShortText({
|
||||
displayName: 'The ID of the order',
|
||||
required: true
|
||||
}),
|
||||
},
|
||||
async run({auth, propsValue}) {
|
||||
const orderId = propsValue.orderId
|
||||
const { token, apiUrl } = auth.props;
|
||||
|
||||
const query = `
|
||||
query GetOrder($orderId: ID!) {
|
||||
order(id: $orderId) {
|
||||
id
|
||||
number
|
||||
created
|
||||
status
|
||||
|
||||
total {
|
||||
gross {
|
||||
amount
|
||||
currency
|
||||
}
|
||||
}
|
||||
|
||||
user {
|
||||
email
|
||||
firstName
|
||||
lastName
|
||||
}
|
||||
|
||||
lines {
|
||||
productName
|
||||
variantName
|
||||
quantity
|
||||
unitPrice {
|
||||
gross {
|
||||
amount
|
||||
currency
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
url: apiUrl,
|
||||
method: HttpMethod.POST,
|
||||
body: JSON.stringify({
|
||||
query: query,
|
||||
variables: { orderId }
|
||||
}),
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: token,
|
||||
},
|
||||
});
|
||||
|
||||
return response;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
|
||||
import { saleorAuth } from '../..';
|
||||
import { AuthenticationType, httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
|
||||
export const saleorRawGraphqlQuery = createAction({
|
||||
name: 'rawGraphqlQuery',
|
||||
displayName: 'Raw GraphQL query',
|
||||
description: 'Perform a raw GraphQL query',
|
||||
auth: saleorAuth,
|
||||
props: {
|
||||
query: Property.LongText({ displayName: 'Query', required: true }),
|
||||
variables: Property.Object({ displayName: 'Parameters', required: false }),
|
||||
},
|
||||
async run({auth, propsValue}) {
|
||||
const { query, variables } = propsValue;
|
||||
const { token, apiUrl } = auth.props;
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
url: apiUrl,
|
||||
method: HttpMethod.POST,
|
||||
body: JSON.stringify({
|
||||
query: query,
|
||||
variables: variables,
|
||||
}),
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: token,
|
||||
},
|
||||
});
|
||||
|
||||
return response;
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user