PublishSlack

Description:

Posts a message to the specified Slack channel. The content of the message can be either a user-defined message that makes use of Expression Language or the contents of the FlowFile can be sent as the message. If sending a user-defined message, the contents of the FlowFile may also be optionally uploaded as a file attachment.

Additional Details...

Tags:

slack, conversation, chat.postMessage, social media, team, text, unstructured, write, upload, send, publish

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.

Display NameAPI NameDefault ValueAllowable ValuesDescription
Access TokenAccess TokenOAuth Access Token used for authenticating/authorizing the Slack request sent by NiFi. This may be either a User Token or a Bot Token. The token must be granted the chat:write scope. Additionally, in order to upload FlowFile contents as an attachment, it must be granted files:write.
Sensitive Property: true
ChannelChannelThe name or identifier of the channel to send the message to. If using a channel name, it must be prefixed with the # character. For example, #general. This is valid only for public channels. Otherwise, the unique identifier of the channel to publish to must be provided.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)
Publish StrategyPublish StrategySend FlowFile Content as Message
  • Send FlowFile Content as Message The contents of the FlowFile will be sent as the message text.
  • Use 'Message Text' Property The value of the Message Text Property will be sent as the message text.
Specifies how the Processor will send the message or file to Slack.
Message TextMessage TextThe text of the message to send to Slack.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)

This Property is only considered if the [Publish Strategy] Property has a value of "Use 'Message Text' Property".
Character SetCharacter SetUTF-8Specifies the name of the Character Set used to encode the FlowFile contents.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)

This Property is only considered if the [Publish Strategy] Property has a value of "Send FlowFile Content as Message".
Include FlowFile Content as AttachmentInclude FlowFile Content as Attachmentfalse
  • true
  • false
Specifies whether or not the contents of the FlowFile should be uploaded as an attachment to the Slack message.

This Property is only considered if the [Publish Strategy] Property has a value of "Use 'Message Text' Property".
Max FlowFile SizeMax FlowFile Size1 MBThe maximum size of a FlowFile that can be sent to Slack. If any FlowFile exceeds this size, it will be routed to failure. This plays an important role because the entire contents of the file must be loaded into NiFi's heap in order to send the data to Slack.

This Property is only considered if the [Include FlowFile Content as Attachment] Property has a value of "true".
Thread TimestampThread TimestampThe Timestamp identifier for the thread that this message is to be a part of. If not specified, the message will be a top-level message instead of being in a thread.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)

Relationships:

NameDescription
successFlowFiles are routed to success after being successfully sent to Slack
rate limitedFlowFiles are routed to 'rate limited' if the Rate Limit has been exceeded
failureFlowFiles are routed to 'failure' if unable to be sent to Slack for any other reason

Reads Attributes:

None specified.

Writes Attributes:

NameDescription
slack.channel.idThe ID of the Slack Channel from which the messages were retrieved
slack.tsThe timestamp of the slack messages that was sent; this is used by Slack as a unique identifier

State management:

This component does not store state.

Restricted:

This component is not restricted.

Input requirement:

This component requires an incoming relationship.

System Resource Considerations:

None specified.