Wendel Schultz & Michael Fairchild - Live Q&A on Advanced Infusionsoft API Topics
1. The Ultimate Event for Small Business Success.
Advanced Infusionsoft API
Techniques
Michael Fairchild
API Specialist, Infusionsoft
@stormrager51
Wendel Schultz
Senior Software Engineer, Infusionsoft
@DietSodaSoft
3. The Ultimate Event for Small Business Success.
• API Specialist
• About 2 years
• 10 years experience in programming
• Loves back-end development of web-apps and
analytics/reporting
• Creates various high-value internal tools across
multiple systems.
• For fun, plays with bleeding-edge technology
• Follow me: @stormrager51
Michael Fairchild
4. The Ultimate Event for Small Business Success.
Referral Partners
Master tracking referrals with the
API
5. The Ultimate Event for Small Business Success.
• http://bit.ly/1eAJIs1
• Track affiliates from web form
submissions
• Track affiliates from order form
submissions
6. The Ultimate Event for Small Business Success.
Paging Effectively With Large
Data Sets
Learn how to leverage large data
sets with the API
7. The Ultimate Event for Small Business Success.
• DataService.count endpoint
• DataSevrvice . getUserInfo
• Only available for Oauth2-
authenticated calls
8. The Ultimate Event for Small Business Success.
ContactMe
Wendel Schultz
Senior Software Engineer, Infusionsoft
@DietSodaSoft
I love questions
9. The Ultimate Event for Small Business Success.
$> whoami
• 15 years software development experience
• Last 10 years in Java
• 4 ½ Years at Amazon.com AWS
– Enterprise Messaging Bus
– SQS 2.0 (Simple Queue Service)
– SWF (Simple Work Flow)
– Infrastructure Automation
• 1 ½ Years at Infusionsoft
14. The Ultimate Event for Small Business Success.
A Mobile App To:
• Pull Appointment times, locations, Customers
• Visualize appointments temporally on a
Google Map
• Easy customer engagement
– Place call
– One-touch SMS (“Text my 20”)
– Send email
15. The Ultimate Event for Small Business Success.
An Ideal SDK
• Handles OAuth
• Persists Access Tokens Securely
• Handles Request Creation
• Handles XML body creation
• Handles XML response parsing
18. The Ultimate Event for Small Business Success.
Resources
• Referrals: http://bit.ly/1eAJIs1
• YAIL: https://bitbucket.org/dietsoda/yail
• SS YAIL: https://bitbucket.org/dietsoda/ss-yail
• https://developer.infusionsoft.com/
19. The Ultimate Event for Small Business Success.
Questions?
• https://developer.infusionsoft.co
m
• https://www.facebook.com/grou
ps/infusionsoftapicommunity/
• @APIInfusionsoft
Notas del editor
** A square-shaped photo will work best in this circle-photo layout.To add photo inside the circle shape:click the icon inside the photoNavigate to the location of desired photo on your computer and select the fileClick ‘insert’ and your photo will be inserted
Now that sounds more like it…
Clarify: vendor key vs. API keyClarify: authorization code vs. authorization tokenCustomer: build an app for an onsite professional serviceStrategy: google map the day's appointments, drill into details, simplify engagement on the roadAnswer: Customer Circuit!Open: mobile app use case Screenshot of Android app Pull appointment times and locations Build a Map Provide appointment detailsSection: SDK Design NO MORE MAGIC STRINGS EVERYTHING IS CHECKED COMPILE-TIME LOTS OF SUGAR Operations return Models Auto-paging for the lazy Date helper classes (send/receive dates in EDT) Hides the "Service name" and "Operation name" from you as a developer Focus on your solution, not the mechanics of API access Simplicity and Readability Models (NOT Tables) Named Fields (compile-time support) Knows its data type Knows is access: CRUD "Easy" Custom Fields Contact has 78 NamedFields. Zero (0) "magic strings" Operations (Command pattern)DataServiceQueryOperation, DataServiceLoadOperation, DataServiceAddOperaiton Provide semantic interfaces: .addReturnFieldName() and .addCustomReturnFieldName() Provide fluent API usage Chain/build command object "Fluent API": DataServiceQueryOperation query = newDataServiceQueryOperation().fieldEquals(Contact.Field.FirstName, "Wendel").addReturnFieldName(Contact.Field.Email).addCustomReturnFieldName("IQ").sortBy(Contact.Field.LastUpdated).ascending().setLimit(5) Operations which return collections let you get nextPage() easily query = query.nextPage(); more on this later Profiles Stateless, not subject to temporal decay (e.g. temporary API key) Somewhat scary, as they are generally credentials of some sort Onus is on you to store securely (ergo Oauth2) Client factory Different profiles ensure the appropriate client is created Call-Brokering Client Assembles the credentials, XMLRPC arguments and build the POST body for you Simple interface: call() and autoPage() for any operationSection: SDK UsageDataServiceQueryOperation<ContactAction>: find appointments for a given day Contact Where WhenDataServiceLoadOperation<Contact>: find Contact for a given Appointment IDSection: Ecomm Best PracticesSection: Best Practices - via SDKSection: Oauth2
What does your app look like? We’re eager to see! What does it take to write an app that consumes the Infusionsoft API?