Skip to main content

Behaviors for creating Dexterity content types that integrate with Salesforce.

Project description


collective.salesforce.content provides a Dexterity behavior for setting up Plone Dexterity content types that are connected to objects in a database. Arbitrary schema fields can be mapped and updated periodically based on automatic queries to Salesforce.

This is currently an integrator-level package with minimal UI. As consultants, we have used this functionality as a foundation for solving use cases like:

  • Expose a member directory on a public Plone website based on Account or Contact records pulled from each night.
  • Provide browseable and searchable tables of arbitrary data whose canonical storage is in
  • In conjunction with dexterity.membrane, allow users represented in to log in to a Plone site, with appropriate roles based on their status in
  • Pull pricing records from Salesforce as a basis for charging the correct amount in online transactions on the Plone website.


Read the documentation.

Issue Tracker

Submit issues.


collective.salesforce.content was created by the web team at Groundwire, including Matt Yoder, David Glick, Ryan Foster, and Jon Baldivieso.


1.1 (2012-05-08)

  • Add an option to configure a token that allows triggering a sync as an anonymous user as long as you provide the correct token. [davisagli - 2012-05-08]
  • Add SalesforcePicklist and SalesforceMultiPicklist fields, which are like Choice and Set of Choice but automatically load their vocabularies from the picklist in Salesforce. [davisagli - 2012-04-12]

1.0 (2012-01-09)

  • Fix incorrect browser layer name. [davisagli - 2012-01-09]
  • Add an upgrade step to help replace old collective.salesforce.behavior installations. [davisagli - 2012-01-09]

1.0b1 (2011-09-20)

  • Wrote docs. [davisagli - 2011-09-20]
  • Install a Salesforce base connector when the package is installed. [davisagli - 2011-09-20]
  • Rename package from collective.salesforce.behavior to collective.salesforce.content. [davisagli - 2011-09-20]
  • Moved repository to github. [davisagli - 2011-09-20]
  • Add option to sync a single object specified by Salesforce Id from the control panel. [davisagli - 2011-09-12]
  • Prevent ConflictErrors during sync from causing the entire sync request to retry. [davisagli - 2011-07-12]
  • Add some additional debug logging. [davisagli - 2011-07-08]
  • Use a digest of the record returned from Salesforce to avoid unnecessary reindexing. [davisagli - 2011-07-08]
  • Added a behavior to Delete objects from Plone when they aren’t found in Salesforce. [dextermilo - 2011-06-13]
  • Put a marker on the ObjectModifiedEvent fired when an object is synced, so that handlers can distinguish modifications made by the syncer. [davisagli - 2011-06-09]
  • Made it possible to have multiple schema fields use the same salesforce field. [dextermilo - 2011-05-27]
  • Log SOQL queries at the DEBUG level. [davisagli - 2011-05-27]
  • Make sure ObjectCreatedEvent is notified for new objects. [davisagli - 2011-05-25]
  • Fix import ordering issue by moving field handlers to meta.zcml. [davisagli - 2011-05-25]
  • Add handler for custom subqueries. [davisagli - 2011-05-25]
  • Fixed TextLine converter to handle datetimes. [davisagli - 2011-05-23]
  • Started adding tests. [davisagli - 2011-05-23]
  • Added optional helper behaviors to trigger appropriate workflow transitions when an object is updated or not found in Salesforce. [yomatters - 2011-05-20]
  • Convert text fields to unicode to avoid indexing errors. [yomatters - 2011-05-20]
  • Added relationship metadata handler and list field converter to allow for parent-to-child relationship queries. [yomatters - 2011-05-20]
  • Convert rich text values to unicode so that transforms succeed. [yomatters - 2011-03-28]
  • Added a control panel that can be used to trigger a synchronization. [yomatters - 2011-03-22]
  • Fixed handling of unset relationships in queries that span relationships. [yomatters - 2011-01-20]
  • For rich text fields, assume the mimetype of the input is the default mimetype of the field. [yomatters - 2011-01-07]
  • Fixed query for existing objects to look only for objects providing the schema interface. [yomatters - 2011-01-07]
  • Added event for objects updated from Salesforce during synchronization. [yomatters - 2011-01-03]
  • Added value converter for rich text fields. [yomatters - 2010-12-16]
  • Added event for objects not found in Salesforce during synchronization. [yomatters - 2010-12-16]
  • Initial work on behavior, schema hints, converters and syncing view. [yomatters - 2010-08-23]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for collective.salesforce.content, version 1.1
Filename, size File type Python version Upload date Hashes
Filename, size (50.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page