CMS + CRM: Integrando Plone y Salesforce
-
Upload
menttes -
Category
Technology
-
view
1.201 -
download
0
description
Transcript of CMS + CRM: Integrando Plone y Salesforce
corporate training menttes
● Pellegrini, Franco● [email protected]
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':'[email protected]'})
[{'errors': [], 'id': '003A000000SM0jKIAT', 'success': True}]
>>> sf.create({'type':'Contact', 'FirstName':'Plone2',
'LastName':'Symposium', 'Email':'[email protected]'})
[{'errors': [], 'id': '003A000000SM0vgIAD', 'success': True}]
>>> sf.create({'type':'Contact', 'FirstName':'Plone3',
'LastName':'Symposium', 'Email':'[email protected]'})
[{'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': '[email protected]'}, {'LastName': 'Symposium', 'type': 'Contact', 'Id': '', 'FirstName': 'Plone2', 'Email': '[email protected]'}, {'LastName': 'Symposium', 'type': 'Contact', 'Id': '', 'FirstName': 'Plone3', 'Email': '[email protected]'}]
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': '[email protected]', 'FirstName': 'Plone'}]
menttes
Actualizando Salesforce
>>> sf.update({'type':'Contact', 'Id': '003A000000SM0jKIAT',
'FirstName':'Plone5', 'LastName':'Symposium5',
'Email':'[email protected]'})
[{'errors': [], 'id': '003A000000SM0jKIAT', 'success': True}]
>>> sf.retrieve(['FirstName', 'LastName', 'Email'], 'Contact', '003A000000SM0jKIAT')
[{'LastName': 'Symposium5', 'Email': '[email protected]', '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 ?