Skip to main content

Camel Inbound Channel

2026.1.0+

The Camel inbound channel uses Apache Camel components to receive events from systems that are not covered by the built-in channel implementations. Instead of a messaging broker, the channel polls (or listens to) a Camel endpoint and turns every message it picks up into an event that is handed to the regular inbound pipeline.

The following Camel channel types are available out of the box:

  • File - poll a directory on the Flowable server for incoming files
  • FTP - poll a directory on a remote FTP server
  • SFTP - poll a directory on a remote SFTP server
  • SQL - poll rows from a database table
  • Azure Service Bus - receive messages from an Azure Service Bus queue or topic
  • Custom - provide a raw Camel endpoint URI for any other Camel component

Enabling the Camel integration

The Camel integration is disabled by default. To enable it, set the following property in the application.properties configuration file:

flowable.eventregistry.camel.enabled=true
note

The Camel dependencies are added by default when using Flowable Work/Engage, so no further action is needed there. The relevant Camel component is only required for the channel type you actually use: camel-file for File, camel-ftp for FTP and SFTP, camel-sql for SQL, and the Flowable Azure Service Bus component for Azure Service Bus.

If you're building your own Spring Boot project with Flowable dependencies, add the flowable-platform-camel dependency (together with the Camel component starters for the types you need) to your pom.xml:

<dependency>
<groupId>com.flowable.platform</groupId>
<artifactId>flowable-platform-camel</artifactId>
</dependency>

Selecting a Camel channel type

In the channel model editor, set Inbound/Outbound to Inbound and the Implementation to Camel. A Type dropdown then appears in which the Camel channel type is selected.

Camel Inbound Type Selection UI

Selecting a type shows the fields that are relevant for that type. Behind the scenes, Flowable assembles a Camel consumer endpoint URI from these fields in the form <type>:<address>?<option>=<value>&..., so every field maps directly onto a Camel endpoint option. Fields marked with a red asterisk (*) are required.

File

Consumes files from a directory on the Flowable server. Each file that is picked up becomes a single event.

Camel File Inbound Channel UI

FieldRequiredDescription
DirectoryYesBase directory path to monitor for incoming files.
File nameNoAnt-style glob filter (e.g. *.xml, **/*.csv).
RecursiveNoWhether to scan subdirectories.
DelayNoMilliseconds between directory polls.
Initial delayNoMilliseconds to wait before starting to poll.
Delete after processingNoWhether to delete files after successful processing.
Move failed files to directoryNoDirectory for files that failed processing.
IdempotentNoSkip already-processed files.
CharsetNoEncoding for file read/write.
Include hidden directoriesNoInclude dot-prefixed directories.
Include hidden filesNoInclude dot-prefixed files.
GreedyNoRerun immediately if the previous poll found messages.

FTP

Polls a directory on a remote FTP server.

Camel FTP Inbound Channel UI

FieldRequiredDescription
Host and directoryYesFTP server address in the format host:port/directory.
File nameNoAnt-style glob filter (e.g. *.xml, **/*.csv).
Passive modeNoUse passive mode for FTP data transfers.
DelayNoMilliseconds between directory polls.
Initial delayNoMilliseconds to wait before starting to poll.
No-opNoDo not move or delete files after processing.
UsernameYesUsername for FTP authentication.
PasswordYesPassword for FTP authentication.

SFTP

Polls a directory on a remote SFTP server. Supports both password and private-key based authentication.

Camel SFTP Inbound Channel UI

FieldRequiredDescription
Host and directoryYesSFTP server address in the format host:port/directory.
File nameNoAnt-style glob filter (e.g. *.xml, **/*.csv).
DelayNoMilliseconds between directory polls.
Initial delayNoMilliseconds to wait before starting to poll.
No-opNoDo not move or delete files after processing.
Known hosts fileNoPath to the known_hosts file for host key verification.
Strict host key checkingNoHost key checking mode: yes, no, or ask.
UsernameYesUsername for SFTP authentication.
PasswordNoPassword for SFTP authentication.
Private key fileNoPath to the private key file for key-based authentication.
Private key passphraseNoPassphrase for the private key file.

SQL

Polls rows from a database table. Each row that is returned becomes a single event.

Camel SQL Inbound Channel UI

FieldRequiredDescription
SQL queryYesSQL SELECT query to poll for new rows, e.g. SELECT * FROM events WHERE processed = false.
Data sourceNoSpring bean reference for the data source, e.g. #dataSource.
On consume queryNoSQL query executed after each row is processed, e.g. UPDATE events SET processed = true WHERE id = :#ID.
On consume failed queryNoSQL query executed when row processing fails.
DelayNoMilliseconds between poll cycles.
Initial delayNoMilliseconds to wait before starting to poll.
Max messages per pollNoMaximum number of rows to process per poll cycle.

Azure Service Bus

Receives messages from an Azure Service Bus queue or topic subscription. Flowable ships a lightweight Azure Service Bus component that communicates over AMQP 1.0, so the full Azure SDK is not required.

Camel Azure Service Bus Inbound Channel UI

FieldRequiredDescription
Queue or topic nameYesThe name of the Azure Service Bus queue or topic.
Service Bus typeNoWhether to consume from a queue or a topic subscription (Queue or Topic).
Subscription nameNoThe subscription name when consuming from a topic.
DelayNoMilliseconds between poll cycles.
Initial delayNoMilliseconds to wait before starting to poll.
Connection stringYesThe connection string for the Azure Service Bus namespace.

Custom source URI

If the channel type you need is not in the list, select Custom and provide the full Camel endpoint URI in the Source URI field (e.g. direct:start or timer:tick?period=5000). The channel then consumes from that endpoint directly, allowing any Camel component available on the classpath to be used.

Pipeline

The pipeline configuration is the same for all channels. See Inbound Pipeline for more details.