plone+salesforce

115
Plone+Salesforce Sally Kleinfeldt, David Glick, Carlos de la Guardia Plone Conference Brasilia 4 October 2013

Upload: jazkarta-inc

Post on 10-May-2015

567 views

Category:

Technology


2 download

DESCRIPTION

Salesforce.com is a mature, feature-rich, highly customizable, software-as-a-service CRM that has had excellent integration with Plone since 2007. The combination of Plone and Salesforce.com is a great deal for non-profits - the Salesforce Foundation will donate up to 10 enterprise licenses to 501(c)3 organizations, and any additional licenses are deeply discounted. In this talk I will review the Plone+Salesforce integration toolkit, describe recent improvements to the toolkit, and contrast this with what other CMSes have to offer.

TRANSCRIPT

Page 1: Plone+Salesforce

Plone+Salesforce

Sally Kleinfeldt, David Glick, Carlos de la GuardiaPlone Conference Brasilia

4 October 2013

Page 2: Plone+Salesforce

Salesforce.com

Page 3: Plone+Salesforce

Salesforce.com• Leading hosted CRM (customer

relationship management)

Page 4: Plone+Salesforce

Salesforce.com• Leading hosted CRM (customer

relationship management)

• Mature

Page 5: Plone+Salesforce

Salesforce.com• Leading hosted CRM (customer

relationship management)

• Mature

• Feature-rich

Page 6: Plone+Salesforce

Salesforce.com• Leading hosted CRM (customer

relationship management)

• Mature

• Feature-rich

• Customizable

Page 7: Plone+Salesforce

Salesforce.com• Leading hosted CRM (customer

relationship management)

• Mature

• Feature-rich

• Customizable

• Integrated with Plone since 2007

Page 8: Plone+Salesforce

Salesforce Foundation

Page 9: Plone+Salesforce

Salesforce Foundation• Leverage Salesforce.com

Page 10: Plone+Salesforce

Salesforce Foundation• Leverage Salesforce.com

• Donate and discount products to non-profits

Page 11: Plone+Salesforce

Salesforce Foundation• Leverage Salesforce.com

• Donate and discount products to non-profits

• 10 donated Enterprise Edition licenses

Page 12: Plone+Salesforce

Salesforce Foundation• Leverage Salesforce.com

• Donate and discount products to non-profits

• 10 donated Enterprise Edition licenses

• Deep discounts on additional licenses

Page 13: Plone+Salesforce

Salesforce Foundation• Leverage Salesforce.com

• Donate and discount products to non-profits

• 10 donated Enterprise Edition licenses

• Deep discounts on additional licenses

• Discounts on training, events, apps

Page 14: Plone+Salesforce

Integration Toolkit

Page 15: Plone+Salesforce

Initial Integration

Page 16: Plone+Salesforce

Initial Integration• Funded by 2006 Salesforce Foundation

grant to ONE/Northwest (later Groundwire)

Page 17: Plone+Salesforce

Initial Integration• Funded by 2006 Salesforce Foundation

grant to ONE/Northwest (later Groundwire)

• Beatbox – Python library, wraps Salesforce SOAP API

Page 18: Plone+Salesforce

Initial Integration• Funded by 2006 Salesforce Foundation

grant to ONE/Northwest (later Groundwire)

• Beatbox – Python library, wraps Salesforce SOAP API

• SalesforceBaseConnector – Calls Salesforce SOAP API from Plone

Page 19: Plone+Salesforce

Initial Integration

Page 20: Plone+Salesforce

Initial Integration

• Salesforce PFG Adapter – Allows PFG forms to submit to Salesforce, provides field mapping

Page 21: Plone+Salesforce

Initial Integration

• Salesforce PFG Adapter – Allows PFG forms to submit to Salesforce, provides field mapping

• SalesforceAuthPlugin – Authenticate logins against Salesforce

Page 22: Plone+Salesforce

Expanded Toolkit

Page 23: Plone+Salesforce

Expanded Toolkit

• Paypal2SalesforceLead- Paypal listener, adds a lead when a payment is made

Page 24: Plone+Salesforce

Expanded Toolkit

• Paypal2SalesforceLead- Paypal listener, adds a lead when a payment is made

• Salesforce Order Recorder – GetPaid add-on, allows checkouts to generate items in Salesforce

Page 25: Plone+Salesforce

Expanded Toolkit

Page 26: Plone+Salesforce

Expanded Toolkit

• collective.salesforce.rsvp – accept registrations for unpaid events via Plone and store the data in Salesforce

Page 27: Plone+Salesforce

Expanded Toolkit

• collective.salesforce.rsvp – accept registrations for unpaid events via Plone and store the data in Salesforce

• Megaphone – map participation in petitions and letters to Salesforce

Page 28: Plone+Salesforce

Expanded Toolkit

Page 29: Plone+Salesforce

Expanded Toolkit

• collective.salesforce.content – create Plone content types that are connected to objects in Salesforce

Page 30: Plone+Salesforce

Fundraising

Page 31: Plone+Salesforce

Turnkey Fundraising Site

Page 32: Plone+Salesforce

Turnkey Fundraising Site

• The Innocence Project expanded the toolkit in 2012

Page 33: Plone+Salesforce

Turnkey Fundraising Site

• The Innocence Project expanded the toolkit in 2012

• collective.salesforce.fundraising

Page 34: Plone+Salesforce

collective.salesforce.fundraising

Page 35: Plone+Salesforce

collective.salesforce.fundraising

• Standalone online fundraising system

Page 36: Plone+Salesforce

collective.salesforce.fundraising

• Standalone online fundraising system• Integration with Salesforce.com

campaigns

Page 37: Plone+Salesforce

collective.salesforce.fundraising

• Standalone online fundraising system• Integration with Salesforce.com

campaigns• Create campaign timelines and goals

One time and recurring donations

Page 38: Plone+Salesforce

collective.salesforce.fundraising

• Standalone online fundraising system• Integration with Salesforce.com

campaigns• Create campaign timelines and goals

One time and recurring donations• Personal fundraising - allow users to

create personal campaign pages

Page 39: Plone+Salesforce

collective.salesforce.fundraising

Page 40: Plone+Salesforce

collective.salesforce.fundraising

• Payment processing

Page 41: Plone+Salesforce

collective.salesforce.fundraising

• Payment processing • Integration with Stripe for recurring

donations including sending emails and updating Salesforce Recurring Donations

Page 42: Plone+Salesforce

collective.salesforce.fundraising

• Payment processing • Integration with Stripe for recurring

donations including sending emails and updating Salesforce Recurring Donations

• Social integration via Janrain

Page 43: Plone+Salesforce

Many Campaignshttps://secure.innocenceproject.org/donate

Page 44: Plone+Salesforce

One Campaignhttps://secure.innocenceproject.org/donate/ypc-fundraiser-2013

Page 45: Plone+Salesforce

Plone Foundation Fundraising Sitehttp://plonedemo.muselab.com

Page 46: Plone+Salesforce

FundraisingTake 2

Page 47: Plone+Salesforce

FundraisingTake 2

• Hard to add payment processors, switch CRM, etc.

Page 48: Plone+Salesforce

FundraisingTake 2

• Hard to add payment processors, switch CRM, etc.

• Break collective.salesforce.fundraising into modular pieces

Page 49: Plone+Salesforce

FundraisingTake 2

• Hard to add payment processors, switch CRM, etc.

• Break collective.salesforce.fundraising into modular pieces

• Work still in progress

Page 50: Plone+Salesforce

collective.fundraising.*

Page 51: Plone+Salesforce

collective.fundraising.*• collective.fundraising.core - Dexterity

behaviors and other shared functionality

Page 52: Plone+Salesforce

collective.fundraising.*• collective.fundraising.core - Dexterity

behaviors and other shared functionality• collective.fundraising.site - Optimized

site configuration

Page 53: Plone+Salesforce

collective.fundraising.*• collective.fundraising.core - Dexterity

behaviors and other shared functionality• collective.fundraising.site - Optimized

site configuration • Additional components planned for

Salesforce, Stripe, Recurly, Janrain, Mailchimp, Mandrill....

Page 54: Plone+Salesforce

Recent Work

Page 55: Plone+Salesforce

API

Page 56: Plone+Salesforce

API• SOAP libraries were not ideal

Page 57: Plone+Salesforce

API• SOAP libraries were not ideal

• Beatbox for generic API

Page 58: Plone+Salesforce

API• SOAP libraries were not ideal

• Beatbox for generic API• Suds for custom API

Page 59: Plone+Salesforce

API• SOAP libraries were not ideal

• Beatbox for generic API• Suds for custom API

• Salesforce now has a unified REST API with a new Python library: simple-salesforce

Page 60: Plone+Salesforce

API

Page 61: Plone+Salesforce

Message Queuing

Page 62: Plone+Salesforce

Message Queuing • First generation toolkit was synchronous

Page 63: Plone+Salesforce

Message Queuing • First generation toolkit was synchronous

• High latency - users and threads kept waiting

Page 64: Plone+Salesforce

Message Queuing • First generation toolkit was synchronous

• High latency - users and threads kept waiting

• Tight coupling - errors when Salesforce unavailable

Page 65: Plone+Salesforce

Message Queuing • First generation toolkit was synchronous

• High latency - users and threads kept waiting

• Tight coupling - errors when Salesforce unavailable

• Solution: message queue allowing asynchronous processing

Page 66: Plone+Salesforce

Message Queuing

Page 67: Plone+Salesforce

Message Queuing • Technologies chosen:

Page 68: Plone+Salesforce

Message Queuing • Technologies chosen:

• Celery: http://www.celeryproject.org/

Page 69: Plone+Salesforce

Message Queuing • Technologies chosen:

• Celery: http://www.celeryproject.org/ • Feature rich

Page 70: Plone+Salesforce

Message Queuing • Technologies chosen:

• Celery: http://www.celeryproject.org/ • Feature rich• Good traction

Page 71: Plone+Salesforce

Message Queuing • Technologies chosen:

• Celery: http://www.celeryproject.org/ • Feature rich• Good traction

• RabbitMQ: http://www.rabbitmq.com/

Page 72: Plone+Salesforce

Message Queuing • Technologies chosen:

• Celery: http://www.celeryproject.org/ • Feature rich• Good traction

• RabbitMQ: http://www.rabbitmq.com/ • Message queue backend

Page 73: Plone+Salesforce

Message Queuing

Page 74: Plone+Salesforce

Message Queuing• Integrating Celery with Zope transactions

turned out to be easy

Page 75: Plone+Salesforce

Message Queuing• Integrating Celery with Zope transactions

turned out to be easy• Use after-commit hook in case transaction

hits a database conflict and gets retried

Page 76: Plone+Salesforce

Message Queuing• Integrating Celery with Zope transactions

turned out to be easy• Use after-commit hook in case transaction

hits a database conflict and gets retried• Created decorator to encapsulate

queueing and creating Salesforce connection

Page 77: Plone+Salesforce

Future Work

Page 78: Plone+Salesforce

Future Work• Package decorators for creating celery

tasks that run within Zope or do callouts to external webservices into a reusable library

Page 79: Plone+Salesforce

Future Work• Package decorators for creating celery

tasks that run within Zope or do callouts to external webservices into a reusable library

• Higher-level Plone add-on for configuring synchronization between Plone content types and Salesforce objects

Page 80: Plone+Salesforce

Competition

Page 81: Plone+Salesforce

Drupal+Salesforce

Page 82: Plone+Salesforce

Drupal+Salesforce• Salesforce Suite

Page 83: Plone+Salesforce

Drupal+Salesforce• Salesforce Suite

• https://drupal.org/project/salesforce

Page 84: Plone+Salesforce

Drupal+Salesforce• Salesforce Suite

• https://drupal.org/project/salesforce• Modular integration framework for

developers

Page 85: Plone+Salesforce

Drupal+Salesforce• Salesforce Suite

• https://drupal.org/project/salesforce• Modular integration framework for

developers• Lower level components to build from

Page 86: Plone+Salesforce

Drupal+Salesforce• Salesforce Suite

• https://drupal.org/project/salesforce• Modular integration framework for

developers• Lower level components to build from• Recently rewritten

Page 87: Plone+Salesforce

Drupal+Salesforce

Page 88: Plone+Salesforce

Drupal+Salesforce• Springboard

Page 90: Plone+Salesforce

Drupal+Salesforce• Springboard

• http://www.jacksonriver.com/springboard

• Out of the box non-profit fundraising and marketing

Page 91: Plone+Salesforce

Drupal+Salesforce• Springboard

• http://www.jacksonriver.com/springboard

• Out of the box non-profit fundraising and marketing

• Satisfies a particular set of use cases

Page 92: Plone+Salesforce

Drupal+Salesforce

Page 93: Plone+Salesforce

Drupal+Salesforce

• RedHen

Page 94: Plone+Salesforce

Drupal+Salesforce

• RedHen• http://redhencrm.com/

Page 95: Plone+Salesforce

Drupal+Salesforce

• RedHen• http://redhencrm.com/• Native Drupal CRM

Page 96: Plone+Salesforce

Drupal+Salesforce

• RedHen• http://redhencrm.com/• Native Drupal CRM• Designed to be integrated with

Salesforce

Page 97: Plone+Salesforce

Joomla!+Salesforce

Page 98: Plone+Salesforce

Joomla!+Salesforce

• JoomForce

Page 101: Plone+Salesforce

Wordpress+Salesforce

Page 102: Plone+Salesforce

Wordpress+Salesforce

• WordPress to Lead for Salesforce

Page 105: Plone+Salesforce

Wordpress+Salesforce

• WordPress to Lead for Salesforce• http://wordpress.org/plugins/

salesforce-wordpress-to-lead/• Easy to install• Basic web to lead forms

Page 106: Plone+Salesforce

Wordpress+Salesforce

Page 107: Plone+Salesforce

Wordpress+Salesforce• Gravity Forms to Salesforce

Page 110: Plone+Salesforce

Wordpress+Salesforce• Gravity Forms to Salesforce

• http://wordpress.org/plugins/gravity-forms-salesforce/

• Easy to install• Web to lead forms with custom fields

Page 111: Plone+Salesforce

Wordpress+Salesforce• Gravity Forms to Salesforce

• http://wordpress.org/plugins/gravity-forms-salesforce/

• Easy to install• Web to lead forms with custom fields• Use the API with Salesforce Enterprise,

Unlimited and Developer Edition

Page 112: Plone+Salesforce

Plone vs. The Others

Page 113: Plone+Salesforce

Plone vs. The Others

• Plone offers richer Salesforce integration than Joomla! or Wordpress

Page 114: Plone+Salesforce

Plone vs. The Others

• Plone offers richer Salesforce integration than Joomla! or Wordpress

• Plone and Drupal offer a similar level of Salesforce integration but packaged differently

Page 115: Plone+Salesforce

Questions?