Open jekram opened 7 years ago
@zarmeen92 Can we not use ChatBOT to drive this? As it already has push function to Messenger?
This App may be a stand alone to push messages and does not need to tightly integrate with KiboEngage.
Yes sir this is possible. I found this product https://octaneai.com/ This allows to train bot to send forms, subscriptions, compaigns to Facebook customer base
Following is the summary of Policies of Facebook on Subscription based messaging https://developers.facebook.com/docs/messenger-platform/policy-overview
Person opts into receive subscription messaging within Messenger, as well as the frequency and type of content they will receive. Messaging is triggered by Person sends a message to a business or clicks on a call to action button within Messenger to request subscription messaging
Message restrictions No advertising, solicitations, marketing, or promotional content.
Eligible use cases Eligible use cases include: News: Bots whose primary purpose is to inform people about recent or important events or information in categories such as sports, finance, business, real estate, weather, traffic, politics, and entertainment. Productivity: Bots whose primary purpose is to enable people to manage their personal productivity with tasks such as managing calendar events, receiving reminders, and paying bills. Personal trackers: Bots that enable people to receive and monitor information about themselves in categories such as fitness, health, wellness, and finance.
Task update: I played with OctaneAI. It has a very simple yet powerful UI and bot features. The login requires Facebook Authentication. After authentication, it requires Facebook Page link to which the Bot will be integrated. I created a sample page on Facebook OctaneProducts https://web.facebook.com/octaneproducts/
With the bot, we can send Polls, Notifications, Forms to the Page followers. The also allow customer segmentation based on Gender. This will send the promotional content/ notification to followers who meet segmentation condition
Thanks. Give me a demo
@zarmeen92 what is the update on this task from Friday?
Here is the document I have created on Octane AI features https://docs.google.com/document/d/1qUajXZ5h1ZtQlcl4IvJ8aa1_yZqVswJnAAsimmr_hmo/edit#
Documentation -> Discussion -> Octane AI
I read their guidebook and articles on Medium https://learn.octaneai.com/
@zarmeen Thanks. I will review this on Thursday Meeting
we can close this task, if no further investigation is required @jekram
@zarmeen92 The intent was to investigate and design. The investigation is done the design is pending.
I am going to mark this on hold for now.
I have started working on the design document https://docs.google.com/document/d/1QutP7ishi8RDIX1i7_ALdUXqrx88X4lZuCdH_X-Qwl8/edit
It is under construction
@dayemsiddiqui @sojharo Please actively participate and provide coommnets
Ok Sir.
If there is any limit enforced by facebook as to how many broadcasts a page can send in a day then we would have to put the same limit on the companies on our kiboengage side.
I think we should check this from facebook documentations.
i have updated the document. The document is still not complete yet. From the implementation perspective, we need to look into Facebook APIs documentation in order to understand what facebook actually allows in terms of extracting pages and customers info.
@jekram @zarmeen92 @sojharo One of the challenges we were facing was how to send a message to users in bulk. I found this stackoverflow question regarding this problem: https://stackoverflow.com/questions/42647266/facebook-messenger-send-api-send-to-a-big-amount-of-users
Read the comments below the questions. In the question, the user asks that he has two options either he can batch 50 messages per call or he can send message individually to all subscribers iteratively. So there is an option of batching although I am still unable to figure out the exact documentation on batching while sending a message using the Messenger API.
He also asks whether facebook will block his requests if he chooses to send messages iteratively to each user. To this question the people in the comments have replied as follows:
"First of all, in regard to API rate limits it doesn’t make a difference if you batch your requests or not. Secondly, I don’t think there’s any rate limits that apply at this point - if you have a legitimate use case to send messages to users, then that’s that, why would Facebook limit that in any way? // Batching the requests is nevertheless a good idea, because it reduces the number of HTTP requests you have to make when communicating with the API"
Also I think facebook has very generous Limits to Send API. I think they only block a user in case of extensive spamming, if we have a legitimate use case, I dont think we would have any problem: Following is from the official facebook docs: "Limits
Calls to the Send API
Messenger Platform supports a high rate of calls to the Send API.
However, you should architect your system such that you distribute any sudden high amounts of load over time and are able to control your throughput should you hit our rate limits.
Rate limits are in place to prevent malicious behavior and poor user experiences.
Be sure to catch any errors returned by the Send API including the one indicating that you've reached the rate limit."
https://developers.facebook.com/docs/messenger-platform/send-api-reference
I am working on KiboPush from following three perspectives:
The architecture of KiboPush application such that we are able to scale it to other platforms like SMS, emails, etc without any major problems.
Research in terms of what features we can add that could potentially make KiboPush more valuable for businesses.
Studying the actual messenger API calls, documentation, limits, and policies etc.
My suggestions up till now:
Also you may want to check out these products:
After having discussed with @dayemsiddiqui , I started exploring the facebook SDK to know if they provide any endpoints for sending push notifications or broadcast messages. However, I also couldn't find such SDK from facebook. The approach to send the messages iteratively from our side, I also found this on forums. The main thing in this I think it is to do it recursively and not iteratively. Because in such way, we would be in better position to handle recursive calls. Also we would be able to know if our rate limit is reached then we would halt the process of sending push messages.
Further, I have been thinking that our API.AI bot should be integrated with that in order to help user fill the form or give survey response. This would keep sessions with people so that it would know who is sending what response for what questionaire. I would discuss the design with dayem more today.
Thanks @dayemsiddiqui https://www.botletter.com/ https://manychat.com/ https://www.flashchat.ai/
@sojharo @dayemsiddiqui Please factor into capabilities of these in KibpPush
Yes Sir.
The method of sending push notifications to users is described as follows on stackoverflow: https://stackoverflow.com/questions/37922087/facebook-messenger-bot-daily-push-notification-how
" up vote4down vote | The idea is simple. When you send "subscribe" to the bot, the bot server would add a record according to the sender_id to their database or memory , then the bot server could set a timer to distribute the news messages to those sender_id who have subscribed for the news. "
@dayemsiddiqui as per our discussion, let me add more to this document. I would add more points in the document and then we would discuss it. we are getting more ideas while discussing it with each other.
@sojharo acknowledged.
This is still incomplete. When Can I see the full design document?
I would like to review this at 1 PM Tuesday.
If we are going to use a bot then we need to have just one bot server for all coustomer. If we need bot server per costomer then it will be an issue. Let's discuss the options?
There are few questions that we need to discuss as they are impacting design and creating confusions on how should we design document. We just had to remove some content from document that we added yesterday as we couldn't agree on it. From the previous points in the documentation, there are some ambiguities:
Will we create Kibo Push as a separate project with its own dashboard and API? It will then connect to KiboEngage or Chatbot that we already have created.
Currently, when kiboengage fb chat happens, we get the facebook user information and we store it in the database. I am assuming that just like we send email notifications to customers coming from web widget and message notification to customers coming from mobile widget, here also we are trying to send the push notifications to the customers coming from facebook page. If this is the intent, then this can be done in the same kiboengage project.
If we want to make kibo push a separate project, then we would have to have separate mongodb database for kibo push. We would be storing facebook users information on two places. On KiboEngage and Kibo push. So we need to decide this as it is also impacting the design.
As discussed with zarmeen before she left, we are assuming that we need to create the push feature first. And she said we would do survey, forms and conversations later as they require bot. Do we also need to tackle all the features at once in design document. We had been thinking on how we would do push up till now.
For the features which require bot, and that is slightly different bot than what we are building in chat bot (similar to api.ai). so there is one more confusion do we want to integrate this new feature with kiboengage or with our chat bot project. Dayem and I had discussed and designed by thinking that we are going to integrate it with kiboengage as kiboengage already has facebook customer database. However, it is lacking the bot capabilities and we would have to add these there and provide UI to define conversation flow and survey questionnaires.
So if we make it similar to octane.ai then it has two use cases.. 1. Customer engagement 2. Bot which asks surveys. Here we need to decide where this work should be inclined as we have two separate projects for these two use cases. For customer engagement, we have kiboengage, for surveys and conversations we have new project chat bot.
What is the update here? I see no change
Yesterday, we worked and discussed on this till our meeting at 1:00. After this I had to work with sumaira for certificate issues and then I worked on one other task from kiboengage. I will complete this today.
Dayem and I designed the ERD structure and thought of the flows. We have put them all in the design document now. Please refer to it and let us know if we need to cater anything more. Tasks are also defined. Dayem has also opened them on Github and pushed the skeleton code of the project created using MERN.
@dayemsiddiqui I have added some more tasks on both client side and server side in database. We also need to open these tasks.
Thanks.
@zarmeen92 Please review
Great job - please see my comment about Data Base in the document.
Please go ahead and open all the task and let's target Mid Aug for V1.
are we using ReactJs?
Yes, I have seen the comment. Issues are opened on its repository. We can assign priorities and version numbers:
https://github.com/Cloudkibo/KiboPush/issues
For database, I have opened the task there to integrate with mysql and setup mysql on the droplet. Let's also create a droplet so that I set it up today. I would do all the database related work in separate module.
Yes, currently we have scaffold MERN application which uses Reactjs. Dayem was suggesting to go with simple expressjs application and use vue.js. He said it would help him in UI design and themes. However, I have suggested that I would help in understanding MERN. The latest version of MERN is little bit complex.
you folks can decide on this: "Yes, currently we have scaffold MERN application which uses Reactjs. Dayem was suggesting to go with simple expressjs application and use vue.js. He said it would help him in UI design and themes. However, I have suggested that I would help in understanding MERN. The latest version of MERN is little bit complex."
I am fine with either approach.
Is vue.js React Js? I would like to stay with React Js?
Please move the document to KiboPush and mark this resolved.
Moved here is the link : https://github.com/Cloudkibo/KiboPush/issues/81
We can close this issue now.