Extending CiviCRM - CiviCRM Profiles: Collecting Constituent Information

CiviCRM Profiles: Collecting Constituent Information

Understanding Profiles

A profile is a collection of fields (both predefined and custom) from your database. They give you the means to collect information from your constituents, add it into your database and, if appropriate, share that information through your website.

By creating profiles and adding them to pages on your website (contribution pages, event pages, sign-up pages, etc.) you give your users a way to provide additional information about themselves.

Predefined fields include all the fields that are core to CiviCRM and any of its modules. These include things like:

Custom fields are defined and created by you and the needs of your organization. For example, you may want additional information about your volunteers – what are their skills, what is their availability during the week, how many hours can they commit to each month; or additional information about projects you might be working on such as project codes or the status of the project.

A few of the most common ways in which profiles may be used are:

Note: Profiles can be used over and over again in different ways. You do not necessarily have to create a new profile for each task. For example, all GingerFeet subscriptions come with a pre-built profile called Contact Information. This profile is intended for use on contributions and events for gathering first name, last name, address and phone information. It is a generic form that can be applied wherever a profile can be used.

Profiles are vitally important developmental tools within CiviCRM. Understanding how profiles work, what they can do and how to implement them is of tremendous benefit to your organization. If you need additional information on profiles, see the CiviCRM Online Book section Using CiviCRM Profiles or search for posts on our CiviCRM How to Forum where a question you have may have already been answered

Working with Profiles

You may want to make use of custom data fields for your profiles. While you're not required to create those fields before you create the profile, it is often easier in the long run if you do. For instruction on creating custom data fields, see the Gingerfeet User Guide section Creating Custom Data Fields. NOTE: For the purposes of this manual we assume that custom data fields have already been created.

Create a New Profile or Modify an Existing One

CiviCRM has included help pop-ups for this form with fairly detailed explanations for each field. Access these instructions via the balloon icon next to each field.

  1. In the Administration Menu across the top of your page, select Administer →Customize Data and Screens → Profiles.

If you want to modify the settings for a specific Profile such as your website Volunteer form, find Volunteer & Skills Form in the list. From the right-hand side of the form click Settings to modify the main settings for the form. You can then follow instructions from step number 7 below.

  1. Click the Add Profile button.
  2. Enter an appropriate name in the Profile Name field.
  3. Check the appropriate Used For checkbox(es).
    1. Check Profile if you want it to use this profile for customized listings and collect information from your constituents.
    2. Check Search Results to use this profile to display an alternate set of results columns for CiviCRM Basic and Advanced Search.
    3. Check User Registration if you want this Profile to be included in the New Account registration form.
    4. Check View/Edit User Account to include it in the view and edit screens for existing user accounts.
  4. Enter an Order other than the default, if desired. This is the display order on the Profile list page.
  5. Enter Pre-Form or Post-Form Help, if desired.
  6. Make sure that Is this CiviCRM Profile active? is checked.
  7. Click and expand the Advanced Settings field set.

    CiviCRM Profile Advanced Settings

    • Select a group from the Limit listings to a specific Group? dropdown if you are using the profile for search and listings, AND you want to limit the listings to members of a specific group.
    • If you are using this profile for a specific group that you want to automatically add to that group, select the group from the Add new contacts to a Group? dropdown.
    • Enter a notification email in the Notify when profile form is submitted? field.
    • If you are using this profile as a contact signup or edit form, and want to redirect the user to a page of your creation, enter the complete URL in the Redirect URL. If this field is left blank, the built-in Profile form will be redisplayed with a generic status message - 'Your contact information has been saved.'
    • Enter a URL for a unique cancellation page in the Cancel Redirect URL field. If this field is left blank, the built-in Profile form will be redisplayed.
    • Check Include reCAPTCHA? to enabled Google's anti-spam tool reCaptcha. Do not enable this feature for stand-alone profile forms. reCAPTCHA requires dynamic page generation. Submitting a stand-alone form with reCAPTCHA included will always result in a reCAPTCHA validation error. reCAPTCHA is also not available when a profile is used inside the User Registration and My Account screens.
    • Select a Drupal User Account option in the Drupal user account registration option?. For example, if you create a volunteer registration form (beyond the skills and information form) you would select Account Creation Required. Most often, your profiles will be used in conjunction with other components such as a contribution or event that does not require users to have their own account. In that case you would leave the No account create option selected.
    • Select Allow duplicate contact to be created in the What to do upon duplicate match field. We do not recommend selecting Issue warning and do not save as it creates an unfriendly user experience and Update the matching contact will automatically update an existing record - which may or may not be identical. De-duping is done through Contacts → Find and Merge Duplicate Contacts
    • The Proximity search option is associated with mapping and is used within a profile search to determine a search radius in relationship to an address.
    • Check Enable mapping for this profile? if you want to have a google map associated with the profile results
    • Check Include profile edit links in search results? if you want users with the appropriate permissions to be able to edit these profile fields.
    • Check Include Drupal user account information links in search results? if you want contacts who have a Drupal account on your site to be able to edit their own profile information.
  8. Click the Save button.

You will now be able to add fields to your profile. These can be pre-built CiviCRM fields or custom data fields.

Adding Fields to Your Profile

CiviCRM Profile Data Fields

Within the Add Field form:

  1. Select the appropriate component from the Field Name dropdown. Once selected, each item will display at least one additional dropdown. NOTE: Contact spans across individual, household and organization. Select Contact when you want to include phone and address information. Select Individual when you want to select First Name or Last Name.
  2. Edit the Field Label if necessary.
  3. If the user should be required to fill out this field, check the Required? checkbox. Remember that the user will have to fill out this field or CiviCRM will return an error when the user tries to submit the form.
  4. Check View only? if users are allowed to view but not edit the field.
  5. Select the appropriate visibility from the Visibility dropdown.
  6. Enter instructions for the end-user who is filling out this form in the Field Help field. If the profile is being used as a submission form on your site, THIS is where you'll enter instructions. Instructions for these fields display BELOW the field.
  7. Enter a display order in the Order field, if necessary. This is the order that the fields will appear on the form. CiviCRM will automatically number beginning with 1.
  8. Make sure that Active? checked.
  9. Click either the Save button (to complete) or Save and New button to create an additional field.

Once you have created the profile and saved either it or a field within it, you can exit and come back to add or edit or disable fields at any time.

Edit a Profile

Navigate Administer → Customize → CiviCRM Profile.

To edit the profile settings:

  1. Click the Settings link (for custom built profiles) or the More → Settings link (for pre-built CiviCRM profiles) to the right of the profile you want to edit.
  2. Edit the settings as necessary. See Create a New Profile above for details on profile settings.
  3. Scroll down and click the Save button to save your changes.

To add a profile field:

  1. Click the Fields link to the right of the profile you want to edit.
  2. Click the Add Field button
  3. Fill out the Add Field form as necessary. See Adding Fields to Your Profile above for details on field settings.
  4. Click the Save button (or Save and New for additional fields) to save the field.

Using a Profile as a Submission Form on Your Website

You can use profiles on your contribution and event pages via the Include Profiles options (see Fundraising and CiviContribute and Events and CiviEvents for details). But what do you do when you want to add a profile as a stand-alone form? In this instance you'll need add either a menu item or hyperlink on your website that links to the form. You'll need to know the path (URL) to the form to set up the menu or hyperlink.

Finding path to Profile form

To find out the path to the form:

  1. Navigate Administer → Customize → CiviCRM Profile.
  2. Click the More → Use Profile-Create Mode. The screen will refresh and the form will display in your browser within your website.
  3. Copy the URL in the browser address bar from civicrm/profile/create?gid=XX&reset=XX where "XX" are the ID and reset numbers associated with this profile.
  4. Navigate to the location within Drupal where you want the link to reside (either a new menu item or within an existing page)
  5. For a menu item, paste the URL into the Path field.
  6. For a hyperlink within a page, type the link text and use the Link icon on the toolbar to paste into the URL field.