Tuesday, April 28, 2015

SalesForce.com: Settings for “Deploy change sets from sandbox to production”

In order for change sets to be moved from your sandbox to production, the following settings need to be verified and set.  For your reference:

Settings to be validated in production org
  • Click on Setup – Deploy – Sandbox
  • Ensure the sandbox is set right.


  • Click on Deploy – Deployment Settings. Select the deployment option to allow deployment of components.

Settings to be validated in Sandbox org
  • Step 1:  Set the permission sets by clicking on setup -> Manage Users -> Permission Set.  Select the permission set to edit the settings.  Click System Permissions to assign the correct permissions.  Verify that "create and uploade change sets" is checked (if not, check it).  Save the permission set.

  • Step 2: Building the OutBound Change Sets by clicking on Setup -> Deploy -> Outbound Change Sets.  Click on New and provide a name for change set.


While adding the change sets, remember to add the permission set as well and upload to prod org.

Written by Prabha Krishnamurthy

SalesForce.com: Dataloader tip to insert null values

Many times, we would have a need to insert null values to fields or blank values on update. By default Dataloader does not allow that. To override that:
  1. Login to Dataloader
  2. Go to settings -> Check “Insert null values”.

This will allow to insert/update null values.

Written by Prabha Krishnamurthy

SalesForce.com: How to display activity custom fields on standard object page layouts

Salesforce Activity object has two components – Tasks and Events. Whenever we add an activity custom field, there is an option to select the layout on which the custom fields should be made available.

But just setting this will not display the custom field on activity related lists of other standard objects.
To display on activities of related standard object, click on page layout of standard object,


Example: Account Object

Click on Related Lists and settings,


Select the new custom field from “Available Fields” list and move to Selected Fields.
Save the changes and you will now be able to view the custom field in the activities of standard object.

Written by Prabha Krishnamurthy

Monday, April 27, 2015

Crystal Reports : Simple Record Counts

When creating a "Summary", using the Count function may not be desirable. It is often the case that a report must only return the number of unique contact records, as other tables (i.e. History) may contain multiple rows for each customer.
Select Insert | Summary.
Select the fieldname you wish to summarize.
Make sure to select Distinct Count as the Summary Operation.

Crystal Reports : Multi-element Parameters

Crystal Reports : Getting Ranged Values Programmatically


If you are using a date parameter that is Ranged (i.e. a single parameter field that prompts for a starting and ending date), you will probably want to display these dates on the report. This helps prevent confusion as to what data is included in the report. To do this, we will need to create two formula fields, one for the starting date and one for the ending date. The formula fields will use the Minimum and Maximum Crystal functions.

For this example, our parameter field is called {?DateRange}

Formula field #1 (Starting Date) : Minimum({?DateRange})
(Pulls out the minimum value of our range)

Formula field #2 (Ending Date) : Maximum({?DateRange})
(Pulls out the maximum value of our range)

GoldMine : Quoting E-mail Text when Replying

If you use and love GoldMine email like I do, this is a nice little tip.

When replying to an email you may only want to quote part of the original text.

To do this, select the text you would like to quote with your mouse (highlight it).

Then hit Reply. You'll see that only the selected text is now quoted at the bottom of your reply.

If your GoldMine email doesn't quote by default, go to

Tools | Options | Email | More Options

Make sure that "Quote original message by default" is selected.

GoldMine : Indicating Notes with xBase

Here’s a handy indicator to put on the top half of the contact window.

First, while logged in with master rights do a Right-Click>New Field.

Select dBASE Expression from the drop down list and click OK.

Move the field to an area of the screen where you have open space, then Double-Click on it.

In the Field Data Expression area, type in "Has Notes" with the double-quotes. You don’t need a Field Data Name in Database for this function. Choose the Color tab, and in Data Color select Expression. Type or paste in

iif(trim(notes) > ' ', 255, 16777215)

Finally, in the Layout tab, set the Field Label to be 0 and the Data Size to be 10. Then click OK.

The “Has Notes” field will only appear if there are notes in the Notes tab.

One word of caution in GoldMine Premium Edition. If you put a note in, then delete it, it actually stays in the database so the indicator may still say "Has Notes" even though the tab looks empty.

GoldMine : Seeing Record Counts

This is something I wish was turned on by default; the ability to see the "count" of records in virtually any window.

For example, within the Search Center, right click and select "Summary". This will provide a simple count at the bottom left hand corner of the Search Center.

You can also right-click and select "Summary" from;

- The History Tab
- The Pending Tab
- The Activity List
- The Details Tab

...and almost any window in GoldMine that displays "rows" of data. Try it!

Saturday, April 25, 2015

MSCRM 2015: Displaying Data from One Entity on the Form of Another Entity (Part 3)


Part 3 will focus on displaying data from one entity on the form of another entity through workflows. As a reminder, here is the scenario:
The sales representative is preparing a quote for a customer and they want to see the mailing address that the account has on file. The out-of-the-box quote form allows the sales rep to manually type in an address but why do this when you can automatically get the address directly from the account record?
1.       First you need to create the quote field where the account address will be mapped. I’m going to use the “Potential Customer Address” field that I created in Part 2 of this series.
2.       Next, let’s create the workflow. Go to Settings > Customizations > Customize the System > Processes > New.
3.       Give your workflow a name, choose Workflow as the category, and Quote will be the entity because the workflow will be running on the quote form.
4.       Now we need to decide when the workflow will run. I want it to start when the quote is created. So in the section that says “Start when:” I selected “Record is created”.
5.       Next, we will add a step to the workflow to update the record. Keep Quote selected as the entity to update, then click on “Set Properties”.
6.       Click inside the “Potential Customer Address” field. In the Form Assistant on the right, Operator will be “Set to” and we want to Look for “Potential Customer (Account)” and “Address 1”. Click Add and OK.
7.       Now we see that the address of the potential customer is going to be entered into the “Potential Customer Address” field:
 
8.       Save and Activate the workflow. This is how mine looks:
 
9.       To test the workflow, let’s go back to the quote area and create a new quote. We can see that as soon as the record is saved, the account address is populated. Voila!
 

MSCRM 2015: Displaying Data from One Entity on the Form of Another Entity (Part 2)


Part 2 will focus on displaying data from one entity on the form of another entity through mappings. As a reminder, here is the scenario:
The sales representative is preparing a quote for a customer and they want to see the mailing address that the account has on file. The out-of-the-box quote form allows the sales rep to manually type in an address but why do this when you can automatically get the address directly from the account record?
1.       First, we need to create the quote field where the account address will be mapped. Go to the Quote form editor and create a new field. I’m going to call mine “Potential Customer Address” with a data type of “Multiple Lines of Text”. Add the field to your form, save, and publish.
 
2.       Next, let’s create the mapping. Go to Settings > Customizations > Customize the System.
3.       In my scenario, I’m going to need a 1:N relationship within the Account entity because one account can have many quotes.
4.       When I look at the 1:N relationships for Accounts, I see that I already have a relationship with the Quote entity so I’m going to modify it instead of creating a new one.
5.       On the Account to Quote relationship screen, select Mappings from the left menu. Then create New.
6.       Choose the source field from the Account (Address 1) and the target field from the Quote (Potential Customer Address that we created in step 1).
 
7.       Remember to publish your customizations!
8.       For testing, I’ll head back to the account form and create a new quote from here. (Note: mappings are designed to work when creating a new target entity (quote) record from the source (account) entity.) When I do this, I see that the “Potential Customer Address” is already populated with the correct information. Voila!
 

MSCRM 2015: Displaying Data from One Entity on the Form of Another Entity (Part 1)


Often you will want to display information about a record from one entity on the form of another entity. For example, displaying a product description on the opportunity product form or an account address on the quote form. This blog post and parts 2 and 3 will provide instructions on three different ways to accomplish this task. This post focuses on the use of the Quick View Form. Here is the scenario:
The sales representative is preparing a quote for the customer and they want to see the mailing address that they have on file. The out-of-the-box quote form allows the sales rep to manually type in an address but why do this when you can automatically get the address directly from the account record?
1.       Open the Quote form editor and go to the Insert tab. Choose Quick View Form.
2.       Specify a Name and Label.
3.       In my scenario, the Lookup Field will be “Potential Customer” and the Related Entity will be “Accounts”.
4.       Next, I’m going to create a new Quick View form with just the address on it. You may have to review your Account entity to determine which address fields are being populated. In my case, we’re going to use the field “Address 1” but you may have to use a combination of fields to get the information you want.
 
5.       Remember to Save and Publish your new Quick View Form.
6.       Back on the Quick View Control Properties screen, make sure the new form you created is selected.
 
7.       Click OK. Save and Publish the Quote form.
8.       Now when I create a new quote and populate the Potential Customer field, their address will show up immediately. Voila!
 

Thursday, April 23, 2015

ZOHO CRM - Change the Email Sender Name for your Zoho Account

When you first set up your Zoho Account you provide your name. This is the name that also appears as the Sender when you send email from Zoho.  What if you want to change it down the road?  Here's how:


  • Login to accounts.zoho.com using your regular login
  • Select Profile Tab
  • Click Edit
  • Change the 'Full Name'
  • Click Save

ZOHO CRM - VIEW HISTORY AND UPCOMING ACTIONS FOR A RECORD!

Each record has a 'History': when and who created it, and who, what and how its been modified.  You can derive this information by skimming through the Audit log, but why not go right to the source...

  • Open the record of interest
  • Click the link in the upper right hand corner of the record (In this example the link says "Last Update: 04:00 PM"
  • Pop-up window has two tabs
  • History gives you the list of when the record was created and all the times its been modified.
The other is "Upcoming Actions":

If you're using time-based actions in your Workflow, records can have "Upcoming Actions" - that is, actions that have been scheduled to occur sometime in the future. You can see a list of these scheduled actions here!

ZOHO MOBILE CARD SCANNER APP

Zoho has a business card scanner app that integrates quickly and easily with your CRM!  Simply purchase the App "Zoho Card Scanner" from the App Store ($4.99) and install on your phone.  When you launch the app, sign into your ZOHO account.  Then follow these easy steps to scan a business card into your CRM:
  • Click Scan a Business Card Button
  • Using the phone camera take a photo of the card
  • Review the data
  • Click Save
  • Choose Save To Cloud
  • Choose Zoho CRM
  • Choose Lead or Contact
  • Click Save
... and just like that the data from the business card is in your CRM!!!

Trade shows just got a whole lot easier!

Monday, March 30, 2015

SalesForce.com: How to override duplicate check during mass data loads?

Starting with Spring ’15, SalesForce has a duplicate management option to tighten the rules around data management to avoid duplicates. When this option is enabled, upon duplicate data creation, there is an alert for the user mentioning the potential duplicate record creation “You're creating a duplicate record. We recommend you use an existing record instead.” along with the option to override and submit.

The Standard Contact Matching Rule is “(First Name AND Last Name AND Title AND Company Name)”


However during, mass data loads, here are the steps to turn off the check:
  • Go to Setup -> Data.com management -> Duplicate Management -> Matching rules
  • Click on “deactivate” on the rule that is to be deactivated.


Once after the matching rule is deactivated, go to: 
  • Setup -> Data.com management -> Duplicate Management -> Duplicate rules
  • Select the duplicate rule to deactivate, and click on “deactivate” button.


SalesForce sends an email upon successful deactivation. Now, for mass loads, the duplicate checks will be ignored.  After the load, to activate the rule, follow the reverse order; Activate duplicate rule first and then matching rule.

Written by Prabha Krishnamurthy

SalesForce.com: Quick tip to overcome event load issues with ActivityDateTime

During data migrations, there could be multiple data issues that we encounter. Here is one such issue related to loading events and steps to overcome the issue.

If the IsAllDayEvent is set to false on the event record, then, ActivityDateTime is required and either DurationInMinutes or EndDateTime is required.

However on instances where there is a timestamp for ActivityDateTime and no timestamp for EndDateTime, blank the EndDateTime and set DurationInMinutes to 1440. This will help to fix the data load issue around this.

Written by Prabha Krishnamurthy

SalesForce.com: Difference between File and Attachment in SalesForce “Notes and Attachments”

Notes and Attachments is a standard object in SalesForce that is used to link notes and file attachments to various SalesForce standard and custom objects.

Notes are added with type “Note” and File attachments are added with type “Attachment”.

However, if you find a third type there as “File” with no actual attachment but with option to preview/download the document and wondering what that is and where it came from – That is a chatter file uploaded to the object.


Steps to upload a chatter file and link to an object – Click on the record to which a chatter file needs to be attached. You will see the below option at the top of record page.


Click on File and upload the file. These files are the ones that gets displayed in “Notes and Attachments” as records with Type “File”.

Written by Prabha Krishnamurthy

Friday, March 27, 2015

GoldMine : Phone Number Formatting in Userdefined Fields

This actually came up during a live GoldMine presentation at Villanova university.

If you create a new userdefined field and use the word "PHONE" in the FIELDNAME, the field will automatically format any inputted phone numbers.

1. Create a new userdefined field called PHONE4
2. Rebuild your database
3. Now, entering 5556667777 into the PHONE4 field results in (555)666-7777

Pro Tip : Always omit the first "1" in a long distance number in GoldMine, else it won't format it correctly.

GoldMine : Breaking the Notes Tab Habit

One of the constant struggles in my life is trying to force unwilling users to abandon use of the Notes tab. You know the one; sitting there all smug at the bottom half of the Contact Record, tempting our left-click, daring us to record our most recent phone call.

The Notes Tab whispers to us;

"Use me! It's so easy! ONE CLICK and your History is recorded!"

But what we know in our hearts is the Notes tab should NOT ever be used to record history. You can't report on it. You can't sort it. You can't filter it.  And the technical issues, especially if you're on older versions of GoldMine, are mind-numbing.

What the Notes tab excels at is keeping very general information. Driving directions, special handling instructions, that sort of thing.

If you're having issues training some users to break their Notes Tab habit, just turn it off for them.

In GoldMine;

1. Select Tools | Users Settings from the top level menu.

2. Find the user in question, select and hit Preferences.

3. Go to the Record Tab, click the Tabs button.

4. Uncheck the Notes item, OK your way out.

The user will need to restart their GoldMine to effect the change.


GoldMine : Discovering the xBase Expression Tester

Ah, secrets! Is there nothing more mysterious? For instance, did you know that you can use CTRL-ESC to mimic a windows key? Try it. Right now. Isn't that awesome?

There is a correspondingly cool secret in GoldMine; the xBase Expression Tester. (I still can't bring myself to call it dBase - xBase just sounds so much more cool)

In GoldMine (requires MASTER rights), hit;

CTRL-SHIFT-D

to invoke the Expression Tester.

The idea is to enter an expression in the top half and evaluate it against the Current Contact Record. So, the expression;

CONTACT1->CONTACT

should return the Primary Conract of the Current Contact Record. Caps are mine, lowercase is fine.

So now we can start using all those neat dBase functions like MID, LEFT, TRIM. For instance,

LEFT(CONTACT1->CONTACT, 5) returns the first five characters of Contact.

AT(" ", CONTACT1->CONTACT) returns the numerical character position of the first occurrence of " " within Contact.

So, to get fancy, we could do this;

LEFT(CONTACT1->CONTACT,  AT(" ", CONTACT1->CONTACT)) to return only the First Name of the Contact.

Once you're happy with an Expression, they can be used in;

- Merge Documents
- Filters
- Global Replace
...just to name a few.

Even if you don't have a serious need for this, you can't deny it's pretty awesome. 

More dBase documentation than you could imagine can be found here;
http://support.frontrange.com/kbcontent/Goldmine/pdf/6.5/UsingdBaseExpressions.pdf

Thursday, March 26, 2015

Crystal Reports : Getting Creative with Parameters

Usually we think of Parameters simply storing values for selection criteria. Start Date, End Date, ad nauseam. But let us not forget a Parameter can store ANYTHING. Including "switches" which can then be evaluated by Formulas.

Example;

I want to include a parameter that specifies whether or not to calculate Tax for every line item on an invoice report. So, I create a Parameter called {?Tax} with two possible choices, "Yes" or "No".

So, then, my Tax Formula looks something like this;

IF {?Tax} = "Yes" THEN {INVOICE.AMOUNT} * .07 ELSE {INVOICE.AMOUNT}

I also use this trick to Hide or Suppress detail sections on reports with a lot of Summarizing.

Remember, a parameter that only drives Selection Criteria is dying to let it's full potential out!

Crystal Reports : The Data, the Text and the Ugly

Ok, so here is a constant problem; combining Data and Text. This can be difficult with dates, numbers and any Crystal object that will be changing size depending on the underlying data. You have but a few options, none of them perfect:

1. Drag your Crystal object into a Textbox. When you do this, you're able to place the object within any Text already present. This can be touchy, however, and you lose the ability to right-click the object and get Properties.

2. Place your Crystal object right next to the Textbox. This is easiest, but looks terrible. Getting everything to look just right can take much trial and error.

3. Create a formula to produce both Text and Object as one unified item. This is my favorite approach. Example;

If I need to print out "From xx/xx/xxxx to xx/xx/xxxx" I do this within a formula;

"From " + {?Starting_Date} + " to " + {?Ending_Date}

The "+" is a concatenator and also an operator, so beware when trying to combine text and numbers; Crystal will think you're trying to perform addition. Also, be mindful of where to put in your extra spaces. Notice that "to" has a space on either side of it. Otherwise it will be "crowded".

Now get out there and make it nice!

Crystal Reports : To Portrait is Easy, to Landscape is Divine

When you're working within the Designer, keep in mind that your "real estate" is dependent upon the currently selected printer. Crystal will honor both your Landscape/Portrait and page size settings.

Simply go to File | Page Setup and select your favorite settings!

Some helpful hints:

1. Landscape is almost always better. Portrait is for chumps. Especially when you're printing rows out of the Detail section. Even if you're not going to necessarily need all that room right now, you will someday.

2. Bigger is better; don't be afraid to increase your page size during development to make things easier to move around in the designer. I'm a big fan of Legal size. And you can always dial it back before deploying to production.

Have some fun and live large!   

Wednesday, March 25, 2015

MSCRM 2015: Synchronizing Tasks

A new feature in MSCRM 2015 is the ability to synchronize tasks created in Outlook and assigned to another CRM User.  The User who created the Task will remain the Owner of the Task in CRM until the task is accepted by the assigned User.  Prior to MSCRM 2015, tasks created in Outlook and assigned to another user were not synched to MSCRM when the task was created.  

This feature is only available if you have upgraded to CRM for Outlook 2015 and is turned OFF by default.  Enable this feature if your Organization generally creates tasks in Outlook instead of MSCRM.   Here's How:

Navigate to Settings>Administration>System Settings.  Click on the Synchronization tab, check the "Synchronize tasks that are Assigned in Outlook" check box:



n'joy!


MSCRM 2015: New Business Rule Feature- Addition of "OR" operator

Business Rules are continuing to evolve in MSCRM 2015.  One new powerful feature is the ability to group conditions by "OR".  Previously, conditions were limited to "AND".

For Example:  I'd like to lock a field for editing if the Job# on the record begins with "2015" OR the Date the Opportunity Won is after January 1, 2015.

Previously, I needed two Business Rules to accomplish this.  Now I can do this with one:



n'joy!

MSCRM 2015: New Business Rule Feature- IF Then Else

If your CRM Online Organization hasn't transitioned to MSCRM 2015 yet, it will sometime in the next 3 months.  There are some exciting new features in Business Rules, my favorite is the addition of the "Else" to the If-Then condition. 

I often use Business Rules to Show or Hide fields depending on the value of another field, for example, If x=y, show field a, otherwise hide field a.  Prior to MSCRM 2015, I needed two Business Rules to accomplish this- One with the logic "If x=y, Show field a" another with the logic "If x not equal y, Hide field a".

Thanks to the addition of the Else condition, I can now accomplish this with one Business Rule:


Note that The ELSE  can also include a condition (ELSE IF). 

n'joy!






Tuesday, March 24, 2015

ZOHO CRM - Setting the Default Value for a Picklist field


If you have a picklist field that for 80-90% of your records is typically one value, you can make data entry easier by setting that common value as the DEFAULT value for that field.  Here's how you do it (you will need admin privileges):


  • Setup->Customization->Fields
  • Select the data module where the field resides, to view the list of fields for that module.




  • Click the edit link next to the name of the field for which you'll set the default value

  • Drag the default value to the top of the list by clicking and dragging the "grab bar" to the left of the field in the list .
  • Click the "Use first value as default value" checkbox and click save.

ZOHO CRM - Can't View Activity Records in a Related List?

Have you tried to display your Activity Records  (Tasks, Events, Calls) by clicking on the link  in  a related list only to be faced with this message?
A possible, and most likely reason for this is that the Activity Type field was removed as a column from the related list.  To add it back in...

  • Setup->Customization->Related Lists
  • Choose Activities from the list of modules
  • Select Activity Type in the left hand column 
  • Click the right facing middle arrow to Add Activity Type to the list of displayed columns
Hope this helps solve a problem!

ZOHO CRM - Changing the Workflow Rule Order

The order in which Workflow Rules are executed can be VERY important, especially if you have multiple rules triggered by the same action.

For example, you might have a Custom Function that updates fields in a record when the record is created and you may also have alerts that are triggered when a record is created.  If the Alerts contain the fields updated by the Custom Function, you want to make sure that the Custom Function is triggered first, then the Alert so that the updated field information is included in the Alert.

The default is based on the order in which the Rules are created, but you can change the order after the fact.  Here's how:

  • Setup->Automation
  • Choose the module whose Rules you wish to ReOrder:
  • The Grey box turns into a Reorder Rules Button - click the button


  • Click and drag the rules to their desired order and click save.





Monday, March 9, 2015

Crystal Reports : Dates and the Math of Age

Yes, this old chestnut never stops being useful;

One of the many things you will want to do with a bona-fide date field is calculate age.
Crystal makes it easy for us here; as long as we're comparing two date type fields, we can perform simple math.
Let us suppose that the date field in question is {CONTACTS.SOURCEDATE}, which represents when a particular prospect was imported into our database.

1. We can see how many records were imported in the last seven days

{CONTACTS.SOURCEDATE} <= CurrentDate() - 7

2. Or how "old" any particular record is, expressed in days

CurrentDate() - {CONTACTS.SOURCEDATE}

3. To calculate the age in years, we must use the Crystal DateDiff function:

DateDiff("yyyy", {CONTACTS.SOURCEDATE}, CurrentDate())

The "yyyy" specifies we want the answer in years; "m" and "d" are also options (months and days, correspondingly)

Note: In order for Date Math to work correctly, all evaluated fields MUST be Date Types. Otherwise they must first be converted to Date Types using a Crystal Function like CDATE(). 

Crystal Reports : Hiding Scary Sections

While designing a report, you may find it helpful to Suppress (hide) sections, easily Revealing them later.

Within Crystal, right-click on the Section name on the left hand section of the designer.
Then select Hide or Suppress, depending on your need.

Hide will still allow you to "Drill Down" and see the section in question.
Suppress will not allow you to reveal the section at all until you right-click on it and select Show.

This technique is commonly used to reveal and/or hide "troubleshooting" areas of the report. For instance, I find it helpful to drag a few fields into the Detail section when trying to figure out why a Summary isn't totaling as expected. When I'm finished troubleshooting, I simply Suppress the Details section, in case I need easy access to that information again.

Pro Tip : Throw your troubleshooting fields into a new Report Section, insulating them from the rest of the report.  

Crystal Reports : The Importance of a Nice Line

Often it is the case that a complex report becomes too "busy" to read easily.

Let's say that we are grouping by State, but it's difficult to look at the page and know where one state ends and the other begins.

There are many ways to alleviate this, but one of my favorite and simplest is to Insert Line.
This will insert, as expected, a line into the report which you can place wherever you want.

Typically, you'll want it to be in a Footer. This way, the line is drawn after each group is printed, effectively separating the groups in a visual manner.

Other techniques to make a report easier on the eyes are:

- Make your Group Headers stand out by using a bigger/bolder font
- Stretch our your Details section just the littlest bit to get some more space between each line on the report
- Force page breaks in the Section Format Properties (right click on the report sections, select Format Section)

It may not seem like much, but for some odd reason nicely structured reports seem to communicate their data better to the reader. Make it easy for the end user to see at-a-glance where one section ends and another begins. It's totally worth it!

Thursday, March 5, 2015

MSCRM 2015: Multi-Entity Quick Find (aka Universal Search)

Another great feature in the MSCRM 2015 release is the Multi-Entity Quick Find.  Use this feature when searching across multiple entities.  The entities that are included in the search are defined in:

 Settings>Administration>System Settings:


Add the entities you wish to include in the Multi-Entity Search feature.  Custom entities may be added :)


The Multi-Entity search can be accessed from any screen as it is on the main Navigation Bar:


Type the text you wish to search for- in this example we're using a wildcard search for "test":


The search results are displayed by entity:

n'joy!



MSCRM 2013: Accessing CRM from the Office 365 Portal

If you log into your Microsoft Dynamics CRM organization through the Office 365 portal, you may have noticed that it has a new look and feel.  You may be wondering how to access your CRM, the CRM button is no longer on the top Navigation Bar!

To get to your CRM, click on the Office Apps icon:



Select CRM:



OR, expand the Admin area on the left navigation bar and select CRM:


n'joy!


MSCRM 2015: Account Hierarchical Structure

Microsoft Dynamics CRM 2015 has some exciting new features!  One that I especially like is the ability to view the hierarchy of a record and its parent child records.

Here's how it works.  In the Accounts area, if you see this icon next to an Account name:


...there are related Accounts.  Click on the icon to view the related Accounts and the hierarchical structure:


 n'joy!

GoldMine : Setting your Default Username

Sick of having to type in your Username every time you start GoldMine?

From your desktop;

1. Right-click on your GoldMine shortcut, select Properties.

2. Append a "/u: to your Target.

For instance, my GoldMine shortcut has a Target of:

     C:\GoldMine\gmw.exe

So I change it to:

     C:\GoldMine\gmw.exe /u:JUSTIN

3. Click on Apply, then OK.

Pro Tip: You can also specify the password by providing /p:

Have fun!


GoldMine : Too Many Codes

Here is something I see in the field occasionally; too many codes. Sometimes people can go nuts with them, especially if they are in the throes of the "New Toy" phase. It's incredible; you'll find yourself adding all sorts of crap you never cared about before. I once administrated a GoldMine install with a Reference lookup that literally went off the screen it was so big.

Which, I guess is fine if you need to do any kind of deep or advanced analysis. You could add codes to record a Prospects mood during every phone call and plot it to see the best time to speak with them. Or make a code for every possible reason a Prospect would refuse your business.

I bring up the Phone Call because History is where the trouble can easily start. There are five major ways in which to differentiate a History record;

- Activity Type

     The top-level. For the most part, self explanatory. But if you find yourself scheduling/completing a lot of "in house" or administrative activities, consider leveraging the Next Action or Other Action types. For instance, all of my client service is recorded as Next Actions. That doesn't mean I'm not talking to people on the phone. It's simply a very easy way to flag what is billable (administratively important) and what is not.

- Reference

     The slippery slope starts. Remember, when your end user is selecting a Reference, they still haven't even gotten to the Notes part yet. This works best as a general identifier of the context in which the time is being spent. It's okay to have some breadth here; it will be shown on the History Tab and should be informative. An example list could be;

     Sales - Cold Call
     Sales - 2nd Call
     Sales - Paperwork Followup
     Service - Warranty
     Service - Billable

     In this example, there are only a few different Sales and Service "codes"; this makes it reasonable to have everything in the Reference.

- Code and Result

     How much information can there possibly be about a Phone Call? Code and Result are just two more levels of differentiation. To make matters worse, they are only three characters long. So you end up with... Codes. You could have a code for every model number of equipment you sell and force everyone to choose the corresponding Code from the pick list. If it's important, that's fine. But-
     As always, keep in mind What You Are Doing. What is it that "cares" about Codes? Are there Reports that depend upon them? Do they flag records for administrative processing?
     A good, humble Result Code picklist might look like this;

     LVM //Left Voice Mail
     CFI //Confirmed Product Interest
     CNI //Confirmed Not Interested
     DNC //Do Not Call Requested
        
     Remember, anything preceded by "//" will be ignored in a picklist item. And also remember at this point we are just dealing with a Phone Call. Other important attributes of the Prospect are probably stored on a different level (i.e. Source, Interest, etc). My advice, keep it simple; expand when required.

     Have at it and have fun!

GoldMine : Process Monitor of the Damned

Do you hate the Process Monitor?

You know what I mean; that stupid floaty window that appears whenever you send an e-mail. On older systems, the length of "float time" required to show it could be ridiculous. And that's IF it appears where it should. Sometimes it will "get stuck" in the upper left hand corner. Occasionally it will also undock itself and be a general nuisance.

So, how do we control the Process Monitor?

1. Tools | Process Monitor
   
     This menu item turns the Process Monitor on or off.

2. Show as MDI Window

     Within the Process Monitor, right-click on the top grey bar (where the buttons are), and select "Show as MDI Window". This turns the Process Monitor into a tab, which is how I like mine.

3. [ProcMon] INI Settings

     If your Process Monitor is royally screwed up, consider deleting the [ProcMon] settings from your USERNAME.INI file. Depending on your version of GoldMine, [ProcessMonitor_MDIChild] may be present and should also be deleted. This will reset your Process Monitor preferences to default. Advanced users only; always backup before editing.

Have at it and good luck.


Wednesday, March 4, 2015

SalesForce.com: How to make standard fields mandatory?

Many a times we need to treat Salesforce Standard Fields as required.  To do this, we can create a validation rule for the field to ensure that a value is required to enter in there.  Here are the steps (in this example, we're making “Phone” required): 
  1. Go to Setup - Customize – Contacts
  2. Select Contact filed – “Phone”
  3. Create a validation rule

  4. Click Save.
Now if you try to create contact without a value for “Phone” it will show the error message.


Written by Prabha Krishnamurthy



SalesForce.com: Eliminate Duplicate on Manual Data Creation

Sometimes it isn't easy to create duplicate detection rules on standard or required fields (last name for instance).  However, this can be done via workflow, to update another custom field and provide the warning of the duplication.  Here's how (using the contact object as an example):

The first step is to identify a field or set of field to determine the uniqueness of the record. Each business can define this uniqueness rule differently.

Let us consider “Last Name” as a field to be unique to a contact.
This standard salesforce field “Last Name” is mandatory.


STEP 1
Let us create a custom field of data type – Text with option – “Unique”

STEP 2
Let us create a workflow rule(WFR) for the duplicate check.
Go to Setup -> Create -> Workflow & Approvals -> Workflow Rules
Click on “New Rule”.
Select the object on which WFR needs to be added. In this case – “Contact”
Now set the rule as explained below,


Now let us specify Workflow Actions,
Under Immediate Action – select “New Field Update”,
Now save. Activate the WFR.
Now we are all set with WFR. Let us see how it works now.  I have an existing contact with the last name of Prabha.

Let us try adding another contact with Last name PRABHA.
It applies the WFR and stops user from entering duplicate contact names.  Here, the unique custom field we added in the beginning is made invisible, as I did not want on the page layout. Hence the error message mentions Hidden Field Value. However there are ways to customize error messages and make it more intuitive like “Contact already exists. Please re-check”.

Also, more than one field can be used to build the WFR to validate the uniqueness, using a concatenate formula to validate against (firstname&lastname for example).

Written by Prabha Krishnamurthy