Tuesday, April 15, 2014

Brief Review: Wipebook

My Wipebook arrived today!

I first saw this handy reusable notebook on Kickstarter and blogged about it.

Here's a brief video review on my experience with it so far and how I plan to use it to replace all my paper notebooks.

PS - I haven't been compensated by Wipebook or anyone else for this post. I paid for it myself and wanted to share my experience.

Wednesday, February 5, 2014

On Working Remotely and Finding Inspiration at My Local Coffee Shop

I've been working remotely (from home) for a few years.

Sometimes, it's hard to stay focused and motivated, especially because I don't have an office (or even a separate room... yay for living in a studio). I've found that it's easy to continue working long past my official 'stop time'. Whoops. (I know that my employer doesn't mind, but my sweet hubby does. So I'm monitoring my time more carefully now.)

Occasionally, I switch up my routine by working at a local coffee shop. I grab a mocha and a pastry and plop myself down next to an available outlet.

I've noticed a big boost in my creativity/inspiration and productivity when I do this. I get a lot more done, despite whatever distractions surround me.

The only drawback is that it makes phone calls and video conferencing difficult. But, on days that I know I won't have any meetings, working in a public space like this has helped me get out of a rut.

If you work from home, how do you stay focused and motivated? Share your tips in the comments.

Tuesday, February 4, 2014

When You Need to Forward 86 Gmail Messages at One Time to Someone

Today, a coworker asked me how to forward 86 emails at once.

While researching how to respond, I discovered that you can set up a filter to forward messages, but it will only apply to emails that you receive after you create the filter. So, that wouldn't work here.

To easily forward a large number of emails all at once, you can use a simple script from Amit Agarwal on labnol.org.

Here is the tutorial that I created for my coworker using Clarify. I used Clarify's HTML option under 'Share this page' to insert the content of my tutorial below.

How to automatically forward new or existing email messages to another address using Gmail

1. Create a copy of the google spreadsheet with the script.

2. Fill out the label and address to forward to.

It's a good idea to use a temporary label that you'll create just for this purpose, eg: 'FWDTOJENNA'.
2. Fill out the label and address to forward to.

3. Click on 'Gmail Forward' in the Google Doc menu.

3. Click on 'Gmail Forward' in the Google Doc menu.

4. Click on Initialize.

4. Click on Initialize.

5. Confirm authorization.

5. Confirm authorization.

6. Click 'Accept'.

6. Click 'Accept'.

7. In your Gmail inbox, apply the label to all the messages you want to forward.

You can click on the first message to forward and then, while holding down the SHIFT key, click on the last (if you're selecting a series of messages). This will check them all off.

Then click on the label icon (it looks like a tag). Put in the label that you decide to use. Click 'Create new'.
7. In your Gmail inbox, apply the label to all the messages you want to forward.

8. Confirm the new label by clicking 'Create'.

8. Confirm the new label by clicking 'Create'.

9. Go back to the Google Spreadsheet and click 'Start Auto-Forward'.

9. Go back to the Google Spreadsheet and click 'Start Auto-Forward'.

10. The emails will be forwarded. It'll take a few minutes for a large number of emails.

10. The emails will be forwarded. It'll take a few minutes for a large number of emails.

11. When done, choose 'uninstall'.

This will stop the auto-forwarding of the messages.
11. When done, choose 'uninstall'.

Have you tried this method? or have you discovered an alternative? I'd love to hear about it in the comments.

Wednesday, January 15, 2014

How to: Automate Adding Customizable Buttons to your Gmail Messages

Here's an easy way to add a little flair to your day-to-day emails.


When I'm sending a link to a report or tutorial, I want it to stand out from my other email content. And sometimes hyperlink-formatted text just isn't enough.

So, I came up with this little trick that allows me to easily insert a customizable button in my Gmail messages.

I find myself creating these buttons from scratch several times a day, and I finally realized that I could save some time by automating most of the process.

Technology leveraged:
  • 'insert image by url' functionality of Gmail
  • a text expansion app, like TextExpander
  • a button wizard site that I use on a regular basis: Da Button Factory.

How To

  1. Generate your button using Da Button Factory
  2. Pass the button image url into TextExpander and customize
  3. Use the insert image by url and your TextExpander abbreviation to insert the button into an email
  4. Add a hyperlink to the button

See it in Action

Unable to display content. Adobe Flash is required.

Sample Button image url:


The example button looks like this:

Do you use TextExpander to automate your daily tasks? Have you figured out how to tweak your Gmail messages to stand out? Share your thoughts in the comments.

Monday, December 23, 2013

Wipebook: The Reusable Notebook I've Been Seeking

Last year, when I started using Evernote more purposefully, I thought that a reusable notebook would be a great idea.

While I love using digital tools, I still find myself missing the experience of jotting down notes or brainstorming on paper. I wanted to combine writing notes on paper with the digital storage of Evernote, in a way that reduced waste.

I don't currently own a tablet (so I can't take advantage of Penultimate, which is only for iPad anyway) and the idea of taking paper notes and then scanning them later seemed like it would be a waste of effort and resources.

I tried making my own reusable notebook by laminating plain white paper and writing with whiteboard markers. But, my method doesn't allow for precise writing, the side of my hand often rubs off what I've written and it's rather messy to clean off the sheets.

Enter the solution I've been seeking: Wipeboard!

I misspelled reusable. Too bad there's no autocorrect IRL. (Using my DIY reusable paper here.)

I originally discovered Wipeboard on Lifehacker, and pinned it on Pinterest for future reference. But, when I went back today to learn more, I discovered that I missed out on their Kickstarter by a few hours. Argh!

I'm looking forward to when their product is available for purchase. But until then, I'll probably just watch the demo videos over and over.

Note: I haven't been compensated by anyone for this post. I just love the concept.

Thursday, December 5, 2013

Finding the Ultimate Parent in an Account Hierarchy with a Simple Formula

Traversing the account hierarchy via the Parent Account field can be challenging.

I was doing some research into including 'Ultimate Parent' in reports - so that you can see all Opportunities for any account in the hierarchy, for example.

I knew I had read something about it... and after spending a few hours searching, I discovered that not only had I read something, I had actually already implemented it. Ha.

I don't remember where I got this formula, so if it looks familiar to you, please let me know. It's a pretty awesome way to use standard functionality and can go through a hierarchy of up to 10 levels.

How to Do It:

  1. Create a text formula field named 'Ultimate Parent Name' on the Account object.
  2. Paste the following into the formula:
  3. IF( LEN(Parent.Name)<1 ,HYPERLINK("/"&Id, Name,"_parent"), IF( LEN( Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Id,Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Id,Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Id,Parent.Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Parent.Id,Parent.Parent.Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Parent.Parent.Id,Parent.Parent.Parent.Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Parent.Parent.Parent.Id,Parent.Parent.Parent.Parent.Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Parent.Parent.Parent.Parent.Id,Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Id,Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name,"_parent"), IF( LEN( Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name )<1 ,HYPERLINK("/"&Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Id,Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name,"_parent"), "Ultimate Parent Beyond 10 Levels"))))))))))

What it looks like:

I can now use this field in reports for grouping or filtering if I want to see all Opportunities belonging to any account in this particular hierarchy. Cool!

Note: We've already implemented the customizable inline account hierarchy (that's what you're seeing in the picture, with the formula field below it), which displays the hierarchy as a visualforce page on the Account page layout. Super handy!

Thursday, October 31, 2013

Salesforce Admin Journal: Creating Groups based on Criteria with Workbench

I have so many posts in draft that I just haven't gotten around to finishing. So, instead of waiting and stressing and feeling ridiculous about it, here's something short that I stumbled upon today.


I wanted to create several public groups based on some criteria (in my case, I was using email domain). I discovered that was pretty much impossible in Setup. I was only seeing an option for creating a group and then adding users manually or by role/profile.


  1. I created my groups in Setup. I don't think you can create a group without a single member, so I added someone I knew would be included anyway based on my criteria.
  2. I exported a query of all my active users as a csv (I used LexiLoader but Workbench would work great too).

    Select Id, LastName, FirstName, Email FROM User WHERE IsActive = True 
  3. I opened my csv in Excel and sorted it by the field I wanted to use to segment my groups and added a column for Group ID.
  4. I copied the id from the url for each newly created group.
  5. I pasted the group id into my sorted csv for each user as I wanted to segment them in my groups.

  6. I did a 'save as' on my csv.
  7. I used workbench to upload the file in the GroupMembers object.

Ta da! Done! Perfect!

This process was much easier for me than trying to manually add the users to these new groups.

I haven't used Workbench that much in the past but I'm realizing that it is pretty stinkin' handy. I've been a bit frustrated with LexiLoader lately (which is the Mac version of DataLoader) and I often miss the Excel Connector (which is only for Windows OS) but even that had its flaws. 

And that's all for today... until I finish those almost done blog posts that are glaring at me.

Thursday, July 25, 2013

How to Create Easily Customizable Raw HTML-Email Templates with TextExpander

On a fairly regular basis, I need to customize html emails to create a branded template in Salesforce or for sending with Vertical Response.

The structure of each email is usually the same (top banner, sidebar, footer, etc) but the specific graphical elements and text change, along with hyperlinks and utm codes.

For the past several years, I have done the same thing over and over: cloned the latest and greatest template and then sorted through the html looking for the fields to modify. I typically make my changes in a notepad software like TextWrangler and then copy/paste.

This process isn't the best because:

  1. It requires a lot of manual changes, which means it's.....
  2. Prone to user error, especially when I'm manually modifying the same text in multiple places, and...
  3. It makes my eyeballs hurt.
Today, I was in the middle of just such a project and realized that I could use TextExpander to improve my workflow. While it takes a bit more time to set up, the future time-saving benefits are worth it!

So, here's what I did:

  1. Copied and pasted my raw html email template into a new TextExpander snippet
  2. Determined the text/html that could be turned into 'variables' (aka: which text or code would change for every email)
  3. Converted my variable text/html into fill-in fields (mainly single line, multi-line and optional sections) in the template, along with default values and instructions so I could remember specific formatting if necessary
  4. Copied/pasted any repeating variables (eg: utm code that would be appended to every link) - This means that I only need to modify this text once and it will be updated anywhere else it is inserted in the template
  5. Tested

Examples of code and text that I turned into variables:

  • Banner image (this changes per email template)
  • UTM codes (for tracking campaign source, medium, etc) that are appended to each hyperlink in the email
  • Sender contact information (eg: name, title, phone number) if I'm creating the email for a specific sender. If it will be a Salesforce email template, I would use variables like {!User.FirstName} {!User.LastName} in the email signature instead.
  • Email body/content
  • Call to action, whether a button or a link (or both - I put each in as an optional fill-in)

This will save me a lot of time in the future. As an added bonus, if any of my coworkers need to accomplish a similar task, I can share my TextExpander snippet with them.

Here are some screen captures of what my TextExpander snippet looks like when executed:

Are you using text expansion software to speed up your Salesforce Admin tasks or marketing duties? You can share your tips with me in the comments.

Software Used: Chrome, TextExpander, TextWrangler

Note: I use TextExpander (Mac) but you can use any text expansion software that supports similar functionality.

Jenna Weiner is a rather geeky girl with average social skills and an affinity for: Google Apps, Salesforce.com, Pinterest, Firefly, dresses, indoor plants and life-hacking. Have a suggestion for a post or a question? Feel free to get in touch.
Email: rathergeeky@gmail.com
Twitter: @RatherGeeky
LinkedIn: View My Profile

Thursday, July 11, 2013

Creating a New Salesforce Record with One Click: Passing URL Parameters from Google Form Responses

Today, I spent several hours figuring out a URL parameter hack to save me a few minutes of entering data into Salesforce.

While it may not have been the most efficient use of my time, I learned some things that will help me when attempting similar tasks in the future.

I thought I'd share the requirement I was facing and how I accomplished it.

The Requirement

I needed a way to have users submit information to create a Lead but not have to manually input this data directly into Salesforce. For my own sanity, I didn't want to the process of inserting records to be too labor intensive.

How I Did It

I started by creating a Google Form with the information I wanted to gather. Then, I went into the form responses spreadsheet and added a few more columns.

In these columns, I put a HYPERLINK() formula that would create a link into which values entered in the form would be passed as parameters.

The result? With a single click of the link I can create a Lead or Task in Salesforce with information that was entered into the Google Form.

The concept can be used in a variety of ways.

If you'd like a more in-depth explanation, check out the steps here.

PS - I love using Clarify to document my process, as shown in the link above. If you haven't checked it out and find yourself sending screen captures on a regular basis, do! This post wasn't sponsored and I'm not being compensated. I just love their product.

Jenna Weiner is a rather geeky girl with average social skills and an affinity for: Google Apps, Salesforce.com, Pinterest, Firefly, dresses, indoor plants and life-hacking. Have a suggestion for a post or a question? Feel free to get in touch.
Email: rathergeeky@gmail.com
Twitter: @RatherGeeky
LinkedIn: View My Profile

Wednesday, July 3, 2013

2 Ways to Quickly Jump to a FogBugz Case in Your Browser

In the past, when I wanted to view a particular FogBugz case and knew the number, I had to navigate to FogBugz and then search for the case #.

But, I just stumbled upon a Chrome extension that will let me jump to a case directly from the address bar (aka: omnibox). And then I thought "I'll bet there's a way to automate this with TextExpander", my favorite text expansion tool.

So, here are the 2 methods I came up with to quickly jump to a FogBugz case from the omnibox.

Method 1: FB Case Jump Chrome Extension

This extension lets you type FB then tab (or space) then the case number in the omni bar to jump directly to the case.


Method 2: Use TextExpander

TextExpander lets you insert text using an abbreviation. eg: If I type 'lmk', it will expand to 'let me know'.

In this case, I'm using it to expand the url for my case, then put my cursor at the end of the url and let me type in the number.

Note: You could use fb as your shortcut, but I'm using s.cs because I'm testing out both methods and using FB would trigger the Chrome extension from Method 1.



In Review

Each of these solutions takes about the same amount of effort. It involves typing an abbreviation and then a case number.

If you're a lover of keyboard shortcuts like me, being able to jump to a specific case without ever picking up the mouse should be appealing.

So, to review the difference, here's a comparison of my then/now process.

  1. Open new tab. (CMD/CTRL + T)
  2. Click on FogBugz bookmark.
  3. Type case number in search box. 
  4. Press enter.

Now - Method 1:

  1. Open new tab. (CMD/CTRL + T)
  2. Type FB.
  3. Press space.
  4. Type case #.
  5. Press enter.

Now - Method 2:
  1. Open new tab. (CMD/TRL + T)
  2. Type FB (or whatever shortcut you're using)
  3. Type case number.
  4. Press enter.

Using one of these new methods takes less time because I never have to lift my hands off the keyboard. That's always a win for me!

Jenna Weiner is a rather geeky girl with average social skills and an affinity for: Google Apps, Salesforce.com, Pinterest, Firefly, dresses, indoor plants and life-hacking. Have a suggestion for a post or a question? Feel free to get in touch.
Email: rathergeeky@gmail.com
Twitter: @RatherGeeky
LinkedIn: View My Profile
Related Posts Plugin for WordPress, Blogger...