Dropbox Remove Photos Features

21 Jul 2017

Dropbox has removed key photo management features from its product. The new photo page rolled out earlier this week after several months of warnings.

No More Albums

The biggest change is that it is no longer possible to create albums of photos. Albums are different to Dropbox folders in that a photo can appear in multiple different albums without duplicating the file. Dropbox now suggests to create albums by creating folders instead – which of course means copying & pasting the photos between folders if a photo is to appear in multiple albums.

Sharing Groups of Photos

Previously it was also possible to share a group of photos without creating an album or moving them to a particular folder just by selecting them on the photos page. This ad hoc sharing is no longer available.

(Strangely enough this type of sharing is still possible today on the iOS apps – it is not clear if this is an oversight or a feature)

Series of Moves

This isn’t the first change by Dropbox away from being focused on photos. Dropbox acquired Loom to build Carousel which was a dedicated photos product from Dropbox, however in March 2016 Carousel was shut down. This was to create a “single Dropbox photo experience”. Now fifteen months later we see an “upgrade” to the photos page interface to align with the Dropbox website redesign and the removal of album functionality. The explanation offered is:

We’re continuing to work on new photos and file experiences on dropbox.com. As we learn more about how our users prefer to work with photos, we’ll launch improvements to the Photos page.

User Outrage

Users who have invested time over the years in creating hundreds of albums are understandably upset by this set of changes. This is seen clearly on the Dropbox Forum thread which has pages of users describing their difficulties in working without albums, or their stories in migrating to other services because of these changes – mostly Google Drive.


Is it time to say that Dropbox isn’t a suitable place to master your photos, or should we believe that there is better functionality coming? At a time when Google Photos and Apple’s iCloud Photo offerings are getting stronger and stronger it is possible that Dropbox has decided to step out of this game.

The optimistic take would be to take Dropbox at their word that they are working on new file experiences that extend beyond photos – maybe tagging based, or similar – which would make albums redundant in any case. Or maybe Dropbox Paper will become powerful enough to be a strong replacement for a photo album?

Realistically though if either of these were the case in the near future it would seem likely that Dropbox would wait until they were ready and then transition the old albums to the new feature. To switch to a feature-less mode without these photo features sends a strong signal to users that this is not a good place to keep your photos.

Salesforce Lightning: All the Screenshots

25 Aug 2015

Lightning Device Family

Salesforce have announced the availability of Salesforce Lightning.

What have they announced?

A new user interface for the desktop version of Salesforce which is called Salesforce Lightning. This will be available for Sales Cloud at first, but also Salesforce’s other apps in future releases. It will be generally available in the Winter ‘16 release of Salesforce - which ships in about a months time - just after Dreamforce ‘15. Switch on will be at customers own pace and it will be possible to enable at a user, profile or organization level.

This is not just an interface change - Salesforce are changing the technology used for their desktop application to be the same as used on their mobile app: Salesforce1.

What does it look like?

Here is an extensive collection of screenshots of the new interface from the coverage today:

Salesforce Lightning Homepage

The new homepage: gone are the horizontal tabs and the old sidebar. Now we have a vertical sidebar with only icons instead of words.

Salesforce Lightning Homepage

However the sidebar does expand to show the names of each section.

Salesforce Lightning Homepage Sidebar

Lightning App Launcher

Lightning App Launcher

App Setup Menu

New dropdown menu to access the new setup menu.

Setup Menu Dropdown

The new setup menu.

Setup Menu

Some items have moved around from the old to the new setup menus. Notably custom and standard objects are now in the same place.

Setup Menu Transition

Management of the App Menu.

App Setup Menu

App Setup Menu 2

Marketing App Setup Menu

Object Manager - the new settings page for each object.

Object Manager

The opportunities object manager page.

Object Manager - Opportunities

Global Search

Global search is now at the top and centre of each page.

Global Search

Auto complete suggestions in global search.

Global Search Auto Complete

Top results from Global Search are cross object with tabs for each object.

Global Search Results

Tabs to navigate between search result objects.

Global Search Results Top

Help Menu

Contextual help and training.

Help Menu

Opportunity Management

Opportunity view page including Sales Path.

Opportunity Workspace

Lightning App Builder showing custom opportunity workspace.

Custom Opportunity Workspace

Opportunity Sales Path.

Sales Path

Modifying the Opportunity Sales Path.

Sales Path Edit

Activity Timeline on Opportunities.

Activity Timeline

Opportunity List View.

Opportunity List

Opportunity Board View.

Opportunity Board

Opportunity Board View Design.

Opportunity Board Design Sketch

Lead Management

Lead Detail View.

Lead View

Accounts & Contacts

Account List View.

Account List View

List view controls.

List View Controls

Account Detail View.

Account View

Contact Detail View.

Contact View


User Record.

User View

Case Detail View.

Case View

Custom Object Detail View.

Custom Object View

Tasks & Calendar

Task List.

Task View


Calendar View

Calendar Day View

Reporting & Dashboards

Lightning Dashboard

Lightning Dashboard 2

Where can I read more?

Can I use try it now? The answer for the immediate term seems to be no, but pre-release Winter ‘16 orgs will be available here in the next few days.

Salesforce CEO Benioff on "In Tech We Trust"

01 Feb 2015

How can trust in the hyperconnected company be preserved?

Dimensions to be addressed:

Speakers: Tim Berners-Lee, Nik Gowing, Michael T. Fries, Marc R. Benioff, Günther H. Oettinger, Marissa Mayer

Salesforce Analytics Wave: 100 Days Later

31 Jan 2015

100 days on from the Analytics Cloud announcements at Dreamforce, it is not clear how successful it has been with customers. Tom Murphy at CMS Wire offers some good analysis on the launch.

Anna Rosenman, director of product marketing for the Salesforce Analytics Cloud: “Initially, when Salesforce announced that this is for everyone and it’s mobile and it’s a platform, a lot of those messages had been used in the past. They were nothing new when it comes to the BI space or analytics space”.

As a result, potential customers were confused about whether Wave was just a discovery tool or something “you could plop on top” of a BI platform.

“That was something I don’t think we expected — that we would have to do a little more education about how broad the capabilities are of the Analytics Cloud,” said Rosenman

Defending Analytics Cloud’s steep pricing Rosenman describes the do it yourself scenario:

… companies would then have to create a process to develop the apps needed by line-of-business users. That typically involves filling out a request to the CIO and waiting weeks or months for the application.

“You shouldn’t have to log a ticket to get visibility into your pipeline,” said Rosenman. “You shouldn’t have to log a ticket to get a view of your entire customer base. You should be able to do all of that on your own.”

Salesforce seems keen to sell directly into business units and be almost competitive to internal IT departments. I think this is contrary to how Salesforce products tend to managed in most enterprises.

Facebook Enters Enterprise Social Network Space

14 Jan 2015

Facebook has launched a limited pilot of Facebook At Work which allows companies to create their own private social network for their employees. It seems fairly full featured with:

This last feature seems in direct contradiction to Mark Zuckerberg’s thoughts in 2009 when he said:

“You have one identity,” he says emphatically three times in a single minute during a 2009 interview. He recalls that in Facebook’s early days some argued that the service ought to offer adult users both a work profile and a “fun social profile.” Zuckerberg was always opposed to that.

“Having two identities for yourself is an example of a lack of integrity”

(The Facebook Effect, David Kirkpatrick, Chapter 10: Privacy)

I imagine he might argue that these profiles are different as they are only for those inside your company. However more likely I think is that with the success of LinkedIn and all the internal enterprise social networks, Zuckerberg may have changed his mind.

Facebook faces an uphill battle in gaining the trust of companies; many of which currently block their employees using Facebook on their networks. This may be overcome if Facebook At Work offers a much slicker experience than existing enterprise social networks. If users are hooked then companies might have to work hard to stop their employees using it.

This space has lots of competition and is developing fast. As TechCrunch puts it:

The product puts Facebook head-to-head with the likes of Microsoft’s Yammer, Slack, Convo, Socialcast, and a huge number of others who are trying to tackle the “enterprise social network” space. Even LinkedIn conveniently let drop last night that it too was looking at building a product for coworkers to communicate and share content

To Salesforce’s credit they announced Chatter in 2010 (Dreamforce pitch video). It wasn’t the first enterprise social network but it was one of the early ones. At the time this was reported as “The Facebook for business”.

Today looking at the screenshots of Facebook At Work, Salesforce’s Chatter has never looked more out of date.

Spring '15: Lightning Process Builder

11 Jan 2015

The Lightning Process Builder is now active in Salesforce Spring ‘15 sandboxes - the early release instances were activated this weekend.

The Process Builder is a new workflow tool that helps you easily automate your business processes by providing a powerful and user-friendly visual representation of your process as you build it. The Process Builder’s simple and powerful design allows you to:

It is time to review its functionality and see how suitable it is to replace existing workflow rules, existing code and new developments.

See also: Lightning Process Builder Guide PDF from the BETA.

Salesforce Hires LinkedIn Data Scientists

11 Jan 2015

Salesforce and LinkedIn seem destined to be rivals in the next phase of CRM software. They are approaching each other from opposite sides: LinkedIn has convinced everyone to maintain online resumes, while Salesforce has convinced everyone that CRM should be online.

How much would LinkedIn need to add to their product for it to become an easier platform for small businesses to use for CRM?

Exploited Dev Orgs

11 Jan 2015

Talk about eating your own dogfood, here is Geoff Flynn, a Salesforce consultant, who is building Salesforce apps for parts of his daily life:

I’ve been thinking for awhile now if I can’t be happy with a solution in my life then why should I expect a client to pay for the same thing.

This rings really true to me: there are many Salesforce consultants who are never really Salesforce users, there is a lot to be gained by building apps for your own needs. You quickly begin to understand the complaints you hear from your clients/users.

His latest post covers using Salesforce to monitor patterns with a baby.

200 Records: Understanding The Limit

04 Jan 2015

200 Records and Transactions

When you update a single record in Salesforce, the before update and after update triggers on the object both run once to process the record with the custom logic defined in your organization. The trigger collection only contains the one record that was updated.

When you update 200 records using the Data Loader or the API, the exact same triggers run. This time the trigger collection contains 200 records.

As it is the same code that runs for single or bulk operations all apex trigger code must be written expecting the bulk scenario.

Many of the Salesforce limits are based around the concept of a transaction. A transaction is an execution context on the Force.com platform. When you update 200 records this is done within one context. If you update 201 records through the Data Loader then this is done over two contexts and these two transactions are entirely separate.

The above is widely understood in the Salesforce community and is well documented in the DEV501 course. Everyone knows that you shouldn’t put SOQL queries within loops.

Triggers from DML Scenario

What’s less well understood is what happens when you perform DML operations on other objects in your triggers (or classes), and cause the triggers on the second object to run too. Let’s illustrate how it works with an example, e.g. you have this requirement:

You want to be able to mark an account as inactive and this to cause all the related contacts to be set to inactive.

(Let’s say for this example you can’t use a formula field on contacts to do this because you need to use this in a criteria based sharing rule which can’t use a formula)

Investigation of Behaviour

We add an Active_Checkbox__c custom checkbox field on account and contact (default value true) and then we put something like the following in the account after update trigger:

(Note all the code from this post is available in this gist)

Now we add a Batch_Size__c custom text field to the contact and add this logic to the before update trigger:

If the organization has 200 accounts, all of which are active (Active__c = True) and each account has 40 contacts. When we update the 200 accounts we would expect the trigger to update 200 x 40 = 8,000 records.

Lets add a static class to count the number of times this trigger runs:

We can put this in the contact trigger:

The Test

So now everything is prepared. We can try to deactivate 200 accounts by running this in Execute Anonymous:

So now we expect 8,000 contact records to be updated. Are these updated in bunches of 200 records also?

The Results

Yes they are. After running the code above the batch size is set to 200 on all contact records that were updated and the contact trigger has run 40 times.

The key point is that although this batching has occured into groups of 200, all of the groups of 200 ran in one transaction. And one transaction means one set of limits.

This effect can mean you go unexpectedly close to the limits for SOQL queries or @future calls.

For instance in your contact trigger you performed two SOQL queries outside of the contacts loop, then you would have used 2 x 40 = 80 SOQL queries in the transaction. The limit is currently 100.

Or if you have two @future calls in your contact trigger, this would use 80 future calls. The limit is currently only 50, so this would throw a limit exception.


Triggers always process records in batches of 200 regardless of how they are called: API, other triggers, classes etc.

If you are updating many records from DML then remember the whole trigger will run multiple times, so properly bulkified code can still hit the limits.

This problem common if changing something on the Master record in a Master-Detail relationship causes all Detail records to update.

The best solution is to build your Salesforce customisations holistically and to carefully think through the impacts that updating many records in a DML statement can have.

Code: Github Gist

About Boldsparks

04 Jan 2015

Boldsparks is a blog about Salesforce and related technologies. It covers Salesforce updates, development practices, common design patterns, administration and the AppExchange.

Comments? [email protected] or on twitter: @boldsparkstech.

Photo credits: vicki_burton.

New Object in Spring '15: Macros

04 Jan 2015

In the Spring ‘15 pre-release orgs there is a new object called Macros. At the moment it seems like a fairly normal standard object with the exception of the UI on the page layout:

Macro Page Layout

At present you can click to add “Macro Instructions” but you can’t pick anything from the picklist and when you save nothing happens.

Given how limited the fields on this object are it is difficult to know what its intented purpose is. However I would guess this will be used as part of the Service Cloud to allow for groupings of automated tasks.

This has currently got the object prefix: 0JZ.

Spring '15 Pre-Release Orgs

03 Jan 2015

The Spring ‘15 pre-release orgs are available. You can sign up for one by filling in this form.

I have briefly looked around. Here are the points highlighted as new in the setup menu:

User Success Journeys

Salesforce User Success Journeys guide users with customized suggestions based on how they use Salesforce and the Salesforce1 mobile app. Help your users succeed with tips on actions they can take to accomplish more—faster.

Note that this is currently available for US organizations only.

Named Credentials

Named Credentials UI

A named credential specifies a callout endpoint and its required authentication parameters. When setting up callouts, avoid setting authentication parameters for each callout by referencing named credentials.

Clean Rules

Clean rules control the clean process by defining which Salesforce records to clean and how to clean them. Each clean rule specifies the:

For example, you may have a clean rule that uses the Data.com Social Key data service to enrich social profile fields for Contact records.

Duplicate Management

Account Matching Rule UI

Duplicate Rules work together with matching rules to prevent users from creating duplicate records.

Matching Rules determine whether the record a user is creating or updating is similar enough to other records to be considered a duplicate, whereas duplicate rules tell Salesforce what action to take when duplicates are identified.

For example, a duplicate rule can block users from saving records that have been identified as possible duplicates, or simply alert users that they may be creating a duplicate, but allow them to save the record anyway.

For complete implementation information, download Managing Duplicate Records in Salesforce.

Sales Paths

Sales Path In Setup Menu

Sales Path Step 1

Sales Path Step 2

Give your sales reps a visual guide in the Salesforce1 mobile app: Show them where they are in the sales process and what they need to do next to close the sale. Have multiple sales processes at your company? Create a Sales Path (one per record type) for each process.

This functionality has been created with the Aura framework.


Record types and sharing for Assets.

Salesforce Files

Regenerate Previews for Files

Regenerate previews for Salesforce Files.

Use action link group templates to instantiate action link groups with common properties.

An action link is a button on a feed element that targets an API, a Web page, or a file. Use action links to integrate Salesforce and third-party systems into the feed. Every action link belongs to an action link group and action links within the group are mutually exclusive.

Is there anything else new that you have spotted?