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
Sources270+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
dbt integrationdbt Core as a native flow type, Git-pinned, plus dbt Platform job triggersno native dbt
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
Lineage and audit trailrun-level lineage (trigger, flow, dbt commit, outcome) plus a filterable audit trailPartial: scenario execution 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) that 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