This tutorial is part of the Building Your Startup With PHP series on Envato Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real-life example. Every step along the way, I'll release the Meeting Planner code as open-source examples you can learn from. I'll also address startup-related business issues as they arise.
In this tutorial, I'm going to guide you through how I quickly and economically launched a support system and knowledge base for the application as well as some of the issues and alternatives I considered.
If you haven't tried out Meeting Planner yet, go ahead and schedule your first meeting. I do participate in the comment threads below, so tell me what you think! I'm especially interested if you want new suggest features or topics for future tutorials.
As a reminder, all of the code for Meeting Planner is written in the Yii2 Framework for PHP. If you'd like to learn more about Yii2, check out our parallel series Programming With Yii2.
Customer Support and Knowledge Base
Many startups outsource their customer support, and in turn many startups have launched to address the needs of their brethren and all kinds of companies; they seem to compete on the level of cuteness of the children on their websites.
Zendesk is commonly used, but I've always had irritating experiences with it as a user. There's also Groove, LiveAgent, Freshdesk, and a number of others.
When I worked on Community Starter (formerly NewsCloud) for the Knight Foundation, we used TenderApp; it worked well for us. However, when I went to check in on the service, not much seemed to have changed in several years, and the last post on their blog was a year old.
Freshdesk
I decided to go with Freshdesk as it not only had a free lifetime account for smaller companies but also included knowledge base functionality at this level. Providing people with a usable, well organized knowledge base is important. If I'd been choosing based on the cuteness of the kids on their competitor websites, I kind of liked LiveAgent (we need to encourage more women in technology).
Warning About Freshdesk
After I'd turned in my article to Envato Tuts+, my Freshdesk account was suddenly suspended without warning. This happens to all free accounts—people are often surprised:
After 30 days having signed up with them and mapped my domain name, they suspended my account and made me call in to change over to the free level. When you change over to the free level, they deleted all configuration information including your domain mapping.
Rather than migrate your account to the free level after 30 days, they suspend your account and make you call in to speak to a sales person. Just the language, "your account is suspended" instead of "your trial has expired" is so unintentionally hostile. Please keep this in mind and use Freshdesk with some caution. Again, alternatives include Zendesk, Groove, and LiveAgent.
To their credit, a senior support manager at Freshdesk personally called me to apologize for my experience and said they are working on a variety of improvements to make the process more transparent and clear—especially to verify that warning emails are sent ahead of suspension.
I haven't made a final decision on which service I'll be using for the Meeting Planner alpha release. The timing of Fresh Desk's suspension without warning delayed my release.
Pricing Levels
Here's a snapshot of Freshdesk's incremental pricing levels:
Signup and Configuration
Registration is easy:
They offer a four-step wizard to launch your support site. First, you need to set up your incoming support email to forward to the mailbox they've assigned you:
As I wrote in the earlier episode about Mailgun routing, it's easy to reconfigure the destination of support emails:
Then, you invite your first agent(s):
The Dashboard
Initially, Freshdesk offers you 30 days of premium features with a free account, so there's a lot happening with the dashboard below. They offer a helpful welcome tour as well:
Here's that test support request that gets sent to a new account:
The upper menu and right sidebar both offer a lot of functionality for managing the ticket.
Customizing the Domain
To allow users to visit http://support.meetingplanner.io instead of http://meetingplanner.freshdesk.com, I just needed to map a CNAME at my domain registrar and update my settings:
The Public Support Site
Voilà, here's the initial public-facing support site. We'll get to work customizing it in a moment.
Constructing the Knowledge Base
Your knowledge base is organized by configurable categories. For now, we'll stick with Getting Started and FAQ:
The authoring system for explainers is straightforward and feature-rich:
Ultimately, here's what Meeting Planner's users will see when they show up at the support headquarters:
There's a real-time search for answers:
And the help pages are easy to read:
They can also choose to submit a ticket:
Using a service makes way more sense than trying to build something like this ourselves.
Updating Our Code
Basically, I just had to update the links from our contact form to our new Freshdesk support page, and it was quite easy to link our app to theirs:
<footer class="footer"> <div class="container"> <p class="pull-left"> <?php if (!Yii::$app->user->isGuest) { echo Html::a(Yii::t('frontend','Support'),Url::to('http://support.meetingplanner.io')).' | '; echo Html::a(Yii::t('frontend','About'),Url::to(['/site/about'])); } ?> <p class="pull-right"> <?= Html::a(Yii::t('frontend','Follow').' @meetingio','https://twitter.com/intent/user?screen_name=meetingio') ?><?php if (!Yii::$app->user->isGuest) { echo ' | '.Html::a('© Lookahead '.date('Y'),'http://lookahead.io').''; } ?> </p> </div> </footer>
Other Considerations
We'll see how Freshdesk works out. Currently we're small, and I think it will provide sufficient capability for us. However, there's a possibility we might need different features or higher capacity in the future.
One of the reasons I liked TenderApp is that it is easily linked to Lighthouse App, an issue and bug tracking system. However, as I reach the point where I begin using an official issue tracker, I'll likely choose Asana (here's their bug tracking video explainer). But, I may do more research later.
I also like UserVoice's crowdsourced feature requests. They used to offer a free plan but now are fairly expensive. It's a useful service that I may be interested in for the future.
What's Next?
Meeting Planner's made tremendous progress the past few months. I hope you've enjoyed this episode. Watch for upcoming tutorials in our Building Your Startup With PHP series—there's also lots of polish work and a few more big features coming up.
If you haven't yet, try scheduling a meeting and then given what you've read in today's tutorial, please report any problems or feedback to our support page.
We're also exploring crowdfunding and will write about his in a future episode. If you're interested being the first to know about our efforts, be sure to follow us at WeFunder.
Please feel free add your questions and comments below; I generally participate in the discussions. You can also reach me on Twitter @reifman directly.
Comments