Staff Augmentation …. at its Peak !!!

Nanostuffs network has grown wide since 2015 with becoming Authorized vendors to several renowned companies to share our skilled resources on contract basis. Both Developers/Consultants & adept iOS/Android mobile apps developers. We have been augmenting niche knowledgeable resources with companies in India & out of India, primarily for USA, Australia & UAE. Here are some of such several companies trusting Nanostuffs for on-demand Resource Outsourcing.



Nanostuffs Launches World’s 1st Online Staff Augmentation Platform

Worlds 1st Staff Augmentation Platform. Rent Employees & Mutually Benefit. is currently worlds only unique B2B & C2B portal helping companies do Staff Augmentation. Currently 1000s of companies are requiring resources with niche skills but very difficult to find appropriate experience & knowledge, and that too immediately. Additionally many times permanent hire is also not required. would help such needy companies find resources easily.  Companies or Individuals who have such adept people/skills with them can augment & earn more funds using our website & apps. Not only IT but this platform is applicable to any & every industry. helps needy companies find resources easily.  Companies or Individuals who have adept people/skills with them can augment & earn more revenue using our FREE website & apps.




Duplicate Management in Salesforce

Duplicate Management in Salesforce is very easy. You just have to create a Matching rule on your object which will decide the criteria to detect Duplicates. Then you have to create a Duplicate Rule on your object which will decide what actions to trigger when duplicates are found.

In Matching Rule you have to select the object on which you want duplicate detection, enter name for the rule, Unique name gets automatically filled up replacing spaces with Underscore character, you can give description for the rule after that and the most important thing is to select the Criteria for Duplicate checking i.e. which field/s need to be checked for duplicate values. You can also give and /or conditions with the criteria to meet your requirements.

eg. you can check if the FirstName and email Or LastName and email  fields are duplicated inside Leads.

In Duplicate Rules you can select Record Level Security whether you want to Bypass sharing rules or you want to Enforce sharing rules. After that you can select Action on Create and Edit, whether you want to allow duplicates or you want to block them throwing an error. Along with this you can also do reporting on duplicates and throw error even after allowing duplicate creation. After this you need to select the Matching Rule for your Duplicate Rule.

You can also provide filter Criteria in you Duplicate rule which will check only those records which fall into this criteria for duplication.

“h is not a number” Error in Salesforce For Outlook Side Panel

When you have configured your Salesforce to Outlook successfully and still you get an error on your Side Panel in Outlook that “h is not a number”, then that issue is because of Old Internet Explorer version on your computer.

To solve this Issue you just have to update your Internet Explorer to a version greater than version 11.

This error occurs because Salesforce for Outlook Desktop Application uses IE as its connection to the Internet. So if the IE version is older than 11 then it does not provide response to the Salesforce for Outlook Desktop Application, thus resulting in an error.

Lightning Pages vs VF Pages

Lightning is available in GA from this release .You can ofcourse approach via lightning .Some of the things you need to be extra careful are here

1)No router support in lightning yet and hence its extremely difficult designing navigation at this point .You will end up writing lot of code just to achieve navigations

2)Custom lookups you can get from developerforce blogs

3)Toggling visibility is not so difficult

4)Supporting jquery in lightning is possible but you need to be careful when using this and would recommend to use less as possible

5)Spinning a list is not so difficult with excellent repeater .

6)Currently to make experience seamless lightning expereince also needs to be turned on for all your users .

Since there will be additional learning and experimenting take decision based on budget and time lines .

Building in lightning is like giving awesome quality work with lot of resusable at cost of little more time .

‘Immediate’ attribute for commandbutton and commandlink in VF page

This is basically used when we don’t want our validation rules to be fired during any server request.
It is a Boolean value that specifies whether the action associated with this component should happen immediately, without processing any validation rules associated with the fields on the page. If set to true, the action happens immediately and validation rules are skipped. If not specified, this value defaults to false.
We generally use it to make functionality of ‘Cancel’ button or ‘Back to Page’ button, where we don’t want validation rule to get executed. If we don’t use immediate=true then on click of cancel button also, validation rules will get executed.

—————————————— VF Page ————————————————-

<apex:form >
      <apex:pageBlock >
      <apex:pageBlockButtons location="both">
                  <apex:commandButton value="Save" action="{!saveAccount}"/>
                  <apex:commandButton value="Cancel" immediate="true" action="{!cancelPage}"/>
      <apex:pageBlockSection >
             <apex:inputField value="{!}"/>
             <apex:inputfield value="{!account.Type}" required="true"/>
      <apex:outputText value="Account Added" rendered="{!isAdded}"/>
      <apex:outputText value="Account Not Added" rendered="{!isCancel}"/>

—————————————– Controller ———————————

public with sharing class AccountExtension {
public Boolean isAdded{get;set;}
public Boolean isCancel{get;set;}
public AccountExtension(ApexPages.StandardController controller) {
isAdded = false;
isCancel = false;
public pagereference cancelPage(){
isAdded = false;
isCancel = true;
return null;

public pagereference saveAccount(){
isAdded = true;
isCancel = false;
return null;

Integrating Salesforce with Formassembly

To integrate Salesforce with Formassembly to get data from Web forms into Salesforce object you need to buy the package from the website They will provide you with an URL for your organisation and you can login from there using the credentials provided by formassembly.

After you Login into the website you can create forms according to your need with any content you want. You have various types of content you can add into the form to get correct data from the Users of your Website where you will upload the form by using the Form URL and adding it to the Iframe in your website.

<iframe src=”URL for your form goes here” height=500 width=500>

After you are done with designing your form comes the tricky but easy part of connecting the form to Salesforce. The Data submission is event based in formassembly. For that part you need to click on the Connectors tab of your form.

Formassembly ConnectorYou have 4 events on which can send data to salesforce. 1-when the user is viewing,2-when user saves for future submission,3-when user submits the form,4-post submission.

You can add a connector according to your need to any event you want and then configure the connector.

Formassembly Connector Config

In the configurations you need to enter the credentials for your salesforce organisation and then enable the connector. After that you need to add the instructions for the data you want to send to salesforce. You can Insert,Update,or Upsert data into salesforce according to the conditions you provide. You can also manipulate the data before saving it in to the salesforce object. Lookups on existing data in salesforce is also possible in the instructions part of formassembly.

Formassembly Connector Authentication


Lookups on existing data in salesforce is also possible in the instructions part of formassembly.

Formassembly Connector Instructions

Integrating Salesforce with Formyoula

To integrate Salesforce with Formyoula you need to install the Formyoula App to your Salesforce organisation and also you need to buy licenses for number of users you want to use with the Mobile App of Formyoula.

Next step would be creating forms in Formyoula, for that you can either access Formyoula directly from your Salesforce org, but I would suggest that you go on Formyoula website – and login with Salesforce Credentials


FormyoulaOn this screen click on Sign in with Salesforce and then it redirect to the salesforce organisation and you can enter your salesforce credentials over there.

Next you need to create forms in formyoula. To create forms you have 2 options create forms directly from scratc and create a form according any salesforce object you have.Formyoula-New Form

The New Form button will create a blank form for you to configure and the other button “New From Salesforce Object” will create a form with all the fields you have in the object you select in the later steps.

Once you click on “New From Salesforce Object” Button it will take you to the next screen where you can select the object and fields you want to get data from mobile forms into salesforce.

Formyoula Create FormHere you select the fields and you can also select if you want to push the updates that the user does to the form into salesforce.After you are done with your selections you click on create form. This will create a form with all the fields and correct mappings.

If you wish to configure the fields on the form according to your need and want to add some more fields to the form you can anytime edit the form and add the mappings in the Connector for that form. To do the mappings you have to click on the Cloud symbol besides your form name under the heading Connections on the dashboard.Formyoula connector

After this you just map the fields in form with the fields in Salesforce and you have a basic form ready which takes values from a mobile device using Formyoula Application and store it in the Salesforce Object you have selected.




Action Link Template

In Action Link Template you can instantiate action link groups with common properties from Chatter REST API or Apex. You can package templates and distribute them to other Salesforce organizations.

An action link is a button on a feed element. Clicking an action link can take a user to a Web page, initiate a file download, or invoke an API call to Salesforce or to an external server. An action link includes a URL and an HTTP method, and can include a request body and header information, such as an OAuth token for authentication. Use action links to integrate Salesforce and third-party services into the feed so that users can take action to drive productivity and accelerate innovation.


Steps for Action Link Templates.

  1. From Setup, click Create | Action Link Templates.
  2. Click New.
  3. Enter the Name of the template. This name is displayed in the list of action link group templates.This is the only action link group template value you can edit after the action link group template has been published.
  4. Enter the Developer Name. Use the Developer Name to refer to this template from code. It defaults to a version of the Developer Name without spaces. Only letters, numbers, and underscores are allowed.
  5. Select the Category, which indicates where to display the instantiated action link groups on feed elements. Primary displays action link groups in the body of feed elements. Overflow displays action link groups in the overflow menu of feed elements.If an action link group template is Primary, it can contain up to three action link templates. If an action link group template is Overflow, it can contain up to four action link templates.
  6. Select the number of Executions Allowed, which indicates how many times the action link groups instantiated from this template can be executed. (Action links within a group are mutually exclusive.) If you choose Unlimited, the action links in the group cannot be of type Api or ApiAsync.
  7. (Optional) Enter the Hours until Expiration, which is the number of hours from when the action link group is created until it’s removed from associated feed elements and can no longer be executed. The maximum value is 8760.
  8. Click Save.
  9. Click New to create an action link template.The action link template is automatically associated with an action link group template in a master-detail relationship.
  10. Select the Action Type.Values are:
      • Api—The action link calls a synchronous API at the action URL. Salesforce sets the status to SuccessfulStatus or FailedStatus based on the HTTP status code returned by your server.
      • ApiAsync—The action link calls an asynchronous API at the action URL. The action remains in a PendingStatus state until a third party makes a request to /connect/action-links/actionLinkId to set the status to SuccessfulStatus or FailedStatus when the asynchronous operation is complete.
      • Download—The action link downloads a file from the action URL.
      • Ui—The action link takes the user to a web page at the action URL.
  11. Enter an Action URL, which is the URL for the action link.For a UI action link, the URL is a Web page. For a Download action link, the URL is a link to a file to download. For an Api action link or an ApiAsync action link, the URL is a REST resource.Links to resources hosted on Salesforce servers can be relative, starting with a /. All other links must be absolute and start with https://. This field can contain binding variables in the form {!Bindings.key}, for example,{!Bindings.itemId}. Set the binding variable’s value when you instantiate the action link group from the template, as in this Chatter REST API example, which sets the value of itemId to 8675309.
    POST /connect/action-link-group-definitions
         "templateId" : "07gD00000004C9r",
         "templateBindings" : [
               "value": "8675309"

    This field can also contain context variables. Use context variables to pass information about the user who executed the action link to your server-side code. For example, this action link passes the user ID of the user who clicked on the action link to take a survey to the server hosting the survey.                                                                                                                actionUrl={!userId}

  12. Enter the HTTP Method to use to make the HTTP request.
  13. (Optional) If the Action Type is Api or ApiAsync, enter an HTTP Request Body.This field can contain binding variables and context variables.
  14. (Optional) If the Action Type is Api or ApiAsync, enter HTTP Headers.This field can contain binding variables and context variables.If an action link instantiated from the template makes a request to a Salesforce resource, the template must have a Content-Type header.
  15. (Optional) To make this action link the default link in the group (which has special formatting in the UI), select Default Link in Group. There can be only one default link in a group.
  16. (Optional) To display a confirmation dialog to the user before the action link executes, select Confirmation Required.
  17. Enter the relative Position of the action link within action link groups instantiated from this template. The first position is 0.
  18. Enter the Label Key. This value is the key for a set of UI labels to display for these statuses: NewStatus, PendingStatus, SuccessfulStatus, FailedStatus. For example, the Post set contains these labels: Post, Post Pending, Posted, Post Failed. This image shows an action link with the Post label key when the value of status is SuccessfulStatus:                                                       Untitled11
  19. (Optional) If none of the Label Key values make sense for the action link, set Label Key to None and enter a value in the Label field.Action links have four statuses: NewStatus, PendingStatus, SuccessStatus, and FailedStatus. These strings are appended to the label for each status:
      • label
      • label Pending
      • label Success
      • label Failed

    For example, if the value of label is “See Example,” the values of the four action link states are: See Example, See Example Pending, See Example Success, and See Example Failed.

    An action link can use either a LabelKey or Label to generate label names, it can’t use both.

  20. Select User Visibility, which indicates who can see the action link group.If you select Only creator’s manager can see, the manager is the creator’s manager when the action link group is instantiated. If the creator’s manager changes after the action link group is instantiated, that change is not reflected.
  21. (Optional) If you selected Only Custom User Can See or Everyone Except Custom User Can See, enter a Custom User Alias.                                                                                                                        Enter a string and set its value when you instantiate an action link group, just like you would set the value for a binding variable. However don’t use the binding variable syntax in the template, just enter a value. For example, you could enter ExpenseApprover. This Chatter REST API example sets the value of ExpenseApprover to 005B0000000Ge16;
    POST /connect/action-link-group-definitions
         "templateId" : "07gD00000004C9r",
         "templateBindings" : [
               "value": "005B0000000Ge16"
  22. To create another action link template for this action link group template, click Save & New.
  23. If you’re done adding action link templates to this action link group template, click Save.
  24. To publish the action link group template, click Back to List to return to the Action Link Group Template list view.You must publish a template before you can instantiate an action link group from it in Apex or Chatter REST API.
  25. Click Edit for the action link group template you want to publish.
  26. Select Published and click Save.


Scatter Chart

Scatter chart we can find in dashboard components.

It is used to display data from two levels of grouping to plot two numerical summaries against one another.

For example, to see how stage duration correlates with the number of activities for opportunities, group your report by Opportunity Name and plot the scatter chart by the grouping. Then set X-Axis on the chart to Record Count and Y-Axis to Stage Duration. The chart will show a dot for each opportunity. You can tell at a glance if the stage duration is shorter for opportunities that have more activities.

Because a scatter chart shows data grouped by summarized values, you need at least one grouping in your report. Choose a report format that allows groupings, such as, summary, matrix, or joined. You also need at least one summarized field in the report to show data on the axes of the chart. Otherwise, the chart will show record count on the axes. Scatter charts automatically show data from the source report or you can manually choose what information to display for groupings and summaries.


If your source report has The X-axis automatically displays The Y-axis automatically displays
No summary Fields Record Count Record count.
One or more summary fields First summary 1)       Either record count or the second summary in report charts.

2)       The first summary in dashboard charts even if the source report has multiple summaries. But you can manually choose a different summary to show on the axis.


While Setting scatter chart –

  • we can display maximum number of dots to show on the chart –

For Example we set it to 10 dots these are the top 10 ascending values in the grouping used by the Plot By field of the scatter chart.

  • we can show details such as values or labels when hovering over chart.


Limitations of Using Scatter chart :-

It doesn’t show tabular reports.

You can’t sort by labels or values.

You can only change how Y-axis units are displayed.

You can manually define the range for Y-axis alone.