Add Activepieces integration for workflow automation

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

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

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

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "Sie finden den API-Schlüssel in Ihrem Respaid-Konto",
"Create New Campaign": "Neue Kampagne erstellen",
"Stop Collection for Direct Full Payment": "Sammlung für direkte vollständige Zahlung stoppen",
"Stop Collection for Direct Partial Payment": "Sammlung für direkte Teilzahlung stoppen",
"Stop Collection for Direct Instalment Payment": "Sammlung für direkte Ratenzahlung stoppen",
"Action for creating a new campaign.": "Aktion zum Erstellen einer neuen Kampagne.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Stoppt den Einziehungsprozess für einen Fall und markiert ihn als direkt an den Gläubiger.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Stoppt den Einziehungsprozess für einen Fall und markiert ihn als teilweise direkt an den Gläubiger.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Stoppt den Sammelprozess für einen Fall, wenn ein Ratenplan mit dem Gläubiger erstellt wird.",
"Campaign Name": "Kampagnenname",
"Agency collection?": "Agenturabholung?",
"Import Data (Array of Invoices)": "Daten importieren (Rechnungsanlagen)",
"Unique Identifier": "Unique Identifier",
"Email": "E-Mail",
"Invoice Number": "Rechnungsnummer",
"Amount": "Betrag",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Geben Sie ein Array von Rechnungsobjekten mit der folgenden Beispielstruktur ein:\n [{\n \"unique_identifier\": \"123\",\n \"Firmenname\": \"Firma XYZ\",\n \"email\": \"john@example. om\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Rechnung für Service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, Stadt\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"Adresse: \"123 Street, Stadt\",\n}]",
"New Campaign Creation Result": "Neues Kampagnenerstellungsergebnis",
"New Cancelled Case": "Neuer Fall abgebrochen",
"New Disputed Case": "Neuer Streitfall",
"New Payout": "Neue Auszahlung",
"New Successful Collection Paid to Creditor": "Neue erfolgreiche Sammlung an den Gläubiger bezahlt",
"New Successful Installment Payment via Respaid": "Neue erfolgreiche Ratenzahlung über Respaid",
"New Successful Collection via Legal Officer": "Neue erfolgreiche Sammlung über Rechtsbeamte",
"New Successful Partial Payment to Creditor": "Neue erfolgreiche Teilzahlung an den Creditor",
"New Successful Partial Payment via Respaid": "Neue erfolgreiche Teilzahlung über Respaid",
"New Successful Collection via Respaid": "Neue erfolgreiche Sammlung über Respaid",
"Triggers when the campaign is created.": "Wird ausgelöst, wenn die Kampagne erstellt wird.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Wird ausgelöst, wenn ein Sammelprozess für eine bestimmte Sequenz abgebrochen wurde (Fall).",
"Triggers when a collection process was disputed by the debtor.": "Trigger wenn ein Inkassoverfahren vom Schuldner angefochten wurde.",
"Triggers when a payout is successfully sent to your bank account.": "Wird ausgelöst, wenn eine Auszahlung erfolgreich an Ihr Bankkonto gesendet wurde.",
"Triggers when a debt is paid directly to the creditor.": "Trigger wenn eine Schuld direkt an den Gläubiger gezahlt wird.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Wird ausgelöst, wenn eine der Ratenzahlungen für einen bestimmten Fall im Zahlungsplan einer Sammlung erfolgt.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Trigger wenn eine Schuld an den für die Inkassokampagne zuständigen Legal Officer bezahlt wird.",
"Triggers when the debt is partially paid directly to the creditor.": "Auslöser wenn die Schulden teilweise direkt an den Gläubiger gezahlt werden.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Trigger wenn die Schulden teilweise über Respaids Zahlungslink bezahlt werden.",
"Triggers when a debt is paid online via Respaid's payment link.": "Löst aus, wenn eine Schuld online über den Zahlungslink von Respaid bezahlt wird."
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "Puedes encontrar API Key en tu cuenta de Respaid",
"Create New Campaign": "Crear nueva campaña",
"Stop Collection for Direct Full Payment": "Detener la colección para el pago completo directo",
"Stop Collection for Direct Partial Payment": "Detener la recogida del pago parcial directo",
"Stop Collection for Direct Instalment Payment": "Detener la colección para el pago directo al instalment",
"Action for creating a new campaign.": "Acción para crear una nueva campaña.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Detiene el proceso de recogida para un caso y marcarlo como pagado directamente al acreedor.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Detiene el proceso de cobro de un caso y marcarlo como parcialmente pagado al crédito.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Detiene el proceso de recogida para un caso cuando se establece un plan de entrega con el crédito.",
"Campaign Name": "Nombre de Campaña",
"Agency collection?": "¿Colección de agencias?",
"Import Data (Array of Invoices)": "Importar datos (matriz de facturas)",
"Unique Identifier": "Unique Identifier",
"Email": "E-mail",
"Invoice Number": "Número de factura",
"Amount": "Cantidad",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"address\": \"123 Street, City\",\n }]",
"New Campaign Creation Result": "Nuevo resultado de creación de campaña",
"New Cancelled Case": "Nuevo Caso Anulado",
"New Disputed Case": "Nuevo Caso Disputado",
"New Payout": "Nuevo pago",
"New Successful Collection Paid to Creditor": "Nueva Recogida exitosa pagada al Crédito",
"New Successful Installment Payment via Respaid": "Nuevo pago de pago con éxito a través de Respaid",
"New Successful Collection via Legal Officer": "Nueva colección exitosa a través de Legal Officer",
"New Successful Partial Payment to Creditor": "Nuevo pago parcial exitoso a seguidor de crédito",
"New Successful Partial Payment via Respaid": "Nuevo pago parcial exitoso a través de Respaid",
"New Successful Collection via Respaid": "Nueva colección exitosa a través de Respaid",
"Triggers when the campaign is created.": "Dispara cuando se crea la campaña.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Dispara cuando un proceso de colección para una secuencia determinada (caso) fue cancelado.",
"Triggers when a collection process was disputed by the debtor.": "Se activa cuando un proceso de cobro fue disputado por el deudor.",
"Triggers when a payout is successfully sent to your bank account.": "Dispara cuando un pago se envía con éxito a tu cuenta bancaria.",
"Triggers when a debt is paid directly to the creditor.": "Dispara cuando una deuda se paga directamente al acreedor.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Dispara cuando uno de los pagos por cuotas se realiza para un caso determinado dentro del plan de pago de una recogida.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Triggers cuando una deuda se paga al Oficial Jurídico responsable de la campaña de cobro.",
"Triggers when the debt is partially paid directly to the creditor.": "Dispara cuando la deuda se paga parcialmente directamente al acreedor.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Dispara cuando la deuda se paga parcialmente a través del enlace de pago de Respaid.",
"Triggers when a debt is paid online via Respaid's payment link.": "Dispara cuando una deuda se paga en línea a través del enlace de pago de Respaid."
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "Vous pouvez trouver la clé API dans votre compte Respaid",
"Create New Campaign": "Créer une nouvelle campagne",
"Stop Collection for Direct Full Payment": "Arrêter la collecte pour paiement complet direct",
"Stop Collection for Direct Partial Payment": "Arrêter la collecte pour paiement partiel direct",
"Stop Collection for Direct Instalment Payment": "Arrêter la collecte pour paiement par versements directs",
"Action for creating a new campaign.": "Action pour la création d'une nouvelle campagne.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Arrête le processus de recouvrement pour un cas et le marque comme payé directement au créancier.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Arrête le processus de recouvrement pour un cas et le marque comme étant partiellement payé directement au créancier.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Arrête le processus de recouvrement en cas de mise en place d'un régime d'acomptes provisionnels auprès du créancier.",
"Campaign Name": "Nom de la campagne",
"Agency collection?": "Collecte de l'Agence ?",
"Import Data (Array of Invoices)": "Importer des données (tableau de factures)",
"Unique Identifier": "Unique Identifier",
"Email": "Courriel",
"Invoice Number": "Numéro de facture",
"Amount": "Montant",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Fournir un tableau d'objets de facture avec la structure d'exemple suivante :\n [{\n \"unique_identifier\": \"123\",\n \"société_name\": \"Société XYZ\",\n \"email\": \"john@example. om\",\n \"facture_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Facture pour le service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Créditeur ABC\",\n \"facture_entity_address\": \"456 Avenue, Ville\",\n \"full_name\": \"John Doe\",\n \"numéro_téléphone\": \"1234567890\",\n \"adresse\": \"123 Rue, Ville\",\n}]",
"New Campaign Creation Result": "Résultat de la création de la nouvelle campagne",
"New Cancelled Case": "Nouveau cas annulé",
"New Disputed Case": "Nouveau cas litigieux",
"New Payout": "Nouveau paiement",
"New Successful Collection Paid to Creditor": "Nouvelle collection réussie payée au créancier",
"New Successful Installment Payment via Respaid": "Nouveau paiement de paiement par Respaid",
"New Successful Collection via Legal Officer": "Nouvelle collecte réussie par l'agent légal",
"New Successful Partial Payment to Creditor": "Nouveau paiement partiel au créancier réussi",
"New Successful Partial Payment via Respaid": "Nouveau paiement partiel réussi par Respaid",
"New Successful Collection via Respaid": "Nouvelle collection réussie par Respaid",
"Triggers when the campaign is created.": "Déclenche quand la campagne est créée.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Déclenche lorsqu'un processus de collecte pour une séquence donnée (cas) a été annulé.",
"Triggers when a collection process was disputed by the debtor.": "Déclenche lorsqu'un processus de recouvrement a été contesté par le débiteur.",
"Triggers when a payout is successfully sent to your bank account.": "Déclenche lorsqu'un paiement est envoyé avec succès sur votre compte bancaire.",
"Triggers when a debt is paid directly to the creditor.": "Déclenche lorsqu'une dette est versée directement au créancier.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Déclenche lorsque l'un des paiements par versements est effectué pour un cas donné dans le cadre du plan de paiement d'une collection.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Déclenche lorsqu'une dette est versée à l'agent juridique responsable de la campagne de recouvrement.",
"Triggers when the debt is partially paid directly to the creditor.": "Déclenche lorsque la dette est versée en partie directement au créancier.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Déclenche lorsque la dette est partiellement payée via le lien de paiement de Respaid.",
"Triggers when a debt is paid online via Respaid's payment link.": "Déclenche quand une dette est payée en ligne via le lien de paiement de Respaid."
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "再送アカウントにAPIキーがあります。",
"Create New Campaign": "新しいキャンペーンを作成",
"Stop Collection for Direct Full Payment": "直接支払いのための回収を停止する",
"Stop Collection for Direct Partial Payment": "直接一部支払いのための回収を停止する",
"Stop Collection for Direct Instalment Payment": "直接Instalmentの支払いのためにコレクションを停止する",
"Action for creating a new campaign.": "新しいキャンペーンを作成するためのアクション",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "ケースの収集プロセスを停止し、クレジット者に直接支払ったものとしてマークします。",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "ケースの収集プロセスを停止し、部分的に信用者に直接支払ったようにマークします。",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "債権者との分割プランが設定されている場合、ケースの収集プロセスを停止します。",
"Campaign Name": "キャンペーン名",
"Agency collection?": "代理店コレクション?",
"Import Data (Array of Invoices)": "インポートデータ (請求書配列)",
"Unique Identifier": "Unique Identifier",
"Email": "Eメールアドレス",
"Invoice Number": "請求書番号",
"Amount": "金額",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"address\": \"123 Street, City\",\n }]",
"New Campaign Creation Result": "新しいキャンペーン作成結果",
"New Cancelled Case": "新しいキャンセルされたケース",
"New Disputed Case": "新しい紛争ケース",
"New Payout": "新しい支払い",
"New Successful Collection Paid to Creditor": "新しいコレクションの支払いが完了しました",
"New Successful Installment Payment via Respaid": "再支払済経由で新しい割引支払いが成功しました",
"New Successful Collection via Legal Officer": "法務官を介して新しいコレクションが成功しました",
"New Successful Partial Payment to Creditor": "新しいクレジットへの部分的な支払いに成功しました",
"New Successful Partial Payment via Respaid": "新しい部分的な支払いに再支払いが成功しました",
"New Successful Collection via Respaid": "新しいコレクションは再送されました。",
"Triggers when the campaign is created.": "キャンペーンの作成時にトリガーします。",
"Triggers when a collection process for a given sequence (case) was cancelled.": "特定のシーケンス(案件)の収集プロセスがキャンセルされたときにトリガーされます。",
"Triggers when a collection process was disputed by the debtor.": "回収プロセスが債務者によって異議を唱えられたときに発生します。",
"Triggers when a payout is successfully sent to your bank account.": "支払いが正常に銀行口座に送信されたときに発生します。",
"Triggers when a debt is paid directly to the creditor.": "借金が債権者に直接支払われたときに発生します。",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "コレクションの支払いプラン内で特定のケースに対して分割払いのいずれかが行われたときにトリガーされます。",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "負債が回収キャンペーンの責任者に支払われたときに発生します。",
"Triggers when the debt is partially paid directly to the creditor.": "負債が部分的に債権者に直接支払われたときにトリガします。",
"Triggers when the debt is partially paid via Respaid's payment link.": "負債が部分的にRespaidの支払いリンクを介して支払われたときに発生します。",
"Triggers when a debt is paid online via Respaid's payment link.": "債務がRespaidの支払いリンクを介してオンラインで支払われたときに発生します。"
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "Je kunt de API-sleutel vinden in je Respaid account",
"Create New Campaign": "Nieuwe campagne maken",
"Stop Collection for Direct Full Payment": "Collectie stoppen voor directe volledige betaling",
"Stop Collection for Direct Partial Payment": "Collectie stoppen voor directe gedeeltelijke betaling",
"Stop Collection for Direct Instalment Payment": "Stoppen met verzamelen voor directe betaling",
"Action for creating a new campaign.": "Actie om een nieuwe campagne te creëren.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Stopt het incassoproces voor een zaak en markeer het als direct aan de schuldeiser betaald.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Stopt het incassoproces voor een zaak en markeer als een gedeeltelijke betaling rechtstreeks aan de schuldeiser.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Stopt het incassoproces voor een geval wanneer een financieringsplan is ingesteld met de schuldeiser.",
"Campaign Name": "Campagne Naam",
"Agency collection?": "Agentuur verzameling?",
"Import Data (Array of Invoices)": "Gegevens importeren (reeks facturen)",
"Unique Identifier": "Unique Identifier",
"Email": "E-mail",
"Invoice Number": "Factuur Nummer",
"Amount": "Hoeveelheid",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Biedt een array van factuurobjecten met de volgende voorbeeldstructuur:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Bedrijf XYZ\",\n \"email\": \"john@voorbeeld\". om\",\n \"invoice_number\": \"INV123\",\n \"Invoice_date\": \"01/01/2025\",\n \"beschrijving\": \"Factuur voor service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"factuur_entity_adres\": \"456 apparaat, Stad\",\n \"full_name\": \"Jansen doen\",\n \"telefoonnummer\": \"1234567890\",\n \"adres\": \"123 Street, Stad\",\n}]",
"New Campaign Creation Result": "Nieuwe campagne creatie resultaat",
"New Cancelled Case": "Nieuw Geannuleerde Geval",
"New Disputed Case": "Nieuwe aangevochten zaak",
"New Payout": "Nieuwe Uitbetaling",
"New Successful Collection Paid to Creditor": "Nieuwe succesvolle collectie betaling aan crediteur.",
"New Successful Installment Payment via Respaid": "Nieuwe betaling met succesvolle betaling via opnieuw betaald",
"New Successful Collection via Legal Officer": "Nieuwe succesvolle verzameling via juridische officier",
"New Successful Partial Payment to Creditor": "Nieuwe gedeeltelijke betaling aan crediteuren geslaagd",
"New Successful Partial Payment via Respaid": "Nieuwe gedeeltelijke betaling via Respaid",
"New Successful Collection via Respaid": "Nieuwe succesvolle verzameling via Respaid",
"Triggers when the campaign is created.": "Triggert wanneer de campagne is aangemaakt.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Triggert wanneer een collectieproces voor een bepaalde reeks (geval) werd geannuleerd.",
"Triggers when a collection process was disputed by the debtor.": "Activeert wanneer een incassoproces is aangevochten door de schuldenaar.",
"Triggers when a payout is successfully sent to your bank account.": "Triggert wanneer een uitbetaling succesvol naar uw bankrekening wordt verstuurd.",
"Triggers when a debt is paid directly to the creditor.": "Veroordeeld wanneer een schuld rechtstreeks aan de schuldeiser wordt betaald.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Triggeert wanneer een van de termijnbetalingen wordt gedaan voor een bepaald geval binnen het betalingsplan van een collectie.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Veroordeeld wanneer een schuld wordt betaald aan de Juridische Dienst die verantwoordelijk is voor de inzamelingscampagne.",
"Triggers when the debt is partially paid directly to the creditor.": "Veroorzaakt wanneer de schuld gedeeltelijk rechtstreeks aan de schuldeiser wordt betaald.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Triggert wanneer de schuld gedeeltelijk wordt betaald via de betalingslink van Respaid.",
"Triggers when a debt is paid online via Respaid's payment link.": "Triggert wanneer een schuld online wordt betaald via Respaid betalingslink."
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "Pode encontrar a chave de API na sua conta de Reembolso",
"Create New Campaign": "Criar nova campanha",
"Stop Collection for Direct Full Payment": "Parar Coleção para Pagamento Completo Direto",
"Stop Collection for Direct Partial Payment": "Parar Coleção para Pagamento Parcial Direto",
"Stop Collection for Direct Instalment Payment": "Parar Coleção para Pagamento Direto Instalação",
"Action for creating a new campaign.": "Ação para criar uma nova campanha.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Interrompe o processo de recolha para um caso e marcá-lo como pago diretamente ao credor.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Interrompe o processo de recolha para um caso e marcá-lo como parcialmente pago ao credor.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Interrompe o processo de coleta para um caso quando uma prestação é configurada com o credor.",
"Campaign Name": "Nome Da Campanha",
"Agency collection?": "Coleção de agência?",
"Import Data (Array of Invoices)": "Importar dados (Array de faturas)",
"Unique Identifier": "Unique Identifier",
"Email": "e-mail",
"Invoice Number": "Número da fatura",
"Amount": "Quantidade",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"address\": \"123 Street, City\",\n }]",
"New Campaign Creation Result": "Novo Resultado da Criação da Campanha",
"New Cancelled Case": "Novo Caso Cancelado",
"New Disputed Case": "Novo caso contestado",
"New Payout": "Novo Pagamento",
"New Successful Collection Paid to Creditor": "Nova Coleção Paga ao Crédito com Sucesso",
"New Successful Installment Payment via Respaid": "Novo Pagamento de parcelamento bem-sucedido via Reembolso",
"New Successful Collection via Legal Officer": "Nova Coleção bem sucedida via Oficial",
"New Successful Partial Payment to Creditor": "Novo Pagamento Parcial de Sucesso ao Crédito",
"New Successful Partial Payment via Respaid": "Novo Pagamento Parcial com Sucesso via Reembolso",
"New Successful Collection via Respaid": "Nova Coleção com Sucesso via Reembolso",
"Triggers when the campaign is created.": "Dispara quando a campanha é criada.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Aciona quando um processo de coleção para uma determinada sequência (case) foi cancelado.",
"Triggers when a collection process was disputed by the debtor.": "Dispara quando um processo de coleção foi contestado pelo devedor.",
"Triggers when a payout is successfully sent to your bank account.": "Aciona quando um pagamento é enviado com sucesso para sua conta bancária.",
"Triggers when a debt is paid directly to the creditor.": "Desencadeia quando uma dívida é paga diretamente ao credor.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Desencadeia quando uma das parcelas é paga para um caso específico no plano de pagamento de uma cobrança.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Desencadeamento quando é paga uma dívida ao responsável pela campanha de recolha.",
"Triggers when the debt is partially paid directly to the creditor.": "Desencadeia quando a dívida é parcialmente paga diretamente ao credor.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Aciona quando a dívida é parcialmente paga através do link de pagamento de Respaid.",
"Triggers when a debt is paid online via Respaid's payment link.": "Aciona quando uma dívida é paga on-line através do link de pagamento de Respaid."
}

View File

@@ -0,0 +1,40 @@
{
"Respaid": "Погашение",
"You can find API Key in your Respaid account": "Вы можете найти API Key в вашем аккаунте Respaid",
"Create New Campaign": "Создать новую кампанию",
"Stop Collection for Direct Full Payment": "Остановить сбор данных для прямого пополнения",
"Stop Collection for Direct Partial Payment": "Остановить сбор для прямого частичного платежа",
"Stop Collection for Direct Instalment Payment": "Остановить подборку для оплаты прямых платежей",
"Action for creating a new campaign.": "Действие для создания новой кампании.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Приостанавливает процесс сбора средств для данного дела и помечает его как оплаченный непосредственно кредитору.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Приостанавливает процесс сбора средств для дела и помечает его как частичную выплату непосредственно кредитору.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Приостанавливает процесс сбора для случая, когда вместе с кредитором устанавливается план платежа.",
"Campaign Name": "Название кампании",
"Agency collection?": "Агентская коллекция?",
"Import Data (Array of Invoices)": "Импорт данных (массив счетов)",
"Unique Identifier": "Unique Identifier",
"Email": "Почта",
"Invoice Number": "Номер счёта",
"Amount": "Сумма",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Предоставьте массив объектов инвойса со следующим примером структуры:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Компания XYZ\",\n \"email\": \"john@example. om\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Счет для обслуживания\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"АВС кредитора\",\n \"invoicing_entity_address\": \"456 Avenue, Город\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"Адрес\": \"123 Улица, Город\",\n}]",
"New Campaign Creation Result": "Результат создания новой кампании",
"New Cancelled Case": "Новый Отмененный Заявка",
"New Disputed Case": "Новый спор",
"New Payout": "Новая выплата",
"New Successful Collection Paid to Creditor": "Новая коллекция выплачена кредитору",
"New Successful Installment Payment via Respaid": "Новый платеж по оплате через Respaid",
"New Successful Collection via Legal Officer": "Новая коллекция успешных документов через сотрудника по правовым вопросам",
"New Successful Partial Payment to Creditor": "Новый Успешный Частичный Оплата Кредитору",
"New Successful Partial Payment via Respaid": "Новый Успешный Частичный Оплата через Respaid",
"New Successful Collection via Respaid": "Новая Успешная Коллекция через Respaid",
"Triggers when the campaign is created.": "Включает при создании кампании.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Триггеры, когда процесс сбора для заданной последовательности (кейса) был отменен.",
"Triggers when a collection process was disputed by the debtor.": "Вызывает срабатывание, когда должник оспаривал процесс взыскания.",
"Triggers when a payout is successfully sent to your bank account.": "Активаторы при успешной отправке платежа на ваш банковский счет.",
"Triggers when a debt is paid directly to the creditor.": "Срабатывает при выплате долга непосредственно кредитору.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Срабатывает, когда производится один из платежных платежей по данному делу в рамках плана платежей по коллекции.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Вызывает вопрос о выплате задолженности юрисконсульту, ответственному за проведение кампании.",
"Triggers when the debt is partially paid directly to the creditor.": "Вызывает, когда долг частично выплачивается непосредственно кредитору.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Вызывает, когда долг частично оплачивается через платежную ссылку Respaid.",
"Triggers when a debt is paid online via Respaid's payment link.": "Срабатывает при оплате задолженности через ссылку на платеж Respaid."
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "You can find API Key in your Respaid account",
"Create New Campaign": "Create New Campaign",
"Stop Collection for Direct Full Payment": "Stop Collection for Direct Full Payment",
"Stop Collection for Direct Partial Payment": "Stop Collection for Direct Partial Payment",
"Stop Collection for Direct Instalment Payment": "Stop Collection for Direct Instalment Payment",
"Action for creating a new campaign.": "Action for creating a new campaign.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Stops the collection process for a case and mark it as paid directly to the creditor.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Stops the collection process for a case and mark it as partially paid directly to the creditor.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Stops the collection process for a case when an instalment plan is set up with the creditor.",
"Campaign Name": "Campaign Name",
"Agency collection?": "Agency collection?",
"Import Data (Array of Invoices)": "Import Data (Array of Invoices)",
"Unique Identifier": "Unique Identifier",
"Email": "Email",
"Invoice Number": "Invoice Number",
"Amount": "Amount",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"address\": \"123 Street, City\",\n }]",
"New Campaign Creation Result": "New Campaign Creation Result",
"New Cancelled Case": "New Cancelled Case",
"New Disputed Case": "New Disputed Case",
"New Payout": "New Payout",
"New Successful Collection Paid to Creditor": "New Successful Collection Paid to Creditor",
"New Successful Installment Payment via Respaid": "New Successful Installment Payment via Respaid",
"New Successful Collection via Legal Officer": "New Successful Collection via Legal Officer",
"New Successful Partial Payment to Creditor": "New Successful Partial Payment to Creditor",
"New Successful Partial Payment via Respaid": "New Successful Partial Payment via Respaid",
"New Successful Collection via Respaid": "New Successful Collection via Respaid",
"Triggers when the campaign is created.": "Triggers when the campaign is created.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Triggers when a collection process for a given sequence (case) was cancelled.",
"Triggers when a collection process was disputed by the debtor.": "Triggers when a collection process was disputed by the debtor.",
"Triggers when a payout is successfully sent to your bank account.": "Triggers when a payout is successfully sent to your bank account.",
"Triggers when a debt is paid directly to the creditor.": "Triggers when a debt is paid directly to the creditor.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Triggers when one of the installment payments is made for a given case within a collection's payment plan.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.",
"Triggers when the debt is partially paid directly to the creditor.": "Triggers when the debt is partially paid directly to the creditor.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Triggers when the debt is partially paid via Respaid's payment link.",
"Triggers when a debt is paid online via Respaid's payment link.": "Triggers when a debt is paid online via Respaid's payment link."
}

View File

@@ -0,0 +1,40 @@
{
"Respaid": "Respaid",
"You can find API Key in your Respaid account": "You can find API Key in your Respaid account",
"Create New Campaign": "Create New Campaign",
"Stop Collection for Direct Full Payment": "Stop Collection for Direct Full Payment",
"Stop Collection for Direct Partial Payment": "Stop Collection for Direct Partial Payment",
"Stop Collection for Direct Instalment Payment": "Stop Collection for Direct Instalment Payment",
"Action for creating a new campaign.": "Action for creating a new campaign.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Stops the collection process for a case and mark it as paid directly to the creditor.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Stops the collection process for a case and mark it as partially paid directly to the creditor.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Stops the collection process for a case when an instalment plan is set up with the creditor.",
"Campaign Name": "Campaign Name",
"Agency collection?": "Agency collection?",
"Import Data (Array of Invoices)": "Import Data (Array of Invoices)",
"Unique Identifier": "Unique Identifier",
"Email": "Email",
"Invoice Number": "Invoice Number",
"Amount": "Amount",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"address\": \"123 Street, City\",\n }]",
"New Campaign Creation Result": "New Campaign Creation Result",
"New Cancelled Case": "New Cancelled Case",
"New Disputed Case": "New Disputed Case",
"New Payout": "New Payout",
"New Successful Collection Paid to Creditor": "New Successful Collection Paid to Creditor",
"New Successful Installment Payment via Respaid": "New Successful Installment Payment via Respaid",
"New Successful Collection via Legal Officer": "New Successful Collection via Legal Officer",
"New Successful Partial Payment to Creditor": "New Successful Partial Payment to Creditor",
"New Successful Partial Payment via Respaid": "New Successful Partial Payment via Respaid",
"New Successful Collection via Respaid": "New Successful Collection via Respaid",
"Triggers when the campaign is created.": "Triggers when the campaign is created.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Triggers when a collection process for a given sequence (case) was cancelled.",
"Triggers when a collection process was disputed by the debtor.": "Triggers when a collection process was disputed by the debtor.",
"Triggers when a payout is successfully sent to your bank account.": "Triggers when a payout is successfully sent to your bank account.",
"Triggers when a debt is paid directly to the creditor.": "Triggers when a debt is paid directly to the creditor.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Triggers when one of the installment payments is made for a given case within a collection's payment plan.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.",
"Triggers when the debt is partially paid directly to the creditor.": "Triggers when the debt is partially paid directly to the creditor.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Triggers when the debt is partially paid via Respaid's payment link.",
"Triggers when a debt is paid online via Respaid's payment link.": "Triggers when a debt is paid online via Respaid's payment link."
}

View File

@@ -0,0 +1,39 @@
{
"You can find API Key in your Respaid account": "You can find API Key in your Respaid account",
"Create New Campaign": "Create New Campaign",
"Stop Collection for Direct Full Payment": "Stop Collection for Direct Full Payment",
"Stop Collection for Direct Partial Payment": "Stop Collection for Direct Partial Payment",
"Stop Collection for Direct Instalment Payment": "Stop Collection for Direct Instalment Payment",
"Action for creating a new campaign.": "Action for creating a new campaign.",
"Stops the collection process for a case and mark it as paid directly to the creditor.": "Stops the collection process for a case and mark it as paid directly to the creditor.",
"Stops the collection process for a case and mark it as partially paid directly to the creditor.": "Stops the collection process for a case and mark it as partially paid directly to the creditor.",
"Stops the collection process for a case when an instalment plan is set up with the creditor.": "Stops the collection process for a case when an instalment plan is set up with the creditor.",
"Campaign Name": "Campaign Name",
"Agency collection?": "Agency collection?",
"Import Data (Array of Invoices)": "Import Data (Array of Invoices)",
"Unique Identifier": "Unique Identifier",
"Email": "电子邮件地址",
"Invoice Number": "Invoice Number",
"Amount": "Amount",
"Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"p": "Provide an array of invoice objects with the following example structure:\n [{\n \"unique_identifier\": \"123\",\n \"company_name\": \"Company XYZ\",\n \"email\": \"john@example.com\",\n \"invoice_number\": \"INV123\",\n \"invoice_date\": \"01/01/2025\",\n \"description\": \"Invoice for service\"\n \"due_amount\": 1000,\n \"invoicing_entity_name\": \"Creditor ABC\",\n \"invoicing_entity_address\": \"456 Avenue, City\",\n \"full_name\": \"John Doe\",\n \"phone_number\": \"1234567890\",\n \"address\": \"123 Street, City\",\n }]",
"New Campaign Creation Result": "New Campaign Creation Result",
"New Cancelled Case": "New Cancelled Case",
"New Disputed Case": "New Disputed Case",
"New Payout": "New Payout",
"New Successful Collection Paid to Creditor": "New Successful Collection Paid to Creditor",
"New Successful Installment Payment via Respaid": "New Successful Installment Payment via Respaid",
"New Successful Collection via Legal Officer": "New Successful Collection via Legal Officer",
"New Successful Partial Payment to Creditor": "New Successful Partial Payment to Creditor",
"New Successful Partial Payment via Respaid": "New Successful Partial Payment via Respaid",
"New Successful Collection via Respaid": "New Successful Collection via Respaid",
"Triggers when the campaign is created.": "Triggers when the campaign is created.",
"Triggers when a collection process for a given sequence (case) was cancelled.": "Triggers when a collection process for a given sequence (case) was cancelled.",
"Triggers when a collection process was disputed by the debtor.": "Triggers when a collection process was disputed by the debtor.",
"Triggers when a payout is successfully sent to your bank account.": "Triggers when a payout is successfully sent to your bank account.",
"Triggers when a debt is paid directly to the creditor.": "Triggers when a debt is paid directly to the creditor.",
"Triggers when one of the installment payments is made for a given case within a collection's payment plan.": "Triggers when one of the installment payments is made for a given case within a collection's payment plan.",
"Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.": "Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.",
"Triggers when the debt is partially paid directly to the creditor.": "Triggers when the debt is partially paid directly to the creditor.",
"Triggers when the debt is partially paid via Respaid's payment link.": "Triggers when the debt is partially paid via Respaid's payment link.",
"Triggers when a debt is paid online via Respaid's payment link.": "Triggers when a debt is paid online via Respaid's payment link."
}

View File

@@ -0,0 +1,20 @@
import { createPiece, PieceAuth } from "@activepieces/pieces-framework";
import { respaidActions } from "./lib/actions";
import { respaidTriggers } from "./lib/triggers";
export const respaidAuth = PieceAuth.SecretText({
displayName: 'API Key',
required: true,
description: 'You can find API Key in your Respaid account',
});
export const respaid = createPiece({
displayName: "Respaid",
auth: respaidAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: "https://cdn.activepieces.com/pieces/respaid.jpg",
authors: [],
actions: respaidActions,
triggers: respaidTriggers,
});

View File

@@ -0,0 +1,74 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { respaidAuth } from '../..';
import { respaidCommon } from '../common';
export const createNewCampaign = createAction({
name: 'create_new_campaign',
displayName: 'Create New Campaign',
description: 'Action for creating a new campaign.',
auth: respaidAuth,
props: {
campaign_name: Property.ShortText({
displayName: 'Campaign Name',
required: true,
}),
is_agency_collection: Property.Checkbox({
displayName: 'Agency collection?',
required: false,
defaultValue: false,
}),
importData: Property.Json({
displayName: 'Import Data (Array of Invoices)',
required: true,
description: `Provide an array of invoice objects with the following example structure:
[{
"unique_identifier": "123",
"company_name": "Company XYZ",
"email": "john@example.com",
"invoice_number": "INV123",
"invoice_date": "01/01/2025",
"description": "Invoice for service"
"due_amount": 1000,
"invoicing_entity_name": "Creditor ABC",
"invoicing_entity_address": "456 Avenue, City",
"full_name": "John Doe",
"phone_number": "1234567890",
"address": "123 Street, City",
}]`,
}),
},
async run({ auth, propsValue }) {
if (!Array.isArray(propsValue.importData)) {
throw new Error('Import Data must be an array of objects.');
}
const requestBody = {
campaign_name: propsValue.campaign_name,
is_agency_collection: propsValue.is_agency_collection,
import: propsValue.importData.map(invoice => ({
unique_identifier: invoice.unique_identifier,
full_name: invoice.full_name,
company_name: invoice.company_name,
email: invoice.email,
phone_number: invoice.phone_number,
address: invoice.address,
due_amount: invoice.due_amount,
invoicing_entity_name: invoice.invoicing_entity_name,
invoicing_entity_address: invoice.invoicing_entity_address,
invoice_number: invoice.invoice_number,
invoice_date: invoice.invoice_date,
description: invoice.description,
})),
};
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: `${respaidCommon.baseUrl}/actions/import_campaign`,
headers: respaidCommon.getHeadersStructure(auth.secret_text),
body: ({ type: 'active_pieces', import: JSON.stringify(requestBody) }),
});
return res.body;
},
});

View File

@@ -0,0 +1,11 @@
import { createNewCampaign } from "./create_new_campaign";
import { stopCollectionClientPaidDirectly } from "./stop_collection_client_paid_directly";
import { stopCollectionForDirectInstalmentPayment } from "./stop_collection_for_direct_instalment_payment";
import { stopCollectionForDirectPartialPayment } from "./stop_collection_for_direct_partial_payment";
export const respaidActions = [
createNewCampaign,
stopCollectionClientPaidDirectly,
stopCollectionForDirectPartialPayment,
stopCollectionForDirectInstalmentPayment
]

View File

@@ -0,0 +1,37 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { respaidAuth } from '../..';
import { respaidCommon, respaidActionsCommon } from '../common';
export const stopCollectionClientPaidDirectly = createAction({
name: 'stop_collection_client_paid_directly',
displayName: 'Stop Collection for Direct Full Payment',
description: 'Stops the collection process for a case and mark it as paid directly to the creditor.',
auth: respaidAuth,
props: {
unique_identifier: Property.ShortText({
displayName: 'Unique Identifier',
required: false,
}),
email: Property.ShortText({
displayName: 'Email',
required: false,
}),
invoice_number: Property.ShortText({
displayName: 'Invoice Number',
required: false,
}),
},
async run({ auth, propsValue }) {
respaidActionsCommon.validateProps(propsValue);
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: `${respaidCommon.baseUrl}/actions/stop_collection_client_paid_directly`,
headers: respaidCommon.getHeadersStructure(auth.secret_text),
body: respaidActionsCommon.getPayloadBodyStructure(propsValue),
});
return res.body;
},
});

View File

@@ -0,0 +1,37 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { respaidAuth } from '../..';
import { respaidCommon, respaidActionsCommon } from '../common';
export const stopCollectionForDirectInstalmentPayment = createAction({
name: 'stop_collection_for_direct_instalment_payment',
displayName: 'Stop Collection for Direct Instalment Payment',
description: 'Stops the collection process for a case when an instalment plan is set up with the creditor.',
auth: respaidAuth,
props: {
unique_identifier: Property.ShortText({
displayName: 'Unique Identifier',
required: false,
}),
email: Property.ShortText({
displayName: 'Email',
required: false,
}),
invoice_number: Property.ShortText({
displayName: 'Invoice Number',
required: false,
}),
},
async run({ auth, propsValue }) {
respaidActionsCommon.validateProps(propsValue);
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: `${respaidCommon.baseUrl}/actions/stop_collection_for_direct_instalment_payment`,
headers: respaidCommon.getHeadersStructure(auth.secret_text),
body: respaidActionsCommon.getPayloadBodyStructure(propsValue),
});
return res.body;
},
});

View File

@@ -0,0 +1,42 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { respaidAuth } from '../..';
import { respaidCommon, respaidActionsCommon } from '../common';
export const stopCollectionForDirectPartialPayment = createAction({
name: 'stop_collection_for_direct_partial_payment',
displayName: 'Stop Collection for Direct Partial Payment',
description: 'Stops the collection process for a case and mark it as partially paid directly to the creditor.',
auth: respaidAuth,
props: {
unique_identifier: Property.ShortText({
displayName: 'Unique Identifier',
required: false,
}),
amount: Property.ShortText({
displayName: 'Amount',
required: false,
}),
email: Property.ShortText({
displayName: 'Email',
required: false,
}),
invoice_number: Property.ShortText({
displayName: 'Invoice Number',
required: false,
}),
},
async run({ auth, propsValue }) {
respaidActionsCommon.validateProps(propsValue);
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: `${respaidCommon.baseUrl}/actions/stop_collection_for_direct_partial_payment`,
headers: respaidCommon.getHeadersStructure(auth.secret_text),
body: respaidActionsCommon.getPayloadBodyStructure(propsValue),
});
return res.body;
},
});

View File

@@ -0,0 +1,81 @@
import { TriggerHookContext, TriggerStrategy, SecretTextProperty } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from "@activepieces/pieces-common";
interface ActionPayloadProps {
unique_identifier?: string;
invoice_number?: string;
email?: string;
amount?: string;
}
export const respaidCommon = {
baseUrl: 'https://backend.widr.app/api/workflow',
getHeadersStructure: (auth: string) => ({
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-KEY': auth
}),
};
export const respaidActionsCommon = {
getPayloadBodyStructure: (propsValue: ActionPayloadProps) => ({
type: 'active_pieces',
payload: JSON.stringify({
...(propsValue.unique_identifier && { unique_identifier: propsValue.unique_identifier }),
...(propsValue.invoice_number && { invoice_number: propsValue.invoice_number }),
...(propsValue.amount && { amount: propsValue.amount }),
...(propsValue.email && { email: propsValue.email }),
})
}),
validateProps: (propsValue: ActionPayloadProps) => {
const { unique_identifier, email } = propsValue;
if (!unique_identifier && !email) {
throw new Error('You must provide either a unique_identifier OR email.');
}
}
}
export const respaidTriggersCommon = {
onEnable: (eventType: string) => async(context: TriggerHookContext<SecretTextProperty<true>, Record<string, never>, TriggerStrategy.WEBHOOK>) => {
try {
console.log('Trigger enabled, subscribing to webhook');
await httpClient.sendRequest({
method: HttpMethod.POST,
url: `${respaidCommon.baseUrl}/webhook/subscribe`,
headers: respaidCommon.getHeadersStructure(context.auth.secret_text as string),
body: {
type: 'active_pieces',
event_type: eventType,
target_url: context.webhookUrl,
},
});
} catch (error) {
console.error('Error subscribing to webhook:', error);
throw new Error('Failed to subscribe to webhook');
}
},
onDisable: (eventType: string) => async(context: TriggerHookContext<SecretTextProperty<true>, Record<string, never>, TriggerStrategy.WEBHOOK>) => {
try {
console.log('Trigger disabled, unsubscribing from webhook');
await httpClient.sendRequest({
method: HttpMethod.DELETE,
url: `${respaidCommon.baseUrl}/webhook/unsubscribe`,
headers: respaidCommon.getHeadersStructure(context.auth.secret_text),
body: {
type: 'active_pieces',
event_type: eventType,
target_url: context.webhookUrl,
},
});
} catch (error) {
console.error('Error unsubscribing from webhook:', error);
throw new Error('Failed to unsubscribe to webhook');
}
},
getPayload: (context: TriggerHookContext<SecretTextProperty<true>, Record<string, never>, TriggerStrategy.WEBHOOK>) => {
return typeof context.payload.body === 'string'
? JSON.parse(context.payload.body)
: context.payload;
}
}

View File

@@ -0,0 +1,23 @@
import { newCampaignCreation } from "./new_campaign_creation";
import { newCancelledCase } from "./new_cancelled_case";
import { newDisputedCase } from "./new_disputed_case";
import { newPayout } from "./new_payout";
import { newSuccessfulCollectionPaidToCreditor } from "./new_successful_collection_paid_to_creditor";
import { newSuccessfulInstallmentPaymentViaRespaid } from "./new_successful_installment_payment_via_respaid";
import { newSuccessfulCollectionViaLegalOfficer } from "./new_successful_collection_via_legal_officer";
import { newSuccessfulPartialPaymentToCreditor } from "./new_successful_partial_payment_to_creditor";
import { newSuccessfulPartialPaymentViaRespaid } from "./new_successful_partial_payment_via_respaid";
import { newSuccessfulCollectionViaRespaid } from "./new_successful_collection_via_respaid";
export const respaidTriggers = [
newCampaignCreation,
newCancelledCase,
newDisputedCase,
newPayout,
newSuccessfulCollectionPaidToCreditor,
newSuccessfulInstallmentPaymentViaRespaid,
newSuccessfulCollectionViaLegalOfficer,
newSuccessfulPartialPaymentToCreditor,
newSuccessfulPartialPaymentViaRespaid,
newSuccessfulCollectionViaRespaid
]

View File

@@ -0,0 +1,50 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewCampaignTriggerPayload {
request_id?: string;
is_campaign_created?: boolean;
valid_files?: {
unique_identifier: string;
sequence_code: string;
}[];
invalid_files?: {
invalid_email: Record<string, string>;
}[];
file_processing_report?: string;
}
export const newCampaignCreation = createTrigger({
name: 'new_campaign_creation',
displayName: 'New Campaign Creation Result',
description: "Triggers when the campaign is created.",
auth: respaidAuth,
props: {},
sampleData: {
"request_id": "1234",
"is_campaign_created": true,
"valid_files": [{
"unique_identifier": "1",
"sequence_code": 'SQ###1'
}, {
"unique_identifier": "2",
"sequence_code": 'SQ###2'
}],
"invalid_files": [{
"invalid_email": {
"unique_identifier_3": "3",
"unique_identifier_4": "4"
}
}],
"file_processing_report": 'https://link_excel.com'
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_campaign_creation'),
onDisable: respaidTriggersCommon.onDisable('new_campaign_creation'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewCampaignTriggerPayload];
},
})

View File

@@ -0,0 +1,43 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewCancelledCaseTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
currency?: string;
reason?: string;
}
export const newCancelledCase = createTrigger({
name: 'new_cancelled_case',
displayName: 'New Cancelled Case',
description: "Triggers when a collection process for a given sequence (case) was cancelled.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"currency": "usd",
"reason": "Issue with invoice"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_cancelled_case'),
onDisable: respaidTriggersCommon.onDisable('new_cancelled_case'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewCancelledCaseTriggerPayload];
},
})

View File

@@ -0,0 +1,48 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewDisputedCaseTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
currency?: string;
context?: string;
attachment?: string;
}
export const newDisputedCase = createTrigger({
name: 'new_disputed_case',
displayName: 'New Disputed Case',
description: "Triggers when a collection process was disputed by the debtor.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"currency": "usd",
"context": "Q: In order to stop the proceedings against you and not increase the amount of the debt, we can offer you\n" +
"A: Payment in instalments of up to 5 months (activation of instalments within 1 working day).\n" +
"Q: Do you agree to sign the following mandate?\n" +
"A: I agree",
"attachment": "https://link_excel.com/"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_disputed_case'),
onDisable: respaidTriggersCommon.onDisable('new_disputed_case'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewDisputedCaseTriggerPayload];
},
})

View File

@@ -0,0 +1,56 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
type Payment = Partial<{
reference: string;
unique_identifier: string;
name: string;
company_name: string;
email: string;
phone_number: string;
invoice_number: string;
amount: number;
fees: number;
currency: string;
paid_at: string;
}>
type PayoutTriggerPayload = Partial<{
date: string;
payout_id: string;
payments: Payment[];
}>
export const newPayout = createTrigger({
name: 'new_payout',
displayName: 'New Payout',
description: "Triggers when a payout is successfully sent to your bank account.",
auth: respaidAuth,
props: {},
sampleData: {
"payout_id": "1234",
"date": "2025-03-02T00:00:00+0000",
"payments": [{
"reference": "XXX123",
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"fees": 2.5,
"currency": "usd",
"paid_at": "2025-03-02T00:00:00+0000"
}]
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_payout'),
onDisable: respaidTriggersCommon.onDisable('new_payout'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as PayoutTriggerPayload];
},
})

View File

@@ -0,0 +1,42 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewPaidTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
currency?: string;
paid_at?: string;
}
export const newSuccessfulCollectionPaidToCreditor = createTrigger({
name: 'new_successful_collection_paid_to_creditor',
displayName: 'New Successful Collection Paid to Creditor',
description: "Triggers when a debt is paid directly to the creditor.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"currency": "usd",
"paid_at": "2025-03-02T00:00:00+0000"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_successful_collection_paid_to_creditor'),
onDisable: respaidTriggersCommon.onDisable('new_successful_collection_paid_to_creditor'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewPaidTriggerPayload];
},
})

View File

@@ -0,0 +1,42 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewPaidTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
currency?: string;
paid_at?: string;
}
export const newSuccessfulCollectionViaLegalOfficer = createTrigger({
name: 'new_successful_collection_via_legal_officer',
displayName: 'New Successful Collection via Legal Officer',
description: "Triggers when a debt is paid to the Legal Officer responsible for the collection campaign.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"currency": "usd",
"paid_at": "2025-03-02T00:00:00+0000"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_successful_collection_via_legal_officer'),
onDisable: respaidTriggersCommon.onDisable('new_successful_collection_via_legal_officer'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewPaidTriggerPayload];
},
})

View File

@@ -0,0 +1,45 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewPaidTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
currency?: string;
payment_mode?: string | null;
paid_at?: string;
}
export const newSuccessfulCollectionViaRespaid = createTrigger({
name: 'new_successful_collection_via_respaid',
displayName: 'New Successful Collection via Respaid',
description: "Triggers when a debt is paid online via Respaid's payment link.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"currency": "usd",
"payment_mode": "one-shot",
"paid_at": "2025-03-02T00:00:00+0000"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_successful_collection_via_respaid'),
onDisable: respaidTriggersCommon.onDisable('new_successful_collection_via_respaid'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewPaidTriggerPayload];
},
})

View File

@@ -0,0 +1,50 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewPaidTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
paid_amount?: number;
installments_number?: number;
current_installment_step?: number;
balance?: number;
currency?: string;
paid_at?: string;
}
export const newSuccessfulInstallmentPaymentViaRespaid = createTrigger({
name: 'new_successful_installment_payment_via_respaid',
displayName: 'New Successful Installment Payment via Respaid',
description: "Triggers when one of the installment payments is made for a given case within a collection's payment plan.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"paid_amount": 250,
"installments_number": 4,
"current_installment_step": 1,
"balance": 750,
"currency": "usd",
"paid_at": "2025-03-02T00:00:00+0000"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_successful_installment_payment_via_respaid'),
onDisable: respaidTriggersCommon.onDisable('new_successful_installment_payment_via_respaid'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewPaidTriggerPayload];
},
})

View File

@@ -0,0 +1,46 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewPaidTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
paid_amount?: number;
balance?: number;
currency?: string;
paid_at?: string;
}
export const newSuccessfulPartialPaymentToCreditor = createTrigger({
name: 'new_successful_partial_payment_to_creditor',
displayName: 'New Successful Partial Payment to Creditor',
description: "Triggers when the debt is partially paid directly to the creditor.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"paid_amount": 250,
"balance": 750,
"currency": "usd",
"paid_at": "2025-03-02T00:00:00+0000"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_successful_partial_payment_to_creditor'),
onDisable: respaidTriggersCommon.onDisable('new_successful_partial_payment_to_creditor'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewPaidTriggerPayload];
},
})

View File

@@ -0,0 +1,46 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { respaidAuth } from '../../index';
import { respaidTriggersCommon } from '../common';
interface NewPaidTriggerPayload {
unique_identifier?: string;
name?: string;
company_name?: string;
email?: string;
phone_number?: string;
invoice_number?: string;
amount?: number;
paid_amount?: number;
balance?: number;
currency?: string;
paid_at?: string;
}
export const newSuccessfulPartialPaymentViaRespaid = createTrigger({
name: 'new_successful_partial_payment_via_respaid',
displayName: 'New Successful Partial Payment via Respaid',
description: "Triggers when the debt is partially paid via Respaid's payment link.",
auth: respaidAuth,
props: {},
sampleData: {
"unique_identifier": "123",
"name": "John Doe",
"company_name": "Company XYZ",
"email": "john@example.com",
"phone_number": "1234567890",
"invoice_number": "INV123",
"amount": 1000,
"paid_amount": 250,
"balance": 750,
"currency": "usd",
"paid_at": "2025-03-02T00:00:00+0000"
},
type: TriggerStrategy.WEBHOOK,
onEnable: respaidTriggersCommon.onEnable('new_successful_partial_payment_via_respaid'),
onDisable: respaidTriggersCommon.onDisable('new_successful_partial_payment_via_respaid'),
async run(context) {
const payload = respaidTriggersCommon.getPayload(context);
return [payload as NewPaidTriggerPayload];
},
})