public void notify(DelegateExecution execution) throws Exception { String signalName = null; String user = null; String taskName = null; Collection properties = ((CamundaProperties) execution .getBpmnModelElementInstance() .getExtensionElements() .getUniqueChildElementByType(CamundaProperties.class)) .getCamundaProperties(); for (CamundaProperty property : properties) { if ("signalName".equals(property.getCamundaName())) { signalName = property.getCamundaValue(); } if ("user".equals(property.getCamundaName())) { user = property.getCamundaValue(); } if ("taskName".equals(property.getCamundaName())) { taskName = property.getCamundaValue(); } } if (signalName == null || signalName.isEmpty()) { throw new RuntimeException("You have to set a Camunda Extension Property named 'signalName' to use this listener!"); } RuntimeService runtimeService = execution.getProcessEngineServices().getRuntimeService(); Map variabless = new HashMap(); variabless.put("user",user); variabless.put("taskName",taskName); runtimeService.signalEventReceived(signalName,variabless); }