All posts by tcheah

Salesforce: Implementing Search Filter on Dayback Calendar When Searching Related To Records

Salesforce Dayback Calendar (Version 1.17) allows you to do a search over the related to record. This is pretty similar to the Salesforce standard event “Related To” lookup.

The default behavior of the lookup is to search across all records based on the object it is configured with. For example the following configuration indicates that the Dayback is related to Opportunity:
related_to_opp

However, there is a requirement that the search should only search on records that fulfill certain criteria. Using the example above, the related to lookup should only list opportunity that is not “Closed Won” or “Closed Lost”. Which without making any changes, it would result as per the following for example:default_search_result

To navigate around this, consider the following:

  1. Create a custom formula field that prints the name of the record (or any other terms that you want to list out as the related to search result) only when it meets the criteria. In our example, our formula should only print Opportunity Name when the Opportunity record is not Closed Won or Closed Lost otherwise it would be left blank. Example Formula: IF(OR(ISPICKVAL(StageName, “Closed Won”), ISPICKVAL(StageName, “Closed Lost”)), NULL, Name) and also assuming the custom field name is called “Dayback_Name_Filter__c”
  2. In Dayback, configure under the “Project Objects” section so that the “Search Field” should reference the formula field instead. This is to tell Dayback, when doing a search against Opportunity (in our example), lookup record based on terms search via this field.
    object_config
    Therefore, Dayback would only search based on the field when values appear on the field plus it matches the search term.

WeDid: Generating Bulk Document in Salesforce

Challenges

The Customer manages their clientele function bookings (i.e. company meetings, birthday party’s, wedding dinners, etc.) within Salesforce. They would like to generate every functions agenda in bulk so they can be distributed to the Staff for reference/preparation prior to the actual events day. The Customer would also like to have the flexibility over defining a range of functions based on date as well as its venue when generating the function’s agenda.

Solution:

Conga Mail Merge is being proposed as the tool to generate the functions agenda in bulk. Additionally, a page to provide Salesforce users the convenience to define the set of functions to bulk generate and print is set up as well.

Related Objects Account, Conga’s Objects and other related Custom Objects (Functions)
Components Custom Link, Custom Fields, Workflows and Conga
Complexity Moderate

Wedid: Enhanced Recurring Event in Salesforce

Challenges

The customer manages their clientele function bookings (i.e. company meeting, birthday party, wedding dinner, etc.) within Salesforce via a custom event app and integrated with a calendar app to display each of the events in the calendar view. Requests from their clientele for recurring functions/events such as weekly board meeting, community discussion and many more need to be tracked accordingly within Salesforce, plus being displayed on the calendar app view accordingly. Double booking on the slot which may have been booked by other occasions is not allow and needs to be notified.

 

Solution:

The parent event was created via the custom event app. The customer utilised the standard Salesforce task object (which allows defining recurring activities) attached to the parent event.  This  is used to spawn the desired recurring event (Children records to the parent event) when the events are created. They are to be displayed accordingly in the calendar app view as well. Additional apex customisation is used to handle the double booking scenario instead.
Sample flow

Related Objects Account, Tasks/Activities and other related Custom Objects
Components Custom Button, Visualforce Pages, Apex Classes
Complexity Moderate

Salesforce: Replacing Custom Button with Formula Field

Ever wonder how you could use the formula field as an alternative to your custom button?

This can be achieved by utilising the HYPERLINK() and the IMAGE() functions as well as an image to represent the button. You could possibly settle with just a text link rather than button as well.

For example: HYPERLINK(${Construct_the_link_here},IMAGE(${the_path_to_the_button_image},”a_description_for_the_image”),${the_link_target_behavior-optional})

As a result, you could:

  • Define the field level security (considering it is a field) if you have specific requirement over who can or who can’t execute the button
  • Make the button appear in the view list and therefore, the user could use the button even without needing to drill all the way to the record

sample

Wedid: Marketo and Infor (Formerly known as Saleslogix) Integration

Challenges

Customer uses Marketo to track incoming leads that would need to be converted to accounts and contacts respectively in their Infor CRM system. The customer would also like to track all field changes and/or activities that occur in Marketo into Infor as the contact related activities, as well as other custom records being tracked in Marketo at the moment.

Solution:

Purpose To ensure leads and their respective related records from Marketo are in-sync between Contact in their Infor system.
Applications Marketo
Infor
Tool Boomi
Information Marketo Lead > Infor Account/Contact
Infor Account/Contact > Marketo Lead
Marketo Activities > Infor Activities (Custom)
Infor Notes Histories (Custom) > Marketo Notes History (Custom)
Data Formats JSON
Volumes ~100 – 300/day
Process When a new lead is registered in Marketo, the lead record will be in return synced into Infor as Contact with the lead’s company being the Infor account record.
However, when a new contact is created or a contact record is updated in Infor, the information would need to be synced to Marketo as well.
For every change in Marketo Lead (Activities), these trails will need to be synced into Infor as well. Some additional information tracked in Infor (custom object records), needs to be created and tracked in Marketo too.
Schedule ~ 5 minutes
Complexity Medium

Wedid: ActionHRM and Kallidus Integration

Challenges

Customer is tracking employees information through ActionHRM (A Human Resource Management System). These employees need to be tracked as a student record in their Kallidus system (being a student and learning management system) too.

Solution:

Purpose To ensure student records in Kallidus system is up to date from the ActionHRM employee records
Applications Sharefile (FTP)
ActionHRM
Kallidus
Versions Sharefile (FTP)
ActionHRM
Kallidus
Tool Boomi
Information Sharefile (CSV) > (Query) ActionHRM Employees > (CSV) Kallidus
Data Formats CSV and JSON
Volumes ~10/day
Process A set of qualified employees Id will be listed in csv format and to be uploaded to an FTP server. The integration process in return query for the employees details using ActionHRM API to produce student information in csv format for Kallidus to process.
Schedule Daily
Complexity Medium

Boomi: Debugging low latency mode processes

You may have processes (especially web service listener type processes) that are configured with low latency mode plus the option “Only Generate Process Log on Error” enabled. This would make it difficult sometimes to troubleshoot or review the Boomi process logs as it would not show up in the process log not unless it is an error process.

One way to debug/troubleshoot your process is to add the parameter _boomi_debug=true on the endpoint URL while executing the specific process and the specific request will be printed on Boomi logs.

For example:

https://test.connect.boomi.com/ws/simple/executeMyAPI?_boomi_debug=true

For further details please see: http://help.boomi.com/atomsphere/GUID-9DBB4927-E4FA-40F7-9A3C-077063E1AE7F.html

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

Triggering Salesforce Workflow/Process Builder when record is deleted

As of to date, Salesforce does not provide an object’s isDeleted flag as a filter criteria through workflow rule or process builder. This may lead to the option of utilising Apex Triggers if a requirement is to perform certain action when a record is deleted.

However, triggering a process builder/workflow is still possible when a record is deleted. Please consider the following criteria prior to designing your workflow or process builder in this case:-

  • the target object (to update field or to do something about it) is a parent to the deleted record
  • the target object and the deleted record is in master-detail relationship
  • the target object has capacity for additional roll-up summary field

Take Account-Opportunity for example. You may want to perform an action (i.e. update a field, send email alert, etc.) on the account where when one of its opportunity is deleted. As an alternative to utilise Apex Triggers, following are the steps that you may consider as a workaround to utilise Salesforce workflow/process builder instead:

  1. Create a roll-up summary field in account that counts the total opportunities which the account belongs to. In this example, we call it “Total_Opportunities__c”
  2. Define a workflow or process builder and utilise the evaluation criteria of “created, and every time it’s edited”
  3. Use the rule criteria of “Formula evaluates to true”
  4. Compile a formula which compares if the current “Total_Opportunities__c” is lower than the priorvalue. For example ${the_Roll_Up_Summary_Field} < PRIORVALUE(${the_Roll_Up_Summary_Field})
  5. Followed by the intended actions at the parent level

WEDID: Boomi Advanced User Security

Challenges

Customer has the requirement to restrict Boomi login users to have certain privileges when performing development and/or monitoring the processes logs. For example, a developer should not be given privilege to see production logs but he/she is allow to at least perform development as well as viewing logs/data processes deployed in a non-production environment.

Solution:

Purpose Create more restrictive privileges for different Boomi login users of an account.
Applications Dell Boomi Atomsphere
Tool Dell Boomi Atomsphere
Information Enable the Boomi Advanced User Security feature. This allows creation of custom roles with combination of different privileges. Assign the different custom roles setup to the appropriate user as well as assigning the respective custom roles to only the environment which the user is allow to see.
Complexity Low