ZestyBeanz Technologies Pvt Ltd 4th Floor, Nila, Technopark Thiruvananthapuram,
India – 695581
Phone: +91 471 4063254
Fax : +91 471 2700171


ZestyBeanz Technologies Pvt Ltd
2987, Manikkath Cross Road
Ravipuram, Kochi, India - 682016
Phone: +91 484 4063254


Zesty Labs
Office # 2003, Millennium Plaza Building
Sheikh Zayed Rd, Dubai, UAE
Phone: +971 4333 2222​
Mobile: +971-56-2708993​


ZestyBeanz Technologies GmbH
Reuterstraße 1
90408 Nürnberg
Fon: +49 911 4801 444
Fax: +49 911 4801 445

Create a simple module for Vtiger CRM

Contact Form

Shobin Markose's picture

Create a simple module for Vtiger CRM

Here I want to explain how to create a simple installable module for vtiger CRM. 

For creating a new installable module named 'testModule' for vtiger, we should have an xml file named: 'manifest.xml'. Contents of this file:
<?xml version="1.0"?>
The module folder structure:
Write the index file for our purpose. Here is an example to print the 'Hello World' when clicking the module:
echo "<font color=red>".HELLO_WORLD."</font>";
Contents of language/en_us.lang.php:
define('HELLO_WORLD','Hello World');
Then we have to create a .zip archive file for installation via vtiger module manager. Create the '' file inside the module folder 'testModule' and compress the contents 'modules' and 'manifest.xml' to the ''.
Then install the zip file via vtiger 'Settings->Module Manger' menu. Go to custom modules tab and click on the 'Import New' button to install it.

After installation you can see the module under 'Tools' menu. The content will be:
Enjoy creating more modules!
define('HELLO_WORLD','Hello World');
For creating a new installable module named 'testModule' for vtiger, we should have an xml file named: 'manifest.xml'. Contents of this file:Here I want to explain how to create a simple installable module for vtiger CRM.
For creating a new installable module named 'testModule' for vtiger, we should have an xml file named: 'manifest.xml'. Contents of this file:

walter's picture

Hi, thanks for your

thanks for your contribution on creating a new module, am in the process of creating one and am stuck in the middle of the process after doing all you had stated in importing the module in the module manager but i get an error "invalid file provided for module import! try again"...i will grateful appreciate your help.thank you.

Ron's picture

Appreciate the

Appreciate the recommendation. Let me try it out.

Anonymous's picture

For anybody in the future

For anybody in the future that may happen to get slightly lost in this, I finally managed to figure it out a bit.

First, Shobin, thanks again for having a very simple tutorial on this... The others jump into something quite complex when all many of us want is a good starting point to work our way up with=)

en_us.lang.php must look like this: $mod_strings = Array('HELLO_WORLD' => 'Hello World');

If you are having trouble getting this module installed, do *not* create the source code or directory in the vTiger modules directory. Create them somewhere else entirely. vTiger will try to create the module itself when you import it! This was the source of many of my problems and I'm guessing the same thing causing everybody else problems.

Make sure you use the module folder structure exactly:

1) Create a directory called testModule
2) Inside that directory, create manifest.xml and directory called modules
3) Inside the modules directory, create another directory called testModule
4) Inside the new testModule directory (Should now look like testModule->modules->testModule), create index.php and a new directory called language.
5) Inside the language directory, create a file called en_us.lang.php

That should be it. The big thing is to make sure this wasn't created inside vTiger! Hope this helps people in the future!

Anonymous's picture

please help!!!! how can i

please help!!!!

how can i create a new module using vtlib. the procedure they have given in the vtlib pdf doesnt exactly tell us which file we should edit or use. am using vtigercrm 5.3.0

kind regards

zarah's picture

I liked it, and I thought

I liked it, and I thought there were a lot of subtleties and nuances that you don’t get right away. But that’s just my opinion, you’re completely entitled to yours.

Anonymous's picture

Hi Ryan, How's it

Hi Ryan,

How's it going?

Thanks for this wonderful post.

I followed your instruction but when the time comes for me to import I got this errors:

dUnzip2: File 'manifest.xml' is not compressed in the zip.

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "test/vtlib/manifest-1311051151.xml" in C:\Program Files (x86)\vtigercrm-5.2.1\apache\htdocs\vtigerCRM\vtlib\Vtiger\PackageImport.php on line 54

Warning: unlink(test/vtlib/manifest-1311051151.xml) [function.unlink]: No such file or directory in C:\Program Files (x86)\vtigercrm-5.2.1\apache\htdocs\vtigerCRM\vtlib\Vtiger\PackageImport.php on line 55

This is how I made my folder structure:

newModule - > modules -> newModules -> index.php
newModule - > modules -> newModules -> language -> en_us.lang.php
newModule -> manifesst.xml

Your quick response will be appreciated.


Anonymous's picture

Hi, I had the same problem so


I had the same problem so downloaded some other modules to see if I could find what was causing it. Turns out you need to don't zip the initial directory. The base files in the zip should be the modules directory and the manifest.xml file. This solved the problem for me. Hope it helps you!

Ryan Sandnes's picture

Hey Shobin, thanks for the

Hey Shobin, thanks for the tutorial! I was pretty excited to finally find an easy module creation tutorial (Payslip wasn't exactly easy, and I still have no clue how it works), but I am getting a white screen when I click on testModule. Any clue why this would be happening? I followed your instructions to the letter. vTiger created my testModule directory in modules. index.php is in there, and en_us.lang.php is in the language directory. Everything seems to be as it should, but that stupid white screen shows up. There is a serious lack of help in the module development, so I really hope to hear from you!

Thanks again Shobin

Kumutha's picture

Tutorial is good, but change

Tutorial is good, but change the content of en_us.lang.php file in the form of array... its working for me thnk u so much...:) :)

Shobin Markose's picture

Hi Ryan, Thanks for your

Hi Ryan,

Thanks for your comment and it is very happy to hear that this post is helpful to someone. Now lets come to your issue. Please edit the /etc/php.ini file in your machine and change the value as:  'error_reporting = E_ALL'  and  'display_errors = On'. Then try to click on the module, this will surely display the errors if exists in the module. If it is not helpful, you can send me the index.php file then I can look into it.

Thanks and Regards.