1. Creating Bots in Dify
You can configure various bots in Dify using triggers to initiate interactions. Bot configuration can be done through the/dify/create/{{instance}}
endpoint.
Endpoint for Bot Creation
Endpoint
Request Body
Here is an example of a JSON body to configure a bot in Dify:Parameters Explanation
enabled
: Enables (true
) or disables (false
) the bot.botType
: Type of Dify bot (chatBot
,textGenerator
,agent
,workflow
).apiUrl
: Dify API URL (without a trailing/
).apiKey
: API key provided by Dify.- Options:
triggerType
: Type of trigger to start the bot (all
orkeyword
).triggerOperator
: Operator used to evaluate the trigger (contains
,equals
,startsWith
,endsWith
,regex
,none
).triggerValue
: Value used in the trigger (e.g., a keyword or regex).expire
: Time in minutes after which the bot expires, restarting if the session has expired.keywordFinish
: Keyword that ends the bot session.delayMessage
: Delay (in milliseconds) to simulate typing before sending a message.unknownMessage
: Message sent when the user’s input is not recognized.listeningFromMe
: Defines if the bot should listen to messages sent by the user (true
orfalse
).stopBotFromMe
: Defines if the bot should stop when the user sends a message (true
orfalse
).keepOpen
: Keeps the session open, preventing the bot from restarting for the same contact.debounceTime
: Time (in seconds) to combine multiple messages into one.ignoreJids
: List of JIDs of contacts that will not activate the bot.
2. Dify Default Settings
You can define default settings that will be applied if parameters are not passed during bot creation.Endpoint for Default Settings
Endpoint
Request Body
Here is an example of default settings:Parameters Explanation
expire
: Time in minutes after which the bot expires.keywordFinish
: Keyword that ends the bot session.delayMessage
: Delay to simulate typing before sending a message.unknownMessage
: Message sent when the user’s input is not recognized.listeningFromMe
: Defines if the bot should listen to messages sent by the user.stopBotFromMe
: Defines if the bot should stop when the user sends a message.keepOpen
: Keeps the session open, preventing the bot from restarting for the same contact.debounceTime
: Time to combine multiple messages into one.ignoreJids
: List of JIDs of contacts that will not activate the bot.difyIdFallback
: Fallback bot ID that will be used if no trigger is activated.
3. Managing Dify Sessions
You can manage the bot sessions by changing the status between open, paused, or closed for each specific contact.Endpoint for Session Management
Endpoint
Request Body
Here is an example of how to manage the session status:Parameters Explanation
remoteJid
: JID (identifier) of the contact on WhatsApp.status
: Session status (opened
,paused
,closed
).
4. Automatic and Special Variables in Dify
When a Dify session is started, some predefined variables are automatically sent:Automatic Variables Explanation
remoteJid
: JID of the contact the bot is interacting with.pushName
: Contact’s name on WhatsApp.instanceName
: Name of the instance running the bot.serverUrl
: URL of the server where Evolution API is hosted.apiKey
: API key used to authenticate requests.
Special Variables for Workflows
In the case of workflow bots, the received message is sent in thequery
variable within the inputs. This allows the workflow to process the message directly based on the content of the query
variable.