bots


Slack bot to pre-format channel responses


At work we have a Slack channel where each person posts their daily scrum updates. The format is something like this:
Yesterday:
- Did something
- Did something else
Today:
- Did something
- Did something else
Blocks:
- This is blocking my progress
Now, I'm trying to find a way in which I can have this preformatted for my colleagues i.e. like placeholder text in HTML
Is there a way to achieve this in Slack?
The options I have considered so far are as seen here
1. Create a / command on Slack that would respond with this text when a user types /daily and populate the response (I'm not sure about the feasibility of this, I have only created slash commands that triggered an external process, not returned any text to Slack)
2. Create a custom application and integrate with Slack
I realize that the answer to this can be opinionated, and that that is discouraged in the community, but I'm thinking others might also have come across this issue or will, in the future, and the answer is relatively objective here, not purely subjective.
I have been developing a several Slack apps and came across similar requirements. Slack does currently not offer good options for entering structured data in my opinion, so I would recommend to rather use a HTML page with a simple form for entering the data which then automatically posts the update on Slack.
Options with pure Slack
You can use slash commands or a bot to receive the input from your user, but in both cases the user has to enter data command line style and is it not possible to use something like HTML placeholders. Your options are either to use keywords or to have a conversation between the user and the bot. The input is free text and will need to be parsed by your app.
Example for slash commands with keywords:
/daily yesterday "this and that"
/daily today "this and that"
/daily blocks "this and that"
Example for a bot conversation:
#scrumbot daily
"What is your update for yesterday?"
#scrumbot this and that
"What is your update for today"
#scrumbot this and that
etc.
I have been using both approached in my apps, but they are pretty clumsy and not very user friendly for entering larger amount of structured text.
Slack with HTML page
My recommendation would therefor be to rather use a simple HTML form to enter the text and then automatically post the result in the Slack channel. You can either use Sign-in with Slack or let the user click a generated link on Slack to connect a generated HTML page to the correct Slash user. The first offers better security, the later is more user-friendly.
Example:
/daily
"Please click *here* to enter your daily update"
Then a generated HTML page opens in the browser which allows the user to enter his data in a form. After submit the input is posted on Slack in the correct channel
Btw. the Slack team is planning to implement input field for Slack in the future, but this is currently scheduled for mid term, so I would not expect it to be available in the near future. See "Interactive messages Stage 3" on the Slack Plattform Roadmap.

Related Links

my telegram bot keeps sending messages endlessly
Telegram: don't search my bot to start conversation
How to add MS bot to slack?
How to get the last executed command in a Telegram bot?
How can i customize answer of Bot Framework Help Command?
How can I identify the particular attachments when I click on a button in cards?
Accessing facebook user id for microsoft bot framework
Wit.ai Dynamic quick replies and random responses? How
I'm trying to implement a quote system in mIRC for my Twitch bot, reading from the text file works, but adding doesn't
How to set Slack bot presence “online” when using Events API
how to save the data using state clinet in bots
Connecting LUIS dialog to form dialog and mapping builtin fields
ValidationResult throws : “Object reference not set to an instance of an object”. when passing back choices
How to disconnect LUIS of Microsoft Bot Connector selectively?
Skype bot in “In Review” Status
Bot framework documentation qna maker [closed]

Categories

HOME
android-studio
eclipse-plugin
android-fragments
livecode
opencv-python
long-integer
workflow
loopbackjs
liferay-7
turbojpeg
u-boot
azure-logic-apps
locationmanager
sonata
corona
pygobject
uima
maven-plugin
susy-sass
cmake-gui
rxjs5
vuforia
introspection
high-availability
ipa
unrar
ninject
mdns
d3.js-v4
delayed-job
riotjs
cloveretl
char-pointer
busboy
cups
ms-solver-foundation
installanywhere
eclipse-gmf
variable-variables
google-now
sbjson
task-parallel-library
imgur
python-jira
grails3.2.0
ejml
web-inspector
julius-speech
doctrine-extensions
ipp-protocol
spongycastle
xcglogger
karabiner
renderman
spring.net
webvtt
freshdesk
android-mediarecorder
dex
polymaps
msxml
business-rules
perl-data-structures
researchkit
metabase
gcloud-node
ftp-client
dpkg
static-methods
distributed-cache
wif4.5
odesk
openshift-cartridge
cfwheels
hmisc
libz
sequence-sql
prism-4
microsoft-expression-web
comctl32
flurry-analytics
iodocs
visual-studio-6
oracle-adf-mobile
angular-ui-select
osascript
communicate
jack
meteorite
django-settings
frontbase
insertonsubmit
flv
web-frameworks
tfs-sdk
proc-open
itunes-sdk
contextswitchdeadlock
xmlwriter
gitx
popup-blocker
getopt-long
server-name
mkannotation
glx
drawimage
nsconnection
ios-4.2
projectpier
xap
accumulator
isapi-redirect
code-camp
account-management

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App