Hi team,
I am building a custom inbound connector using the Connector SDK (8.8.x).
The connector receives an external event, converts it into a POJO (Event object), and triggers:
CorrelationResult result = connectorContext.correlateWithResult(event);
The process instance successfully starts in Camunda 8 SaaS.
The connector runtime logs confirm this:
Received message, correlating with Camunda. body=…, headers=…
Created a process instance with key 225179982…
Everything works except one issue:
No variables appear in Operate, even though mapping is configured.
What I have tried
1. Created a clean Element Template
The template adds these properties on the Start Event:
<zeebe:property
name=“inbound.variableMapping”
value=“={ body: event.body, headers: event.headers }” />
This produces BPMN like:
<bpmn:startEvent id=“StartEvent_1” …>
<bpmn:extensionElements>
<zeebe:properties>
<zeebe:property name=“inbound.type” value=“com.example:custom-inbound:1”/>
<zeebe:property name=“inbound.variableMapping” value=“={ body: event.body, headers: event.headers }”/>
</zeebe:properties>
</bpmn:extensionElements>
</bpmn:startEvent>
The mapping looks correct and matches the webhook inbound example.
2. Validated that the inbound event object is correct
Before calling correlate, I log:
LOG.info(“Event BEFORE correlation: body=‘{}’, headers={}”,
event.getBody(), event.getHeaders());
Log output shows the fields perfectly:
Event BEFORE correlation: body=‘This is test’,
headers={MessageType=, MessageID=ID:…, Destination=queue://TEST.QUEUE}
So the event object has the correct content.
3. Tried multiple mapping options
Tried mapping through variableMapping
<zeebe:property name=“inbound.variableMapping”
value=“={ body: event.body, headers: event.headers }”/>
Tried mapping through resultExpression:
<zeebe:property name=“inbound.resultExpression”
value=“={ body: event.body, headers: event.headers }”/>
Tried ultra-simple constant mapping:
<zeebe:property name=“inbound.variableMapping”
value=“={ testVar: “hello” }”/>
Tried bypassing FEEL entirely by sending a Map<String,Object>:
Map<String, Object> payload = Map.of(
“body”, event.getBody(),
“headers”, event.getHeaders()
);
CorrelationResult result = connectorContext.correlateWithResult(payload);
→ Instance still starts
→ Still 0 variables in Operate
4. Tried updating the runtime version
Tested with:
-
camunda/connectors-bundle:8.7.9 -
camunda/connectors-bundle:8.8.2
Same behavior in both.
What IS working
-
Connector runtime starts properly
-
It discovers and activates the inbound connector
-
It listens to incoming events
-
It triggers the correct Start Event
-
Process instance is created in SaaS
-
Eventobject contains all fields correctly -
No correlation errors
-
No FEEL evaluation errors in logs
-
Just no variables in Operate
Question:
Is there a known change or requirement in connectors-bundle 8.7.x / 8.8.x regarding:
-
Which property the inbound connector should use (
inbound.variableMapping,inbound.resultExpression, something else)? -
How the inbound event object is exposed to FEEL?
-
Whether
correlateWithResult(event)is still expected to produce process variables? -
Whether a special interface / wrapper is required for custom inbound events?
Right now the connector starts the process instance correctly, but variables never show up, regardless of mapping configuration.
Any guidance on the correct way to pass variables from a custom inbound connector into the process instance (for 8.8.x) would be greatly appreciated.
Best Regards,
Jignesh Pithava