Zendesk indeed is a great choice when come to customer service helpdesk, which we covered it here. However is our favorited low code platform NocoDB able to do the same? Most certainly, although it might not provide a comprehensive helpdesk functions like Zendesk, but being an open source options, and small team, it is still able to fit the job well, especially with the help of OpenAI, we can now even built the similar business process flow as what we did in Zendesk’s article.
Ok, so here we are today, we going to built a helpdesk system with NocoDB, with low code of course, and with below requirements
- Submit a ticket via form
- Submit a ticket via email – if being identified by OpenAI as a complain
Quick run-through
Pre-requisite check
Initial requirement
Let’s look at how it started, as well as the initial design
Backend
- Email: To receive incoming email for customer service, and to send out the response
- OpenAI GPT-3.5 Turbo: Served as AI brain which handling the response
- NocoDB: Served as helpdesk platform
- Make: Served as integrator which “glue” different system together
Platform
- Email: Be it common IMAP account, or Microsoft Office 365
- OpenAI GPT-3: SAAS Model
- NocoDB: On-Premise
- Make: SAAS Model
Account
- Email: Required any email account that support IMAP / SMTP
- OpenAI GPT-3.5 Turbo: Required a paid account
- NocoDB: Just download the docker and get it run
- Make: Required a basic free account
Programming
That’s a minimal HTML and JSON knowledge required
Applications Flow
Email
Email is the entry point of the customer service
OpenAI GPT-3.5 Turbo
Identify the tone of the feedback, and suggest a response based on the feedback
Make
It is platform that connect different applications, without coding! Other than connect different application using connector, and also manage different routes based on different criteria
NocoDB
Served as helpdesk platform, to handle complain
Table Structure
Header
Name | Type | Mandatory | Length | Remarks |
Title | Text | Yes | 255 | |
Name | Text | Yes | 255 | |
Email | Text | Yes | 255 | Add New |
Content | Long Text | No | Unlimited | |
Status | Text | No | 10 | Open / Close |
Summary | Long Text | No | Unlimited | For AI usage |
Replies | Link Records | Yes | N / A | Link to Replies table, 1 to many |
Replies
Name | Type | Mandatory | Length | Remarks |
Reply | Text | Yes | 255 | |
ResponsedBy | Text | Yes | 255 | |
Header | Linked Record | N / A | N / A | Linked to header records |
SenderNameLookup | Lookup | N / A | N / A | Get from header |
SenderEmailLookup | Lookup | N / A | N / A | Get from header |
TitleLookup | Lookup | N / A | N / A | Get from header |
SenderName | Formula | N / A | N / A | Get from lookup |
SenderEmail | Formula | N / A | N / A | Get from lookup |
Title | Formula | N / A | N / A | Get from lookup |
Let's get started
NocoDB
1. We covered the tutorial on creating a contact form using NocoDB before, you may refresh the memory here. For the helpdesk, let’s start with something new.
2. Create the table for Header, let’s start with only below columns
- Title
- Name
- Content
- Status (Open / Close)
- Summary (going to fill up by AI)
3. Next, create only 2 columns for Replies table for now
- Reply
- ResponsedBy – At the moment, NocoDB still don’t have any column type for “User”, we have to use text to record user name
4. Go back to Header table, create the column “Replies”, this time round the column type set to “LinkToAnotherRecord”, which is link to Child Table, and select “Has Many”
It mean, 1 record in Header table, will be having multiple replies in Replies table.
5. Now, let’s head back to Replies table, and create the rest of the column. Now you can see a column called “Header”, which is a link from Header table.
6. Let’s move on to create another columns for Name, Email, and Title. These are the look up column from Header table.
We need this column when creating a trigger to send out email upon any reply from our support personnel.
7. When we create an email trigger, we actually make use of REST API to trigger. At this point of time when this article is published, NocoDB not able to refer to Lookup columns in REST API trigger, hence we need to create another 3 columns, which is Formula.
The 3 columns are SenderName, SenderEmail, and Title, which simply refer to the lookup columns we created in step 6 just now.
The formula you may written as below sample
{COLUMN_NAME}
8. Now, create a form to test it out – just like what we did previously. From the form, you can “hide” the unnecessary fields. Please don’t “delete” it, it will delete the column from the table as well.
9. You may test it out by submit a sample complain.
10. You shall see the entry already logged into Header table. Click on the left side of the record, you shall see a modal pop up slide out from the right.
11. Under Replies section, click the button “Link to Replies”, you shall see the replies pop up
12. Click on Add new record, you shall see another modal pop up slide from right again, which is the reply form. Please note the slide form are auto generated, which can’t be customized at the moment.
13. You shall have a pretty good idea how to built a simple helpdesk with NocoDB, we will move to make.com, to create a webhook for email trigger. At this point of time, NocoDB not allow to send email to any targetted email yet.
Webhook Email Trigger
1. NocoDB do have SMTP connector, but it is only able to send email at pre-defined event, and pre-defined email. To make NocoDB send email to the sender, we have to use 3rd party solution. Usually you can look at SMTP provider such as AWS SMS, SendGrid, SMTP2GO… those are pretty good SMTP service providers. However, we will do something different, which is using a webhook service in make.com
2. First, create a webhook in make.com under a new scenario. You shall have the endpoint URL ready for the first time, and waiting to listen to incoming REST API trigger to determine the data structure.
Copy down the endpoint URL.
3. Head back to NocoDB, under Replies table, add a Webhooks
4. Setup the webhook as below, and paste the endpoint URL beside the POST.
You use POST method when you want to send some data over to an endpoint. For the triggering event, we use “After insert”, meaning every reply, we will sent an email to the sender.
The data to sent to the endpoint is easy, NocoDB already prepared for you with a sample, you can edit the way you want. You may make use of my sample below. You can do a test anytime, but using “Test Webhook” to send to the endpoint, or simply add a reply.
{ "Reply": "{{data.Reply}}", "ResponsedBy": "{{data.ResponsedBy}}", "SenderName": "{{data.SenderName}}", "SenderEmail": "{{data.SenderEmail}}", "Title": "{{data.Title}}" }
5. Now, let’s head back to the make.com, you shall see the data structure already been determined, and you can create another connector, which is SMTP.
You will first need to setup the SMTP connectivity with your mail server – you may get IT department help on this.
For the rest, such as To-Email addresses, Title, and Body, you may follow pretty close as below.
6. Alright! You just got a fully function “simplified” helpdesk which able to send an email response to sender.
OpenAI GPT-3.5 Turbo
1. We now having a “simplified” helpdesk system, with email capability, now is the time to add some “intelligent” to it by using OpenAI GPT-3.5 Turbo. You may refer to the business flow here.
We already created the scenario with Zendesk before, you may take a look here. We shall clone it to save our time.
2. Once we done the cloned, we shall replace the Zendesk with NocoDB connector, and refer to the Header table we created earlier ago. The configuration you may follow as below.
What? You not sure how to setup the NocoDB connectivity? Fear not, take a look here.
3. We shall done for the entire setup, let’s give it a try.
Let's try it out
1. The entire setup in Make should look like below
2. You may use the sample complain and compliment email content from here.
3. In any case, for Complain case, here is the NocoDB screen should look like
4. Here is the catch, when you click on the Link to Replies, and think to Add new record for the reply, and you can see the rest of Replies records for you to link. This is not a bug, this is the nature of how the link records should work.
As a helpdesk support personnel, you shall always Add new record to create new reply.
5. Under Replies table, you shall see all the replies being linked with correct header, and the lookup values.
6. Lastly, just turn on the scenarios in make.com, so that it can switch into Live mode, and wait for every 15min to pull data from Email. You basically have an AI powered smart customer service which able to help to route, and suggest the reply, so that the customer service admin speed up the customers response work!