Fix for #806 - new version of websocket didn't play nice with Slack's message servers
Support for Slack's new rtm.connect method.
Use rtm.connect instead of rtm.start when connecting an RTM bot to Slack. This should performance during connections.
Add a new readme file and moved other documentation into docs/
folder.
Update all dependencies to their most recent versions
Change behavior of conversation timeouts. New behavior is documented here.
Support for Facebook Messenger's new "Home URL" setting PR #793 New features documented here.
Support for including parameters in Facebook codes. PR #790 Docs here.
Support for Facebook's new "target audience" APIs PR #798
Support for additional Slack user APIs, including 'user.profile.set' and 'user.profile.get'. PR #780
Add support for createPrivateConversation()
in Slack bots PR #586
beforeThread Hooks:
These new hooks allow developers to execute custom functionality as a conversation transitions from one thread to another.
This enables asynchronous operations like database and API calls to be made mid-conversation, and can be used to add additional
template variables (using convo.setVar()
), or change the direction of the conversation (using convo.gotoThread()
).
Add convo.beforeThread()
, a plugin hook that fires before a conversation thread begins. Docs
Add controller.studio.beforeThread()
, a plugin hook that fires before a Botkit Studio-powered conversation thread begins. Docs
Changes for Slack:
Add support for Slack's new chat.unfurl
method for use with App Unfurls
Add additional Slack's team API methods PR #677
Botkit will now store the value of the state parameter used in the oauth flow in the team's record PR #657
Fixes slash commands when using internal webserver PR #699
Add error logging for say and spawn.run PR #691
Changes for Facebook Messenger:
Updates to Facebook's Messenger Profile APIs (previously thread settings APIs) PR #690
Add ability to retrieve Messenger Code image PR #689
Add support for Facebook's domain whitelisting API PR #573
Add tests for handleWebhookPayload in Facebook bot flow PR #678
Add Facebook account linking support PR #578
Add ability to customize api url for Facebook PR #576
Changes to Botkit Core:
Add "done" and "exit" as a utterances for "quit" PR #498
Thanks
Thanks to @jhsu @davidwneary @mbensch @alecl @ouadie-lahdioui @agamrafaeli @katsgeorgeek @jfairley
Fixes for Cisco Spark:
Allow port number to be included in public_address
Fix to issue when using retrieveFile()
Fixes for Slack:
Add support for channel.replies
API
Fixes for Facebook:
Add support for Facebook account linking
Add support for bots on Cisco Spark! For information about getting started, and to learn about new Botkit features that are specific to this platform, check out our new Cisco Spark readme.
Botkit will now send a user agent header on all requests to the Slack API
When building for Slack, developers may now override the root URL of the API by specifying api_root
in the configuration in order to use mocked testing endpoints or use the Slack API through a proxy.
Add support for Slack Enterprise Grid, for more information read
Add Support for Slack's new thread system, including:
bot.replyInThread() to create a threaded reply
bot.startConversationInThread() to create and immediately start a conversation in a thread
bot.createConversationInThread() to create a conversation in a thread
Add new heard
middleware endpoint, which fires after a pattern has been matched, but before the handler function is called. This allows developers to enrich messages with NLP tools or other plugins, but do so only when the original message matches specific criteria.
Add new capture
middleware endpoint, which fires after a user responds to a convo.ask
question but before the related handler function is called. This allows developers to change the value that is captured, or capture additional values such as entities returned by an NLP plugin.
controller.version()
will now report the currently installed version of Botkit.
Change to how quick replies are rendered via Botkit Studio's API
Add support for Facebook Messenger "location" quick replies PR #568
Add support for Slack's new users.setPresence API PR #562
Add support for Slack's new reminders API PR #580
Change to controller.studio.runTrigger: Will now resolve promise regardless of whether a trigger was matched
Bug fix: Fix detection of Slackbot interactive callbacks
Changes:
Add referral field to facebook_postback
events, if set PR #552
Refactor handling of incoming webhooks from Slack and Facebook in order to make it easier for developers to create custom endpoints and/or integrate Botkit into existing Express applications.
Add controller.handleWebhookPayload()
to process a raw webhook payload and ingest it into Botkit
Make stale connection detection configurable PR #505
DDOS Vulnerability Fix - Secure Facebook Webhook PR #555
Bug fixes:
Fix an issue where a custom redirect_uri would be rejected by Slack's oauth verification
Fix bot_channel_join and bot_group_join with Slack Events API PR #514
Fix path to static content directory PR #546
retry
and send_via_rtm
options are now properly associated with the controller object.
Fix some issues pertaining to typing indicators and the slack RTM PR #533
Adds convo.transitionTo(), a new feature for creating smoother transitions between conversation threads
Adds support for new Facebook Messenger thread settings APIs which enable developers to set and manage the 'getting started' screen and persistent menus.
Adds support for Facebook Messenger attachment in Botkit Studio
Adds a check to ensure messages are properly received by Facebook and Slack before proceeding to next message in a conversation.
Adds optional require_delivery
option for Facebook and Slack bots which tells Botkit to wait to receive a delivery confirmation from the platform before sending further messages. Slack info Facebook info
Change: Receiving facebook_postback
events as normal "spoken" messages now requires the {receive_via_postback:true}
option be set on the controller. Read more
Support for Slack's Events API is here, thanks to the Botkit contributor community. Read documentation here
Bug fix:
Fixes an issue with setting the default IP address for the Express server introduced in 0.4.1
This release contains many small fixes and updates to keep up with the ever changing platforms!
BIG CHANGES:
Slack bots will now send messages via the Web API instead of the RTM. This behavior can be changed by passing send_via_rtm: true
to controller.spawn()
Adds ConsoleBot for creating bots that work on the command line
Adds a new Middleware Readme for documenting the existing middleware modules
Adds an example for using quick replies in the Facebook Example Bot
Adds additional fields to Facebook messages to specify if they are facebook_postback
s or normal messages.
Adds optional hostname
field to constructor functions to bind Express to a specific IP.
Fixes for Slack's files.upload API
Merge in numerous pull requests from the community: PR #461 PR #465 PR #466 PR #469 PR #472 PR #474 PR #434 PR #435 PR #440 PR #441 PR #443 PR #446 PR #448
Add support for Botkit Studio APIs. More Info
Substantially expanded the documentation regarding Botkit's conversation thread system.
Add support for Microsoft Bot Framework. The Microsoft Bot Framework makes it easy to create a single bot that can run across a variety of messaging channels including Skype, Group.me, Facebook Messenger, Slack, Telegram, Kik, SMS, and email. More Info
Updates to Facebook Messenger connector to support features like message echoes, read receipts, and quick replies.
Merged numerous pull requests from the community: PR #358 PR #361 PR #353 PR #363 PR #320 PR #319 PR #317 PR #299 PR #298 PR #293 PR #256 PR #403 PR #392
In order to learn about and better serve our user community, Botkit now sends anonymous usage stats to stats.botkit.ai. To learn about opting out of stats collection, read here.
Add support for Slack Interactive Messages.
Add example of Slack button application that provides a bot that uses interactive messages.
New functionality in Slack bot: Botkit will track spawned Slack bots and route incoming webhooks to pre-existing RTM bots. This enables RTM bots to reply to interactive messages and slash commands.
Improves Slack RTM reconnects thanks to @selfcontained PR #274
Adds support for Twilio IP Messenging bots
Add example bot: twilio_ipm_bot.js
Slack changes:
Adds authentication of incoming Slack webhooks if token specified. More info [Thanks to @sgud]
Improves support for direct_mentions of bots in Slack (Merged PR #189)
Make the oauth identity available to the user of the OAuth endpoint via req.identity
(Merged PR #174)
Fix issue where single team apps had a hard time receiving slash command events without funky workaround. (closes Issue #108)
Add team_slashcommand.js and team_outgoingwebhook.js to the examples folder.
Facebook changes:
The attachment
field may now be used by Facebook bots within a conversation for both convo.say and convo.ask. In addition, postback messages can now be received as the answer to a convo.ask in addition to triggering their own facebook_postback event. [Thanks to @crummy and @tkornblit]
Include attachments field in incoming Facebook messages (Merged PR #231)
Adds built-in support for opening a localtunnel.me tunnel to expose Facebook webhook endpoint while developing locally. (Merged PR #234)
Fix issue with over-zealous try/catch in Slack_web_api.js
Adds support for Facebook Messenger bots.
Rename example bot: bot.js became slack_bot.js
Add example bot: facebook_bot.js
Changes conversation.ask to use the same pattern matching function as
is used in hears()
Adds controller.changeEars()
Developers can now globally change the
way Botkit matches patterns.
Add new middleware hooks. Developers can now change affect a message
as it is received or sent, and can also change the way Botkit matches
patterns in the hears()
handler.
Next time I promise to start a change log at v0.0.0