Your SlideShare is downloading. ×
0
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Capitalcamp 2013 - Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits

981

Published on

Salsa is a SaaS platform that helps nonprofits and political campaigns of all sizes to fundraise, advocate, communicate and organize online. This session from CapitalCamp 2013

Salsa is a SaaS platform that helps nonprofits and political campaigns of all sizes to fundraise, advocate, communicate and organize online. This session from CapitalCamp 2013

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
981
On Slideshare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Salsa: Spicy CRM Integration for Drupal-Powered Nonprofits CapitalCamp July 26, 2013 John Shortess 4Site Interactive Studios
  • 2. “Salsa helps nonprofits build, organize & engage a base of support with tools to communicate, fundraise, advocate & build community.”
  • 3. Over 2,000 clients managing over 75 million supporters, including: •  Electronic Frontier Foundation •  Democratic Legislative Campaign Committee •  League of Women Voters •  Robert Wood Johnson Foundation •  National Association of Court Appointed Special Advocates (CASA)
  • 4. Organize • Supporter • Signup page • Event Fundraise • Donate page • Donation Communicate • Questionnaire • Email Blast • Tell-a-friend Page Advocate • Petition • Targeted Action Salsa 101: Modules & ‘Objects’
  • 5. Mild Salsa: Link to Salsa-Hosted Form
  • 6. Medium Salsa: Unauthenticated Forms
  • 7. Medium Salsa: Unauthenticated Forms
  • 8. Medium Salsa: Unauthenticated Forms
  • 9. <script  src="http://sandbox.salsalabs.com/api/ flashMessageJS.sjs"  type="text/javascript"></script>     <form  action="http://sandbox.salsalabs.com/save">    <input  type="hidden"  value="supporter"  name="object”  />    <input  type="hidden"  value="1234"  name="organization_KEY”  />    Your  email:  <input  type="text"  value=""  name="Email”  />    Your  ZIP  Code:  <input  type="text"  value=""  name=”Zip”  />      <input  type="hidden"  name="required"  value="Email,Zip"/>      <input  type="Submit"  value="Submit  Form”  />   </form>   Medium Salsa: Unauthenticated Forms
  • 10. Hot Salsa: Salsa API and Salsa Entity
  • 11. Salsa API module Connects Drupal to Salsa’s RESTful API, to read from or write to nearly any Salsa object Salsa Entity module Exposes Salsa objects as Drupal entities Hot Salsa: Salsa API and Salsa Entity
  • 12. • Supporters • Groups • Signup pages • Donate pages • Questionnaires • Tell-a-friend pages • Events • Petitions • Targeted Actions • Unsubscribe pages Supported Objects (so far): Hot Salsa: Salsa API and Salsa Entity
  • 13. •  Forms rendered using FAPI – themeable, alterable •  Entity Reference integration •  Rules integration •  Basic Views integration through efq_views Hot Salsa: Salsa API and Salsa Entity
  • 14. Extra Spicy Salsa: Salsa API and Custom Code
  • 15. Extra Spicy Salsa: Salsa API and Custom Code •  Salsa API module creates a class with several methods •  Methods correspond to the calls in Salsa’s external API
  • 16. $supporter_key  =  33333266;   $supporter  =  salsa_api()-­‐>getObject  ('supporter',      $supporter_key);     Returns:   array(      'supporter_KEY'  =>  33333266,      'organization_KEY'  =>  17594,      'Last_Modified'  =>  'Tue  Feb  19  2013  18:30:52  GMT-­‐0500  (EST)',      'Date_Created'  =>  'Tue  Feb  05  2013  17:41:42  GMT-­‐0500  (EST)',      'Title'  =>  '',      'First_Name'  =>  'John',      'MI'  =>  'Q',      'Last_Name'  =>  'Public',      'Suffix'  =>  'Jr.',      'Email'  =  'john@test.null',      'Receive_Email'  =>  1,      'Email_Status'  =>  1,      'Email_Preference'  =>  'html',      'Soft_Bounce_Count'  =>  0,   salsa_api()->getObject
  • 17. $include  =  array('supporter_KEY',  'Last_Modified',          'First_Name',  'Last_Name',  'Email',  'City',    'State',  'Zip');   $conditions  =  array(      'Last_Modified'  =>  array(          '#operator'  =>  '>’,          '#value'  =>  date("Y-­‐m-­‐d  H:i:s",  $lastrun)        ),   );   $orderBy  =  array('Last_Modified  DESC');   $limit  =  $offset  .  ",500";   $supporters  =  salsa_api()-­‐>getObjects('supporter',    $conditions,  $limit,  $include,  $orderBy);   salsa_api->getObjects
  • 18. $fields  =  array(      'First_Name'  =>  'John',      'Last_Name'  =>  'Doe',      'Email  =>  'john@zoom.com',      'Zip'  =>  '01234',   );   $links  =  array(      array(          'link'  =>  'supporter_groups',          'linkkey'  =>  10000,      ),      array(        'link'  =>  'supporter_groups',          'linkkey'  =>  10001,      );   );   $new_key  =  salsa_api()-­‐>save('supporter',  $fields,  $links);   salsa_api()->save
  • 19. salsa_api()->getReport try  {      $report  =  salsa_api()-­‐>getReport(12345);      $leaders  =  $report['row']['totalleaders'];      variable_set('pon_leaderboard_leaders',  $leaders);   }  catch  (SalsaQueryException  $e)  {      $leaders  =  variable_get('pon_leaderboard_leaders');   }  catch  (SalsaConectionException  $e)  {      $leaders  =  variable_get('pon_leaderboard_leaders');           }  
  • 20. What’s Next? •  A few new API methods •  A few objects not yet supported in Salsa Entity •  Drupal 8 versions
  • 21. Questions? john@4sitestudios.com 4SiteStudios.com @johnshortess @4SiteStudios

×