Hi, folks. My name is Steve, and I work on the Zulip project. My colleague, Sumana, is an enthusiastic user of Beeminder, and she proposed that we write a Beeminder integration for Zulip. Diptanshu is a new contributor on the Zulip project and has been attempting to write the integration, as you can see from the prior discussion on this thread.
Zulip is a chat program, which for the purpose of this discussion is pretty similar to Slack. We support many integrations currently, so, for example, if I have a Github account, I can automatically configure GIthub to send info about my commits and issues to Zulip to post on a public "stream" on Zulip, where "stream" is just another word for "channel."
The challenge that Diptanshu is facing with Beeminder now is that we need some way for Beeminder to identify to Zulip which user it's sending information for, in a secure way, so that we can direct Alice's Beeminder activities to Alice's private message stream and so that we can direct Bob's Beeminder activities to Bob's private message stream. Furthermore, if either Alice or Bob wants their goals to be public, we want them to be able to direct their Beeminder activities to some public stream on Zulip that would probably be called "beeminder."
For the first problem the thing that would make our life easy is for Beeminder to supply the user's email in the payload that Beeminder sends to Zulip. Since Beeminder authenticates a user's email before allowing them to invoke the webhook mechanism, we would be able to treat that identification mechanism as secure and accurate.
We also want the user to supply Zulip with some notion that they want their Beeminder updates to go to a public stream/channel as well. That can probably be handled by having the user configure the URL, correct? Unless there is already a notion within Beeminder of whether your goals are "public," and then this should be a field within the payload.
What are the barriers to including email in the webhook API on the Beeminder side of things?