Monday, April 14, 2014

Some IFTTT recipes that we use every day...

The wide release of the Android app will bring new possibilities tied to native Android apps, but hundreds of useful recipes already exist. The best part? You don’t even need the app on your phone to take advantage of them — you can set it all up right in your web browser. For those toying around with the beta and those eagerly awaiting the final release alike, here are some IFTTT recipes we use that might inspire you.

ifGmailthenGoogle Drive
If any new attachment, then upload file to Google Drive


ifFeedlythenEvernote
Add saved Feedly stories to To File


ifFeedlythenLinkedIn
Saved Feedly articles shared on LinkedIn


ifBloggerthenFacebook
Send BLOG posts to Facebook




Thursday, April 10, 2014

Build a computed Status field in your application

Many times when building an app you will want to compute a Status rather than have users manually enter or adjust a Status field pull-down.  An example use case we recently had was for a health service provider who needed to compute the Status of applicants for a health study.  They had several Date fields they were using to determine when an applicant had passed a key stage in their process.  The attached QuickBase code (although could be used in other systems supporting If logic) illustrates how to use date fields and other fields with values (or without) to determine a Status for a record.  

***Note: Using the nested If construct means you will need to start from the last status and work backwards...


If(Length(ToText([Date of Unenrollment]))>0,"8-Unenrolled",
If(Length(ToText([Facility Discharge Date]))>0,"7-Enrolled Participant",
If(Length(ToText([Date of LOC Eligibility]))>0 and Length(ToText([Date of Financial Eligibility]))>0,"6-Pending Participant",
If(Length(ToText([Date of Successful Appeal]))>0,"6-Pending Participant",
If(Length(ToText([Date of Failed Appeal]))>0,"5b-Appeal Failed",
If(Length(ToText([Date Appeal Started]))>0,"5a-Appeal Started",
If(Length(ToText([Date of LOC Ineligibility]))>0 or Length(ToText([Date of Financial Ineligibility]))>0,"5-Ineligible",
If(Length(ToText([Date of LOC Eval Start]))>0,"4-LOC Evaluation",
If(Length(ToText([Date Initial Screen]))>0,"3-Initial Screening",
If(Length([Participant Record# (Lottery)])>0,"2-Lottery Provided",
If(Length(ToText([Date Application Rcvd]))>0,"1-Application Rcvd","0-Contact")))))))))))

Wednesday, April 09, 2014

Five Cheap Things You Didn't Know Were Worth Buying from Monoprice (RT - LifeHacker)

Lifehacker has talked up the online discount retailer, Monoprice plenty of times for their cheap HDMI cables and insanely cheap headphones, but the store sells all kinds of gadgets and accessories. If you've never dug in, here are a few things they'd recommend searching Monoprice for before you pay full price elsewhere.

Original story on Lifehacker

Tuesday, April 08, 2014

What Enterprise 2.0 could learn from the social web…

Enterprise 2.0 is a great term, because its meant to be a catch all phrase for so much -- customer relationships, content, knowledge, projects, files, e-commerce etc... However, my point today is not to address what it is (or isn't) but rather to elaborate on how to make enterprise web deployments successful, and in particular, what we can learn from the social web, in this regard.

Enterprise 2.0 systems tend to be systems of record, and are therefore record-centric. Records can provide a great context for information -- who created it, what accounts they're related to, their status or category. However, until recently this data was both accessible and useful only to users with access and a knowledge of the system. Through social processes like Salesforce.com Chatter and initiatives by other vendors to "feed enable" their applications (Yammer, Podio, Basecamp), it is now possible for typical business users to easily access and get value from these systems using new social, collaboration features.

The graphic below illustrates the different forms of content available in the enterprise and potentially what is possbile through simple social enablements like share, "like" and follow.


We see enterprise data on two axis, one is shelf-life, or the amount of time content may be relevant to an organization (we can think of "long-lived" content as organizational "knowledge" like best practices, document templates or old proposals) and the other axis is the community that it is relevant to -- stretching from individuals to the whole enterprise. The illustration above attempts to show different points on a collaboration continuum and also suggests that with social capabilities enabled (like sharing, following, "liking" and tagging) real-time access, relevance and use of enterprise 2.0 data/systems becomes more collaborative and even more likely.

Monday, April 07, 2014

The myth of the brainstorming session | via the ooomf blog

OOOMF BLOG had an interesting post on effective brainstorming.  Here is how they describe the process of coming up with a name for a new website.

To read the rest of story click here

Friday, April 04, 2014

Creating a simple VisualForce page to set default values on a Salesforce object

Recently, I had a requirement to default a lookup User field, in Salesforce, to the current user creating the record.  You'd think this would be an easy operation and that there'd be a lot of good advice online, but actually neither was the case.  First off, here are a few of the challenges: 1) Salesforce does not support default values or formulas for Lookup fields, 2) workflow is also of little help here because it does not support setting lookup fields to global variable values and 3) the New button on the object tab is not replaceable like you might do for a related object action (i.e., log a message on a Case can be URL hacked to perform custom default actions.

To solve this issue, I looked at two options: 1) a trigger and 2) a custom visualforce page....

I found that implementing a trigger to solve this issue, did not solve the question of setting a default value. Because even on a trigger set to before insert, the trigger fires on Save, not on create, which is what you want on setting a default value.
I implemented this functionality using a Visualforce page that did an URL jack to a custom Lookup/User field as follows.
<apex:page standardController="Submitted_Item__c" >
  <script>
      window.top.location.href = '/a0O/e?nooverride=1&CF00N400000025ScP=
      {!$User.FirstName}+{!$User.LastName}';
  </script>
</apex:page>
Submitted_Item__c is a custom object where I choose to override the New button with this page
a0O is the internal code for the Submitted Item object
I include a nooverride=1 on advice from other posts to avoid redirect looping
CF00N400000025ScP = CF + 00N400000025ScP where CF is the custom field designation
and I use {!$User.FirstName}+{!$User.LastName} to add the two global variables as my default name for this lookup fields entry (it's expecting a full name value)
Things to remember in setting this up, please make sure: 1) Set the key Profiles you're working with to use the VF page you create and 2) Over-ride the New button on your custom object.
* To avoid needing VF pages like this in the future, it would be great if Salesforce allowed workflow field updating on Lookup values using formulas and/or global variables

Thursday, April 03, 2014

Faceoff: OneNote vs. Evernote (RT of Lifehacker post)

Now that Microsoft OneNote is free for Mac and Windows, the price and cross-platform barriers to this much beloved note-taking tool are gone. But how well does OneNote stack up to (the also awesome) Evernote, a favorite note-taking app?  In a recent post, Lifehacker identifies the pros and cons of each and is very helpful in illustrating some of the distinctions.

OneNote UI

Lifehacker Faceoff: OneNote vs. Evernote
OneNote and Evernote share the same main objective: To help you get organized by keeping all your ideas, saved web pages, and other documents in one place. They also offer similar features, such as a web clipper, Optical Character Recognition (or OCR, which interprets images or scanned information as text), instant syncing of notes to all your devices, and integration with third-party services.  
While they seem like similar tools, however, you can see the biggest difference between these two apps at a glance. Above is their OneNote note brainstorming this post. Below is a similar one done in Evernote.

Evernote UI