Overview

This module leverages the Salesforce Suite module to add Salesforce support to Webform. This module supports the following features:

  • Reading From Salesforce
    • Use Salesforce Picklists and Multi Picklists as the source for select controls
      • Supports dependent picklists. That is, changing a controlling picklist will dynamically update and hide/show depenent picklists as appropriate
      • Picklists can be sorted alphabetically, randomly, or in the order defined in Salesforce
      • Values can be filtered to remove items in Salesforce which should not be shown on the webform
      • Multi-language is supported. The picklist labels will be shown in the language of the calling page, if available
    • Predefined select lists
      • Any valid object can be used as a pre-defined select list within the form. Salesforce will be queried, and all active objects of the selected type will be presented to the user. The key value is the Salesforce ID for that object.
  • Writing to Salesforce
    • New objects can be created, and existing objects can be updated
    • Multiple Salesforce objects can be created/updated from a single webform
      • The ID of created/updated records are stored with the submission, and can be used in subsequent record updates in the same submission
      • If the form data is edited and resubmitted, the existing Salesforce objects created in the original submission can be updated, or new records can be created
    • Data sent to Salesforce can come from user input, hidden fields, or be specified directly in the mapping via free form text or, where available, drop down lists
      • Picklists will provide a dropdown of all defined active picklist values
      • Boolean fields provide a TRUE/FALSE dropdown
      • Reference fields attempt to provide a dropdown of target reference objects
    • The usage for creating Salesforce objects mirrors the existing email functionality of webforms

Requirements

Performance

Certain operations, particularly within the admin interface, involve significant data exchange between Drupal and Salesforce. The most noticable instance of this is when adding a picklist to a webform, or when configuring available picklists within the admin interface. To mitigate this, the code integrates with the Drupal cron system. If cron is run on a regular basis (at least twice per day) then the data used by these data-intensive exchanges will be cached locally by Drupal, greatly improving performance.

Suggestions/Improvements

If you have a suggestion for a new feature, or if you find a bug or issue, then take a look at the issue queue. If you don't find anything that addresses your suggestion, then submit a new issue. I don't promise I'll implement every suggestion, but I will certainly at least review it.

Other Solutions

There are several other modules which integrate Salesforce and Webform. Each has unique features and focus. If this module doesn't meet your requirements, perhaps one of the others will. The Comparison of Salesforce-Webform integration modules article attempts to collect and codify the various options.

Project information

Downloads