Category Archives: AGILE Tools

Why and how to keep your Salesforce Org clean of Duplicates

Mirketa Salesforce Org clean of Duplicates

Customer data is the soul of an organization. Quality data is priceless and acts as a driver of high productivity and good decision making. Managing Quantity and Quality parallelly has always been a challenge. Same is the case with data now-a days, as the data volumes grew rapidly, the data quality went down, posing a serious challenge in maintaining the sanctity of databases. This challenge of avoiding data duplicity and keeping the orgs clean is faced by almost every company and although it may seem like a trivial issue, the impact these duplicates have on businesses cannot be looked down upon.

All the marketing and service activities revolve around the customer database that a company has.
Duplicates prevailing in a system means:

    • Increased cost for marketing campaigns.
    • Bombarding the same customers with same information multiple times, eventually degrading the brand image in the minds of customers.
    • Reduced Operational Efficiency.
    • Confusion among the sales reps while processing requests.
    • Bad service experience encountered by the clients.
    • Bad Data leads to Badly informed business decisions.
    • Increased challenges in maintaining the database or moving the current system to a new one.

What causes these duplicates:

    • Human error – Sales Rep entering duplicates
    • Multiple sources capturing the same information
    • No instrument to restrict duplicates from entering the system

Some pointers on how you can keep your Salesforce org clean:

    • Think of all the ways the customer data enters your CRM system: Manual customer data Entry by Sales Reps, bulk customer data upload, Automated Lead Sources like web to lead etc. and ensure that you have them all covered to avoid duplicates entering your CRM system.
    • Keep a mandatory field on each Object which handles your customer data, one which is relevant to your business operation like a phone number or an email on Lead. For Standard fields have your tech. team enable Duplicate Rules & Matching rules to avoid duplicates formation and for Custom fields check ‘do not allow duplicates’ so that Salesforce won’t accept duplicity against that field on the Object and sales rep won’t be able to create duplicate records.
    • If your mandatory field is a picklist field, ensure that you enable restricted picklist for that field as Salesforce allow values coming in from external systems other than the field picklist values also.
    • Monitor the data that your CRM system is getting from multiple sources to keep an eye if anything wrong is happening around your data so to handle the situation in time. Generally, companies don’t realize this until they have loads of dirty data existing in their CRM systems and then try to recuperate from the damage.
    • Ensure that you have clean data while uploading data in bulk into your system.
    • Define all your lead sources clearly and distinctly, this can avoid a lot of confusion when leads start to pour-in from multiple channels.
    • Make sure your Sales Reps fill all the necessary customer details in the form and instruct them not to save a half-filled form.
    • Cloning the records should not be a general habit of the team, this leads to human error of saving the cloned records without making relevant changes and thus creating duplicates. You can even disable the Clone button from the layout if you want to.
    • Use standard Salesforce Reports for tracking duplicates entering your system (if any) are essential to your business or not.
    • With large volumes of data coming in your system, some duplicates are anyway bound to enter your database, one way or the other. Use a deduplication tool, this can really make your life easy by keeping your Salesforce org clean of duplicates.

Check out Advitya – The Perfect Duplicate management app for Salesforce. Advitya solves all your data duplicity problems and can save you time and effort in keeping your org clean.

Keeping your Salesforce Org clean is not a one-man job or a onetime activity. It calls for a collective effort and is an ongoing process, you strive to keep your Database clean and perfect which eventually gives you returns in terms of smooth Operations and Profits.

All the best in keeping your Org. clean!!

Posted in AGILE Tools, DataLoader, Learn Salesforce, MirketaInc, Salesforce, salesforce administrator, salesforce customization, Salesforce Support Packages, salesforce Tips & Tricks, Salesforce.com, sfdc, Uncategorized. Tagged with , , , , , , , , .

Will your Agile Transformation be an Epic Failure?

AgilePicture-2

Image credit: Miranda Kumar (at age 8)

For the last 20 years I have been in the business of helping companies get better at developing software products. I started my career believing that the highly structured processes like CMM Level 5 will magically take care of the software projects woes. After two disappointing years, I moved on to Rational Unified Process (aka RUP). After another 6-7 years of disappointments with RUP the natural progression in my thinking and (coincidently) software development process evolution took me down to the path to Agile. My success with Agile processes has made me a believer in the process.

Unfortunately, many of the teams that start their journey towards the Agile land don’t ever reach there. Across the board I have found some common traits in the teams that failed with their Agile transformation effort. In this article I have shared all of them. Feel free to add more from your experience in the comments below.
Continue reading

Posted in Agile, AGILE Tools, JIRA, JIRA on Demand. Tagged with , , , , .

How To Create Your First Rest Web Service

What is web services?

mirketa-webservices1

 

web service is a piece of software that makes itself available over the internet and uses a standardized XML messaging system. XML is used to encode all communications to a web service. For example, a client invokes a web service by sending an XML message, then waits for the corresponding XML response.

There are mainly two types of web services.

    1. SOAP web services.
    2. RESTful web services.

 

Components of Web Services

    • SOAP (Simple Object Access Protocol)
    • UDDI (Universal Description, Discovery and Integration)
    • WSDL (Web Services Description Language)

 

Soap web services: – SOAP is XML based protocol. It is platform and language independent. By using SOAP, you will be able to interact with other applications designed in different programming languages.
Continue reading

Posted in Agile, AGILE Tools, HTML/CSS, HTTP, J2EE, JAVA, Java Script, REST API, WEB SERVICES, XML. Tagged with , , , , , , , , .

Programmatically Create Select Type Custom Field In Jira

In order to create a custom field type, you should be aware of basic plugin development.

Please follow the following steps to create an advanced custom field type in Jira.

    1. Create a basic Jira plugin skeleton. For creating Jira Plugin please refer to the given linkhttps://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project/create-a-helloworld-plugin-projectAfter creating a Basic plugin skeleton modify your atlassian-plugin.xml and add the following code in your atlassian-plugin.xml.
    2. After creating a Basic plugin skeleton modify your atlassian-plugin.xml and add the following code in your atlassian-plugin.xml. <customfield-type key=”Jira-Cf-Type-field” name=”Jira-Select CFType” class=”com.atlassian.jira.plugin.customfield.JiraCustomFieldType”><description>Create Your Own Advance Custom Field Type</description>                             <resource type=”velocity” name=”view” location=”templates/plugins/fields/view/view-basictext.vm”/><resource type=”velocity” name=”edit” location=”templates/edit- jiraselectcftype.vm”/><resource type=”velocity” name=”xml” location=”templates/plugins/fields/xml/xml-basictext.vm”/>

      </customfield-type>

                                          

      com.atlassian.jira.plugin.customfield.JiraCustomFieldType – class which extends an available CustomField Class to provide an entry point for the custom field.
      Continue reading

Posted in Agile, AGILE Tools, J2EE, JAVA, Java Script, JIRA, JIRA on Demand. Tagged with , , , .

Qualities of a Good Programmer

Programming is a very challenging domain as it requires a lots of patience and concentration. Before learning any programming language, one must have the attitude to not give up till one finds the solution. Programming language is just a way to solve a problem but logical skills and ability to solve the problem are the basic requirements of a good programmer.

Following are 7 essential qualities of a good programmer:
Continue reading

Posted in Agile, AGILE Tools, JAVA, salesforce administrator. Tagged with , , , .

OAUTH 2.0 AUTHENTICATION FOR THIRD PARTY APPLICATIONS

Most of the APIs now-a-days incorporate oauth 2.0 authentication. It is not as complicated as it may seem at times, provided the right links and documentation are found. Microsoft APIs are extremely helpful and useful, but to access them from a third party application is when its needed, for the entire process of registration and access token retrieval, to be followed; to comply with the oauth authentication in place.

For office365 (2016) APIs the links that would help access these APIs would be of the format https://outlook.office.com/api/{version}/me/

me – represents the logged in user
{version} – v2.0 or v1.0
/… – events (for outlook calendar API)

The first step, as hundreds of websites mentions, is to register the application. To be a little more comprehensive on this point, I would like to mention that it is not required to deploy any kind of code or application into the registration portal.

https://apps.dev.microsoft.com is free if you have access to a Microsoft office account.

The registration process is a way of letting Microsoft know that a particular app is going to access its APIs. It is a good practice to name the app appropriately as it will appear on the screen when the application, that is being developed, navigates to the login page.

mirketa_oAuthAppRegistration

Application id is the client id which is needed to be provided in the headers when requests are made for authorisation code and access token.
Continue reading

Posted in Agile, AGILE Tools, J2EE, JAVA, Java Script, JIRA, UI, WEB SERVICES. Tagged with , , , , .

Introduction to Version Control System

A version control system, to a great extent, is based around the concept of tracking changes that happen within a collection of directories or files.

A version control system (VCS) allows you to track the history of a collection of files. It supports creating different versions of this collection where each version captures a snapshot of the files at a certain point in time and the VCS allows you to switch between these versions as well. These versions are stored in a specific place, typically called a repository.

The process of creating different versions (snapshots) in the repository is depicted in the following infographic. Please note that this picture fits primarily to Git. Other version control systems like Concurrent Versions System (CVS) don’t create snapshots of the files but store file deltas.

mirketa-git-VCS

  Continue reading

Posted in Agile, AGILE Tools, Apache Ant, J2EE, JAVA, Java Script, JIRA, JIRA on Demand, MirketaInc. Tagged with , , , , , , .

Introduction to Single Sign On (SSO) and SAML

Single Sign On (SSO) is a facility for all users by which they can manage their all accounts using one login they no need to do manage more accounts (User Id and Passwords). In SSO user gain access in multiple sites using just single log in. Single Sign On (SSO) is independent software system.

Mirketa-Single-Sign-On

Continue reading

Posted in Agile, AGILE Tools, apex develeopment, force.com app development, HTML/CSS, JIRA, Salesforce, Salesforce Challenges, Salesforce cloud Implementation, salesforce community implementation, salesforce connectors, salesforce consultant, salesforce Tips & Tricks, Salesforce.com, sfdc, Team Collaboration, think build transform.

Add Atlassian to your Process – Startup Guide

As a newbie in plugin development for atlassian products suite, I faced many obstacles and challenges while developing a simple plugin, from setting up the development environment, reading APIs to setting up the fast development process. So, I decided to write this simple, step-by-step and descriptive blog for future plugin developers to take advantage of my endeavor and experience with atlassian plugin development. In this blog I will cover- Setting up the development environment out of:

 

blog

Continue reading

Posted in Agile, AGILE Tools, JIRA, process engineering.

Atlassian Development: Create an issue in Jira from your plugin

To create an issue in Jira, first you need to import the following classes in your java file

import com.atlassian.crowd.embedded.api.User;
import com.atlassian.jira.bc.issue.IssueService;
import com.atlassian.jira.bc.issue.IssueService.CreateValidationResult;
import com.atlassian.jira.bc.issue.IssueService.IssueResult;
import com.atlassian.jira.issue.IssueInputParameters;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.security.JiraAuthenticationContext;
import com.atlassian.jira.util.ErrorCollection;
import com.atlassian.jira.component.ComponentAccessor;

After importing these file in your java files, write the below code in the function where you want to create an issue

First create an object of IssueService class from the class ComponentAccessor

IssueService issueService = ComponentAccessor.getIssueService();

Create an object of IssueInputParameters, later these parameter will be validated

IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();

Set the parameters to the issueInputParameters object, most important parameters are:

projectId-> Id of the project to which you want the issue to add

reporterId->Reporter of the issue like admin etc.

assigneeId->User to whom the issue is assigned

issueInputParameters.setProjectId(projectId).setIssueTypeId(“1”).setSummary(“issue summary”)
.setReporterId(reporterId).setAssigneeId(assigneeId).setDescription(“issue description”)
.setStatusId(“1”).setPriorityId(“2”);

Now we need to fetch the current user, by the following lines, we are fetching the logged in user

JiraAuthenticationContext authenticationContext = ComponentAccessor.getJiraAuthenticationContext();
User user = authenticationContext.getLoggedInUser();

Validate the issueInputParameters and user

CreateValidationResult createValidationResult = issueService.validateCreate(user, issueInputParameters);

if createValidationResult return true, it means all is well so far then

MutableIssue issue=null;

IssueResult createResult = issueService.create(user, createValidationResult);

if (createResult.isValid()) {
issue = createResult.getIssue();
} else {
Collection<String> errorMessages = createResult.getErrorCollection().getErrorMessages();
for (String errorMessage : errorMessages) {
//wite the exception in logs
}
}

if createValidationResult return false, then fetch the exceptions and errors and write these to the logs

Collection<String> errorMessages = createValidationResult.getErrorCollection().getErrorMessages();
for (String errorMessage : errorMessages) {
//wite the exception in logs
}
Map<String, String> errors = createValidationResult.getErrorCollection().getErrors();
Set<String> errorKeys = errors.keySet();
for (String errorKey : errorKeys) {
//wite the error in logs
}

Cheers

 

Posted in AGILE Tools, JIRA.