Infinity Platform Features and the Software Development Kit

37
10/9/2013 #bbcon 1 Infinity Platform Features and the Software Development Kit PRESENTED BY BEN LAMBERT

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 2013

Transcript of Infinity Platform Features and the Software Development Kit

Page 1: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 1

Infinity Platform Features and the Software Development Kit

PRESENTED BY BEN LAMBERT

Page 2: Infinity Platform Features and the Software Development Kit

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

Page 3: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 3

• Talk

• Demo cool stuff

• Repeat

SUMMARY

Page 4: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 4

• Extensibility

• Workflow

• Infinity API

• Mobile

• Web shell

WHAT YOU’RE GOING TO SEE…

Page 5: Infinity Platform Features and the Software Development Kit

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?

Page 6: Infinity Platform Features and the Software Development Kit

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

Page 7: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 7

DEMO #1 - TYPICAL DEVELOPER EXPERIENCE

Page 8: Infinity Platform Features and the Software Development Kit

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?

Page 9: Infinity Platform Features and the Software Development Kit

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?

Page 10: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 10

DEMO #2 – CUSTOMIZING DATA FORMS AND PAGES

Page 11: Infinity Platform Features and the Software Development Kit

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…

Page 12: Infinity Platform Features and the Software Development Kit

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

Page 13: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 13

DEMO #3 - DECEASING WORKFLOW

Page 14: Infinity Platform Features and the Software Development Kit

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

Page 15: Infinity Platform Features and the Software Development Kit

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

Page 16: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 16

VS 2010 WORKFLOW DIAGRAM

Page 17: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 17

DEMO #4 - BIOGRAPHICAL CHANGE REQUESTS

Page 18: Infinity Platform Features and the Software Development Kit

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

Page 19: Infinity Platform Features and the Software Development Kit

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

Page 20: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 20

VS 2010 WORKFLOW DIAGRAM

Page 21: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 21

GAMIFICATION

Page 22: Infinity Platform Features and the Software Development Kit

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

Page 23: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 23

• Internal Infinity-based Q&A product at Blackbaud

- inspired by http://stackoverflow.com/

NULLREFERENCE

Page 24: Infinity Platform Features and the Software Development Kit

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?

Page 25: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 25

DEMO #5 – CRM GAME CENTER

Page 26: Infinity Platform Features and the Software Development Kit

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

Page 27: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 27

CONSUMING THE INFINITY API

Page 28: Infinity Platform Features and the Software Development Kit

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

Page 29: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 29

DEMO #5 – OUTLOOK ADDIN

Page 31: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 31

MOBILE ACCESS

Page 32: Infinity Platform Features and the Software Development Kit

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

Page 33: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 33

MOBILE

Page 34: Infinity Platform Features and the Software Development Kit

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

Page 35: Infinity Platform Features and the Software Development Kit

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…

Page 36: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 36

QUESTIONS?

Page 37: Infinity Platform Features and the Software Development Kit

10/9/2013 #bbcon 37

TWEET ABOUT YOUR SESSION

#SESSION #TRACK

#PRESENTER