infinity platform features and the software development kit
DESCRIPTION
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 2013TRANSCRIPT
10/9/2013 #bbcon 1
Infinity Platform Features and the Software Development Kit
PRESENTED BY BEN LAMBERT
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
10/9/2013 #bbcon 3
• Talk
• Demo cool stuff
• Repeat
SUMMARY
10/9/2013 #bbcon 4
• Extensibility
• Workflow
• Infinity API
• Mobile
• Web shell
WHAT YOU’RE GOING TO SEE…
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?
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
10/9/2013 #bbcon 7
DEMO #1 - TYPICAL DEVELOPER EXPERIENCE
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?
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?
10/9/2013 #bbcon 10
DEMO #2 – CUSTOMIZING DATA FORMS AND PAGES
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…
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
10/9/2013 #bbcon 13
DEMO #3 - DECEASING WORKFLOW
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
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
10/9/2013 #bbcon 16
VS 2010 WORKFLOW DIAGRAM
10/9/2013 #bbcon 17
DEMO #4 - BIOGRAPHICAL CHANGE REQUESTS
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
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
10/9/2013 #bbcon 20
VS 2010 WORKFLOW DIAGRAM
10/9/2013 #bbcon 21
GAMIFICATION
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
10/9/2013 #bbcon 23
• Internal Infinity-based Q&A product at Blackbaud
- inspired by http://stackoverflow.com/
NULLREFERENCE
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?
10/9/2013 #bbcon 25
DEMO #5 – CRM GAME CENTER
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
10/9/2013 #bbcon 27
CONSUMING THE INFINITY API
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
10/9/2013 #bbcon 29
DEMO #5 – OUTLOOK ADDIN
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/
10/9/2013 #bbcon 31
MOBILE ACCESS
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
10/9/2013 #bbcon 33
MOBILE
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
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:
- [email protected] @benjelambert
• Check out my screen casts:
- http://www.screencast.com/users/BenLambert
FOR MORE INFORMATION…
10/9/2013 #bbcon 36
QUESTIONS?
10/9/2013 #bbcon 37
TWEET ABOUT YOUR SESSION
#SESSION #TRACK
#PRESENTER