Friday, 11 October 2013

x happens only for new records

Greetings from Urdhva Tech!

Thank you to people submitting "how to topics".

Q: How to make a field mandatory only if creating a record?

Lets do this,

For example lets make "Office phone" required in Accounts module.

Step 1: Create / Edit (if exists at modules/Accounts/views/view.edit.php, copy over) custom/modules/Accounts/views/view.edit.php

And have following code in function display.

function display() {
        global $mod_strings;
        $jsscript = <<<EOQ
                addToValidate('EditView','phone_office','varchar',true,'{$mod_strings['LBL_PHONE_OFFICE']}');    // mark office phone field required
                $('#phone_office_label').html('{$mod_strings['LBL_PHONE_OFFICE']} <font color="red">*</font>'); // with red * sign next to label
if(empty($this->bean->fetched_row['id'])) // This makes sure, current action is not "edit"
            echo $jsscript; //echo the script

Voila! Done!

[Loved how screen looks than what you have? Buy the look!] 


if(empty($this->bean->fetched_row['id'])) is the key! Do something ONLY for new records!

Hope that helps! Post comment below.

Keep posting how-to topics! Excited to start off with first how to on request!

Related: Required conditionally if dropdown X has value Y.

Wednesday, 2 October 2013

SugarCRM functional tour - Admin - The King - IV

Greetings from Urdhva Tech!

Thank you for following the Tour. In case you landed up directly to this page, following is the Index.

3. Admin - The King - II
4. Admin - The King - III
5. Admin - The King - IV
6. .. Coming soon ..

This article will concentrate on features available in Community Edition(v6.5.15). Stay tuned for PRO+ features for Admin.

Lets continue System section

[Loved how screen looks than what you have? Buy the look!]


Admin > System section > Currencies

SugarCRM comes up with international currency support. Here you can introduce currencies you deal with in your business. Give abbreviation, symbol and conversion ratio. You can deactivate a currency too. This is system wide settings. AFAIK, the conversion ratio is not live.


Admin > System section > Backups 

This is what you would do on periodic basis, and when you are doing upgrades. It is advisable to perform backup before you install any third party tool, which has un-upgrade safe(which means the package overwrites core files to fulfill its functionality) changes.

It asks for two parameters, where you want to store the backup and what the backup file should be named. P.S. Here you have to provide file name with extension .zip

[Loved how screen looks than what you have? Buy the look!]


Admin > System section > Languages
With SugarCRM CE comes only one language US English. So, for language support you have to go to SugarForge and get desired language pack and install it through Module Loader.

From here, you can activate or deactivate set of languages for your SugarCRM Users.


Ask a SugarCRM developer how magical and important this part is!!
Whenever you find something awkward in your SugarCRM instance, first thing you would do is, 

Admin > System section > Repair > Quick Repair and Rebuild

99% of issues will be resolved by this magical link. It removes cached files of views from cache. Rebuilds Extensions, Logic hooks, Menus, Vardefs, Utils, Relationships, ... and list goes on. It checks in database for any missing table or field, if found, shows you a query, you verify and press Execute button and see the magic!

Repair has many other separate options, like Repair Roles, Rebuild Sugar Dashlets, Repair Relationships, and so on.

Special mention:
> You can enable/disable seed users, which you may have created through demo data while initial installation.

> You can delete files which failed to removed when you removed a related record to it. It is a clean up process, so takes a little time. Be patient!

 [Loved how screen looks than what you have? Buy the look!]

Stay tuned for next article. Subscribe now to get updates of this series right in your INBOX.

Monday, 30 September 2013

SugarCRM functional tour - Admin - The King - III

Greetings from Urdhva Tech!

Thank you for following the Tour. In case you landed up directly to this page, following is the Index.

3. Admin - The King - II
4. Admin - The King - III
5. .. Coming soon ..

This article will concentrate on features available in Community Edition(v6.5.15). Stay tuned for PRO+ features for Admin.

Lets continue System section

[Loved how screen looks than what you have? Buy the look!]

Import Wizard

Admin > System section > Import Wizard
From here, an admin can import data of different modules from one place! It provides option to select a module, and then gives simplest Import Steps Wizard.

If someone is non-admin, and has permission to import data, he gets a menu in individual module, e.g. Import Contacts, Import Accounts, likewise.

[Loved how screen looks than what you have? Buy the look!]


Admin > System section > Locale

Here an admin can setup locale parameters like, system wide default date-time settings, Currency settings, Expert settings, and database collation.

All of these settings are configurable at user level. You can set these for x user by Admin > Users management > Select user > Advanced tab. User X can set these settings by himself too.

[Loved how screen looks than what you have? Buy the look!]

Upgrade wizard

Admin > System section > Upgrade wizard

This is an important link when SugarCRM releases a new version. If you are using an on-demand version of SugarCRM, you are care free about this!

If you are using SugarCRM on-premise, this is what you will need quite often!

It is again a step through wizard, and takes time to finish an upgrade. So, it is always advisable to run an upgrade process only over weekends or when nobody uses the system. First take full backup of  database and SugarCRM code base. Then only proceed to upgrade process.

[Loved how screen looks than what you have? Buy the look!]

Stay tuned for next article. Subscribe now to get updates of this series right in your INBOX.

Thursday, 26 September 2013

SugarCRM functional tour - Admin - The King - II

Greetings from Urdhva Tech!

Thank you for following the Tour. In case you landed up directly to this page, following is the Index.

3. Admin - The King - II
4. .. Coming soon ..

This article will concentrate on features available in Community Edition(v6.5.15). Stay tuned for PRO+ features for Admin.

Lets take next section

Sugar Connect

This section is meant to help you guide through various resources of SugarCRM. If you find a bug, you can report, Sugar Updates will help you know if your SugarCRM version is out of date, and online documentation lands you to Administrative guide for SugarCRM. 

[Loved how screen looks than what you have? Buy the look!]


This section is most important and gives you sense of responsibility to maintain your CRM system well managed and easier to use everyday!
[Loved how screen looks than what you have? Buy the look!]

System Settings

Admin > System section > System Settings

Numerous settings from single page!

All these settings are system wide.

Personalized settings
  • Upload company logo.
  • Show favicons to graphically show user in which module they are.

Dashlet settings

  • Restrict user to alter Home page.
  • Restrict number of dashlets on Home page.
  • Manage refresh rate for dashlet.
Utilize Screen Space and manage page loads
  • Number of records to be displayed on List View/page and in subpanel. Less the number, faster the page load. Less the number, less the scrolling in List view. Use search to filter records instead of showing larger number of records.
  • Restrict user to alter subpanel order.
  • Let user know Server Response time to show how long it takes to load the page.
  • Manage AJAX enabled modules here, not to load whole page every time.
  • Keep "Display actions within menus" checked to have actions in pull down menu.
  • Show users full name in Assigned to Or any relate field of module Users. 
Manage Convert Lead options

  • Copy/Move/Do nothing activities shared with Leads to converted Contact.
  • Once converted the Lead, remove the action to convert again!
Admin level settings
  • Proxy settings
  • Skype integration for end user
  • Validate IP address, if mismatched, user logs out of system
  • Log memory usage, log slow query, important when system runs slower than normal. Set threshold mili-sec to log query.
Import/Upload restriction

  • Restrict user not to upload heavy files than your settings
  • Restrict user not to import more than n number of records
Logger Level Settings
  • Name your log file. Manage how heavy it should be at once. 
  • Set appropriate logger level. In production copy, it must be set to Fatal, not to make log heaviest.
  • You can read log from View Log link.
[Loved how screen looks than what you have? Buy the look!]

Stay tuned for next article. Subscribe now to get updates of this series right in your INBOX.

Dropdown values in customCode

Greetings from Urdhva Tech!

Came across an interesting question which led me to check and write a blog post.

Q: Translate enum value to display in customCode [Forum post]

A: It is a two step solution.

Step 1: Create / Edit custom/modules/Accounts/view.detail.php add following code in function display.

function display(){       
         global $app_list_strings;
         $this->ss->assign('APP_LIST', $app_list_strings);

         // ......
         // ......
         echo $this->dv->display();

Step 2: Taking an example of Accounts module, fields, account_type and industry.

'customCode' => '{$APP_LIST.account_type_dom[$fields.account_type.value]}  {$APP_LIST.industry_dom[{$fields.industry.value}]}',

Where account_type_dom = options for field account_type and so on.

Do Quick Repair and Rebuild!

Comments welcome.

Hope that helps. 

Wednesday, 25 September 2013

SugarCRM functional tour - Admin - The King - I

Greetings from Urdhva Tech!

Thank you for following the Tour. In case you landed up directly to this page, following is the Index.

2. Admin - The King - I
3. Admin - The King - II
4. ..Coming soon..

Assumed, you have installed SugarCRM. Admin - The king, will be proven by the end of the article.

This article will concentrate on features available in Community Edition(v6.5.15). Stay tuned for PRO+ features for Admin.

Lets take section by section.


User management

As an administrator, you are privileged to create users.

Admin > Users Section > User management > Create Users.

Fill up your user's details. Here the 'User' is your employee and not your client. User can be your staff member or co-admin. Choose correct user type. Admin is someone with most privileges and gets access to all data. So be careful choosing user type.

[Loved how screen looks than what you have? Buy the look!]

Role management

Your staff is whom you trust after your customers. Still it is wise to restrict access.

Admin > Users Section > Role management > Create role > give a name of your choice and save.

You get a list of modules and access type in x-axis. Double click on word 'Not set' and you will get choices.

  • To hide a module completely for a user, choose Access to be 'Disabled'.
  • Just to make user see details, choose edit to be 'None'.
  • To restrict user to Export or Import, choose 'None'.
  • To allow user to only see/delete records created/owned by himself choose List/Delete 'Owner'.
  • If you select View 'Owner', and keep List 'Not set', user will be able to see all records in list view, but detail view will be accessible for records owned by him.

[Loved how screen looks than what you have? Buy the look!]

Password Management

Password management is crucial to ensure security to your valuable information. These settings make sure User's password are hard enough to guess and hack.

Admin > Users section > Password management

  • You can enable System-Generated Passwords. (Make sure you have email settings correctly configured. If not, you will see a notification on screen like in screen above.)
  • You can enforce password expiration in n-days or after n-logins.
  • You can enable/disable Forgot Password feature (This shows Forgot Password link in login page)
  • You can put extra security with Captcha (This makes sure it is human who enters the data)  
This section is so well explained and extra help is hidden in (i) icon. Click on it for extra specific information.
[Loved how screen looks than what you have? Buy the look!!]

Stay tuned for next article. Subscribe now to get updates of this series right in your INBOX.

Tuesday, 24 September 2013

SugarCRM functional tour - Preface

Greetings from Urdhva Tech!

This blog so far has concentrated on developer's tricks and tips. But a middle of a night thought drove me back to the feeling I had as a newbie in SugarCRM, and how clueless I was about the use cases of each module of the product. So yes, lets take a tour of functional SugarCRM.

I welcome comments from fellow SugarCRM masters across the globe, to come forward and help make it a better explanation to community.


When you have a business, no matter how small it is, it is based on your valuable customers. Now, customers can be buyers, resellers, readers, retailers, etc.

When your business is small, very specific number of customers, it makes perfect sense to use manual (if you have a computer, you will create a folder for each of your customer, use MS office tools to store your interaction with them) or maintain a diary (in 21st century?)

Any method you go for makes your valuable information vulnerable. In even digital manner, it is at risk, if it is on your internet virus exposed device.

As you grow, over a period of time, you will realize and need a system to well maintain customer information. Why not from day-1?

SugarCRM is best for any business. Why?
  • It is open source, one. 
  • It is free, community edition, two. 
  • It has seamless upgrade process from CE to PRO+, three. 
  • So flexible that you can customize it by yourself, four. 
  • Clean and easy interface, five. 
  • Richest community that never leaves you unanswered, six. Countless advantages!

If I continue writing about its richness, the preface will end up as a huge article by itself!

So, lets jump to functional part of the product.

I here target people who have just came across SugarCRM first time. A new fresh developer/a business owner fall for a new companion for better sales force.

Either of you, are first an admin to setup your first implementation of CRM.

I consider you have PHP stack installed.

Nope? Here > Linux | Windows

I consider you have downloaded SugarCRM. Nope? Here > Pick latest one

Now you are ready to be an administrator of the system. The simplest and most effective and explanatory wizard helps you install your first system.

Choose demo data if you are just to test how the system works, but not when you want the clean database to start using it for your own business.

After successful installation, first thing you'd do is, get your users access to system.

Stay tuned! Next article will drive you to Admin section and get you through how robust the system is!

The INDEX is here.

Thursday, 19 September 2013

SugarCRM community Edition and you

Greetings from Urdhva Tech!

Since SugarCRM has born, the most loved thing about this product is it's Open Source nature. Second thing what made it this success was their awesome team, working hard to make it zero bug product. It has shown outstanding performance with each version out to community.

The product has seen many changes over the time, but what has been most consistent in terms of functionality is Community Edition.

No value addition in free edition makes a complete business sense! Having said that, that has encouraged and provided great opportunity to developers, freelancers, SugarCRM partners to stand out in market with numerous add-ons!

SugarCRM Community has been most active community and developers, freelancers, SugarCRM partners has made so many add-ons to enrich SugarCRM Community Edition not just next to Professional Editions but better than that.

I have witnessed SugarCRM's growth starting from v4.5 till today! And waiting for its biggest leap with v7!

Community Edition is loved and nurtured by many people around the globe and we too are contributors in making SugarCRM an unmatched CRM product in market.

Naming few, WYSIWYG, Meeting Map Reminder, Sticky Note, Not followed Opportunities, Sugar Feed, SociaLead

The support we got from SugarCRM end-users, inspired us to think big and in few months, we pour heart and soul in making most promising premium products and utility add-ons.

Starting from most recent,

SugarCRM Community Edition Theme (One time purchase of only $399)

This product transforms your SugarCRM Community Edition, to look like Professional version!

- 4 colors to choose from
- Iconic menus
- Optimized screen space
- Clean, sharp, flat designed dashboard
- Inputs are fully styled to make your UX convenient 

Users can choose color of their choice to feel most comfortable while staring at screen for long working hours! A sneak peek

Customer Self Service Portal (From $25 / user / month to $500 a month)

Make your customers closely connected with you, 24x7 and from any internet enabled device.

- Multi-language support (For community edition: Installed language support.)
- Update own profile
- Change language preference
- Manage newsletter subscriptions
- Manage cases
- Manage bugs
- Manage leads
- Request a call
- Request a meeting
- Easily find anything with the global search
- Seamless bi-directional integration
- Fast page load
- Works on all major devices
- Unlimited portal users

Try demo

Duplicate Detector (One time purchase of only $199)

Very much dependent on manual data entry? Take advantage of this add-on to your gain, for efficient data entry.

- Wizard to set up duplicate check on different fields in any module
- +1-862-145-589 is considered duplicate against1862145589
- Urdhva-Tech is considered same as Urdhva Tech.

tagMe (One time purchase of only $249)

Organize or Categories your Contacts/Leads/Accounts by tagging them precisely.

- Color coded tags
- Comes as field type, so you can create a field in any module
- Tag cloud dashboard
- Mass add/replace your tags
- Global search tags
- Search by tags

Meeting Map Reminder (Only $365 a year)

Alike free version of MMR, this premium add-on gives end-user a google map showing the location on map and then use mobile's built-in GMap app to find distance between two meetings or locate nearby restaurants, etc.

- Simplest installation
- Auto send emails to sales-rep having meetings planned
- Allows administrator to manage when to send out emails

Thursday, 15 August 2013

Readonly field conditionally

Greetings from Urdhva Tech!!

I came across an interesting question today on Forum, which raised my eyebrow and led me to implement and write a blog!

So, here we go!!

AIM: Make Work Phone read-only of a Contact for certain role users!

Step 1: As it is SugarCRM's module, copy modules/Contacts/views/view.edit.php to custom/modules/Contacts/views/view.edit.php or edit if it already exists at custom/modules/Contacts/views/view.edit.php

In function display() add following piece.

function display(){ // add this if function display doesn't exist 
                global $current_user;
                // check if current user is in specific role
                // code taken from thread
                $IS_AM = in_array("<ROLE NAME>", ACLRole::getUserRoleNames($current_user->id));
                    $this->ev->ss->assign('readOnly', 'readonly = "readonly"');
                    $this->ev->ss->assign('readOnly', '');

                parent::display(); // add this if function display doesn't exist
} // add this if function display doesn't exist

Step 2: Open custom/modules/Contacts/metadata/editviewdefs.php, if doesn't exist, go to Studio > Contacts > Layouts > Edit View and press Save and Deploy.

Give custom code to the field, phone_work,

'customCode' => '<input type="text" class="phone" tabindex="0" title="" value="{$fields.phone_work.value}" maxlength="100" size="30" id="phone_work" name="phone_work" {$readOnly}>',

Repeat step 2, for Quick Create.

Do Quick Repair and rebuild! See it working smoothly, every time!!!

If you wish this to happen only while editing a record, add a condition to if($IS_AM && !empty($this->bean->id))

For many such blog articles in future, subscribe today to get it delivered to your INBOX!

Wednesday, 7 August 2013

When every customer matters

Greetings from Urdhva tech!

What an exciting time to be a business owner! When we need to embrace things that can make a difference just to remain competitive. The one technology ready to take front stage is Responsive Customer Self Service Portal which has Web and Mobile compatible as it is most needed in today’s technical era.

Responsive Customer Self Service Portal can become part of the digital face of your firm. It becomes one of the connection points between you and your customer. In this fast paced time of instant access to data and high demands on immediate service, a portal can offer your firm a high tech solution for one more contact point with your client with smart devices like, iOS, Android, Blackberry. This additional connection with your client’s costs you very little time and money. This fast paced world has taken away some of the personal service in the world of business, thus the portal returns one way to express personal service. Use of portals is on the rise, and this digital connection point is an opportunity you need to take advantage of.

Responsive Customer Self Service Portal not only connects your business and your customer, but also provides a means of important data transfer at 24x7. An integrated Case/Bug management module in Portal helps you to grab the opportunity to turn your brand's customers into fans.

Taking advantage of Responsive Customer Self Service Portal make customer portals extremely important to firms of all sizes, which is where they log into your branded portal. More advanced client portals create an environment to sell more services to existing customer. A good portal allows other messaging as well. Our Customer Portal allows Request a Call or Meetings. Embracing these new changes can also create a better life/work balance, ultimately, reducing the time, cost and stress by serving best customer experience.

Portal can provide a place, for transparent information display, which the customer needs when calling for service. This digital connection is a reflection of your services and firm, so don’t miss this opportunity to connect with your customer with Advance Responsive Customer Self Service Portal.

Try demo

User name: demo
 Password: demo

Wednesday, 31 July 2013

Why tagMe is required

Greetings from Urdhva Tech!!

Today lets live a Sales Representative's Life!

As a Sales Representative, Mr. X, spends whole day on Phone, Conference rooms, Coffee shops, and all the time what is going on in his mind? Nothing, but just the "CUSTOMER" and his details!

I believe you are calling at least 50 Customers (50 x minimum 5 minutes per call, half working day) and engaging with them with product support or do promotional offerings or anything what you get assigned!

At higher position or given a responsibility to meet up few valuable Customers personally, you would definitely want to know them at personal level, a bit, too!

If your Organisation has got rich SugarCRM deployed, with all data, from Office address to Home address to Personal interest, all good! If not, this tool can help you in biggest possible way!!

Lets see from small scale to big scale use cases for tagMe..

Your organisation wants to support a Charity Tennis game played between World's # 1 Novak Djokovic and # 2 Andy Murray!! (I know you are thinking, I want to keep one for myself ;) ) And give away passes to lets say 40 most valued customers!!

And you have got just a few bunch of Contacts, lets say 20,000, and you have to filter those by their interest! Interesting!! What will be your strategy to choose those 40 valuable customers?

Random? No!

Start calling each one to know if they would love to watch a tennis game? No!!!!

Use global elastic search to find word Tennis(You then think, I wish I would have noted it somewhere!!) for Contacts module? No again!!!!!

Hold on to that thought! And lets take a bigger example... You are meeting up with customer to show off your latest set of products, for example, Fashion accessories for Baby girls aging 3-6 years!

And while giving all excellent words and showing samples, she, the customer, smiles at you and says, I wish I could buy them for myself or wish I had a girl child!!

Looking at just these two examples, you could imagine how miserable you would feel OR if you are owner of Organisation, how your Sales Rep would have felt!!

Get out of that situation now, no more embarrassments...!!! Buy tagMe NOW!!

Wondering what it can do?

Short and sweet, it will save you a lot of time and give a sweet smile on your customers!! What else do you need?

Not yet satisfied? Check whole lot of detail about it, before making confirmed buy, here.

Any questions? I would more than happy to receive them and get back to you ASAP.

For more updates on this add-on or any Urdhva Tech Products/Plug-ins, subscribe today or

 Follow us on Twitter

 FaceBook Fan Page

 Urdhva Tech Google+ Page

 Urdhva Tech Community

Friday, 26 July 2013

stickyNote a handy and effective tool

Greetings from Urdhva Tech!

Loved sticky note utility on Windows / Stickies on Mac?

Have it in your SugarCRM!

All important notes flashed all the time on your screen!!

Something important to remember, pin 'em!

Order 'em by dragging them all over the screen, wherever you want 'em.

Done with the task? Delete 'em.

Need to add more info, double click 'em!

Something new came up, click on STICKY button found in center left!

StickyNote SugarCRM

BTW, your sticky is just for you.. You can write your personal note too ;)

Sounds interesting and looks like life will be easier? Sign up today at Urdhva-Tech-stickyNote today, and get the add-on for free!

Get it now!

We just need to know who are the valuable users using our add-on! No spamming, no worries!
Hakuna matata!

 FaceBook Fan Page

 Urdhva Tech Google+ Page

 Urdhva Tech Community

 Follow us on Twitter

 Pin us at Pinterest

 Get Linked at LinkedIn

Contact us at for any services related to SugarCRM.

Thursday, 25 July 2013

Reset selected users preference from ListView

Greetings from Urdhva Tech!

How to reset preference for multiple users?

Simple, first of all add new action link in User's ListView.
How? Get reference from here Adding your own ListView action items

In your custom action you will get ids of selected users. Loop through it and use following code to reset the preference.

$oUser = new User();

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

Tuesday, 23 July 2013

Giving links to recipients in Campaign Status page

Greetings from Urdhva Tech!!

Interesting question asked today, would love to share its solution!

Question: When I check Campaign's status, I see subpanel of Recipients to whom Message were Sent/Attempted, but I dont have a link to get to see their details!

Solution: Go to Studio > Campaigns > Subpanels > Message Sent/Attempted > Save and Deploy without changing anything..

Which will create a file under custom/modules/CampaignLog/metadata/subpanels/<some_name>.php

Open that up in an editor.. Replace following code for recipient_name

'recipient_name' =>
  array (
    'vname' => 'LBL_LIST_RECIPIENT_NAME',
    'width' => '14%',
    'sortable' => false,
    'default' => true,
    'widget_class' => 'SubPanelDetailViewLink',
    'target_record_key' => 'target_id',
    'target_module_key' => 'target_type',
    'parent_id' => 'target_id',
    'parent_module' => 'target_type',

That's it! Refresh the view!

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

Monday, 22 July 2013

Head bang series (ii)

Greetings from Urdhva Tech!!

I have sent a test email campaign, went to see its status. See a chart, yeah, but when I click on sent bar, it does nothing! I dont see how many emails were not sent to which contacts!

Solution > 
Admin > Display modules and Subpanels > Make Campaigns Log subpanel visible!! 
Makes a little sense, but hard to predict first time!

Stay tuned for more!!

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

Friday, 19 July 2013

Head bang series (i)

Greetings from Urdhva Tech!!

Starting a series which has some weird behaviours and more weird solutions!!

Oh my! I am missing 'Project Resource' subpanel under Project!!

(PRO+ versions)

I definitely saw "Project Resources" subpanel on developer copy, and I dont see on my copy!! Where did it go?? I check my files and try to figure out if I have ever done any customizations on Projects module. Nope! I go to Admin > Display Modules and Subpanels and check if my Contacts and Users subpanels are in Display block, and yes they are!! I reset user preferences!! My God, no effects!! Now I go back and check if my developer copy still has the subpanel, oh yes, its there!! Scratching head, pulling hair, wait!!

Solution > Admin > Display Modules and Subpanels > Make Projects subpanel visible!! Does not make sense, but WORKS!

Stay tuned for more!! 

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

Wednesday, 17 July 2013

How we do massupdate (Add/Replace) for MultiEnum field type in SugarCRM

Greetings from Urdhva tech!

Few days ago, I came across a requirement, is it possible to have massupdation of multienum field type with either add or replace value?

The answer was YES! It was not that simple as SugarCRM doesn't provide this option(Add/Replace) to mass update for multienum (multi select) field type.

What I simply did,
- Created a custom action menu on ListView.
- Showed a dialog box to select (Add/Replace) value for any multienum (multiselect) field.

Action Menu on ListView

The option will appear only if you have any multienum field created for that module.

Multienum Dialog with Add/Replace option.

  • If you choose “Add”, selected value get added to selected records. 
  • If you choose “Replace”, it will delete old value and assign new value.

Want to have more exciting solutions for SugarCRM from us? Stay tuned here!

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

How to Parse Email template variable in SugarCRM by custom script

Greetings from Urdhva tech!

Here is an code snippet how SugarCRM parse an Email Template.

Let's have an example

Here I have created email template from Emails->Create Email Template

Template body :
Hello $contact_name,
Greetings from Urdhva-tech.
Here we have example of some variable.
First Name : $contact_first_name
Last Name : $contact_last_name
Email : $contact_email1



any custom script.php


$template_name = 'Greetings from Urdhva-tech';
$template = new EmailTemplate();
$template->retrieve_by_string_fields(array('name' => $template_name,'type'=>'email'));

$oContact = new Contact();
$oContact->retrieve("36CharacterContactID");  //Contact ID

//Parse Subject If we used variable in subject
$template->subject = $template->parse_template_bean($template->subject,$oContact->module_dir, $oContact);

//Parse Body HTML
$template->body_html = $template->parse_template_bean($template->body_html,$oContact->module_dir, $oContact);

//Here you will have a result
print "<pre>";

Output of script will be this.
Sallie Elzey is the name of contact which i used at time of contact retrieve.

Hello Sallie Elzey,
Greetings from Urdhva-tech.
Here we have example of some variable.
First Name : Sallie
Last Name : Elzey
Email :

Chris Olliver

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

Monday, 1 July 2013

tagMe v2 arrived!

Greetings from Urdhva Tech!

    Announcing tagMe v2's grand launch!

We, at Urdhva Tech, happy to introduce exciting new features to enhance your tagMe + SugarCRM experience.

Organizing data made easy! tagMe v2 comes with some really useful features, such as,

> Mass update add or replace tags
> Tag Cloud
> Search data by tags globally from Dashlet
> Search data by tags module wise from Detail View

For more information visit Urdhva Tech Tag Management

  Happy Tagging!!

Friday, 21 June 2013

tagMe 1.1 version is out now!

Greetings from Urdhva Tech!

tagMe grows up!

You can now import tags along with your normal imports of data into SugarCRM.

For example, you are importing few accounts into system, you just need to add a column in your excel sheet/CSV, add comma(,) seperated values of desired tags and map the column with your custom tag field!

Happy tagging!!

Follow us on Twitter @urdhvatech

Glimpse of our plug-ins & products.

Monday, 10 June 2013

Calls subpanel under Task module

Greetings from Urdhva Tech!

Yet another interesting forum post led me dive into code base!

Aim: Calls subpanel under Task module.

2 files makes difference!

Step 1:  Create extended vardef for Tasks module > custom/Extension/modules/Tasks/Ext/Vardefs/calls_subpanel.php add following code in it.

$dictionary['Task']['fields']['calls'] = array(
'name' => 'calls',
'type' => 'link',
'relationship' => 'tasks_calls',
'module' => 'Calls',
'bean_name' => 'Call',
'source' => 'non-db',
'vname' => 'LBL_CALLS',

$dictionary['Task']['relationships']['tasks_calls'] = array('lhs_module' => 'Tasks''lhs_table' => 'tasks''lhs_key' => 'id',
'rhs_module' => 'Calls''rhs_table' => 'calls''rhs_key' => 'parent_id',
'relationship_type' => 'one-to-many''relationship_role_column' => 'parent_type',
'relationship_role_column_value' => 'Tasks'); 

Step 2: Create a file under > custom/Extension/modules/Tasks/Ext/Layoutdefs/calls_subpanel.php
and add following code.

$layout_defs['Tasks']['subpanel_setup']['calls'] = array(
'order' => 10,
'module' => 'Calls',
'title_key' => 'LBL_CALLS',
'subpanel_name' => 'default',
'get_subpanel_data' => 'calls',
'top_buttons' => array(
'widget_class' => 'SubPanelTopCreateButton'),

Quick Repair and Rebuild!


Comments are welcome!

Follow us on Twitter @urdhvatech

Glimpse of our plug-ins & products.

Sunday, 2 June 2013

Adding custom fields in edit and detail view through manifest

Greetings from Urdhva Tech!!

Creating your own plug-in for SugarCRM? Have custom fields in SugarCRM's existing/OOB modules?

Yes manifest has a directive which does this job!

'layoutfields' => array(
            'additional_fields' =>
                'Contacts' => '<field_name>'
            'additional_fields' =>
                'Accounts' => '
            'additional_fields' =>
                '<module_name>' => '<field_name>'


Some issues exist, like, SugarCRM forces the field to be on both views, edit and detail. And no way you can add field in list view, except you create your own script which does it for you in post_install.

Comments are welcome!

Follow us on Twitter @urdhvatech

Glimpse of our plug-ins & products.

Monday, 27 May 2013

Get date plus or minus today

Greetings from Urdhva Tech!!

Several times I have came across same requirement of getting few days back from today, or few days after today. SugarCRM comes with few very handy date utility functions, and there is one which does the job!

global $timedate;
$today = $timedate->getInstance()->nowDbDate(); // Today
$earlier = $timedate->asDbDate($timedate->getNow()->modify("-30 days")); // 30 days before!
$later = $timedate->asDbDate($timedate->getNow()->modify("+2 months")); // 2 months later!

echo "Today:".$today;
echo "<br />30 days before:".$earlier;
echo "<br />2 months later:".$later;

Simple! Isn't it?

Take a look at include/TimeDate.php for many other suitable date time functions.

Comments are welcome!

Follow us on Twitter @urdhvatech

Glimpse of our plug-ins & products.

Monday, 20 May 2013

Check list to send Email Campaigns from SugarCRM

Greetings from Urdhva Tech!

Today I came across very famous head scratching issue of "Email Campaigns sent out from SugarCRM Not working!!"

Once I did it for a client and did a smart save of the steps I performed! Voila!!

Check 1 : You have to set up Campaign email from Campaigns > Set up Email. It will take a little time to test the configuration. (Not from Admin panel)

Check 2 : You need to confirm whether the cron job is set up correctly on server and running timely.

Check 3 : You should have valid Campaign, which has status = Active, Type = Email. Campaign should have Email marketing set up(It has to set up exactly at hours you want to send email at) for the targeted Target List.

Check 4 : Target List should not be of type "Test".

Check 5 : Go to Campaign and Press Send Emails. And follow till end, which will queue up emails and then cron job will do the task.

Drop comments, they are precious for us!

Follow us on twitter: @Urdhvatech

Contact us at for any services related to SugarCRM.

Thursday, 2 May 2013

Accessing PHP variable in .tpl


Sometimes situation may arise when you want some PHP code in tpl. Following piece of code will show how to achieve this.

    global $current_user;
    $this->_tpl_vars['current_user_email'] = $current_user->email1;

Now use 'current_user_email' variable as follows in tpl.

<input type="text" id = "current_user_email" name="current_user_email" value='{$current_user_email}'>

Hope it helps.

Feel free to leave your comments.

Tuesday, 30 April 2013

SugarCRM REST API example with javascript


This blog post explains how to login to SugarCRM instance through javascript

Let's have an example of REST API through JavaScript.

Create an html file to include javascript, We will require jquery. Provide correct Javascript path in HTML file

<html lang='en'>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>SugaRCRM REST API Example through Javascript</title>
        <script src='jquery.js'></script>
        <script src='rest.js'></script>
    <body >
        <div class="hd">SugaRCRM REST API Example through Javascript</div>

Now create a rest.js

var api_url = "<SUGAR_URL>/service/v2/rest.php";
var user_name = '<USERNAME>';    //SugarCRM username
var password = '<PASSWORD>';    //SugarCRM password

var params = {
    application: 'SugarCRM RestAPI Example'
var json = JSON.stringify(params);
        url: api_url,
        type: "POST",
        data: { method: "login", input_type: "JSON", response_type: "JSON", rest_data: json },
        dataType: "json",
        success: function(result) {
             if( {
                    //HERE: you will have out put from rest
                alert("sucessfully LOGIN Your session ID is : " +;
        error: function(result) {

On success you will get response of login method, successful or failure.

Friday, 26 April 2013

meeting Map Reminder

meeting Map Reminder


Impress your sales rep by reminding them important meetings planned for the day, with map!! Set up a scheduler and you are sorted! Sales Rep receives an email with map and meeting details.

How to install?

Download plug-in from from downloads tab.

Install plug-in using Module Loader, Admin > Module Loader.

P.S. Assumed you have installed cron job already. 

Create Scheduler

After successful installation, go to Admin > Scheduler > Create Scheduler > Select “Meeting map reminder” as Job and set the interval to be when you want to send email to sales representatives. And that’s it!

Sales representative will receive an email on specified time which you have set in scheduler with map and meeting details.

Urdhva Tech Pvt. Ltd. Powered by Blogger.

Urdhva Tech

My photo
SugarCRM Consultants Contact us at Skype : urdhvatech

Search This Blog

Stay connected Socially


Total Pageviews

Popular Posts