NextDeveloper abstraction library for IPaaS (Integration Platform as a Service) services

Maintainers

Package info

github.com/nextdeveloper-nl/ipaas

pkg:composer/nextdeveloper/ipaas

Statistics

Installs: 300

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2.5 2026-05-15 05:58 UTC

This package is auto-updated.

Last update: 2026-05-15 06:57:56 UTC


README

This library provides an enterprise-level abstraction layer for Integration Platform as a Service (iPaaS) providers. It gives your application a unified interface to manage, synchronise, and monitor workflow automations across multiple third-party automation platforms through a single, consistent API.

The design goal is simplicity at the integration boundary — you register a provider once and the library handles authentication, data normalisation, periodic sync, and execution tracking for all supported platforms.

Supported Platforms

Platform Type Workflows Executions Activate / Deactivate
n8n self-hosted / cloud
Make.com cloud ✅ (scenarios)
Zapier cloud ✅ (zaps) ❌ (not in public API) ❌ (not in public API)

Core Concepts

Providers

A Provider record represents a registered automation platform account. Each provider stores the credentials and base URL needed to reach the platform's API:

Provider field n8n Make.com Zapier
region / base_url Instance URL Regional API base https://api.zapier.com/v2
external_account_id N8N API key Make.com team ID
api_token Make.com API token Zapier personal token
provider_type n8n or n8n-cloud make zapier

Workflows

A Workflow is the library's unified representation of an automation (n8n workflow, Make scenario, Zapier zap). Workflows are fetched from the platform and stored locally so they can be queried, filtered, and associated with executions without hitting the upstream API on every request.

Workflow Executions

A WorkflowExecution records the outcome of a single workflow run. The library normalises each platform's status vocabulary into a common set: success, error, running, waiting, canceled.

Statistics

The library automatically maintains daily aggregate tables (ipaas_workflow_daily_stats, ipaas_execution_daily_stats) and per-account summaries (ipaas_account_stats) so dashboards can be served without expensive live queries.

Platform Integration Features

  • Unified WapInterface — all platforms implement the same contract
  • testConnection() — verify credentials before storing a provider
  • listWorkflows() / getWorkflow() — browse automation definitions
  • activateWorkflow() / deactivateWorkflow() — control workflow state
  • listExecutions() / getExecution() / deleteExecution() — manage execution history
  • syncWorkflows() — pull all workflows from the platform and upsert locally
  • syncExecutions() — pull execution history within a configurable time window
  • Webhook-triggered sync (currently polling only)
  • Workflow creation via API (create automations from within your app)
  • Cross-platform workflow migration

Sync Jobs and Artisan Commands

The library ships with queue jobs and Artisan commands for each platform so syncs can be scheduled, dispatched manually, or run inline for debugging.

Commands

# Sync all n8n providers (workflows + executions)
php artisan ipaas:sync-n8n

# Sync only workflows for a specific provider
php artisan ipaas:sync-n8n --workflows-only --provider=<uuid>

# Sync executions from a custom time window
php artisan ipaas:sync-n8n --executions-only --since="7 days ago"

# Run synchronously in the current process (no queue)
php artisan ipaas:sync-n8n --sync

# Make.com
php artisan ipaas:sync-make
php artisan ipaas:sync-make-scenarios
php artisan ipaas:sync-make-executions

# Zapier
php artisan ipaas:sync-zapier
php artisan ipaas:sync-zapier-workflows

Scheduler

Add the following to your app/Console/Kernel.php to keep data fresh:

$schedule->job(new SyncN8NWorkflowsJob())->hourly()->onQueue('ipaas-sync');
$schedule->job(new SyncN8NExecutionsJob())->hourly()->onQueue('ipaas-sync');
$schedule->job(new SyncMakeScenariosJob())->hourly()->onQueue('ipaas-sync');
$schedule->job(new SyncMakeExecutionsJob())->hourly()->onQueue('ipaas-sync');
$schedule->job(new SyncZapierWorkflowsJob())->hourly()->onQueue('ipaas-sync');

Jobs are dispatched to the ipaas-sync queue by default and support automatic retries with backoff.

Authorization

The library uses role-based access control via the IntegrationPlatformUser role. This role restricts users to their own account's providers, workflows, and executions through Eloquent global scopes, so no data leaks across account boundaries.

Perspectives (Read-Only Views)

The library exposes several database views for efficient reporting without application-level joins:

Perspective Description
AccountProviderOverviews Per-account summary of registered providers and their health
PlatformHealthPerspective Cross-provider health snapshot for operations dashboards
WorkflowExecutionsPerspective Enriched execution list with workflow and provider context

Adding a New Platform

  1. Create an integration class in src/Integrations/<Platform>/ that extends AbstractWapIntegration and implements WapInterface.
  2. Create a corresponding interface in the same directory.
  3. Add the provider type to WapIntegrationFactory::make().
  4. Add sync jobs under src/Jobs/<Platform>/ following the existing pattern.
  5. Add Artisan commands under src/Console/Commands/.

Commercial Support

Please let us know if you need any commercial support. We will be happy to help you integrate this library into your project.

Want to Contribute?

You are very welcome to contribute. Please send us an email so we can get in touch and discuss the details:

support@plusclouds.com

Our Libraries

This library is part of the NextDeveloper / PlusClouds open-source ecosystem. Browse all available libraries and find the right building blocks for your next project:

https://plusclouds.com/us/solutions/libraries

Join the Community

We believe great software is built together. The PlusClouds developer community is a place where engineers share ideas, ask questions, showcase what they have built, and help shape the direction of these libraries. Whether you are integrating a single package or building an entire platform on top of our stack, you are very welcome here.

Come and join us — we would love to see what you build:

https://plusclouds.com/us/community