Case Study: Amnet Sales Automation

amnet_logo

AMNET provides responsible and effective data driven display advertising, performance marketing and brand campaigns. We fuse smart Demand Side Platform technology and data to improve our service delivery to clients by buying highly targeted multi channel media.

Challenge

Sales Automation was a key challenge for Anmet in early 2015 with many sales processes being handled in outdated tools. Management visibility into new sales and renewals was not accurate which made forecasting revenue difficult and time consuming.  With a complex sales model finding an off the shelf product was not an option, so a solution was required that could be customised to fit the specific needs of the Sales team. The solution needed to be flexible and customisable to handle changes to process and or product as they occur.

Solution

The choice of Salesforce.com as the leading sales automation platform was not a difficult one. Choosing the right partner who could plan, customise and deploy the initial release was critical. Amnet chose WDCi as the implementation partner. Together we designed and released a successful Sales Automation process that included the following key features:

  • Tracking of Campaigns, Advertisers and Insertion orders
  • Quote templates that were created automatically from the platform
  • Tracking of revenue projections by channel or advertiser
  • Handling rate calculations
  • Automated renewals

Since launch in 2015, Amnet has expanded its use of SalesForce to manage client billing as well as to become the source of truth for all business intelligence for the company.

Vikki Pearce, Head of Commercial ANZ noted that “Salesforce has enabled us, as a rapidly growing and ever-changing business to build a stable and effective platform from which to deliver our business objectives and provide a robust and accurate data set. WDCi have been fantastic in supporting us customise the platform to our needs and as we continue to evolve we hope to continue working together closely.”

Wedid:Automating Aged Care Home in SF

Challenges

The main business requirement in the aged care home is streamlining all information to a single point of data as well as providing transparent updates of the home residents. These data can store records as important as medical records, progressive monitoring to fun sharing social updates such as picture sharing among family members accessible via mobile.

Having these data in different systems causes external parties with only partial information of the resident. Optimal care for the resident is compromised.

In addition, as the home care expanded they need to be managed in order to provide a systematic caring service. Data record within each home need to remain private to each home care.

Solution:

  1. Gather all data and understand the origin and process involved
  2. Design the data model and to ensure single point of data but security is not compromised
  3. Leverage on Customer Community to provide updates of the resident to family members

Related Objects Lead, Account (Person), Contact, Other Custom Objects
Components Data modelling, Customer Community, Visualforce Page, Apex Trigger
Complexity Medium

Wedid: Campaign Response Tracking

Challenges

Faced with some restrictions using Enterprise Edition this client requested multiple automatons in regards to tracking their clientele responses for running campaigns targeting existing clients response on prospective products being added to the Product List (assessing product validity) using the campaign object.

Solution:

By creating a custom object and reusing the same process builder where applicable around the campaign object, the limitations within Enterprise edition were able to be maintained, from creating child records to assigning tasks to the different account owners, campaign member status update, updating and closing all tasks associated once the information had been collected.

Related Objects Campaign, Campaign Members, Custom Collection Object
Components Process Builder, Enterprise Limitations
Complexity Medium

The New RIO Inventory 3.2

Hello folks, thanks for your support with RIO Inventory all these years. We are pleased to present to you our latest release, version 3.2. You asked and we delivered, this release now has the following important features:

  • Inventory batching
  • Serialised inventory
  • Picking slips
  • Ability to transfer inventory between warehouses

These features allow you to manage your inventory better in Salesforce, especially when it comes to multiple warehouses inventory management. Feel free to take a look at this page for more details on how this can help with your daily inventory management.

If you are new, don’t worry. You can always install the app into your sandbox or developer instance via AppExchange and feel the zen.

For more other goodies in 3.2, please visit our release notes.  Want new features?  Please let us know, you can contact us at support@wdcigroup.net.

Wedid:BCI Data Modelling in SF

Challenges

Data intelligence and leads coming from BCI are the core sales opportunity in the business of our chemical construction site service customer.

These leads are externally provisioned through CSV files and it needs to be tracked in Salesforce so that it can blend into other business data. The convergence of these data will help the customer form a powerful source of report in the forecast and finance area.

The current challenge is these data are residing out of Salesforce system.

Solution:

  1. Review through the files given by BCI and review the data that need to be in Salesforce
  2. Identified the core objects – Project, Firm, Contact, Contact Role
  3. Work through a model to connect these objects as part of Standard/Custom object and link with Opportunity to track any finance information
Related Objects Account, Contact, Project (CO), Opportunity, Opportunity Contact Role
Components Data modelling
Complexity Low

Salesforce: Check Null/Empty Value of A Field

In Salesforce, it is very common that we build formula field, validation rule or workflow rules to act on the data of a field and sometimes we would like to validate on an empty value. In Salesforce formula editor, there are two functions: ISBLANK() and ISNULL(). The question here is, which is the correct one that we should use?

ISNULL()

This is an old function that works with most of the field types except Text, Text Area and Long Text. (reference)

ISBLANK()

This is a new function that Salesforce introduce to support the empty field validation on Text fields. It also works with other field types. According to Salesforce documentation, it is recommended to use this function instead. (reference)

Please note that if you are referencing a formula field with the option “Treat blank fields as zeroes”, the formula field will give value zero and won’t be considered as null.

Above is how you can validate an empty field in formula editor. How can we achieve the same in Apex?

Text Fields

There are a few options to validate empty text fields in Apex:

Use String.isBlank() method. This will return true if the text field is empty.
Compare the text field to an empty string, e.g, Account.Name == ”. You shouldn’t use NULL as text field in Salesforce is never considered NULL. Note that String variable can still be considered NULL.

Checkbox Fields

This can be compared by using TRUE or FALSE. This is because an unchecked checkbox field is considered as FALSE instead of NULL.

Other Fields

You should compare the field value to a NULL.

WDCi Is Hiring in Caloundra

Who are we?

  • We are an IT consulting firm that specialise in the Salesforce.com platform.
  • We do Architecture, Implementation, Product Development and Support.
  • In addition to Salesforce we deliver Data Integration and Data Migration services using Dell’s Boomi platform.
  • We have offices in Sydney, Caloundra and Kuala Lumpur. We are hiring in Caloundra.

Who are we hiring?

  • Support Engineer (s) – 1 x graduate level, 1 x with some experience.
  • A graduate Developer – ideal for a new IT graduate looking for a development role.

How do I apply?

Questions?

  • Send us an Email or visit our office upstairs in the Suncity Centre at 74 Bulcock St.

CASE STUDY: Sales and Asset Tracking

Waringa Distribution (http://www.agrispread.com.au/ and http://www.elmersmfg.com)    imports, sells and distributes the Agri-Spread range of Spreaders and Elmer’s range of Chaser Bins and Transfer Tracks.

1600 Bushel HaulMaster Agrispreader256

Challenges

There was a requirement to implement a solution that met the following criteria:

  1. Ability to retire the excel based and access based solution that was in place.
  2. A cloud solution accessible from anywhere.
  3. Ability to track Agri Spreaders and Chaser Bins that are sold by Distributors or sold directly – in multiple countries.
  4. Ability to track machine level detail, including location and warranty details.

Solution

Waringa Distribution chose to implement Salesforce.  WDCi was engaged to customise Salesforce to store the above information and provide reporting information on the data in Salesforce.

The recent upgrade to licensing for Professional Edition also allowed for the ability to use record types to segregate sales for AgriSpreaders and Chaser Bins.

The components of the solution were:

  • Salesforce Professional Edition.
  • Customisations to store detailed Machine and Distributor information.
  • The build of a configuration tool to configure the spreader to customer requirements.
  • Tracking of orders from manufacturer to consumer.
  • Asset information, including the tracking of  warranty status for the asset.  
  • Case management to track warranty issues.

Lyndon Crudeli, General Manager of Waringa Distribution noted that “Implementing Salesforce has enabled Waringa Distribution to continue to expand our business and provide a platform that will enable continuous growth to happen.”

We Did: WordPress WooCommerce and Netsuite

Challenges

Customer is hosting a website where visitor are allow to register and login. Visitor and existing users are allow to make purchase through the website too but the transactions and payment would need to be tracked through Netsuite.

Solution:

Purpose To sync product, website users and sales transaction between website (WordPress WooCommerce) and Netsuite
Applications WordPress (WooCommerce)
Netsuite
Versions WordPress
Netsuite
Tool Boomi
Information Netsuite Non-Inventory Sales Item > Woocommerce Product
Woocommerce User > Netsuite Customer
Netsuite Customer > Woocommerce User
Woocommerce Orders > Netsuite Sales Order
Netsuite Sales Order > Woocommerce Orders
Data Formats JSON and XML
Volumes ~100/day
Process When customer register a login through website, customer information needs to be stored in Netsuite as well. When a items are added and maintained in Netsuite, the product needs to be made available in the website for people to purchase. And when customer make a purchase through website, the transaction needs to be in returned tracked in Netsuite for shipping and reporting purposes.
Schedule Every 2 minutes
Complexity Medium

Salesforce: Visualforce CommandButton to Bypass Validation/Required Fields

In Visualforce apex:CommandButton component, there is an attribute called “immediate” that allows us to invoke the controller action bypassing the validation rules associated with the fields (especially those that mark with required=”true”) in a visualforce page. I have been using this attribute alongside with the cancel button which does not required any input from users. Until recently, I noticed that the attribute no longer working as expected in one of my visualforce page development. For example:

<apex:page standardController="Account" extensions="AccountExt" standardStylesheets="true" applyBodyTag="false" docType="html-5.0" title="My Wizard">
	<apex:form id="theform" >
		<apex:pageBlockButtons >
			<apex:commandButton value="Cancel" action="{!cancel}" immediate="true"/>
			<apex:commandButton value="Search" action="{!doSearch}" />
		</apex:pageBlockButtons >
		
		<apex:pageBlockSection title="Test">
			<apex:inputfield value="{!account.Type__c}" required="true"/>
		</apex:pageBlockSection>
	</apex:form>
</apex:page>

After some research, I realised this is actually related to the behavior in HTML 5 (doctType=”html-5.0″) where it will automatically validate all the required fields that I have in a form. So, how can we overcome this?

Option 1 (Form level)

You can set an HTML 5 attribute called html-novalidate=”novalidate” at the form level. However, this will disable the validation for all buttons. You should only use this if you have your own validation logic implementation in the controller/extension class.

<apex:form id="theform" html-novalidate="novalidate" >

Option 2 (Button level)

You can have the similar attribute next to the command button to disable the validation on the button specifically.

<apex:commandButton value="Cancel" action="{!cancel}" immediate="true" html-formnovalidate="formnovalidate" />

This is a better option to go for as we do not need to worry about implementing the additional logic to validate the user input.