Gorav Seth

Salesforce MVP | Permaculture designer

Page 3

A sad day for the platform

Just this spring, I presented a webinar with FinancialForce on the power of having HR/HCM on the Salesforce platform. Four short months later the dream is dead.


FinancialForce announced today that they will be leaving the HCM space, and are shifting to an approach that relies on integrating ADP with their Professional Services Automation application, while Talent and Skills management (presumably the performance module ++) will be migrated to the PSA application. The HCM application will be shelved in 2022.

This announcement follows the January 2017 appointment of Tod Nielsen as CEO, who is clearly charting a new direction from founder Jeremy Roche.

We were on Vana, which became FinancialForceHCM when it was aquired by Financial force in November 2013. At the time, I was elated by the acquisition, thinking it would infuse the product with the best of class development...

Continue reading →

Consolidating Campaign Members using Open Refine

Over time, campaign members build up, and at some point you may want to delete them to lower storage usage. I will demonstrate an approach to ‘consolidating’ multiple historical campaign member records to a single campaign member record.

So it would go from this:

To this:

Allowing you to retain the information, in a single campaign member record.

Note that this approach requires creating a custom long text area field on campaign member, as the standard description field just displays the lead/contact description field and cant be written to. This post assumes you have a custom field called ‘Notes’ (Notes__c) on the campaign member object.

There are four broad steps in this process

  1. export data from Salesforce
  2. ‘consolidate’ records using OpenRefine
  3. load new campaign records w/ consolidated data in notes field
  4. delete the existing campaign member records (using...

Continue reading →

Visual Workflow Session - DCNPUG - March 2017

This post is the outline for my presentation on visual workflow at the march 2017 dc nonprofit user group meeting

  1. what is flow
  2. the 3 types of flows
  3. when I use flow
  4. what flow is good at
  5. what flow is not good at
  6. when I use flow very carefully if at all
  7. how to learn about flow
  8. when good flows go bad - debugging flows
  9. advanced flow tips / tricks / demo

what is flow

Visual Workflow, built using Force.com’s Cloud Flow Designer, lets you visually string together one or more forms, business rules, and calls to backend APIs to implement a complete business process without writing code.

Visual Workflow is the product name, Cloud Flow Designer is the tool, and flows are the thing that you create.

so really, what is flow

its a really cool tool that leaps past a number of barriers that required code. everything you can do w/ process builder you can do w flow, but many things that you can do...

Continue reading →

A flow to clone a hierarchy of any depth

A user on the hub wanted to clone campaign hierarchies (just the campaigns, not the members). I thought that it just might be possible using visual workflow, but had no idea what i was in for…

I managed to pull it off, and stay reasonably within governor limits by using some well-placed screen elements. Screen elements, after all, start a new transaction, which resets the limits.

I learned a lot working through this challenge, and will try to lay out the key findings in this post.

The basic idea was to approach it one ‘level’ at a time. So start with a parent campaign (A) and clone it (A1) then query all of the campaigns (B) where B.parentID = A.id, and make copies of those under A1. And then go through each child campaign (B) and find campaigns © where c.parentId = b.id, and so on…

I used a subflow to do most of the lifting. The subflow takes two IDs as inputs: the existing...

Continue reading →

Fast Lookup in Flow can use 15 or 18 character ID

Just in case you were wondering, fast lookup element in flow can use a 15 or 18 character ID.

I have a flow that uses custom metadata type to determine which parent record to use, and I created two MDT records - one w a 15 character ID and one w an 18 character ID. Both worked

However, if you are trying to do a comparison to say check if an ID is already in a collection, then 15 and 18 are not equivalent, and you must stick with one length. I say stick w 18, b/c flow will save record as 18

I see in a SFSE thread that global variables such as User.Id will resolve as 15 character IDs, but Account Owner comes through as 18 character ID…so there is some murkiness under the covers. Best to stick w 18 and throw caseSafeId on the IDs, though you could also just use a LEFT function on all IDs…

Continue reading →

Debugging flows

Tips and tricks for debuging flows

Use an initial assignment element to set your variables. Makes testing flows much easier. H/T : salesforceyoda

Insert screen elements for breakpoints, but just include text in them for starters, ie breakpoint1. You don’t want the screen element itself to trigger an error, which can happen if you include formulas, etc. Once you can get through the breakpoint, then add variables to display detailed info.

If your flow is autolaunched, you can debug using a send-email element instead of a screen element, but if you are building a new flow its easier to debug using screen elements and you can switch to autolaunched later.

You can display sObject variables and sObject collections in screens. The collection will display a list of IDs if populated, or a list of commas if the sObjects have not been inserted yet, or nothing if it is null.

If you flow...

Continue reading →

A List of Flow Posts and Resources

my posts

other folks posts and blogs
5 best practices in building a flow
a naming convention for flow elements
its very important to use a naming convention on your flows as well, ie Object - Functionality
customize what happens when a...

Continue reading →

Ideas that need no explanation

There are plenty of obscure-but-worth ideas, but those wont show up in this post. This post is an ongoing list of ideas that shouldnt be ideas at all.


Adding help text for name fields

Description fields on public groups

will keep adding them as i come across them

View →

buried killer lightning feature in winter 17

Buried deep on p 359 in the winter 17 release notes, lies this understated gem of a feature

Assign a Custom Record Page to Lightning Apps, or Make It the Default for All

3 sentences of description and zero screenshots later, and its over.

And, you may ask, why is this such a killer feature?

It embraces the fact that one person can have multiple roles - and that in those different roles, they need to do, and see, different things. This is about the end user being able to see and do what they need to do the task at hand, which is very common at nonprofits, and I imagine far beyond.

Until now, one user has a profile, and when they looked at an account, it would always have the page layout reflected by their profile. Sure, you could have different account record types, but the sales user would always see one layout for one account type. There was no easy way for them to see a...

Continue reading →

Working with Existing Attachments in Visual Workflow

You can manipulate attachments in visual workflow (i’m working with the old-fashioned attachments object, but this should work w/ files, which are stored as contentDocument / contentVersion / contentDocumentLink).

What works: manipulating existing attachments by looking up the attachment(s) and storing them in a sObject variable/collection, including the body field. Use assignment elements to set the ParentID to its new parent, and use a fast create to insert the sObject variable/collection.

What wont work: Doing anything with the body field, other than including it in a sObject variable/collection. For example, I tried to map a text variable to body and create a new text attachment, and that fails. Body is a base64 field type, and I have not found any flow field type that can map to it. So you can only lookup an existing attachment and change the parent ID - you cant create new...

Continue reading →