Introduction to the Free WhatsApp CRM
You are paying 10,000 rupees per month for a WhatsApp CRM solution or are looking for a WhatsApp automation solution. I got a solution for zero rupees per month and it is actually backed by Meta official API, the tool which you are paying for. It's not an unofficial API or a third-party scraper which can get your number banned. It's the official method which your big big companies like ASNC, Wati, InterKaty, the tool which you are paying for are using it. The tool is called as the Vati CRM.
It's in GitHub open-source repository. It means it's self-hostable and you can rebrand it and sell it for yourself. So in this particular video, I'm going to talk about whom is this particular project for, whom it is not for, and I'm going to show you step-by-step how you can install it into your system. And also, I'll be deploying it on the server because obviously your local host cannot run 24/7, but your server can.
So if you're new to this particular channel, my name is Lakshya and in this particular channel using AI and automation, we build real stuff. No coding knowledge required, no need to hire extra developer. So without wasting much time, let's get started. So first, let's have a look at this particular project. have a dashboard, we have an inbox where we can see the messages from the user.
Vati CRM Feature Walkthrough
We have the user information, we have the time known, okay, and we have the contact, all the contacts which we have, we can import the contacts, we can add the contacts. We have the pipeline, user is in which particular state right now, the lead staging pipeline. You can add the pipeline, you can add the deal. We have the broadcast.
Inside the broadcast as well, we have the multiple informations like this particular message is sent to how many users, how many users had they read it, how many users replied to the particular message. We can see all the information. We can export this data as well. And we have the automations like welcome message automation, out of box, out of office, lead qualifier, follow-up reminder, and we can create the automation as well. Where we have multiple triggers over here, okay, so you can explore it once you download this for your own self.
And we have the settings over here. Using settings, you can create your own template or sync from the Meta if you already have the templates. Then you can create your own tag. We can connect your own WhatsApp number over here itself. So, I'll be showing you how to do it. Don't worry. You can see this is the complete solution.
Target Audience: Who Is This For?
But, this particular solution is only for the people who are solopreneur, who are freelancer, or who are a technical people who want to add their own code, add their own branding, and sell it to other people as a WhatsApp automation service. This is not for the business who have a lots and lots of team working over here, where they can do the team assignment part, create an AI agent, and multiple things over here. Because the solution which Wati, AIS and C other big big provider provides, it's still not there. It's a good level of solution they have provided, but limited.
So, just see the feature. If it is fulfilling your own requirement, you can come and you can advance it if you want, but these are the features they provide. Now, since we have known this particular solution, now let me tell you how to use this particular solution step by step. For that, this is the particular repository. Uh this is the link which will be having in the description below as well.
Forking the Repository & IDE Setup
Now, we'll come over here, and now we'll fork it. What does this fork mean? Because you will be developing this solution, there will be some kind of a changes you would be making in the code. So, you can cannot push that particular changes inside this particular repository. You need to have this particular code in your own repository. So, for that reason, we fork it. So, once you fork it, this is how it looks. So, we over here we can see it is forked from which particular uh repository, and we have the whole same code.
Once you have the code, now we'll open the IDE. Now, what is IDE? IDE is nothing but it's an integrated development environment where we write the code. Okay? Uh so, your VS Code, your Cursor, your Anti-gravity, this all are the IDE. And to give you one more step information, this Cursor, Anti-gravity are built on top of this VS Code. Because this VS Code is also a open-source AI code editor.
So, once you install it, I'll be using Cursor over here. You can click on open project, and now create a new folder, and then open that particular folder. And this is how it would look. And now, we have this empty folder over here.
Cloning the Code & Installing Dependencies
So, now we'll go to the GitHub, and now we'll copy this particular link and open the terminal over here. And now, to clone this particular part, you need to have Git installed. If you don't know how to do it, ask ChatGPT or Claude.
You can write Git clone and the repository name, and then dot. Dot means instead of creating a folder over here, all the code will be written over here as well. Now, once it is cloned, we'll write npm install. And to run this particular part, you need to have Node installed. If you don't know how to install it, we have this particular link over here. From this, you can install it. And if you still don't understand, you can ask Claude or ChatGPT. My point is leverage AI.
Once it is installed, as you can see all the libraries installed. To confirm this thing, there should be a folder named node_module, and inside that all the libraries should get installed. What library? Don't worry about that. Okay? Now, you can see one of the file over here, which is .env.local.example. We'll copy and paste it again in the same uh folder. Now, we'll rename it because this is just the example purpose they have given this particular file. But, the main content, main credentials live inside .env.local. Okay?
Configuring Environment Variables & Supabase
The first and foremost credential which we require is this particular Supabase URL. If you don't add this thing, you will get this particular error. If we run npm run dev, we'll get a particular link. Now, we'll open this particular link, and we'll be getting one error. This error would indicate Okay, this is getting currently getting open. So, now it is getting opened over here. Now, you cannot sign up over here because sign up we need to store it somewhere, right?
So, let's say I write my name and click on create account. As you can see, we are getting this error over here. This error is nothing but because we do not have the Supabase auth sign up part. To have this particular part, we need to add our Supabase credentials. Okay? Now, to add the Supabase credentials, go to the Supabase, create the organization. Inside that, you will get this option of creating a new project. Click on new project. The project will be created. Open that particular project. And now, we need to have this particular URL. So, we'll copy this project URL. We'll paste the URL over here.
If you're not getting the URL option over here, you can click on connect. You'll be seeing the URL option over here as well. Okay? Once you have the URL, now we need to have the anon key and the role key. So, for that, we click on the project setting. We'll click on the API key. Uh click on this particular tab. We have the anon key and the service role key. I'll copy the anon key. I'll paste it here. And then we need the service role key. I'll reveal it and copy it.
Do not show this particular service role key to anyone because they will be able to access your database. Why I am showing it? Because I am going to destroy this particular database once this video has been made. Now, once it is done, now we need to have the encryption key.
Generating the Encryption Key & Initial Run
How to get the encryption key? They have given a code over here. So, we'll copy that particular code. And now we'll click on the plus icon and paste the code and we'll get this particular encryption key. We'll copy it. And we'll paste it over here. Once it is done, now we'll restart the server again.
And now, as you can see, it is perfectly running. The dashboard is running. It was running earlier as well, but we can see we have a dashboard as well where you don't have to create the landing page as well. So, you can change the name, logo, and uh coloring as per you and you can start selling it. Just a bonus tip.
And now we'll click on go to dashboard. Since I had been using this particular database earlier, that's the reason I directly got logged in, but it will ask you to create the account. Okay? Now, to add our WhatsApp number. So, we'll click on setting and we'll click on WhatsApp config.
Connecting Your WhatsApp Number
How to get this particular config? And also inside these particular repository, we need to add the meta app secret as well. If you don't know how to get the app secret or this phone number ID result thing, you can watch this particular video where I have given a detailed explanation of how to create the meta app, how to connect your phone number, how to have production ready to permanent access token. Okay?
Once you watch the particular video, you would be having such kind of application. Now, click on the app setting, click on basic. Now, show this particular app secret. To show this, you need to add the password. And this would be blurred for you, obviously, because I cannot share this particular app secret. And I'll be placing the app secret here. It will be blurred for you as well. Once you have pasted this particular app secret, everything has been done inside the as per the credentials.
Now, what we need is that we need phone number ID, business account ID, permanent token, and a verification token. How to get that? Go to the app. Click on the uh API setup. Now, select the phone number. After selecting, you will get the phone number ID and the business account ID. Copy it and paste it over here. Now, we'll be requiring the permanent access token. So, you might have got the permanent access token if you have watched the particular video. So, I'll be pasting mine. And now, this verify token can be anything, okay? So, I'll write my name over here, and I'll click on save configuration, and the verify token will get vanish. That's on purpose. Don't worry. Just for a security reason.
Database Migration with Supabase
To check verify token has been added or not, you can go to the Supabase. Click on the table editor, and click on the WhatsApp config. And you might not be seeing any kind of a table over here because I forgot to mention one step over here. We need to do the migration of all the uh table over here.
Okay, so you might be facing an error as well when you were doing uh this particular part of logging time. So, once this particular URL has been added, so now we need to create the table inside the Supabase. So, for that, on the left-hand side, we can see the Supabase. We have all the uh SQL. So, there are two ways using which we can run this particular part. Option one is it in a sequential order. One by one, we need to copy it. Go to the SQL editor, and paste it over here single single file, and run it. Okay, so your table will be created. Or you can install this particular Supabase command. You can link with your uh project, and you can run this Superbase DB push. All the files will be automatically be pushed. Okay, so whatever method uh you prefer, you can choose it.
And now, go to the table editor. You should see all these table over here. Now, to check this particular verify token, we'll open the Superbase table. And over here, we can see that we have the verify token. It won't be the name which you have wrote. It would be encrypted with the encryption key which we have saved inside the env.local file. Okay? This is as per the Meta guideline. That's the reason we are doing this thing. Once we have that, now we'll come over here. Click on the test API connection. We should see this kind of a message connected to the name whatever you have given.
Now, we need to configure our webhook. And why do we need to configure it? Because whenever any user sends you a message, that particular message goes to the Meta first. And if you have configured the webhook configuration in your Meta app, Meta will send that particular message via this particular webhook to your server which we can see inside the inbox. Okay?
Now, Meta has one kind of a condition. They cannot allow HTTP. They need HTTPS. Okay? So, for that if you open the cursor, let's open the new terminal. We have and use ngrok which is a which serves like a tunneling. We can write HTTP and whatever port we are running on. I'm running on 3,000. Okay? I'll press enter. And now we have the HTTPS. Okay? If you don't have the ngrok, don't worry. Just ask our ChatGPT. It will tell you how to install it. It's very simple thing. Once you have ngrok, we have the URL.
Now, we'll go to the app. Click on the configuration. And now over here, we'll be changing the link and the /api/whatsapp/webhook should be written. For me, it was by default written because because I had done earlier. Okay? The ngrok URL /api/whatsapp/webhook. And the verify token, we'll be writing Lakshith in the not the encrypted one. Okay? Now, we'll click on verify and save. If the page get refreshed, it means it has been properly done. So, for me, the page has been refreshed. I click on WhatsApp. I click on configuration. And the particular URL should be intact which we can see over here. Okay?
Testing the Webhook and Local Setup
So, once it is done, now to test it we'll open the CRM. We'll open the inbox. Now, if you see the last message was 32 minute earlier because I'm making this video for the fourth time. So much of tech glitch on video shooting side. So So now as you can see, we got just a message less than a minute ago, and that was a hey from my original WhatsApp. Okay, so it means the system is perfectly working.
Now the system is working in the local system, but you cannot run your local system 24/7, correct? So we need to deploy it. So for that, using the link in the description below, you will see such kind of a page, which will give you a very cheap server, okay? Where you can deploy a Node.js web application. It not necessarily Node.js, but it could be any kind of application. And on top of that, it will give you domain name for free.
Deploying the CRM to a Live Server
If you see the services, we have a 249 rupees per month, plus extra 3 month free we'll get. So click on choose plan, and now we are getting 48 month period, daily backup, 3 month extra domain name, domain privacy protection, all these things for free of cost. And you can choose the month accordingly. And if you are not satisfied with this price, I'm giving you 20% off. Just write Lakshya 20 and click on apply, and you will get 20% off on top of this. Once it is done, click on continue and do the payment.
Once the payment and everything is done, your panel should look like this, and click on website. And now we have the business part over here. So you might be seeing only one button over here. I'm doing it for the multiple time, so I have this particular add website option, but don't worry, it's very simple. If you click on that, it will ask you to choose your create site or migrate. So you click on create new site and choose a Node.js over there. I'll click on add website. I'll be choosing the Node.js web application. Now, I have already chosen the domain name. You can choose according to you. Click on next. Now we'll be using importing from the Git, but you can upload your file as well.
Now, at the time of connecting your GitHub, there will be two method. Either share all your repository, or share the repository on which you want to connect your project. So I have chose the second option, where I have only given access to the certain repository. I click on that, click on continue. So after that, you'll be seeing such kind of a page, where the framework has been written. The branch from which you want to deploy, the branch is main. The node version is there.
Adding Environment Variables & Finalizing Deployment
And now we need to add the environment variable. So, we'll click on add. Now, from the ENV file, we have the ENV.local. All the This is a key, this is a value. So, we need to add all the things over here. So, for example, I'll copy this. I'll paste it in the key part. I'll copy the value. I'll paste it in the value part. Do this for all the keys.
So, as you can see, everything is done. So, I'll click on finish. And now we have added the environment variable. I click on deploy. So, now you can see the deployment has started for this particular repository on this particular domain name. So, if you get such kind of an option where it's saying build is taking longer than expected, click on go to dashboard. Now, you can see our particular website over here. So, we can click on dashboard and we got a message in the bottom the deployment is successful. So, we can click on this particular link and we can see it has been properly deployed over here. Now, if you click on sign in, we get option of sign in over here. And we get a get started option over here as well. Okay, so we'll click on sign in, enter your credentials, click on sign in. And now we have our WhatsApp CRM running 24/7 on the proper domain name without your need of running your local system 24/7.
Benefits of a Self-Hosted WhatsApp CRM
So, uh you most of you might be knowing that I am running the WhatsApp automation service from a long time and I have my own product as well. So, I'm not promoting that particular part over here because this is a cheap solution. If this works for you, I would say don't go for any kind of a third-party solutions including mine because this give you the biggest kind of a reason cost is kind of a price. So, you are just paying for the deployment part. That's it. Everything else is handled on your own. And for the meta template which you have to pay for the other services as well.
Second reason is data ownership. Everything lives in your own Superbase dashboard. Your conversation, your contact, your history, your messages, everything. And it's not on the vendor system. Third reason is customizability. Since it is an open source and you have the access to your code, you can customize however you want. You can add your own brand logo, you can add your own theme color, you can include the more feature whichever you want. Instead of relying on third-party solution where they give whatever you want, you can create your own.
If you want, you can rebrand it, start your own WhatsApp solution services, and sell this particular solution to other client as well. And you saw the setup is not that difficult. I did it in this particular single video. And if you start doing it, max it would take you around 1 to 1 and 1/2 hour if you are very new. But if you get hands-on, you would start doing this thing for other clients within like 15 to 20 minutes just by getting the credentials. You have everything you own.
So, my kind of a real recommendation is that if you don't have a big company or if you are happy with the feature this particular product is providing, I would say go for this particular solution if you are a technical person. This is a gold for you. You can create the different features which are required for yourself. This is my personal recommendation, but if you want to go for product, I have my own product. You can visit that uh from the link in the description box.
So, I hope you like this particular video. We'll meet in the next video. Till then, take care.