Welcome and invitation to join the group
Link to join the group
Gallery showing info of DevC global programs
Gallery showing info about the group sections
Gallery showing info about the activities of the local community
Request content of certain, suggested topics shown using quick replies
Gallery showing info about top contributors
We are leaders a couple of local developer communities in Mexico City, freeCodeCamp and Facebook Developer Circles.
In this communities we use Facebook groups as our main virtual interaction channel, and during the social distancing measures due to COVID-19 this groups have become even more relevant, since they have allowed the community to keep close regardless of the in person interaction limitations.
Fortunately, this Facebook groups have grown a lot and have thousands of active members, and this have provided many benefits such as getting help and support from other members, promoting relevant work and content, finding collaborators for a project or even finding job opportunities.
However, sometimes this high level of activity in the groups makes a little difficult for the members to keep track of things that could be relevant to them, and it's even a little difficult for the admins to help the members to get the most out of the group.
That's why we decided to create an API and a bot for Facebook Messenger that would assist us in tasks that provide the most value for the members.
What it does
Welcome and invitation to join to the group. Since a bot and a group aren't really connected we always show the invitation to join to the group. We'll also benefit from the discoverability tools of the bot to also promote the group.
Info about the FB group sections and activities hosted by the local community.
- Activities and programs: Info about our meetups, Live Talks and Job Offers Program.
- Contact DevC Leads: This option will use handover protocol to directly reach the inbox of a page monitored by the group admins.
- Group sections: Announcements, Units and Post topics.
Access to the top content created and shared by the group's community.
- Top content: Curated lists of content by period of time and topic.
- Top contributors: Profiles of people that have done popular and meaningful contributions to the community, we link to their social networks so other members can follow them and keep up to date with them.
- Request content: A way to suggest more content of certain topic, we use quick replies to suggest some popular topics.
Info and links to the global programs from Developer Circles.
- Learning resources
- DevC Community Challenge
- Training Courses
- Open Source immersion
How we built it
We have talked with many members about their experience with the community and with the group, from this talks we identified the most frequent issues that new members encounter when they join.
Some of the issues that we discover are to keep track of all the content and that even some of the content of the group that is organized is sometimes hard to discover, like the Units section that host video courses. We used all this info to define the info and flows that should be in the Facebook Messenger bot.
We used Chatfuel to quickly create the onboarding experience that allow the user to get familiar with the activities and content of the group.
We also used the Chatfuel integratino with external server to provide access to the results of the top content search we made using Python and Graph API.
We used Python and the Facebook Graph API to analyze the history of post of the group and identify the more relevant content by measuring the amount of reactions, comments and shares that it generated. We used Django to create an API that would allow this information to be accessed by external sources like the Messenger bot.
Challenges I ran into
Correctly identifying the issues that the members have and that were possible to improve via admin work like curation and automation.
Integrate the FB auth with the Django auth.
Analyzing large periods of group history from the server request, since it's a lot of information and it required to setup background jobs in the server, which is something that we weren't familiar with.
Accomplishments that I'm proud of
Solving our own problems with code.
Being able to create a reusable tool that could allow other communities running Facebook groups to improve their interactions.
Learned a lot of tech stuff by overcoming all the technical obstacles that we faced.
What I learned
To leverage tech to solve our own day to day problems.
Lots of technical stuff of the tools that we used, in particular the FB Group API, and Django auth system and discovered and learned lots of Python and Django libraries.
All the value and help we can get from amazing tools such as chatfuel that simplifies and speeds up a lot the creation of bots by saving some common and repetitive configuration work.
What's next for Facebook Group Assistant
Improve data analysis by using data available when app is approved like info about reactions and people.
More advanced analysis using language analysis tools.
Continue testing it within our communities to find more relevant use cases.
Share it with other communities that use Facebook groups.
Migrate to a custom implementation of the Facebook Mesenger hooks.
We previously presented a similar project https://devpost.com/software/group-super-powers. However, that the scope of that project was limited to a frontend demo with static data. This project has more features and in a more developed state and has been build with a different set of technologies and adapted to the most recent changes in the Graph and Facebook groups APIs. All the work of this project has been done within the contest period.