Table of Contents
Available as of Camel 2.16
The slack component allows you to connect to an instance of Slack and delivers a message contained in the message body via a pre established Slack incoming webhook.
Maven users will need to add the following dependency to their pom.xml
for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-slack</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>To send a message to a channel.
slack:#channel[?options]
To send a direct message to a slackuser.
slack:@username[?options]
The Slack component supports 1 options which are listed below.
{% raw %}
| Name | Java Type | Description |
|---|---|---|
webhookUrl |
| The incoming webhook URL |
{% endraw %}
The Slack component supports 6 endpoint options which are listed below:
{% raw %}
| Name | Group | Default | Java Type | Description |
|---|---|---|---|---|
channel | producer |
| Required The channel name (syntax name) or slackuser (syntax userName) to send a message directly to an user. | |
iconEmoji | producer |
| Use a Slack emoji as an avatar | |
iconUrl | producer |
| The avatar that the component will use when sending message to a channel or user. | |
username | producer |
| This is the username that the bot will have when sending messages to a channel or user. | |
webhookUrl | producer |
| The incoming webhook URL | |
synchronous | advanced |
|
| Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). |
{% endraw %}
The SlackComponent with XML must be configured as a Spring or Blueprint bean that contains the incoming webhook url for the integration as a parameter.
<bean id="slack" class="org.apache.camel.component.slack.SlackComponent"> <property name="webhookUrl" value="https://hooks.slack.com/services/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"/> </bean>
For Java you can configure this using Java code.
A CamelContext with Blueprint could be as:
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy"> <bean id="slack" class="org.apache.camel.component.slack.SlackComponent"> <property name="webhookUrl" value="https://hooks.slack.com/services/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"/> </bean> <camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="direct:test"/> <to uri="slack:#channel?iconEmoji=:camel:&username=CamelTest"/> </route> </camelContext> </blueprint>