Tag Archives: integration

Wedid: Salesforce Skedulo Case Integration


This companies main revenue source is derived from the repair services and additional products they provide to the commercial and residential business.

The technicians are required to repair items, keep track of replacement products issued to the customers, collect signatures, take images of the issues found, advise the next technician to onsite of the job requirements and what they foresee the next technician will be required to complete.

The challenge for this solution was that there would be up to 3 job visits, each job visit containing data that would need to be passed from one technician to another, without any phone or email communication.


In the case, we used Apex trigger in conjunction with Skedulo and a custom Visualforce page to send the user to the Skedulo Web Browser for scheduling.

We used standard and custom fields created in Salesforce and Skedulo to capture some of the following data:

  • Products used
  • WHS issues identified or not
  • Signature Collected
  • Marketing Questions answered
  • Contact Details checked and updated
  • Images of site collected
  • Any expenses

There was a two-way sync with different trigger points between Skedulo and Salesforce allowing the data to flow back and forth.

Integrating the case with Skedulo enabled the client to automate communication between their field technicians and administration staff, reduce the paperwork created from each job, have a live status update running on each job/case for an enriched customer service and communication experience.

Related Objects Case, Skedulo Job, Product, Pricebook, Pricebook Entry
Components VisualForce, Trigger
Complexity Medium

Need your Salesforce Inventory linked to Xero or Saasu?

Want to load data from Xero or Saasu?

We’ve added more functionality to our highly successful product, RIO Readymade Inventory Plus. You can now transfer data from Xero or Saasu to RIO Readymade Inventory Plus.

Can I use other csv data files?

Yes! The program can also handle any csv file in the required format.

How does it work?

  1. Send us an email at support@wdcigroup.net and we’ll send you the job.
  2. The upsert uses Skyvva data loader. Skyvva can be downloaded for free.
  3. Install Skyvva (this app is available on Appexchange).
  4. Install our job
  5. Download the data from Xero/Saasu
  6. Follow the instructions to upload your data to Salesforce.

What if I need some help?

Videos and documentation are available here.

Build on Salesforce features. Can I automate it?

Subscribe to Skyvva and you can email the data to automate the process

Integration Tip: Synchronize Picklist Value Part 2 – Externalizing Picklist

We’ve explained the different types of picklist available in our previous blog. This time, we are going to talk about what are the ways to maintain picklist where its value is represented by ID via API.

Usually, we can create a cross-reference table within the integration process to store the picklist values and their corresponding IDs. We can then retrieve the IDs and the matching values via the cross-reference table when needed. However, this approach may require a technical person to maintain the picklist values and IDs, as non-technical person may find it difficult to maintain as it require amending the cross-reference table via the integration process.

Alternatively, we can externalize the picklist cross-reference table within an application instead. For example, when integrating between Netsuite and Salesforce, we can create a picklist cross-reference table in Salesforce to store the picklist values and IDs. When a picklist ID is retrieved from Netsuite, the integration process will be able to retrieve the corresponding values from this table and insert into Salesforce.

With this approach, a non-technical user too can access and maintain the picklist values as well as IDs flexibly.

Why Boomi Advanced Workflow? Part 4: The Cleanse Shape

Compared to the ‘Decision‘ and ‘Business Rules‘ shapes, ‘Cleanse‘ shape is another helpful Boomi Advanced Workflow component that helps to validate document and perform different kind of filtering function to help improves the business requirement. The ‘Cleanse’ shape uses the profile to verify the data base on:-

  • Mandatory value
  • Minimum and maximum length
  • Date and numeric data type and formatting

Let’s look at the following scenario:-

A .csv Contact flat file is require to sync into the Salesforce Contact Object and some additional field requirements/validation were configured in Salesforce Contact Object such as:

  • Last Name field is Mandatory
  • Weight(kg) and Height(cm) fields has maximum length equal to 3
  • BirthDate has data type format equal to yyyy-MM-dd

Imagine that we have three records which look like this:

In the sample spreadsheet above, the first and third records will be inserted successfully and the second record will fail instead with the following simple design:

Some limitations on the design above are:

  • Rejected record, cannot be fixed immediately since the validation is perform during the Salesforce Operation
  • Since the field validation is performed in Salesforce Connector component, extra connector call will be used to handle the fail record as well

Now, lets introduce the ‘Cleanse’ Shape into the design:

The design above shows that good or/and bad data can now be handled in the ‘Cleanse’ shape itself so that:-

  • The good data can be processed normally
  • The bad data can be routed to a different process for further processing (or fixing) instead prior to inserting the data into Salesforce
  • It also help to prevent extra connector call just to handle the bad data in the Salesforce Connector shape itself


Integration Tip: Synchronize Picklist Value Part 1

Different system has different way to manage the picklist values. For integration, it is important to understand how the picklist values are represented in API.

Here are some of the types of picklist values can be appeared as:

1. Value is represented by same value as front-end

For example in Salesforce, the “Ownership” picklist field in Account object:-

Uses the same label value via API as well:-

<select id="acc14" name="acc14" tabindex="13">
	<option value="">--None--</option>
	<option value="Public">Public</option>
	<option value="Private">Private</option>
	<option value="Subsidiary">Subsidiary</option>
	<option value="Other">Other</option>

In this case, when integration process is synchronizing this field, we could just use the same label value as available.

2. Value is represented by ID via API

For example in JIRA, the standard “Priority” field picklist:-

Uses ID instead of the actual label seen in the user interface:-

<select name="priority" id="priority">
	<option value="1" class="imagebacked" style="background-image: url(/images/icons/priority_blocker.gif);">Blocker</option>
	<option value="2" class="imagebacked" style="background-image: url(/images/icons/priority_critical.gif);">Critical</option>
	<option value="3" class="imagebacked" style="background-image: url(/images/icons/priority_major.gif);" selected="">Major</option>
	<option value="4" class="imagebacked" style="background-image: url(/images/icons/priority_minor.gif);">Minor</option>
	<option value="5" class="imagebacked" style="background-image: url(/images/icons/priority_trivial.gif);">Trivial</option>

From the example above, we can see that:-

 Priority Label  Priority ID
 Blocker  1
 Critical  2
 Major  3
 Minor  4
 Trivial  5

For this type of picklist values, we can synchronize this field by maintaining a reference table in the integration process which reflects the actual picklist value and its corresponding ID.

As such, be sure to check the type of picklist involved in your integration process and determine which approach to use instead prior to working on the field mapping.



Salesforce : Using Jitterbit Data Loader to Sync Data

Recently, we have completed a project using Jitterbit Data Loader.

Customers usually ask us when they should use the free tool like Jitterbit Data Loader and when they should use commercial integration platform like Boomi. You can use the following table to compare:

  Use Data Loader
Use Integration Platform
Free Has license cost
Integration logic
Straight forward, can handle minor transformation Can handle simple/complex transformation/logic
A machine is needed to host the software Can choose to deploy in cloud or on a machine
Execution sequence
Free version does not support execution sequence Can handle execution sequence
Data Model
Should use to handle simple data model Can handle simple/complex data model
End Point Most Data Loaders support flatfile (CSV) only. Data loader like Jitterbit can also support Database Can handle various application/end points

Integrating an enrolment process

Schools, Universities and colleges all have a similar challenge. Managing Enrolment processes. Whether it is integrating from a Callista student management system, or moving enrolments to a cloud based solution like RightNow or Salesforce.com the challenge can be how to integrate it.

At WDCi we have tackled this challenge for a number of Education providers and integrated many systems. In a number of cases we have been able to provision users directly into Active Directory from the Enrollment platform, as well as setting up group memberships.

In another example we have facilitated the Marketing to new students by integrating SATAC data into the cloud solution.

In all cases the integrations were performed with class leading saas integration tools from Dell Boomi.

if you would like any more information or a demo please contact us at http://www.wdcigroup.net

Tips: Integrating with Dynamics GP and Salesforce

Integrating Salesforce with Dynamics GP can be a bit of a challenge.  The added complexity of eConnect can make the architecture and diagnosing issues time consuming.

Here’s some tips when thinking about integrating these two systems:

  • What invoicing module is the customer using in Dynamics GP, ie Project, Invoice, SOP
  • Is the customer already running eConnect, if so what version?
  • Does the customer require bi-directional Account synchronization, will one system be the master?
  • Does the customer want inventory information to be synchronized to Salesforce?
  • Does the customer have multiple sites with inventory, if so, how will this be catered for in Salesforce?
  • Is the customer using multi-currency for invoicing?
  • Does the customer require invoice payment information in Salesforce, if so, how will this be retrieved efficiently?
  • What type of Item pricing is the customer using in Dynamics GP?
  • What information from the Dynamics GP Item Price Lists needs to be synchronized to Salesforce?
  • Can Dynamics GP be the master for Items/Products?
  • How will the integration handle void or deleted invoices or credit notes?

Lot’s to think about.  This is definitely an integration that benefits from knowledge of the customer’s configuration in both systems and their use-case before embarking on building out any solution.