infinity platform features and the software development kit

Post on 22-Jan-2015

1.075 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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 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:

- ben.lambert@blackbaud.com @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

top related