Friday, February 20, 2015

Add or Remove Actions in Salesforce1 mobile app

Since version 7, Salesforce1 mobile app has replace + icon to open Publisher Actions page with Action Bars and Action Menu. Before version 7, when user tap + icon, it will open new page with multiple icons and paging.

In version 7, this is completely changed with Actions Bar.

Depending on which feed or record page users are viewing, user will see different actions in the action bar and action menu.

From Feed and Today page, user will see a set of global actions.

However, from a record page, user will see a mix of productivity actions, standard and custom buttons, standard Chatter actions such as Post and File, and global and object-specific actions that are assigned to the layout for that record type.

Users can tap ... icon from the action bar to open the action menu, which contains the full set of actions that are available for the object.

Global Actions
In Feed and Today page, by default Actions Bar will have icon from: Post, File, New Event, New Task, and so on. How we can add / delete / re-order the icons?
  1. Navigate to Setup | Create | Global Actions | Publisher Layouts
  2. You can have many layout based on the user profile, select a Global Publisher Layout by click Edit link
  3. You will see available Global Actions and Actions has been made available, you can add, remove, and change icon order by drag and drop the "icon" in Actions in the Publisher

Create custom object record using Action
If you have a custom object, you will not see Action for New for that object. You need to create a Global Action for this. Let us go through:
  1. Navigate to Setup | Create | Global Actions | Actions
  2. Click New Actions button
  3. Assume the object name is Service, enter Action Information as screenshot below
  4. You will notice New Service now available in the available Actions
  5. Edit Global Publisher Layouts and drag New Service into Actions in the Publisher

Object-Specific Actions
There are five types of object-specific actions:
  • Object-specific actions create records that are automatically associated with related records. For example, you add an object-specific action on the Account object that creates contacts. If a user creates a contact with that action on the detail page for the Acme account, that new contact is automatically associated with Acme.
  • Object-specific update actions make it easy for users to edit records. You can define the fields that are available for update.
  • Object-specific Log a Call actions let users enter notes about calls, meetings, or other interactions that are related to a specific record.
  • Object-specific custom actions are Visualforce pages or canvas apps that let users interact with or create records that have a relationship to an object record.
  • Send email actions, available only on cases, give users access to a simplified version of the Case Feed Email action on Salesforce1

You can configure object-specific actions from the object page layout, example for Account:
  1. Navigate to Setup | Customize | Accounts | Page Layouts
  2. Look for Actions in the Publisher, by default it will inherited from the global publisher layout, but you can overwrite by click link override the global publisher layout
  3. Mobile Smart Actions will be added by default and only for some standard objects, see reference below for more information. If you remove Mobile Smart Actions, following actions will be available:  
    • Standard actions, such as Post, File, Link, and Poll.
    • If you have edit or delete permission, you will Edit and Delete icon actions (type item 2 above)
    • Call or Log action (type item 3 above)
    • You will see Read News icon if you enable Account News Settings in Setup | Mobile Administration | Salesforce1 | Settings
The same for Opportunity object, when Mobile Smart Actions is not in the Actions in the Publisher:
  • Standard actions, such as Post, File, Link, and Poll
  • If you have edit or delete record permission, you will have Edit and Delete actions. If you have create permission, you will have Clone action (type item 2 above)
  • Call or Log action (type item 3 above)

If the object with Lookup or Master-Detail relationship with other object, example: Service have a lookup relationship to Opportunity. You suppose not to create Global Actions to create New Service from Opportunity, because it will NOT automatically populate Opportunity Name into Service when click New Service action.

You have to create the Action in Opportunity object:
  • Navigate to Setup | Customize | Opportunities | Buttons, Links, and Actions
  • Click New Action button and enter Action Information
  • You can define fields visible when user click the Action, for Master-Detail relationship, owner will be not available.
  • Navigate to Opportunities Page Layout, find Action created and drag to Actions in the Publisher

This is how it looks when user select Action menu:

Opportunity Name will be automatically populated: