CMS + CRM: Integrando Plone y Salesforce

Post on 18-Dec-2014

1.201 views 0 download

description

Por Franco Pellegrini. Un paseo que expone las posibilidades de integracion entre Plone y Salesforce.

Transcript of CMS + CRM: Integrando Plone y Salesforce

corporate training menttes

● Pellegrini, Franco● frapell@menttes.com

CMS + CRM:Integrando Plone y Salesforce

menttes

Introducción

CRM

(Customer relationship management)

· Administracion de las relaciones con el cliente

· SugarCRM

· ZohoCRM

· Microsoft Dynamics CRM

· Vtiger CRM

menttes

Salesforce

menttes

¿Que podemos hacer?

· Autenticación

· Interactuar con eventos (RSVP)

· Cargar datos desde Plone hacia Salesforce

· Leer datos desde Plone, almacenados en Salesforce

menttes

Productos

· Products.salesforcepfgadapter

· collective.salesforce.authplugin

· collective.salesforce.rsvp

· Products.salesforcebaseconnector

· Products.PloneFormGenRealiza la comunicación con SalesforceSe ocupa de la autenticación

Producto adicional para realizar formularios

Adaptador para utilizar PloneFormGen con Salesforce

Interacción con eventos en Salesforce

menttes

Instalación

menttes

Instalación

menttes

Instalación

menttes

Instalación

menttes

Instalación

menttes

Instalación

menttes

Instalación

menttes

Salesforce

Sin trabajo extra

menttes

Salesforce

Autenticación

menttes

Autenticación

menttes

Autenticación

menttes

Autenticación

menttes

Salesforce

Interacción con eventos(RSVP)

menttes

RSVP

menttes

RSVP

menttes

RSVP

menttes

RSVP

menttes

RSVP

menttes

Salesforce

Formularios

menttes

Formularios

menttes

Formularios

menttes

Formularios

menttes

Formularios

menttes

Formularios

menttes

Formularios

menttes

Formularios

menttes

Formularios

menttes

Salesforce

Usando la API

menttes

Hablando con Salesforce

>>> sf = app.www.portal_salesforcebaseconnector

>>> sf.describeGlobal()['types']['Account', ........ 'Contact', ....... 'Event', .................]

>>> sf.describeSObjects(['Contact'])[0].fields.keys()[....'FirstName', 'Title', 'LastName', ....... , 'Email', 'Phone', .........]

menttes

Creando contenido

>>> sf.create({'type':'Contact', 'FirstName':'Plone',

'LastName':'Symposium', 'Email':'plone@symposium.com.ar'})

[{'errors': [], 'id': '003A000000SM0jKIAT', 'success': True}]

>>> sf.create({'type':'Contact', 'FirstName':'Plone2',

'LastName':'Symposium', 'Email':'plone@symposium.com.ar'})

[{'errors': [], 'id': '003A000000SM0vgIAD', 'success': True}]

>>> sf.create({'type':'Contact', 'FirstName':'Plone3',

'LastName':'Symposium', 'Email':'plone@symposium.com.ar'})

[{'errors': [], 'id': '003A000000SM0vhIAD', 'success': True}]

menttes

Consultando a Salesforce

Salesforce.com Object Query Language (SOQL)

>>> sf.query("SELECT FirstName, LastName, Email FROM Contact

WHERE LastName='Symposium'")

[{'LastName': 'Symposium', 'type': 'Contact', 'Id': '', 'FirstName': 'Plone', 'Email': 'plone@symposium.com.ar'}, {'LastName': 'Symposium', 'type': 'Contact', 'Id': '', 'FirstName': 'Plone2', 'Email': 'plone@symposium.com.ar'}, {'LastName': 'Symposium', 'type': 'Contact', 'Id': '', 'FirstName': 'Plone3', 'Email': 'plone@symposium.com.ar'}]

menttes

Consultando a Salesforce

Salesforce.com Object Search Language (SOSL)

>>> sf.search("FIND {Plone*}")[{'type': 'Contact', 'Id': '003A000000SM0jKIAT'}]

>>> sf.retrieve(['FirstName', 'LastName', 'Email'], 'Contact', '003A000000SM0jKIAT')[{'LastName': 'Symposium', 'Email': 'plone@symposium.com.ar', 'FirstName': 'Plone'}]

menttes

Actualizando Salesforce

>>> sf.update({'type':'Contact', 'Id': '003A000000SM0jKIAT',

'FirstName':'Plone5', 'LastName':'Symposium5',

'Email':'plone@symposium.com.ar'})

[{'errors': [], 'id': '003A000000SM0jKIAT', 'success': True}]

>>> sf.retrieve(['FirstName', 'LastName', 'Email'], 'Contact', '003A000000SM0jKIAT')

[{'LastName': 'Symposium5', 'Email': 'plone@symposium.com.ar', 'FirstName': 'Plone5'}]

menttes

Eliminando elementos de Salesforce

>>> sf.delete(['003A000000SM0jKIAT', '003A000000SM0vgIAD', '003A000000SM0vhIAD'])

[{'errors': [], 'id': '003A000000SM0jKIAT', 'success': True}, {'errors': [], 'id': '003A000000SM0vgIAD', 'success': True}, {'errors': [], 'id': '003A000000SM0vhIAD', 'success': True}]

menttes

Salesforce + Plone

Preguntas ?

corporate training menttes

Muchas gracias

● Pellegrini, Franco● frapell@menttes.com