For slides, source code, and deployables from Ben Lambert’s “Infinity Platform Features and the Software Development Kit”, please visit his post on the Blackbaud Developer Network. http://www.bbdevnetwork.com/bbcon2013-content/
bbcon 2013
2. 10/9/2013 #bbcon 2
• Introduce the SDK for newbies
• Discuss new features in the SDK for oldies
• Focus on the “art of the possible” – get your creative juices flowing.
• Accelerate the return on your investment!
• Complete source code for everything you see will be available!
AGENDA
4. 10/9/2013 #bbcon 4
• Extensibility
• Workflow
• Infinity API
• Mobile
• Web shell
WHAT YOU’RE GOING TO SEE…
5. 10/9/2013 #bbcon 5
• Everything you need to author complete, feature-rich applications on
the Infinity Platform (5+ years of maturity)
• A bundling of the exact tools used by Blackbaud to create:
- CRM, ResearchPoint, Altru, Bluebird, et al
• Core principle: Client-authored = Blackbaud-authored
- Same 1st-class citizenship, same fidelity, same tools => same capabilities
- Custom functionality integrated seamlessly with stock functionality
• The SDK includes:
- Templates, Schemas, Tools, Documentation, Samples
- Rich integration with Visual Studio
WHAT IS THE INFINITY SDK?
6. 10/9/2013 #bbcon 6
CUSTOMIZATION AT EACH LAYER
Database
Web Server
Browser
Custom Client App 1 Custom Client App 2
HTTP Gateway
Custom Code
Custom Code
Custom Code
8. 10/9/2013 #bbcon 8
• Create brand new entities and associated CRUD
- Relate those entities to existing entities
- Surface those entities throughout the system
• Create brand new areas, new features to existing areas
• Design custom workflows based on your specific organizational needs
• Integrate custom content with out-of-box content
• Surface data from external system as native to Infinity
• (examples of these coming up in a few slides)
WHAT CAN I DO WITH THE SDK?
9. 10/9/2013 #bbcon 9
• Tap into existing data entry forms in order to customize the behavior
• Addins
- Custom event handlers for a form
- Similar to the VBA events for 7.x products
• Macros
- User-initiated custom functionality
- Similar to the VBA macro toolbar button for 7.x products
• Extensions
- Allows “adding” custom fields to existing forms
- Maximum flexibility in terms of layout and behavior
• Render as tab or “beneath” existing form content
WHAT ELSE?
11. 10/9/2013 #bbcon 11
• You’ve seen
- Developer-friendly experience in Visual Studio
- Custom entities, custom CRUD
- Custom data entry form behavior
Custom pages…
• But…CRUD is a commodity!
SO FAR…
12. 10/9/2013 #bbcon 12
• A “workflow” is a logical model of an often complicated and long
running process
- Multiple steps (activities), branches, and paths
- May pause and wait for external (human, other) interaction
- Triggered by some catalyst event (time passing can be a catalyst event!)
• Ensures consistent handling of your organization’s specific business
practices
- Track-able progress along the way
• Robust environment
- Persistence, Durability
• Palate of activities is HUGE!
- Every feature in BBEC
- Custom features can be added if the palate isn’t big enough!
WORKFLOW THEORY
14. 10/9/2013 #bbcon 14
• Tracking deceased information is vital to maintaining healthy relations
with your constituency
• Don’t want to be insensitive with a poorly timed communication (or
ask)
• Loss of time/money/resources/energy by not filtering out deceased
records from mailings, solicitations, etc.
• Sometimes records are marked as deceased in error, sometimes what
is meant is “don’t call me” or “I’m not interested right now”
• We need a workflow to validate that a constituent is truly deceased,
make the appropriate changes to the system if not, and capture a link
to the obituary if so.
STORYBOARD
15. 10/9/2013 #bbcon 15
• Marking a constituent as deceased (a standard feature in the system)
triggers a workflow (a customization)
• A task is created for another user to do research to confirm the
deceased status
• If the record is deceased, capture a media link to the obituary and add
a note to the record confirming the deceased status.
• If not deceased, add a note indicating the error and reset the
deceased flag
WORKFLOW DETAILS
18. 10/9/2013 #bbcon 18
• Data entry staff controls constituent record updates
• Not every user will have rights to change constituent details
• We need a workflow where limited-rights users can file “change
requests” and have those requests routed to the appropriate staff for
approval
STORYBOARD
19. 10/9/2013 #bbcon 19
• Limited-rights users file “change requests” (a custom-added feature)
• A task is routed to the data entry staff for approval
• If approved, the requested changes are automatically made to the
record and the submitter is notified of the update
• If not approved, capture the reason and inform the submitter
• Workflow handles the requested changes, which reduces the surface
area for human error
• Ensures consistent handling every time!
WORKFLOW DETAILS
22. 10/9/2013 #bbcon 22
• Business strategy which applies gaming rules to non-game
environments to drive user behavior.
• Psychology around improving metrics just by measuring and
presenting results
- Heisenberg/Uncertainty principle
• Taps into the inherent competitive spirit of human nature
- Ex: Fuel band – visualizing your activity score motivates improvement
• Gamification can help drive key business metrics
- Can make tedious or repetitive actions more fun/enjoyable
• Can be used to measure application user engagement...
- more points = more engaged
• - http://www.gamification.org/
GAMIFICATION
23. 10/9/2013 #bbcon 23
• Internal Infinity-based Q&A product at Blackbaud
- inspired by http://stackoverflow.com/
NULLREFERENCE
24. 10/9/2013 #bbcon 24
• We believe that software is powerful when given rich data
• Richer Data = Better CRM = Better Fundraising
• Focus on a few metrics, all of which have high value to incent:
- Completing prospect planned steps
- Filing contact reports
- Adding a constituent photos
- Adding constituent relationships
- Uploading your application user photo
- Etc.
• Those metrics frequently map to logic operations in CRM
HOW CAN WE APPLY THIS TO CRM?
26. 10/9/2013 #bbcon 26
• Created new entities in the system to represent application user
scores (reputation), badges, photos
• Built a UI to surface the scores, ranking, leaderboard, etc.
• Built a workflow that adds points to the given user’s score
• Used “Workflow Triggers” feature to trigger the workflow from logical
operations in the system
- Adding a constituent = 10 points
- Adding a note = 2 points
- Filing a contact report 20 points
• Badges /Achievements are unlocked along the way
- Can even trigger an additional workflow to reward users with gift cards or
movie tickets
GAME CENTER
28. 10/9/2013 #bbcon 28
• Every feature in BBEC is exposed via a web service
• Show data forms, search screens (both OOB and custom)
• View/Add/Edit/Delete any data element
• We code generate client-side wrappers for every feature
- Friendly RE7-like developer experience
• Many options available to support a variety of usage scenarios
API THEORY
30. 10/9/2013 #bbcon 30
OUTLOOK ADDIN
• Look up constituent information based on an email address
• Show data entry screens, search screens, custom or OOB
• Customize the ribbon
• Customize the context menu
• http://www.bbdevnetwork.com/blogs/outlook-blackbaud-crm-integration/
32. 10/9/2013 #bbcon 32
• Dedicated, pluggable, list of “services” tailed to mobile devices
- Ex: add constituents to batch via mobile, mobile change requests
- Of course the full site is also accessible from mobile devices
• Btw – I’m using the great mobile simulator from www.electricplum.com
MOBILE
34. 10/9/2013 #bbcon 34
• The Infinity SDK represents a powerful toolset for accelerating the
return on your investment
• Add dramatic value, operational efficiency
• Define custom entities, CRUD
• Surface custom content in compelling user interfaces
• Very approachable programming model
WRAP UP
35. 10/9/2013 #bbcon 35
• Blackbaud Developer Network (BBDN)
- http://www.bbdevnetwork.com/
• Newly released technical documentation
- https://www.blackbaud.com/files/support/guides/infinitytechref/infrefversions-
developer-help.htm
- https://www.blackbaud.com/files/support/guides/infinitydevguide/infsdk-
developer-help.htm
• Email me: Follow me on Twitter:
- ben.lambert@blackbaud.com @benjelambert
• Check out my screen casts:
- http://www.screencast.com/users/BenLambert
FOR MORE INFORMATION…