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,33 @@
|
||||
{
|
||||
"extends": [
|
||||
"../../../../.eslintrc.base.json"
|
||||
],
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx",
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-uscreen
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Building
|
||||
|
||||
Run `nx build pieces-uscreen` to build the library.
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "@activepieces/piece-uscreen",
|
||||
"version": "0.0.2",
|
||||
"type": "commonjs",
|
||||
"main": "./src/index.js",
|
||||
"types": "./src/index.d.ts",
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"name": "pieces-uscreen",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/uscreen/src",
|
||||
"projectType": "library",
|
||||
"release": {
|
||||
"version": {
|
||||
"manifestRootsToUpdate": [
|
||||
"dist/{projectRoot}"
|
||||
],
|
||||
"currentVersionResolver": "git-tag",
|
||||
"fallbackCurrentVersionResolver": "disk"
|
||||
}
|
||||
},
|
||||
"tags": [],
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/uscreen",
|
||||
"tsConfig": "packages/pieces/community/uscreen/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/uscreen/package.json",
|
||||
"main": "packages/pieces/community/uscreen/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/uscreen/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/uscreen/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"nx-release-publish": {
|
||||
"options": {
|
||||
"packageRoot": "dist/{projectRoot}"
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/uscreen",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "All-in-one Video-Monetisierungsplattform zur Erstellung, Hosting, und zum Verkauf von Online-Kursen, Mitgliedschaften und Videoinhalten.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n Um Ihren API-Schlüssel zu erhalten:\n 1. Melden Sie sich bei Ihrem Uscreen-Konto\n 2 an. Kontaktieren Sie Ihren Kunden-Erfolgsmanager, um einen API-Schlüssel (X-Store-Token) auszustellen.\n ",
|
||||
"Create User": "Benutzer erstellen",
|
||||
"Assign User Access": "Benutzerzugriff zuweisen",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Erstellt einen neuen Benutzer und schickt ihm optional eine Willkommens-E-Mail an Ihr Schaufenster.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Weisen Sie einem Kunden ein Bundle oder ein Abonnement zu. Erstellt einen neuen Kunden, falls eines nicht existiert.",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"Email Address": "E-Mail-Adresse",
|
||||
"First Name": "Vorname",
|
||||
"Last Name": "Nachname",
|
||||
"Password": "Kennwort",
|
||||
"Opted in for News and Updates": "Für News und Updates ausgewählt",
|
||||
"Custom Fields": "Eigene Felder",
|
||||
"Customer ID or Email": "Kunden-ID oder E-Mail",
|
||||
"Product Type": "Produkttyp",
|
||||
"Product": "Produkt",
|
||||
"Schedule Access (Optional)": "Zeitplan-Zugriff (Optional)",
|
||||
"Manual Billing (for Offers)": "Manuelle Abrechnung (für Angebote)",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopfzeilen",
|
||||
"Query Parameters": "Abfrageparameter",
|
||||
"Body": "Körper",
|
||||
"Response is Binary ?": "Antwort ist binär?",
|
||||
"No Error on Failure": "Kein Fehler bei Fehler",
|
||||
"Timeout (in seconds)": "Timeout (in Sekunden)",
|
||||
"The new user's email address.": "Die E-Mail-Adresse des neuen Benutzers.",
|
||||
"The new user's first name.": "Der Vorname des neuen Benutzers.",
|
||||
"The new user's last name.": "Nachname des neuen Benutzers.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "Das Passwort des neuen Benutzers. Leer lassen, wenn eine Einladungs-E-Mail gesendet wird.",
|
||||
"If set to true, the new user will receive news and updates.": "Wenn auf \"true\" gesetzt, erhält der neue Benutzer Neuigkeiten und Updates.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Fügen Sie benutzerdefinierte Benutzerfelder in Ihrem Schaufenster (z. B. \"favorite_genre\") hinzu.",
|
||||
"The unique ID or email address of the customer.": "Die eindeutige ID oder E-Mail-Adresse des Kunden.",
|
||||
"The type of product to assign.": "Die Art des zu zuweisenden Produkts.",
|
||||
"The bundle (program) or subscription (offer) to assign.": "Das Paket (Programm) oder Abonnement (Angebot) zuweisen.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Planen Sie eine Zeit für die durchzuführende Aktion (ISO 8601 Format, z. B. 2024-07-05T13:47:52Z). Lassen Sie leer, um sofort zuzuweisen.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Überprüfen Sie dies nur, wenn der Produkttyp \"Angebot\" ist und dies ist ein manuelles Abrechnungsszenario.",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
|
||||
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
|
||||
"Program (Bundle)": "Programm (Unten)",
|
||||
"Offer (Subscription)": "Angebot (Abonnement)",
|
||||
"GET": "ERHALTEN",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "LÖSCHEN",
|
||||
"HEAD": "HEAD",
|
||||
"Paid Order": "Bezahlte Bestellung",
|
||||
"New User": "Neuer Benutzer",
|
||||
"Began to Play Video": "Video abspielen beginnen",
|
||||
"Canceled Subscription": "Abo storniert",
|
||||
"User Updated": "Benutzer aktualisiert",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Wird ausgelöst, wenn eine Zahlung für Abonnements, Pakete oder Inhalte verarbeitet wird.",
|
||||
"Triggers when a new user is added to your storefront.": "Wird ausgelöst, wenn ein neuer Benutzer Ihrem Schaufenster hinzugefügt wird.",
|
||||
"Triggers when a user plays a video for the first time.": "Wird ausgelöst, wenn ein Benutzer zum ersten Mal ein Video abspielt.",
|
||||
"Triggers when a subscription is canceled for a user.": "Wird ausgelöst, wenn ein Abonnement für einen Benutzer gekündigt wird.",
|
||||
"Triggers when a user’s profile or information is updated.": "Löst aus, wenn das Profil oder die Informationen eines Benutzers aktualisiert werden.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Installationsanleitung\n\n### 1. Zugriff auf Uscreen Webhook Einstellungen\n- Anmelden in Ihrem **Uscreen Admin Panel**\n- Navigieren Sie zu **Einstellungen** > **Webhooks**\n\n### 2. Neuen Webhook\n- Klicken Sie auf **\"Neuer Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Wählen Sie das passende Ereignis \n- Klicken Sie **Speichern**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "Plataforma de monetización de vídeo todo en uno para crear, alojar y vender cursos en línea, membresías y contenido de vídeo.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n Para obtener su clave API:\n 1. Inicie sesión en su cuenta de Uscreen\n 2. Póngase en contacto con su Customer Success Manager para tener emitida una clave API (X-Store-Token).\n ",
|
||||
"Create User": "Crear usuario",
|
||||
"Assign User Access": "Asignar acceso de usuario",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Crea un nuevo usuario y opcionalmente le envía un correo electrónico de bienvenida a su tienda.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Asigna un paquete o suscripción a un cliente. Crea un nuevo cliente si uno no existe.",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"Email Address": "Dirección de email",
|
||||
"First Name": "Nombre",
|
||||
"Last Name": "Apellido",
|
||||
"Password": "Contraseña",
|
||||
"Opted in for News and Updates": "Optó por noticias y actualizaciones",
|
||||
"Custom Fields": "Campos personalizados",
|
||||
"Customer ID or Email": "ID de cliente o email",
|
||||
"Product Type": "Tipo de producto",
|
||||
"Product": "Producto",
|
||||
"Schedule Access (Optional)": "Programar acceso (opcional)",
|
||||
"Manual Billing (for Offers)": "Facturación manual (para ofertas)",
|
||||
"Method": "Método",
|
||||
"Headers": "Encabezados",
|
||||
"Query Parameters": "Parámetros de consulta",
|
||||
"Body": "Cuerpo",
|
||||
"Response is Binary ?": "¿Respuesta es binaria?",
|
||||
"No Error on Failure": "No hay ningún error en fallo",
|
||||
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
|
||||
"The new user's email address.": "La nueva dirección de correo electrónico del usuario.",
|
||||
"The new user's first name.": "Nombre del nuevo usuario.",
|
||||
"The new user's last name.": "Apellido del nuevo usuario.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "La contraseña del nuevo usuario. Dejar en blanco si se envía un correo electrónico de invitación.",
|
||||
"If set to true, the new user will receive news and updates.": "Si se establece en verdadero, el nuevo usuario recibirá noticias y actualizaciones.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Añadir campos de usuario personalizados definidos en su escaparate (por ejemplo, \"favorite_genre\").",
|
||||
"The unique ID or email address of the customer.": "El ID único o la dirección de correo electrónico del cliente.",
|
||||
"The type of product to assign.": "El tipo de producto a asignar.",
|
||||
"The bundle (program) or subscription (offer) to assign.": "El paquete (programa) o la suscripción (oferta) para asignar.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Programe un tiempo para la acción a realizar (formato ISO 8601, ej., 2024-07-05T13:47:52Z). Deje en blanco para asignar inmediatamente.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Marque sólo si el tipo de producto es \"oferta\" y este es un escenario de facturación manual.",
|
||||
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
|
||||
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDF, imágenes, etc.",
|
||||
"Program (Bundle)": "Programa (paquete)",
|
||||
"Offer (Subscription)": "Oferta (suscripción)",
|
||||
"GET": "RECOGER",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "BORRAR",
|
||||
"HEAD": "LIMPIO",
|
||||
"Paid Order": "Pedido pagado",
|
||||
"New User": "Nuevo usuario",
|
||||
"Began to Play Video": "Comenzar a reproducir vídeo",
|
||||
"Canceled Subscription": "Suscripción cancelada",
|
||||
"User Updated": "Usuario actualizado",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Dispara cuando un pago se procesa para suscripciones, paquetes o contenido.",
|
||||
"Triggers when a new user is added to your storefront.": "Dispara cuando un nuevo usuario se agrega a tu tienda.",
|
||||
"Triggers when a user plays a video for the first time.": "Dispara cuando un usuario reproduce un video por primera vez.",
|
||||
"Triggers when a subscription is canceled for a user.": "Dispara cuando una suscripción es cancelada para un usuario.",
|
||||
"Triggers when a user’s profile or information is updated.": "Se activa cuando se actualiza el perfil o la información de un usuario.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Configurar instrucciones\n\n### 1. Acceda a los ajustes de Uscreen Webhook\n- Inicie sesión en su **Panel de Administración Uscreen**\n- Navegue a **Ajustes** > **Webhooks**\n\n### 2. Crear un nuevo Webhook\n- Haga clic en **\"Nuevo Webhook\"**\n- **URL de devolución**: \n```text\n{{webhookUrl}}\n```\n- Seleccione el evento apropiado \n- Haga clic en **Guardar**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "Plateforme de monétisation vidéo tout-en-un pour créer, héberger et vendre des cours, des adhésions et du contenu vidéo en ligne.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ",
|
||||
"Create User": "Créer un utilisateur",
|
||||
"Assign User Access": "Assigner un accès utilisateur",
|
||||
"Custom API Call": "Appel d'API personnalisé",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Crée un nouvel utilisateur et lui envoie éventuellement un e-mail de bienvenue sur votre vitrine.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Assigne un lot ou un abonnement à un client. Crée un nouveau client s'il n'existe pas.",
|
||||
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
|
||||
"Email Address": "Adresse e-mail",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Password": "Password",
|
||||
"Opted in for News and Updates": "Opt-in pour les actualités et mises à jour",
|
||||
"Custom Fields": "Champs personnalisés",
|
||||
"Customer ID or Email": "ID du client ou e-mail",
|
||||
"Product Type": "Type de produit",
|
||||
"Product": "Produit",
|
||||
"Schedule Access (Optional)": "Planifier l'accès (facultatif)",
|
||||
"Manual Billing (for Offers)": "Facturation manuelle (pour les offres)",
|
||||
"Method": "Méthode",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Paramètres de requête",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "La réponse est Binaire ?",
|
||||
"No Error on Failure": "Aucune erreur en cas d'échec",
|
||||
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
|
||||
"The new user's email address.": "L'adresse e-mail du nouvel utilisateur.",
|
||||
"The new user's first name.": "Le prénom du nouvel utilisateur.",
|
||||
"The new user's last name.": "Le nom du nouvel utilisateur.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "Le mot de passe du nouvel utilisateur. Laissez vide si vous envoyez un e-mail d'invitation.",
|
||||
"If set to true, the new user will receive news and updates.": "Si activé, le nouvel utilisateur recevra des actualités et des mises à jour.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Ajouter des champs utilisateur personnalisés définis dans votre vitrine (par exemple, \"favite_genre\").",
|
||||
"The unique ID or email address of the customer.": "L'ID unique ou l'adresse e-mail du client.",
|
||||
"The type of product to assign.": "Le type de produit à attribuer.",
|
||||
"The bundle (program) or subscription (offer) to assign.": "Le paquet (programme) ou l'abonnement (offre) à attribuer.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Planifiez un temps pour l'action à effectuer (format ISO 8601, par exemple, 2024-07-05T13:47:52Z). Laissez vide pour assigner immédiatement.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Ne cochez cette case que si le type de produit est \"Offre\" et qu'il s'agit d'un scénario de facturation manuelle.",
|
||||
"Authorization headers are injected automatically from your connection.": "Les Headers d'autorisation sont injectés automatiquement à partir de votre connexion.",
|
||||
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
|
||||
"Program (Bundle)": "Programme (Bundle)",
|
||||
"Offer (Subscription)": "Offre (abonnement)",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"Paid Order": "Commande payante",
|
||||
"New User": "Nouvel utilisateur",
|
||||
"Began to Play Video": "Commencer à jouer la vidéo",
|
||||
"Canceled Subscription": "Abonnement annulé",
|
||||
"User Updated": "Utilisateur mis à jour",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Déclenche lorsqu'un paiement est traité pour les abonnements, les bundles ou le contenu.",
|
||||
"Triggers when a new user is added to your storefront.": "Déclenche lorsqu'un nouvel utilisateur est ajouté à votre vitrine.",
|
||||
"Triggers when a user plays a video for the first time.": "Déclenche lorsqu'un utilisateur lit une vidéo pour la première fois.",
|
||||
"Triggers when a subscription is canceled for a user.": "Déclenche lorsqu'un abonnement est annulé pour un utilisateur.",
|
||||
"Triggers when a user’s profile or information is updated.": "Déclenche quand le profil ou les informations d'un utilisateur sont mises à jour.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "オンラインコース、メンバーシップ、ビデオコンテンツの作成、ホスティング、販売のためのオールインワンの動画マネタイゼーションプラットフォーム。",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ",
|
||||
"Create User": "ユーザーを作成",
|
||||
"Assign User Access": "ユーザーアクセスを割り当てる",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "新しいユーザーを作成し、必要に応じてあなたの店舗にウェルカムメールを送信します。",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "顧客にバンドルまたはサブスクリプションを割り当てます。存在しない場合、新しい顧客を作成します。",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"Email Address": "メールアドレス",
|
||||
"First Name": "名",
|
||||
"Last Name": "Last Name",
|
||||
"Password": "Password",
|
||||
"Opted in for News and Updates": "ニュースと更新をオプトインしました",
|
||||
"Custom Fields": "カスタムフィールド",
|
||||
"Customer ID or Email": "顧客IDまたはメールアドレス",
|
||||
"Product Type": "製品タイプ",
|
||||
"Product": "商品",
|
||||
"Schedule Access (Optional)": "スケジュールアクセス (オプション)",
|
||||
"Manual Billing (for Offers)": "オファーに対する手動請求",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"The new user's email address.": "新しいユーザーのメールアドレス",
|
||||
"The new user's first name.": "新しいユーザーの名",
|
||||
"The new user's last name.": "新しいユーザーの姓。",
|
||||
"The new user's password. Leave blank if sending an invite email.": "新しいユーザーのパスワード。招待メールを送信する場合は空白のままにします。",
|
||||
"If set to true, the new user will receive news and updates.": "true に設定すると、新しいユーザーはニュースと更新を受け取ります。",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "ストアフロントで定義されているカスタム ユーザー フィールドを追加します (\"favorite_genre\"など)。",
|
||||
"The unique ID or email address of the customer.": "顧客の固有のIDまたは電子メールアドレス。",
|
||||
"The type of product to assign.": "割り当てる製品の種類",
|
||||
"The bundle (program) or subscription (offer) to assign.": "割り当てるバンドル(プログラム)またはサブスクリプション(オファー)。",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "実行するアクションの時間をスケジュールします(例:2024-07-05T13:47:52Z)。すぐに割り当てるには空白のままにしてください。",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "「製品タイプ」が「オファー」で、これは手動課金シナリオである場合にのみ、これをチェックしてください。",
|
||||
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
|
||||
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
|
||||
"Program (Bundle)": "プログラム (バンドル)",
|
||||
"Offer (Subscription)": "オファー (Subscription)",
|
||||
"GET": "取得",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "削除",
|
||||
"HEAD": "頭",
|
||||
"Paid Order": "支払済み注文",
|
||||
"New User": "新規ユーザー",
|
||||
"Began to Play Video": "ビデオの再生を開始",
|
||||
"Canceled Subscription": "サブスクリプションをキャンセル",
|
||||
"User Updated": "ユーザーが更新されました",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "サブスクリプション、バンドル、コンテンツに対して支払いが処理されたときにトリガーされます。",
|
||||
"Triggers when a new user is added to your storefront.": "新しいユーザーがストアに追加されたときにトリガーします。",
|
||||
"Triggers when a user plays a video for the first time.": "ユーザーが初めてビデオを再生したときにトリガーします。",
|
||||
"Triggers when a subscription is canceled for a user.": "ユーザーのサブスクリプションがキャンセルされたときにトリガーされます。",
|
||||
"Triggers when a user’s profile or information is updated.": "ユーザーのプロファイルまたは情報が更新されたときにトリガーします。",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "All-in-één video monetization platform voor het aanmaken, hosten en verkopen van online cursussen, lidmaatschappen, en video inhoud.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n Om je API-sleutel te verkrijgen:\n 1. Log in op je gebruikersaccount\n 2. Neem contact op met de Customer Success Manager om een API key (X-Store-Token) te hebben.\n ",
|
||||
"Create User": "Gebruiker aanmaken",
|
||||
"Assign User Access": "Gebruiker toegang toewijzen",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Maakt een nieuwe gebruiker aan en stuurt deze eventueel een welkomstmail naar uw storefront.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Wijst een bundel of abonnement toe aan een klant. Creëert een nieuwe klant als deze niet bestaat.",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"Email Address": "Uw e-mailadres",
|
||||
"First Name": "Voornaam",
|
||||
"Last Name": "Achternaam",
|
||||
"Password": "Wachtwoord",
|
||||
"Opted in for News and Updates": "Ingeschreven voor nieuws en updates",
|
||||
"Custom Fields": "Aangepaste velden",
|
||||
"Customer ID or Email": "Klant-ID of e-mailadres",
|
||||
"Product Type": "Type product",
|
||||
"Product": "product",
|
||||
"Schedule Access (Optional)": "Toegang plannen (optioneel)",
|
||||
"Manual Billing (for Offers)": "Handmatige facturering (voor aanbiedingen)",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopteksten",
|
||||
"Query Parameters": "Query parameters",
|
||||
"Body": "Lichaam",
|
||||
"Response is Binary ?": "Antwoord is binair?",
|
||||
"No Error on Failure": "Geen fout bij fout",
|
||||
"Timeout (in seconds)": "Time-out (in seconden)",
|
||||
"The new user's email address.": "E-mailadres van de nieuwe gebruiker.",
|
||||
"The new user's first name.": "Voornaam van de nieuwe gebruiker.",
|
||||
"The new user's last name.": "Achternaam van de nieuwe gebruiker.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "Het wachtwoord van de nieuwe gebruiker. Laat leeg bij het verzenden van een uitnodigingsmail.",
|
||||
"If set to true, the new user will receive news and updates.": "Indien ingeschakeld zal de nieuwe gebruiker nieuws en updates ontvangen.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Toevoegen van aangepaste gebruikersvelden gedefinieerd in uw storefront (bijv. \"favorite_genre\").",
|
||||
"The unique ID or email address of the customer.": "Het unieke ID of e-mailadres van de klant.",
|
||||
"The type of product to assign.": "Het type product dat u wilt toewijzen",
|
||||
"The bundle (program) or subscription (offer) to assign.": "De bundel (programma) of abonnement (aanbieding) om toe te wijzen.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Plan een tijd voor de actie die moet worden uitgevoerd (ISO 8601 formaat, b.v. 2024-07-05T13:47:52Z). Laat leeg om direct toe te wijzen.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Vink dit alleen aan als het Producttype \"Aanbieding\" is en dit is een handmatige factureringsscenario.",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
|
||||
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
|
||||
"Program (Bundle)": "Programma (Bundel)",
|
||||
"Offer (Subscription)": "Aanbieding (abonnement)",
|
||||
"GET": "KRIJG",
|
||||
"POST": "POSTE",
|
||||
"PATCH": "BEKIJK",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "VERWIJDEREN",
|
||||
"HEAD": "HOOFD",
|
||||
"Paid Order": "Betaalde bestelling",
|
||||
"New User": "Nieuwe gebruiker",
|
||||
"Began to Play Video": "Began om video af te spelen",
|
||||
"Canceled Subscription": "Abonnement geannuleerd",
|
||||
"User Updated": "Gebruiker bijgewerkt",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Triggers wanneer een betaling wordt verwerkt voor abonnementen, bundles of inhoud.",
|
||||
"Triggers when a new user is added to your storefront.": "Triggert wanneer een nieuwe gebruiker aan uw etalage is toegevoegd.",
|
||||
"Triggers when a user plays a video for the first time.": "Triggert wanneer een gebruiker voor de eerste keer een video afspeelt.",
|
||||
"Triggers when a subscription is canceled for a user.": "Triggert wanneer een abonnement wordt geannuleerd voor een gebruiker.",
|
||||
"Triggers when a user’s profile or information is updated.": "Triggert wanneer het profiel of de informatie van een gebruiker wordt bijgewerkt.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Instructies voor instellingen\n\n### 1. Toegang tot Uscreen Webhook Instellingen\n- Log in op je **Uscreen Admin Panel**\n- Navigeer naar **Instellingen** > **Webhooks**\n\n### 2. Maak een nieuwe Webhook\n- Klik **\"Nieuwe Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Selecteer het juiste evenement \n- Klik **Opslaan**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "Plataforma completa de monetização de vídeo para criar, hospedar e vender cursos online, associações, e conteúdo em vídeo.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n Para obter sua chave de API:\n 1. Faça login na sua conta do Uscreen\n 2. Contate seu gerente de sucesso do cliente para ter uma chave de API (X-Store-Token) emitida.\n ",
|
||||
"Create User": "Criar Usuário",
|
||||
"Assign User Access": "Atribuir Acesso de Usuário",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Cria um novo usuário e, opcionalmente, envia-o um e-mail de boas-vindas à sua loja.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Atribui um pacote ou assinatura a um cliente. Cria um novo cliente se não existir um.",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"Email Address": "Endereço de e-mail",
|
||||
"First Name": "Nome",
|
||||
"Last Name": "Sobrenome",
|
||||
"Password": "Senha",
|
||||
"Opted in for News and Updates": "Optou por Notícias e Atualizações",
|
||||
"Custom Fields": "Campos Personalizados",
|
||||
"Customer ID or Email": "Cliente ou e-mail",
|
||||
"Product Type": "Tipo de Produto",
|
||||
"Product": "Produto:",
|
||||
"Schedule Access (Optional)": "Acesso ao agendamento (opcional)",
|
||||
"Manual Billing (for Offers)": "Faturamento Manual (para Ofertas)",
|
||||
"Method": "Método",
|
||||
"Headers": "Cabeçalhos",
|
||||
"Query Parameters": "Parâmetros da consulta",
|
||||
"Body": "Conteúdo",
|
||||
"Response is Binary ?": "A resposta é binária ?",
|
||||
"No Error on Failure": "Nenhum erro no Failure",
|
||||
"Timeout (in seconds)": "Tempo limite (em segundos)",
|
||||
"The new user's email address.": "O endereço de e-mail do novo usuário.",
|
||||
"The new user's first name.": "O primeiro nome do novo usuário.",
|
||||
"The new user's last name.": "O último nome do novo usuário.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "Senha do novo usuário. Deixe em branco se enviar um convite de e-mail.",
|
||||
"If set to true, the new user will receive news and updates.": "Se definido como verdadeiro, o novo usuário receberá notícias e atualizações.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Adicionar campos personalizados de usuário definidos na sua vitrine de loja (por exemplo, \"favorite_genre\").",
|
||||
"The unique ID or email address of the customer.": "A identificação ou endereço de e-mail único do cliente.",
|
||||
"The type of product to assign.": "O tipo de produto a ser atribuído",
|
||||
"The bundle (program) or subscription (offer) to assign.": "O pacote (programa) ou assinatura (oferta) a atribuir.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Agendar uma hora para a ação a ser executada (formato ISO 8601, por exemplo, 2024-07-05T13:47:52Z). Deixe em branco para atribuir imediatamente.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Só marque isso se o Tipo de Produto é \"Oferecer\" e este é um cenário de cobrança manual.",
|
||||
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
|
||||
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
|
||||
"Program (Bundle)": "Programa (Bundle)",
|
||||
"Offer (Subscription)": "Oferta (Assinatura)",
|
||||
"GET": "OBTER",
|
||||
"POST": "POSTAR",
|
||||
"PATCH": "COMPRAR",
|
||||
"PUT": "COLOCAR",
|
||||
"DELETE": "EXCLUIR",
|
||||
"HEAD": "CABEÇA",
|
||||
"Paid Order": "Pedido pago",
|
||||
"New User": "Novo Usuário",
|
||||
"Began to Play Video": "Começar a reproduzir vídeo",
|
||||
"Canceled Subscription": "Assinatura cancelada",
|
||||
"User Updated": "Usuário atualizado",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Aciona quando um pagamento é processado para assinaturas, pacotes ou conteúdo.",
|
||||
"Triggers when a new user is added to your storefront.": "Aciona quando um novo usuário é adicionado à sua loja.",
|
||||
"Triggers when a user plays a video for the first time.": "Dispara quando um usuário reproduz um vídeo pela primeira vez.",
|
||||
"Triggers when a subscription is canceled for a user.": "Aciona quando uma assinatura é cancelada para um usuário.",
|
||||
"Triggers when a user’s profile or information is updated.": "Dispara quando a informação ou perfil de um usuário é atualizada.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Instruções de configuração\n\n### 1. Acessar Configurações do Webhook do Uscreen\n- Iniciar sessão no seu **Painel de Administração do Uscreen**\n- Navegar para **Configurações** > **Webhooks**\n\n### 2. Criar novo Webhook\n- Clique **\"New Webhook\"**\n- **URL de Callback**: \n```text\n{{webhookUrl}}\n```\n- Selecionar o evento apropriado \n- Clique em **Salvar**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ",
|
||||
"Create User": "Create User",
|
||||
"Assign User Access": "Assign User Access",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Creates a new user and optionally sends them a welcome email to your storefront.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Email Address": "Email Address",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Password": "Password",
|
||||
"Opted in for News and Updates": "Opted in for News and Updates",
|
||||
"Custom Fields": "Custom Fields",
|
||||
"Customer ID or Email": "Customer ID or Email",
|
||||
"Product Type": "Product Type",
|
||||
"Product": "Product",
|
||||
"Schedule Access (Optional)": "Schedule Access (Optional)",
|
||||
"Manual Billing (for Offers)": "Manual Billing (for Offers)",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The new user's email address.": "The new user's email address.",
|
||||
"The new user's first name.": "The new user's first name.",
|
||||
"The new user's last name.": "The new user's last name.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "The new user's password. Leave blank if sending an invite email.",
|
||||
"If set to true, the new user will receive news and updates.": "If set to true, the new user will receive news and updates.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Add custom user fields defined in your storefront (e.g., \"favorite_genre\").",
|
||||
"The unique ID or email address of the customer.": "The unique ID or email address of the customer.",
|
||||
"The type of product to assign.": "The type of product to assign.",
|
||||
"The bundle (program) or subscription (offer) to assign.": "The bundle (program) or subscription (offer) to assign.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Program (Bundle)": "Program (Bundle)",
|
||||
"Offer (Subscription)": "Offer (Subscription)",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"Paid Order": "Paid Order",
|
||||
"New User": "New User",
|
||||
"Began to Play Video": "Began to Play Video",
|
||||
"Canceled Subscription": "Canceled Subscription",
|
||||
"User Updated": "User Updated",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Triggers when a payment is processed for subscriptions, bundles, or content.",
|
||||
"Triggers when a new user is added to your storefront.": "Triggers when a new user is added to your storefront.",
|
||||
"Triggers when a user plays a video for the first time.": "Triggers when a user plays a video for the first time.",
|
||||
"Triggers when a subscription is canceled for a user.": "Triggers when a subscription is canceled for a user.",
|
||||
"Triggers when a user’s profile or information is updated.": "Triggers when a user’s profile or information is updated.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.": "All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.",
|
||||
"\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ": "\n To get your API key:\n 1. Log in to your Uscreen account\n 2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.\n ",
|
||||
"Create User": "Create User",
|
||||
"Assign User Access": "Assign User Access",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Creates a new user and optionally sends them a welcome email to your storefront.": "Creates a new user and optionally sends them a welcome email to your storefront.",
|
||||
"Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.": "Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"Email Address": "Email Address",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "名字",
|
||||
"Password": "Password",
|
||||
"Opted in for News and Updates": "Opted in for News and Updates",
|
||||
"Custom Fields": "Custom Fields",
|
||||
"Customer ID or Email": "Customer ID or Email",
|
||||
"Product Type": "Product Type",
|
||||
"Product": "Product",
|
||||
"Schedule Access (Optional)": "Schedule Access (Optional)",
|
||||
"Manual Billing (for Offers)": "Manual Billing (for Offers)",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"The new user's email address.": "The new user's email address.",
|
||||
"The new user's first name.": "The new user's first name.",
|
||||
"The new user's last name.": "The new user's last name.",
|
||||
"The new user's password. Leave blank if sending an invite email.": "The new user's password. Leave blank if sending an invite email.",
|
||||
"If set to true, the new user will receive news and updates.": "If set to true, the new user will receive news and updates.",
|
||||
"Add custom user fields defined in your storefront (e.g., \"favorite_genre\").": "Add custom user fields defined in your storefront (e.g., \"favorite_genre\").",
|
||||
"The unique ID or email address of the customer.": "The unique ID or email address of the customer.",
|
||||
"The type of product to assign.": "The type of product to assign.",
|
||||
"The bundle (program) or subscription (offer) to assign.": "The bundle (program) or subscription (offer) to assign.",
|
||||
"Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.": "Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.",
|
||||
"Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.": "Only check this if the Product Type is \"Offer\" and this is a manual billing scenario.",
|
||||
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Program (Bundle)": "Program (Bundle)",
|
||||
"Offer (Subscription)": "Offer (Subscription)",
|
||||
"GET": "获取",
|
||||
"POST": "帖子",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "弹出",
|
||||
"DELETE": "删除",
|
||||
"HEAD": "黑色",
|
||||
"Paid Order": "Paid Order",
|
||||
"New User": "New User",
|
||||
"Began to Play Video": "Began to Play Video",
|
||||
"Canceled Subscription": "Canceled Subscription",
|
||||
"User Updated": "User Updated",
|
||||
"Triggers when a payment is processed for subscriptions, bundles, or content.": "Triggers when a payment is processed for subscriptions, bundles, or content.",
|
||||
"Triggers when a new user is added to your storefront.": "Triggers when a new user is added to your storefront.",
|
||||
"Triggers when a user plays a video for the first time.": "Triggers when a user plays a video for the first time.",
|
||||
"Triggers when a subscription is canceled for a user.": "Triggers when a subscription is canceled for a user.",
|
||||
"Triggers when a user’s profile or information is updated.": "Triggers when a user’s profile or information is updated.",
|
||||
"Markdown": "Markdown",
|
||||
"## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**": "## Setup Instructions\n\n### 1. Access Uscreen Webhook Settings\n- Log into your **Uscreen Admin Panel**\n- Navigate to **Settings** > **Webhooks**\n\n### 2. Create New Webhook\n- Click **\"New Webhook\"**\n- **Callback URL**: \n```text\n{{webhookUrl}}\n```\n- Select the appropriate event \n- Click **Save**"
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
|
||||
import { createPiece } from "@activepieces/pieces-framework";
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { createCustomApiCallAction } from "@activepieces/pieces-common";
|
||||
import { uscreenAuth } from "./lib/common/auth";
|
||||
import { uscreenPublisherApiUrl } from "./lib/common/client";
|
||||
|
||||
import { assignUserAccess } from "./lib/actions/assign-user-access";
|
||||
import { createUser } from "./lib/actions/create-user";
|
||||
|
||||
import { paidOrder } from "./lib/triggers/paid-order";
|
||||
import { newUser } from "./lib/triggers/new-user";
|
||||
import { beganToPlayVideo } from "./lib/triggers/began-to-play-video";
|
||||
import { canceledSubscription } from "./lib/triggers/canceled-subscription";
|
||||
import { userUpdated } from "./lib/triggers/user-updated";
|
||||
|
||||
export const uscreen = createPiece({
|
||||
displayName: "Uscreen",
|
||||
description: "All-in-one video monetization platform for creating, hosting, and selling online courses, memberships, and video content.",
|
||||
auth: uscreenAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl: "https://cdn.activepieces.com/pieces/uscreen.png",
|
||||
categories: [PieceCategory.COMMERCE, PieceCategory.MARKETING],
|
||||
authors: ['srimalleswari205','sanket-a11y'],
|
||||
actions: [
|
||||
createUser,
|
||||
assignUserAccess,
|
||||
createCustomApiCallAction({
|
||||
auth: uscreenAuth,
|
||||
baseUrl: () => uscreenPublisherApiUrl,
|
||||
authMapping: async (auth) => {
|
||||
return {
|
||||
'X-Store-Token': `${auth.secret_text}`,
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
}
|
||||
})
|
||||
],
|
||||
triggers: [
|
||||
paidOrder,
|
||||
newUser,
|
||||
beganToPlayVideo,
|
||||
canceledSubscription,
|
||||
userUpdated
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,51 @@
|
||||
import { createAction, Property } from "@activepieces/pieces-framework";
|
||||
import { uscreenAuth } from "../common/auth";
|
||||
import { uscreenProps } from "../common/props";
|
||||
import { UscreenClient } from "../common/client";
|
||||
import { HttpMethod } from "@activepieces/pieces-common";
|
||||
|
||||
export const assignUserAccess = createAction({
|
||||
auth: uscreenAuth,
|
||||
name: 'assign_user_access',
|
||||
displayName: 'Assign User Access',
|
||||
description: "Assigns a bundle or subscription to a customer. Creates a new customer if one doesn't exist.",
|
||||
|
||||
props: {
|
||||
customer_id: uscreenProps.customerId(),
|
||||
productType: uscreenProps.productType(),
|
||||
product_id: uscreenProps.productId(),
|
||||
perform_action_at: Property.ShortText({
|
||||
displayName: 'Schedule Access (Optional)',
|
||||
description: 'Schedule a time for the action to be performed (ISO 8601 format, e.g., 2024-07-05T13:47:52Z). Leave blank to assign immediately.',
|
||||
required: false,
|
||||
}),
|
||||
with_manual_billing: Property.Checkbox({
|
||||
displayName: 'Manual Billing (for Offers)',
|
||||
description: 'Only check this if the Product Type is "Offer" and this is a manual billing scenario.',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const { customer_id, product_id, productType, perform_action_at, with_manual_billing } = context.propsValue;
|
||||
const client = new UscreenClient(context.auth.secret_text);
|
||||
|
||||
const body: Record<string, unknown> = {
|
||||
product_id: product_id,
|
||||
product_type: productType,
|
||||
};
|
||||
|
||||
if (productType === 'offer' && with_manual_billing) {
|
||||
body['with_manual_billing'] = true;
|
||||
} else if (perform_action_at) {
|
||||
body['perform_action_at'] = perform_action_at;
|
||||
}
|
||||
|
||||
return await client.makeRequest(
|
||||
HttpMethod.POST,
|
||||
`/customers/${customer_id}/accesses`,
|
||||
body
|
||||
);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,101 @@
|
||||
|
||||
|
||||
import { createAction, Property, DynamicPropsValue, PieceAuth } from "@activepieces/pieces-framework";
|
||||
import { httpClient, HttpMethod } from "@activepieces/pieces-common";
|
||||
import { uscreenAuth } from "../common/auth";
|
||||
import { uscreenApiUrl, UscreenClient } from "../common/client";
|
||||
|
||||
|
||||
interface CreateUserProps {
|
||||
email: string;
|
||||
first_name: string;
|
||||
last_name: string;
|
||||
password?: string;
|
||||
opted_in_for_news_and_updates?: boolean;
|
||||
custom_fields?: DynamicPropsValue;
|
||||
}
|
||||
|
||||
export const createUser = createAction({
|
||||
auth: uscreenAuth,
|
||||
name: 'create_user',
|
||||
displayName: 'Create User',
|
||||
description: "Creates a new user and optionally sends them a welcome email to your storefront.",
|
||||
|
||||
props: {
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email Address',
|
||||
description: "The new user's email address.",
|
||||
required: true,
|
||||
}),
|
||||
first_name: Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
description: "The new user's first name.",
|
||||
required: true,
|
||||
}),
|
||||
last_name: Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
description: "The new user's last name.",
|
||||
required: true,
|
||||
}),
|
||||
password: Property.ShortText({
|
||||
displayName: 'Password',
|
||||
description: "The new user's password. Leave blank if sending an invite email.",
|
||||
required: false,
|
||||
}),
|
||||
opted_in_for_news_and_updates: Property.Checkbox({
|
||||
displayName: 'Opted in for News and Updates',
|
||||
description: 'If set to true, the new user will receive news and updates.',
|
||||
required: false,
|
||||
defaultValue: true,
|
||||
}),
|
||||
custom_fields: Property.DynamicProperties({
|
||||
auth: uscreenAuth,
|
||||
displayName: 'Custom Fields',
|
||||
description: 'Add custom user fields defined in your storefront (e.g., "favorite_genre").',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
props: async () => {
|
||||
const fields: DynamicPropsValue = {};
|
||||
fields['add_field_helper'] = Property.ShortText({
|
||||
displayName: "Custom Field Instructions",
|
||||
description: "Click 'Add Property' to add a custom field. Use the 'Property Name' as the API key (e.g., 'favorite_genre') and enter the value below.",
|
||||
required: false,
|
||||
});
|
||||
return fields;
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const {
|
||||
email,
|
||||
first_name,
|
||||
last_name,
|
||||
password,
|
||||
opted_in_for_news_and_updates,
|
||||
custom_fields
|
||||
} = context.propsValue as CreateUserProps;
|
||||
const client = new UscreenClient(context.auth.secret_text);
|
||||
const body: Record<string, unknown> = { ...custom_fields };
|
||||
|
||||
delete body['add_field_helper'];
|
||||
|
||||
body['email'] = email;
|
||||
body['name'] = first_name + ' ' + last_name;
|
||||
|
||||
if (password) {
|
||||
body['password'] = password;
|
||||
}
|
||||
if (opted_in_for_news_and_updates) {
|
||||
body['opted_in_for_news_and_updates'] = opted_in_for_news_and_updates;
|
||||
}
|
||||
|
||||
const response = await client.makeRequest(
|
||||
HttpMethod.POST,
|
||||
`/customers`,
|
||||
body
|
||||
);
|
||||
|
||||
return response;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
|
||||
import { PieceAuth } from '@activepieces/pieces-framework';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { uscreenPublisherApiUrl } from './client';
|
||||
|
||||
export const uscreenAuth = PieceAuth.SecretText({
|
||||
displayName: 'API Key',
|
||||
description: `
|
||||
To get your API key:
|
||||
1. Log in to your Uscreen account
|
||||
2. Contact your Customer Success Manager to have an API key (X-Store-Token) issued.
|
||||
`,
|
||||
required: true,
|
||||
validate: async ({ auth }) => {
|
||||
try {
|
||||
await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: `${uscreenPublisherApiUrl}/offers`,
|
||||
headers: {
|
||||
'X-Store-Token': auth,
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
});
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid API key or insufficient permissions.',
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,125 @@
|
||||
|
||||
|
||||
import { httpClient, HttpMethod, HttpRequest, QueryParams } from "@activepieces/pieces-common";
|
||||
|
||||
export const uscreenApiUrl = 'https://api.uscreen.io/v1';
|
||||
|
||||
export const uscreenPublisherApiUrl = 'https://uscreen.io/publisher_api/v1';
|
||||
|
||||
|
||||
export interface UscreenProduct {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface UscreenInvoice {
|
||||
id: string;
|
||||
title: string;
|
||||
total: string;
|
||||
amount: string;
|
||||
discount: string;
|
||||
offer_id: string;
|
||||
customer_name: string;
|
||||
customer_email: string;
|
||||
status: string;
|
||||
paid_at: string;
|
||||
created_at: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export class UscreenClient {
|
||||
constructor(private apiKey: string) {}
|
||||
|
||||
/**
|
||||
* Makes an authenticated request to the Uscreen PUBLISHER API.
|
||||
*/
|
||||
async makeRequest<T>(method: HttpMethod, url: string, body?: object, query?: QueryParams): Promise<T> {
|
||||
const request: HttpRequest<object> = {
|
||||
method,
|
||||
url: `${uscreenPublisherApiUrl}${url}`,
|
||||
body: body,
|
||||
queryParams: query,
|
||||
headers: {
|
||||
"X-Store-Token": this.apiKey,
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
};
|
||||
const { body: responseBody } = await httpClient.sendRequest<T>(request);
|
||||
return responseBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a paginated list of invoices, sorted by payment date.
|
||||
*/
|
||||
async getInvoices(params: {
|
||||
sort_by: string,
|
||||
status: string,
|
||||
per_page?: number
|
||||
}): Promise<{ items: UscreenInvoice[] }> {
|
||||
|
||||
const query: QueryParams = {
|
||||
sort_by: params.sort_by,
|
||||
status: params.status,
|
||||
};
|
||||
|
||||
if (params.per_page !== undefined) {
|
||||
query['per_page'] = params.per_page.toString();
|
||||
}
|
||||
|
||||
try {
|
||||
return await this.makeRequest<{ items: UscreenInvoice[] }>(
|
||||
HttpMethod.GET,
|
||||
'/invoices',
|
||||
undefined,
|
||||
query
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("Failed to fetch Uscreen invoices", e);
|
||||
return { items: [] };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fetches a list of offers (subscriptions).
|
||||
*/
|
||||
async getOffers(): Promise<UscreenProduct[]> {
|
||||
try {
|
||||
return await this.makeRequest<UscreenProduct[]>(
|
||||
HttpMethod.GET,
|
||||
'/offers'
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("Failed to fetch Uscreen offers", e);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a list of programs (bundles).
|
||||
*/
|
||||
async getPrograms(): Promise<UscreenProduct[]> {
|
||||
try {
|
||||
return await this.makeRequest<UscreenProduct[]>(
|
||||
HttpMethod.GET,
|
||||
'/programs'
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("Failed to fetch Uscreen programs", e);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
async getCustomers() {
|
||||
try {
|
||||
return await this.makeRequest<{ id: number; email: string }[]>(
|
||||
HttpMethod.GET,
|
||||
'/customers'
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("Failed to fetch Uscreen customers", e);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
import { Property } from '@activepieces/pieces-framework';
|
||||
import { UscreenClient, UscreenProduct } from './client';
|
||||
import { uscreenAuth } from './auth';
|
||||
|
||||
export const uscreenProps = {
|
||||
customerId: (required = true) =>
|
||||
Property.Dropdown({
|
||||
auth: uscreenAuth,
|
||||
displayName: 'Customer ID or Email',
|
||||
description: 'The unique ID or email address of the customer.',
|
||||
required: required,
|
||||
refreshers: ['productType'],
|
||||
options: async (context) => {
|
||||
const auth = context['auth'];
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const client = new UscreenClient(auth.secret_text);
|
||||
const customers = await client.getCustomers();
|
||||
return {
|
||||
disabled: false,
|
||||
options: customers.map((customer) => ({
|
||||
label: customer.email,
|
||||
value: customer.id,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
|
||||
productType: (required = true) =>
|
||||
Property.StaticDropdown({
|
||||
displayName: 'Product Type',
|
||||
description: 'The type of product to assign.',
|
||||
required: required,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Program (Bundle)', value: 'program' },
|
||||
{ label: 'Offer (Subscription)', value: 'offer' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
|
||||
productId: (required = true) =>
|
||||
Property.Dropdown({
|
||||
auth: uscreenAuth,
|
||||
displayName: 'Product',
|
||||
description: 'The bundle (program) or subscription (offer) to assign.',
|
||||
required: required,
|
||||
refreshers: ['productType'],
|
||||
options: async (context) => {
|
||||
const auth = context['auth'];
|
||||
|
||||
const propsValue = context['propsValue'] as Record<string, unknown>;
|
||||
const productType = propsValue['productType'] as
|
||||
| 'program'
|
||||
| 'offer'
|
||||
| undefined;
|
||||
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
if (!productType) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Select a Product Type first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const client = new UscreenClient(auth.secret_text);
|
||||
|
||||
let products: UscreenProduct[] = [];
|
||||
|
||||
if (productType === 'program') {
|
||||
products = await client.getPrograms();
|
||||
} else if (productType === 'offer') {
|
||||
products = await client.getOffers();
|
||||
}
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: products.map((product) => ({
|
||||
label: product.name,
|
||||
value: product.id,
|
||||
})),
|
||||
};
|
||||
},
|
||||
}),
|
||||
|
||||
webhookInstructions: (required = true) =>
|
||||
Property.MarkDown({
|
||||
value: `## Setup Instructions
|
||||
|
||||
### 1. Access Uscreen Webhook Settings
|
||||
- Log into your **Uscreen Admin Panel**
|
||||
- Navigate to **Settings** > **Webhooks**
|
||||
|
||||
### 2. Create New Webhook
|
||||
- Click **"New Webhook"**
|
||||
- **Callback URL**:
|
||||
\`\`\`text
|
||||
{{webhookUrl}}
|
||||
\`\`\`
|
||||
- Select the appropriate event
|
||||
- Click **Save**`,
|
||||
}),
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
import {
|
||||
createTrigger,
|
||||
Property,
|
||||
TriggerStrategy,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { uscreenAuth } from '../common/auth';
|
||||
import { uscreenProps } from '../common/props';
|
||||
|
||||
const sampleData = {
|
||||
event: 'video_play',
|
||||
title: 'How to Build an API',
|
||||
id: 987654,
|
||||
chapter_id: 123456,
|
||||
name: 'John Doe',
|
||||
email: 'john.doe@example.com',
|
||||
};
|
||||
|
||||
export const beganToPlayVideo = createTrigger({
|
||||
auth: uscreenAuth,
|
||||
name: 'began_to_play_video',
|
||||
displayName: 'Began to Play Video',
|
||||
description: 'Triggers when a user plays a video for the first time.',
|
||||
props: {
|
||||
setupInstructions: uscreenProps.webhookInstructions(),
|
||||
},
|
||||
sampleData: sampleData,
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
|
||||
async onEnable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async onDisable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payload = context.payload as unknown as typeof sampleData;
|
||||
|
||||
if (payload.event !== 'video_play') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [payload];
|
||||
},
|
||||
|
||||
async test(context) {
|
||||
return [sampleData];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,49 @@
|
||||
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import { uscreenAuth } from '../common/auth';
|
||||
import { uscreenProps } from '../common/props';
|
||||
|
||||
const sampleData = {
|
||||
event: 'subscription_canceled',
|
||||
user_id: 123456,
|
||||
user_email: 'user@example.com',
|
||||
subscription_id: 'sub_789xyz',
|
||||
subscription_title: 'Premium Plan',
|
||||
canceled_at: '2025-10-27T13:32:10Z',
|
||||
custom_fields: {
|
||||
favorite_genre: 'Comedy',
|
||||
referral_source: 'Google Ads',
|
||||
},
|
||||
};
|
||||
|
||||
export const canceledSubscription = createTrigger({
|
||||
auth: uscreenAuth,
|
||||
name: 'canceled_subscription',
|
||||
displayName: 'Canceled Subscription',
|
||||
description:
|
||||
'Triggers when a subscription is canceled for a user.',
|
||||
props: { setupInstructions: uscreenProps.webhookInstructions() },
|
||||
sampleData: sampleData,
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
|
||||
async onEnable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async onDisable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payload = context.payload as unknown as typeof sampleData;
|
||||
|
||||
if (payload.event !== 'subscription_canceled') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [payload];
|
||||
},
|
||||
|
||||
async test(context) {
|
||||
return [sampleData];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,51 @@
|
||||
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import { uscreenAuth } from '../common/auth';
|
||||
import { uscreenProps } from '../common/props';
|
||||
|
||||
const sampleData = {
|
||||
event: 'user.created',
|
||||
data: {
|
||||
id: 123456,
|
||||
email: 'newuser@example.com',
|
||||
first_name: 'John',
|
||||
last_name: 'Doe',
|
||||
created_at: '2025-10-27T13:00:00Z',
|
||||
custom_fields: {
|
||||
favorite_genre: 'Documentary',
|
||||
how_heard_about_us: 'Referral',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export const newUser = createTrigger({
|
||||
auth: uscreenAuth,
|
||||
name: 'new_user',
|
||||
displayName: 'New User',
|
||||
description:
|
||||
'Triggers when a new user is added to your storefront.',
|
||||
props: { setupInstructions: uscreenProps.webhookInstructions() },
|
||||
sampleData: sampleData.data,
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
|
||||
async onEnable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async onDisable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payload = context.payload as unknown as typeof sampleData;
|
||||
|
||||
if (payload.event !== 'user_created') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [payload.data];
|
||||
},
|
||||
|
||||
async test(context) {
|
||||
return [sampleData.data];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,57 @@
|
||||
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { uscreenAuth } from '../common/auth';
|
||||
import { UscreenClient, UscreenInvoice } from '../common/client';
|
||||
|
||||
const sampleData = {
|
||||
id: '789012',
|
||||
title: 'Masterclass Bundle',
|
||||
total: '49.99 USD',
|
||||
amount: '39.99 USD',
|
||||
discount: '10.00 USD',
|
||||
offer_id: '98765',
|
||||
customer_name: 'Jane Smith',
|
||||
customer_email: 'customer@example.com',
|
||||
country_code: 'US',
|
||||
transaction_id: 'tr_1001abcd',
|
||||
ip_address: '192.168.1.101',
|
||||
origin: 'Stripe',
|
||||
coupon: 'WELCOME10',
|
||||
event: 'order_paid',
|
||||
};
|
||||
export const paidOrder = createTrigger({
|
||||
auth: uscreenAuth,
|
||||
name: 'paid_order',
|
||||
displayName: 'Paid Order',
|
||||
description:
|
||||
'Triggers when a payment is processed for subscriptions, bundles, or content.',
|
||||
props: {},
|
||||
sampleData: sampleData,
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
|
||||
async onEnable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async onDisable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payload = context.payload as unknown as typeof sampleData;
|
||||
|
||||
if (payload.event !== 'order_paid') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [payload];
|
||||
},
|
||||
|
||||
async test(context) {
|
||||
return [sampleData];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,63 @@
|
||||
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import { uscreenAuth } from '../common/auth';
|
||||
import { uscreenProps } from '../common/props';
|
||||
|
||||
const sampleData = {
|
||||
id: ' 123456',
|
||||
email: 'john.doe@example.com',
|
||||
changes: {
|
||||
name: 'John Doe',
|
||||
email: 'john.doe@example.com',
|
||||
subscription_status: 'active',
|
||||
lifetime_spent: '100',
|
||||
bounced_email: false,
|
||||
status: 'active',
|
||||
field_1: 'value_1',
|
||||
field_2: 'value_2',
|
||||
field_3: 'value_3',
|
||||
},
|
||||
attributes: {
|
||||
name: 'John Doe',
|
||||
email: 'john.doe@example.com',
|
||||
subscription_status: 'active',
|
||||
lifetime_spent: '100',
|
||||
bounced_email: false,
|
||||
segments: ['segment_1', 'segment_2'],
|
||||
status: 'active',
|
||||
origin: 'user.creation_source',
|
||||
},
|
||||
event: 'user_updated',
|
||||
};
|
||||
|
||||
export const userUpdated = createTrigger({
|
||||
auth: uscreenAuth,
|
||||
name: 'user_updated',
|
||||
displayName: 'User Updated',
|
||||
description:
|
||||
'Triggers when a user’s profile or information is updated.',
|
||||
props: { setupInstructions: uscreenProps.webhookInstructions() },
|
||||
sampleData: sampleData,
|
||||
type: TriggerStrategy.WEBHOOK,
|
||||
|
||||
async onEnable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async onDisable(context) {
|
||||
//Empty
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
const payload = context.payload as unknown as typeof sampleData;
|
||||
|
||||
if (payload.event !== 'user_updated') {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [payload];
|
||||
},
|
||||
|
||||
async test(context) {
|
||||
return [sampleData];
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"importHelpers": true,
|
||||
"noImplicitOverride": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noPropertyAccessFromIndexSignature": true
|
||||
},
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user