Comparison

Etlworks vs Make

Make is visual app-to-app automation, now part of Celonis, priced by the operation. Etlworks handles the data side — CDC, bulk ETL, warehouses, and EDI — where counting operations stops making sense.

The verdict

When each tool fits.

When Etlworks fits better

  • You are moving rows and files, not counting operations
  • You need log-based CDC from production databases
  • You need EDI (X12, EDIFACT, HL7) processing
  • You need continuous and parallel scheduled runs, not per-operation credits
  • You need on-prem or hybrid deployment

Where they’re equal

  • Visual, low-code building
  • Large SaaS app catalogue
  • Event-driven triggers, scheduling, and error handling
  • HTTP calls to arbitrary APIs
  • Accessible to non-engineers

When Make fits better

  • Your work is SaaS-to-SaaS automation with light data volume
  • You want a free tier and a very low entry price
  • Business users build and own the scenarios
  • You are already in the Celonis process-mining ecosystem
  • You want the visual scenario canvas specifically

Feature breakdown

Side by side.

Capability Etlworks Make
Pricing & commercial
Starting price (monthly)$300Free (1,000 credits) / Core from $9
Pricing modelFixed per tierCredit per module run
Cost transparencyHigh — flat rateLow — credit burn scales with record count
Vendor lock-inMonthly or annual, no contractMonthly or annual
OwnershipIndependent, founder-runCelonis
Integration scope
Sources260+2,000+ app connectors
DestinationsWarehouses, databases, SaaS, NoSQL, files, APIs, queues, IoT, emailSame app catalogue
ETL capabilitiesETL, ELT, Reverse ETL, wildcard processingPartial — per-record scenario logic, not bulk ETL
API managementFullHTTP module and webhooks
EDI processingX12, EDIFACT, HL7, FHIR
On-prem deploymentcloud only
Embeddable
Transformations
Visual mappingdrag-and-drop designer with live previewPartial — field mapping per step
Scripting languagesSQL, JavaScript, Python, XSLT, shellJavaScript or Python in code steps
Nested and hierarchical dataJSON, XML, Avro, Parquet — read, write, normalize, flatten by draggingPartial — JSON per item, no bulk flattening
Warehouse pushdown (ELT)transform before load or in the warehouse, same engine
Reusable logicmacros, templates, and 3,900+ prebuilt flow templatesreusable sub-workflows
Lookups and enrichmentLookup Builder for cross-source lookupsPartial — lookup via extra API calls
Data validationvalidation rules with per-step error handlingPartial — conditional branches
Orchestration & workflow
SchedulingCron expressions and fixed intervals, with per-schedule parametersInterval and cron-style schedules
Event-driven triggersHTTP listeners and webhooks, message queues, file and email eventswebhooks and app triggers — the primary model
Continuous executionlooping schedules for CDC and queue consumersPartial — polling triggers
Visual workflow builderComposer canvas, 200+ flow typesthe core of the product
Nested workflowsnested flows with conditional and looped stepssub-workflows
Run external toolsshell and SSH scripts, CLI, JavaScript, Python, SQL, HTTP callsPartial — HTTP modules only, no shell
Parallel executionoverlapping schedules run as independent, separately cancellable instancesPartial — limited by plan concurrency
Retries and error handlingper-step exception handling with notificationsper-step retry and error branches
Run monitoringper-schedule status, run history, automatic Flow Findings reportsexecution history
CDC & Streaming
CDC engineDebezium-compatible, built-in (no Kafka required)
Database CDC sourcesMySQL, Postgres, SQL Server, Oracle, MongoDB, DB2, others
Streaming queuesKafka, EventHubs, Kinesis, SQS, PubSub, ActiveMQ, RabbitMQPartial — limited queue modules
IoT brokersMQTT brokers
Real-time replicationLog-based CDC, full, incrementalpolling and webhooks
Change tracking modesLog-based, trigger-based, timestamp/high-watermarkPolling, webhooks
Developer experience
REST APIfull API for flows, connections, schedules, and runs
CLIfull CLI with built-in SQLPartial — limited or community CLI
MCP serverbuilt-in — connect Cursor, Claude, or ChatGPT to your instance
Client librariesPython, Bash, and PowerShell clientsPartial — community SDKs
Version controlbuilt-in — automatic history, diff, and revert on every artifactPartial — change history, no diff or revert
Embeddable / white-labelPartial — white-label on higher tiers
Compliance & security
SOC 2 Type 2audited; report under NDA, SOC 3 public
HIPAAsupported with a BAAPartial — higher tiers only
GDPR / DPAcompliant, DPA available
SSO and MFASAML SSO, optional 2FA, JWT stateless authPartial — enterprise tier
Role and artifact-level accesssix roles plus tag-based scoping of flows, connections, and schedulesPartial — role-based, no artifact-level scoping
Encryption and data handlingTLS in transit, encrypted at rest, customer-managed PGP, SSH tunnels, IP allowlisting; rows are not persisted by defaultencrypted in transit and at rest
Audit loggingadmin actions logged, access logs monitoredPartial — enterprise tier
Security testingmonthly vulnerability and penetration scans, static analysis blocking every build, periodic third-party auditsvendor-managed, details on request
Gen AI
AI agentBuilt-in agent (Simba) — builds and edits flows from chatPartial — AI agents and a generative scenario builder
Agent capabilitiesReads metadata, reads/samples data, writes JS & SQL, schedules, deploys, monitorsComposes scenarios from a prompt
Natural-language flow building‘Vibe-build’ — create flows by describing what you wantgenerative scenario builder
AI-driven mappingAuto-suggests source-to-destination mappings
Built-in analyticsAgent runs analysis on flow data and pipeline behavior
Chat across productSame agent context on every screen
CLI for agentFull CLI access for run/deploy/monitor/manage
Trains on customer dataNeverPer Make terms