In some contexts, the list of Activity Types is filtered so that some are hidden. I'm not referring here to filtering out Activity Types defined for CiviCase only: I'm just considering those whose component = Contact (
civicrm_option_value.component_id IS NULL).
Examples of contexts where some Activity Types are hidden:
- Actions button on contact summary
- New Activity drop-down on Activities tab
- New Custom Field Set -> Used For
Examples of standard Activity Types that are hidden:
- Inbound Email
- Inbound SMS
- Outbound SMS
I and others have seen cases where other activity types become hidden that shouldn't be, e.g. Activity drop down list not displaying activites.
This can be inconvenient in the following use cases:
- User wishes to record manually an email that they received. I have seen users work around this by defining a new activity type, e.g. "Record inbound Email".
- User wishes to define a custom field set for one of the hidden activity types. As discussed in Is there a way to add a custom field to the Inbound SMS activity type?, it's possible to add the custom field set using the API in this case - but that's not very user-friendly.
The mechanism by which they're hidden appears to be the
filter field in the
civicrm_option_value table: if this is set to 1, the activity type is hidden.
The point of my question is to establish...
(a) The rationale for hiding some activity types: I guess it's because these aren't expected to be created manually, so it's to reduce clutter in the Actions menu etc. E.g. "Inbound Email" is used for automatically-processed inbound emails.
(b) Why they are hidden in New Custom Field Set -> Used For: perhaps again to reduce clutter but as this is back-end, I'd argue those using it should be able to select from all activity types here.
(c) For a user wishing to record manually an email that they received: whether it's better practice to define a new activity type or change the "filter" field in the civicrm_option_value table for "Inbound Email".
CiviCRM 4.6, 4.7; CMS-agnostic issue but using Drupal 7.