Creating new bulk views operations (VBO) actions for custom entity types I have the following code and created a view for my custom entity type. I just want to create a new action button to be able to change a field's text to something else. I'm not sure why this custom action isn't showing up. Under which window am I suppose to see it? Execute arbitary php or modify multiple entity values?

Where is a good example code of getting a custom action working? Is there a pre-built VBO action example I can just download to see how it's made?

/**
 * Implements hook_action_info().
 */
function rubik_custom_action_info() {
  return array(
    'hideit' =&gt; array(
      'type' =&gt; 'entity',
      'label' =&gt; t('Custom Action'),
      'configurable' =&gt; FALSE,
      'triggers' =&gt; array('any'),
      'behavior' =&gt; array('changes_property'),
      'vbo_configurable' =&gt; FALSE,
      'pass rows' =&gt; TRUE,
    ),
  );
}

/**
 * Action function for MY_ACTION_NAME.
 */
function hideit(&amp;$entity, $context = array()) {
  drupal_set_message('ok it works');
}
After your action has been defined, it can be added in the Views UI under Selected Bulk Operations in your Bulk operations field settings. It will be a separate checkbox alongside other actions like Execute arbitrary PHP script, etc. Once selected, it should show up as select option or action button (depending on how the VBO field is configured).

The VBO development guide on d.o. is a good example of working code for defining an action, adding a optional global/per-bulk setting form, &amp; creating action handler. 

Here's a very bare bones example:

//Will add a "User Action" option to Bulk Operations: User field in Views UI
function MYMODULE_action_info() {
  return array(
    'MYMODULE_user_action' =&gt; array(
      //Can be other entities used in a view (e.g. 'node')
      'type' =&gt; 'user',              
      'label' =&gt; t('User Action'),
      'behavior' =&gt; array('changes_property'),
      'triggers' =&gt; array('any'),

      //Set to true if you an intermediate options form for your action
      //'configurable' =&gt; true,      

      //Set to true if you want additional globaloptions
      //'vbo_configurable' =&gt; true,
    ),
  );
}

function MYMODULE_user_action(&amp;$entity, $context){
  //$entity is the current entity being modified; it can
  //  modified directly to perform the action on the entity

  //$context is an array of contextual information about the 
  //  current state of bulk processing  (e.g. items remaining) 
  //  It also contains configurable options values if any were set (see below)
}

//If 'configurable' =&gt; true in hook_action_info() item this trio of functions 
// will add/process an intermediate form just like any Drupal form
function MYMODULE_user_action($settings, &amp;$form_state){
 //$settings['settings'] will contains settings set in 
 //  MYMODULE_user_action_views_bulk_operations_form
}
function MYMODULE_user_action_validate($form, $form_state) {
}
function MYMODULE_user_action_submit($form, $form_state) {
  //return an array of values usable by MYMODULE_user_action
}

//If 'vbo_configurable' =&gt; true, in hook_action_info() this presents 
// additional configurable options for the  VBO action. 
// It returns a Drupal form array
function MYMODULE_user_action_views_bulk_operations_form($options) {
}