SlideShare a Scribd company logo
1 of 30
Jarred Keneally – GPM Intuit Developer Group
Dinesh Kinger - Senior Software Engineer, Intuit Developer Group
Deliver successful code:
Application integration best practices for developers
WiFi: QBConnect No password required#QBConnect
2
Jarred is a developer relations leader and has been
with Intuit for 16 years.
He was part of the team that started the Intuit Partner
Platform 5 years ago.
Jarred loves working with developers who are a key
partner and component of Intuit's success.
About today’s speaker
Jarred Keneally
Group Product and Development Manager
#QBConnect | @IntuitDev | @JarredKeneally | @DineshKinger2
3
Dinesh Kinger is a software engineer with 12 years of
experience designing and rolling out solutions.
Intuition and design need to go hand in hand to deliver a
great user experience
“Customers don't know what they want until we've shown
them what they can get.”
About today’s speaker
Dinesh Kinger
Senior Software Engineer
#QBConnect | @IntuitDev | @JarredKeneally | @DineshKinger2
Why do best practices matter?
Why do customers even want integrations?
Best practices
• What
• How
Summary of Takeaways
Q&A
Agenda
Why do best practices matter?
Ask a customer.
Software is not easy to use, lot of sync issues.”
– AppCenter Reviewer
We installed this app… Unfortunately that's where the
problems started. This app creates new customers, new
products, and new invoices. In essence, it creates double
counting of all transactions that are already in QBO.”
– AppCenter Reviewer
Not Sure Why Anyone Would Use This App.”
– AppCenter Reviewer
9
There are 452 apps on Apps.com today
Average of 3 stars, <75% have even 1 review.
Over 15% of QB users have connected at least one app
50% of users won’t try an app with 3 stars or less
Accountants want an app to have at least 4 stars
NPS & reviews are critical to your success
Why do customers even want
integrations?
11
The average small business uses 8 applications throughout the course of
their business day to run their business.
Everything a small business ultimately touches money or time (=money).
Why do customers want QuickBooks integration?
12
Accounting is a necessary evil of doing business. Unless you are an
accountant, you didn’t go into business because you want to do accounting.
Government compliance requires accounting
• Income Taxes
• Sales/Use Taxes
• Payroll Taxes
Getting a small business loan requires accounting
Why do customers need QuickBooks integration?
KEY TAKEAWAY: Accounting should be an invisible result of running the business.
Best practices
14
When you write data to QuickBooks, you take on the responsibility of
maintaining the accuracy of your user’s books.
It’s tempting to take shortcuts:
“Can’t I just record an expense for these fees?”
“Why do I have to record a deposit for the money I put in the user’s bank?”
“Can’t I just record everything against one ‘Sales’ item?”
“Why does the customer’s address matter?”
Accounting is complex
KEY TAKEAWAY: Accuracy is paramount. Don’t take shortcuts!
15
Set the context of what they are doing and why!
Guide the user through the process
When dealing with accounting setup, use
QuickBooks Terminology
When dealing with your data, use your
Terminology (i.e Orders will be synced to
QuickBooks as a Sales Receipt)
Provide reasonable defaults (based on the user’s
QB data)
Allow the user to override your defaults
Allow the user to create what they need on the fly
(don’t make them go back to QuickBooks if you
can avoid it).
Show a summary of the data you would write
before you write for the first time
Better yet, write a small amount of data first, send
the user to QB (via deep links) to review what you
wrote, and give them a way to delete what you
wrote if it wasn’t right
Businesses are unique, their chart of
accounts is unique, their needs are
unique.
There is no “one size fits all” default
setup for an app
Users are not always totally familiar with
accounting themselves
Summarize their choices and the
effects of those choices
Integration setup is critical to success
KEY TAKEAWAY: The user should leave setup confident
that the accounting is correct!
16
Bank activity should match business activity
17
Take your data to the bank
Lots of biz transactions with
no tie to the bank data = more
work for the book keeper.
Bank business should be traceable to customer/supplier business
KEY TAKEAWAY: If your data doesn’t
match the bank data, you got it wrong!
18
Deposit based
Preferred if you have the right data at the right time.
• Record sales to “Undeposited funds”
• Record deposit to bank based on payment reconciliation
report
• Link deposit to sales transactions included in the deposit
• Add account-based lines to capture fees, holdbacks,
refunds.
• Total needs to match the deposit the bank sees.
Transfer based
Use if you don’t know which sales are included in
a bank deposit.
Use if the payment system looks like a bank.
(i.e. PayPal).
• Record sales to “XX Payments holding account”
• Record deposits to bank as a transfer from the holding
account to the bank account with the amount matching
the reconciliation report
• Record fees and holdbacks as purchases drawn from
the holding account.
• Record refunds as drawn from the holding account.
Techniques for payments reconciliation
19
Not all data is relevant to all users
Ex: E-Commerce merchants probably don’t want a unique QBO customer for every order
• They may want likely repeat customers (i.e. registered on the website) synced uniquely
Inventory, when used, is critical QBO is “growing up” rapidly here
Many systems have inventory, only QBO knows the accounting for Inventory and so
must be treated as the source of truth for that aspect.
• Inventory is an asset to the business
• Quantity On Hand is only part of the story (Asset value, COGS)
• QuickBooks doesn’t know everything (multiple pictures, detailed descriptions, etc.)
• Maintain “Shared truth” between systems, be aware which is the master for each field of an
inventory item.
– Yes, this DOES mean bi-directional data flow
• Be clear on how to handle missing items when syncing to QBO
– Create items with default income, asset, COGS accounts
– Can you distinguish between inventory and non-inventory items? If not, err on the side of caution and help the user
help you.
Avoid irrelevant data, keep relevant data in sync
KEY TAKEAWAY: Shared truth
with different systems holding
aspects of the same data critical
to that system’s workflow is the
“new normal”
KEY TAKEAWAY: Let users make
key choices and ensure that you
understand the accounting
impact of the data you sync and
do not sync.
20
“Why isn’t this app syncing?”
”It’s working great! At least, I
think so, not really sure how to
check whether anything is
happening”
“I know it’s supposed to sync
tonight, but I need to report to
the owner today. Can I force it
to sync?”
Show the status of the sync
When did you last sync?
What data did you create? (deep link me to it!)
When will you sync next?
Any errors I should know about?
Let me manage the sync schedule/turn off sync
I know the pace of my business and how important “real time” data is, let me choose how often
you sync.
Let me review and change my sync settings
I thought I had it right when I set things up initially, but my accountant schooled me at our
quarterly review, I need to change some things up.
Let me force a sync
You may usually only sync once a day, but sometimes I need data that is accurate up to the
minute, when that happens let me force it.
Insight and control
Give the user insight into and control of the state of the sync and settings
21
Downtime happens
3 systems with 99.95% uptime mean a total of ½ day of downtime/year 47,311 seconds across the 3 systems (99.953)
• Be prepared, and retry later, don’t just skip that day
Data is not always consistent
Ex: Paypal “total” doesn’t always match to the total of the line items
• Notify the user and be clear on what actions you took
• Avoid skipping transactions unless there is a very easy way to review skips and fix them.
• Use adjusting lines to ensure that bottom lines match and adjustments are easy to find via reports.
User errors / misunderstandings remove critical data
Ex: An account/customer/etc. configured in your settings is deleted from QuickBooks
• Notify the user and be clear on what happened, what actions you took and what they need to do to fix the sync
Be resilient, handle the unexpected
Even the best systems fail, typical integration involves at least 3 systems.
KEY TAKEAWAY: Errors happen,
handle them gracefully and
make sure the user knows what
happened.
22
Two distinct purposes
• Billing
– Marked billable
– Has a billable customer
– Has a rate and/or a service item associated
• Payroll
– Has an employee associated
Even when it’s the same time, how
you pay for the time may differ from
how you bill for the time.
Time keeps on ticking…
23
Be careful of time zones!
• QBO is manifestly bad here: time is recorded and displayed in server time (which varies depending
on the region: PST, GMT, AEST, etc.)
• Study your users and understand their expectations, adjust what you send QBO to meet user
expectations between your system and ours.
Be cognizant of other systems that may be writing time data and handle appropriately
• Does your system expose an approval workflow for time? Should the user have the option of
approving time written to QuickBooks through the API from other apps?
• What time is written to QuickBooks? (Approved only, billable only, payroll only, etc.)
Time/date gotcha’s KEY TAKEAWAY: Time data is surprisingly
complex, understand your use-cases and
QuickBooks user-cases deeply.
Summary of takeaways
25
Summary
KEY TAKEAWAY: Errors happen,
handle them gracefully and make sure
the user knows what happened.
KEY TAKEAWAY: If your data doesn’t
match the bank data, you got it wrong!
KEY TAKEAWAY: The user should
leave setup confident that the
accounting is correct!
KEY TAKEAWAY: Accuracy is
paramount. Don’t take shortcuts!
KEY TAKEAWAY: Accounting
should be an invisible result of
running the business.
KEY TAKEAWAY: Let users make key
choices and ensure that you
understand the accounting impact of
the data you sync and do not sync.
KEY TAKEAWAY: Shared truth with
different systems holding aspects of
the same data critical to that
system’s workflow is the “new
normal”
KEY TAKEAWAY: Time data is
surprisingly complex, understand
your use-cases and QuickBooks
user-cases deeply.
26
Apps published on the QuickBooks App Store
between 8/16/16 and 8/15/17 are eligible to enter
Ten finalists demo and pitch at QuickBooks
Connect San Jose Nov 15-17
Grand prize winner gets $100K USD
$100K Small Business App Showdown
smallbusinessappshowdown.com
Questions?
Thanks for coming!
We’d love your feedback.
Before you head out, take a minute to rate this session in the
QuickBooks Connect mobile app.
Keep the conversation going
developer.intuit.com/hub/quickbooks-connect
Access Session Slides
Engage with Speakers and Fellow Developers
Get Questions Answered
Access the presentation materials via:
The QuickBooks Connect 2017 Conference App
or
Slideshare at: http://www.slideshare.com/tag/QBCUK17
Deliver successful code: Application integration best practices for developers

More Related Content

What's hot

ProfitBooks Product Details-2016
ProfitBooks Product Details-2016ProfitBooks Product Details-2016
ProfitBooks Product Details-2016
Mohnish Katre
 
Manual - Accounts payable
Manual - Accounts payableManual - Accounts payable
Manual - Accounts payable
Sudhakar Rao
 
BankLink 2011 Seminar
BankLink 2011 SeminarBankLink 2011 Seminar
BankLink 2011 Seminar
Hugh Stewart
 
Dee Little Resume
Dee Little ResumeDee Little Resume
Dee Little Resume
Dee Little
 

What's hot (20)

ProfitBooks Product Details-2016
ProfitBooks Product Details-2016ProfitBooks Product Details-2016
ProfitBooks Product Details-2016
 
Manual - Accounts payable
Manual - Accounts payableManual - Accounts payable
Manual - Accounts payable
 
The 6 Biggest Trends for AP Leaders in 2021
The 6 Biggest Trends for AP Leaders in 2021The 6 Biggest Trends for AP Leaders in 2021
The 6 Biggest Trends for AP Leaders in 2021
 
Is It Time to Graduate QuickBooks?
Is It Time to Graduate QuickBooks?Is It Time to Graduate QuickBooks?
Is It Time to Graduate QuickBooks?
 
Why QuickBooks Enterprise Is Unique In Comparison To Any Other QB Version
Why QuickBooks Enterprise Is Unique In Comparison To Any Other QB VersionWhy QuickBooks Enterprise Is Unique In Comparison To Any Other QB Version
Why QuickBooks Enterprise Is Unique In Comparison To Any Other QB Version
 
Top 10 Features Of Accounting Software You Should Know About!
Top 10 Features Of Accounting Software You Should Know About!Top 10 Features Of Accounting Software You Should Know About!
Top 10 Features Of Accounting Software You Should Know About!
 
BankLink 2011 Seminar
BankLink 2011 SeminarBankLink 2011 Seminar
BankLink 2011 Seminar
 
Best Accounting Software
Best Accounting SoftwareBest Accounting Software
Best Accounting Software
 
Making Tax Digital presentation by Peter Disney
Making Tax Digital presentation by Peter Disney Making Tax Digital presentation by Peter Disney
Making Tax Digital presentation by Peter Disney
 
NetSuite
NetSuiteNetSuite
NetSuite
 
Life After QuickBooks
Life After QuickBooksLife After QuickBooks
Life After QuickBooks
 
Dee Little Resume
Dee Little ResumeDee Little Resume
Dee Little Resume
 
Feature of QuickBooks Hosting
Feature of QuickBooks HostingFeature of QuickBooks Hosting
Feature of QuickBooks Hosting
 
The Future of Intuit's QuickBooks Online platform
The Future of Intuit's QuickBooks Online platformThe Future of Intuit's QuickBooks Online platform
The Future of Intuit's QuickBooks Online platform
 
Integrating Procurement & AP - Trends, Drivers, & The Role Of Technology
Integrating Procurement & AP - Trends, Drivers, & The Role Of TechnologyIntegrating Procurement & AP - Trends, Drivers, & The Role Of Technology
Integrating Procurement & AP - Trends, Drivers, & The Role Of Technology
 
NetSuite Multi-Book Accounting Overview
NetSuite Multi-Book Accounting OverviewNetSuite Multi-Book Accounting Overview
NetSuite Multi-Book Accounting Overview
 
FASBe Not Afraid of the New ASC 606
FASBe Not Afraid of the New ASC 606FASBe Not Afraid of the New ASC 606
FASBe Not Afraid of the New ASC 606
 
Clearstone cloud-accounting-brochure
Clearstone cloud-accounting-brochureClearstone cloud-accounting-brochure
Clearstone cloud-accounting-brochure
 
NetSuite Reporting for High Transaction Volume & Self-Serve Businesses
NetSuite Reporting for High Transaction Volume & Self-Serve BusinessesNetSuite Reporting for High Transaction Volume & Self-Serve Businesses
NetSuite Reporting for High Transaction Volume & Self-Serve Businesses
 
Moving to the Front of the Pack: How to Achieve Digital Transformation with M...
Moving to the Front of the Pack: How to Achieve Digital Transformation with M...Moving to the Front of the Pack: How to Achieve Digital Transformation with M...
Moving to the Front of the Pack: How to Achieve Digital Transformation with M...
 

Viewers also liked

Viewers also liked (20)

Innovating for small business customers with the QuickBooks Online platform
Innovating for small business customers with the QuickBooks Online platformInnovating for small business customers with the QuickBooks Online platform
Innovating for small business customers with the QuickBooks Online platform
 
Build apps that customers need: Developing small business solutions with Quic...
Build apps that customers need: Developing small business solutions with Quic...Build apps that customers need: Developing small business solutions with Quic...
Build apps that customers need: Developing small business solutions with Quic...
 
Productivity expert reveals: How to save time and stress less
Productivity expert reveals: How to save time and stress lessProductivity expert reveals: How to save time and stress less
Productivity expert reveals: How to save time and stress less
 
Creating more time apps that create efficiencies
Creating more time apps that create efficiencies Creating more time apps that create efficiencies
Creating more time apps that create efficiencies
 
Attracting and retaining top talent
Attracting and retaining top talent Attracting and retaining top talent
Attracting and retaining top talent
 
Pricing in the digital age
Pricing in the digital age Pricing in the digital age
Pricing in the digital age
 
Panel Discussion: Attracting and engaging the right talent
Panel Discussion: Attracting and engaging the right talent Panel Discussion: Attracting and engaging the right talent
Panel Discussion: Attracting and engaging the right talent
 
Giving clients what they want
Giving clients what they want Giving clients what they want
Giving clients what they want
 
The art of interaction: How to find and keep top employees
The art of interaction: How to find and keep top employeesThe art of interaction: How to find and keep top employees
The art of interaction: How to find and keep top employees
 
Why LinkedIN is where you should be building your brand
Why LinkedIN is where you should be building your brandWhy LinkedIN is where you should be building your brand
Why LinkedIN is where you should be building your brand
 
Operationalising digital tax: Three things you need to do now
Operationalising digital tax: Three things you need to do now Operationalising digital tax: Three things you need to do now
Operationalising digital tax: Three things you need to do now
 
Giving clients what they want
Giving clients what they want Giving clients what they want
Giving clients what they want
 
Conversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clientsConversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clients
 
100 percent cloud your action plan for success
100 percent cloud your action plan for success 100 percent cloud your action plan for success
100 percent cloud your action plan for success
 
Panel discussion: Essential legal advice to keep your business on track
Panel discussion: Essential legal advice to keep your business on trackPanel discussion: Essential legal advice to keep your business on track
Panel discussion: Essential legal advice to keep your business on track
 
Panel Discussion: Social media is social business
Panel Discussion: Social media is social business Panel Discussion: Social media is social business
Panel Discussion: Social media is social business
 
Forming deep relationships with your clients
Forming deep relationships with your clientsForming deep relationships with your clients
Forming deep relationships with your clients
 
Sales strategies to help you close the deal
Sales strategies to help you close the dealSales strategies to help you close the deal
Sales strategies to help you close the deal
 
100% cloud: Your action plan for success
100% cloud: Your action plan for success 100% cloud: Your action plan for success
100% cloud: Your action plan for success
 
Marketing your firm – Key foundations you’ve got to get right
Marketing your firm – Key foundations you’ve got to get rightMarketing your firm – Key foundations you’ve got to get right
Marketing your firm – Key foundations you’ve got to get right
 

Similar to Deliver successful code: Application integration best practices for developers

Accountingconcepts
AccountingconceptsAccountingconcepts
Accountingconcepts
venkatesh y
 

Similar to Deliver successful code: Application integration best practices for developers (20)

Getting Your Insurance Agency Finances in Order: Accounting Tips for Independ...
Getting Your Insurance Agency Finances in Order: Accounting Tips for Independ...Getting Your Insurance Agency Finances in Order: Accounting Tips for Independ...
Getting Your Insurance Agency Finances in Order: Accounting Tips for Independ...
 
Miraculous accounts payable(ap) process improvement ideas
Miraculous accounts payable(ap) process improvement ideasMiraculous accounts payable(ap) process improvement ideas
Miraculous accounts payable(ap) process improvement ideas
 
Making the move to Sage ERP from Outgrown Quickbooks
Making the move to Sage ERP from Outgrown QuickbooksMaking the move to Sage ERP from Outgrown Quickbooks
Making the move to Sage ERP from Outgrown Quickbooks
 
Get financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooksGet financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooks
 
Accounts Payable Trends 2022
Accounts Payable Trends 2022Accounts Payable Trends 2022
Accounts Payable Trends 2022
 
Measuring the Subscription Economy
Measuring the Subscription EconomyMeasuring the Subscription Economy
Measuring the Subscription Economy
 
How Can SQL Software Be Useful For The Manufacturing Business
How Can SQL Software Be Useful For The Manufacturing BusinessHow Can SQL Software Be Useful For The Manufacturing Business
How Can SQL Software Be Useful For The Manufacturing Business
 
5 Key Metrics to Empower Your Accounts Payable Organization
5 Key Metrics to Empower Your Accounts Payable Organization 5 Key Metrics to Empower Your Accounts Payable Organization
5 Key Metrics to Empower Your Accounts Payable Organization
 
Data Integrations that Delight! QuickBooks Connect San Jose 2017
Data Integrations that Delight! QuickBooks Connect San Jose 2017Data Integrations that Delight! QuickBooks Connect San Jose 2017
Data Integrations that Delight! QuickBooks Connect San Jose 2017
 
Startup Economics, Finance and Accounting 101
Startup Economics, Finance and Accounting 101Startup Economics, Finance and Accounting 101
Startup Economics, Finance and Accounting 101
 
Construction Financial Management Boot Camp
Construction Financial Management Boot CampConstruction Financial Management Boot Camp
Construction Financial Management Boot Camp
 
Beyond QuickBooks - Exploring The Best Accounting Software Alternative.pdf
Beyond QuickBooks - Exploring The Best Accounting Software Alternative.pdfBeyond QuickBooks - Exploring The Best Accounting Software Alternative.pdf
Beyond QuickBooks - Exploring The Best Accounting Software Alternative.pdf
 
fp. eBook How Creative Agencies Can Accurately Manage Resources &amp; Time
fp. eBook How Creative Agencies Can Accurately Manage Resources &amp; Timefp. eBook How Creative Agencies Can Accurately Manage Resources &amp; Time
fp. eBook How Creative Agencies Can Accurately Manage Resources &amp; Time
 
TAG Presents Construction Job Costing and Accounting for AGC
TAG Presents Construction Job Costing and Accounting for AGCTAG Presents Construction Job Costing and Accounting for AGC
TAG Presents Construction Job Costing and Accounting for AGC
 
Grinex Czech Republic workshop at GGI World Conference Vienna 2017
Grinex Czech Republic workshop at GGI World Conference Vienna 2017Grinex Czech Republic workshop at GGI World Conference Vienna 2017
Grinex Czech Republic workshop at GGI World Conference Vienna 2017
 
Accountingconcepts
AccountingconceptsAccountingconcepts
Accountingconcepts
 
Accountingconcepts
AccountingconceptsAccountingconcepts
Accountingconcepts
 
Accounting basics
Accounting basicsAccounting basics
Accounting basics
 
Accountingconcepts
AccountingconceptsAccountingconcepts
Accountingconcepts
 
Accountingconcepts
AccountingconceptsAccountingconcepts
Accountingconcepts
 

More from Intuit Inc.

More from Intuit Inc. (14)

State of Small Business – Growth and Success Report
State of Small Business – Growth and Success ReportState of Small Business – Growth and Success Report
State of Small Business – Growth and Success Report
 
The State of Small Business Cash Flow
The State of Small Business Cash FlowThe State of Small Business Cash Flow
The State of Small Business Cash Flow
 
Small Business in the Age of AI
Small Business in the Age of AI Small Business in the Age of AI
Small Business in the Age of AI
 
SEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your BusinessSEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your Business
 
Why Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting CustomersWhy Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting Customers
 
Get Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for GrowthGet Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for Growth
 
Giving Clients What They Want
Giving Clients What They WantGiving Clients What They Want
Giving Clients What They Want
 
What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030
 
Pricing in the Digital Age
Pricing in the Digital Age Pricing in the Digital Age
Pricing in the Digital Age
 
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
 
Advanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky TransactionsAdvanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky Transactions
 
Handling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks OnlineHandling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks Online
 
Social media is social business
Social media is social business  Social media is social business
Social media is social business
 
How to use Google AdWords to drive traffic to your business
How to use Google AdWords to drive traffic to your businessHow to use Google AdWords to drive traffic to your business
How to use Google AdWords to drive traffic to your business
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Deliver successful code: Application integration best practices for developers

  • 1. Jarred Keneally – GPM Intuit Developer Group Dinesh Kinger - Senior Software Engineer, Intuit Developer Group Deliver successful code: Application integration best practices for developers WiFi: QBConnect No password required#QBConnect
  • 2. 2 Jarred is a developer relations leader and has been with Intuit for 16 years. He was part of the team that started the Intuit Partner Platform 5 years ago. Jarred loves working with developers who are a key partner and component of Intuit's success. About today’s speaker Jarred Keneally Group Product and Development Manager #QBConnect | @IntuitDev | @JarredKeneally | @DineshKinger2
  • 3. 3 Dinesh Kinger is a software engineer with 12 years of experience designing and rolling out solutions. Intuition and design need to go hand in hand to deliver a great user experience “Customers don't know what they want until we've shown them what they can get.” About today’s speaker Dinesh Kinger Senior Software Engineer #QBConnect | @IntuitDev | @JarredKeneally | @DineshKinger2
  • 4. Why do best practices matter? Why do customers even want integrations? Best practices • What • How Summary of Takeaways Q&A Agenda
  • 5. Why do best practices matter? Ask a customer.
  • 6. Software is not easy to use, lot of sync issues.” – AppCenter Reviewer
  • 7. We installed this app… Unfortunately that's where the problems started. This app creates new customers, new products, and new invoices. In essence, it creates double counting of all transactions that are already in QBO.” – AppCenter Reviewer
  • 8. Not Sure Why Anyone Would Use This App.” – AppCenter Reviewer
  • 9. 9 There are 452 apps on Apps.com today Average of 3 stars, <75% have even 1 review. Over 15% of QB users have connected at least one app 50% of users won’t try an app with 3 stars or less Accountants want an app to have at least 4 stars NPS & reviews are critical to your success
  • 10. Why do customers even want integrations?
  • 11. 11 The average small business uses 8 applications throughout the course of their business day to run their business. Everything a small business ultimately touches money or time (=money). Why do customers want QuickBooks integration?
  • 12. 12 Accounting is a necessary evil of doing business. Unless you are an accountant, you didn’t go into business because you want to do accounting. Government compliance requires accounting • Income Taxes • Sales/Use Taxes • Payroll Taxes Getting a small business loan requires accounting Why do customers need QuickBooks integration? KEY TAKEAWAY: Accounting should be an invisible result of running the business.
  • 14. 14 When you write data to QuickBooks, you take on the responsibility of maintaining the accuracy of your user’s books. It’s tempting to take shortcuts: “Can’t I just record an expense for these fees?” “Why do I have to record a deposit for the money I put in the user’s bank?” “Can’t I just record everything against one ‘Sales’ item?” “Why does the customer’s address matter?” Accounting is complex KEY TAKEAWAY: Accuracy is paramount. Don’t take shortcuts!
  • 15. 15 Set the context of what they are doing and why! Guide the user through the process When dealing with accounting setup, use QuickBooks Terminology When dealing with your data, use your Terminology (i.e Orders will be synced to QuickBooks as a Sales Receipt) Provide reasonable defaults (based on the user’s QB data) Allow the user to override your defaults Allow the user to create what they need on the fly (don’t make them go back to QuickBooks if you can avoid it). Show a summary of the data you would write before you write for the first time Better yet, write a small amount of data first, send the user to QB (via deep links) to review what you wrote, and give them a way to delete what you wrote if it wasn’t right Businesses are unique, their chart of accounts is unique, their needs are unique. There is no “one size fits all” default setup for an app Users are not always totally familiar with accounting themselves Summarize their choices and the effects of those choices Integration setup is critical to success KEY TAKEAWAY: The user should leave setup confident that the accounting is correct!
  • 16. 16 Bank activity should match business activity
  • 17. 17 Take your data to the bank Lots of biz transactions with no tie to the bank data = more work for the book keeper. Bank business should be traceable to customer/supplier business KEY TAKEAWAY: If your data doesn’t match the bank data, you got it wrong!
  • 18. 18 Deposit based Preferred if you have the right data at the right time. • Record sales to “Undeposited funds” • Record deposit to bank based on payment reconciliation report • Link deposit to sales transactions included in the deposit • Add account-based lines to capture fees, holdbacks, refunds. • Total needs to match the deposit the bank sees. Transfer based Use if you don’t know which sales are included in a bank deposit. Use if the payment system looks like a bank. (i.e. PayPal). • Record sales to “XX Payments holding account” • Record deposits to bank as a transfer from the holding account to the bank account with the amount matching the reconciliation report • Record fees and holdbacks as purchases drawn from the holding account. • Record refunds as drawn from the holding account. Techniques for payments reconciliation
  • 19. 19 Not all data is relevant to all users Ex: E-Commerce merchants probably don’t want a unique QBO customer for every order • They may want likely repeat customers (i.e. registered on the website) synced uniquely Inventory, when used, is critical QBO is “growing up” rapidly here Many systems have inventory, only QBO knows the accounting for Inventory and so must be treated as the source of truth for that aspect. • Inventory is an asset to the business • Quantity On Hand is only part of the story (Asset value, COGS) • QuickBooks doesn’t know everything (multiple pictures, detailed descriptions, etc.) • Maintain “Shared truth” between systems, be aware which is the master for each field of an inventory item. – Yes, this DOES mean bi-directional data flow • Be clear on how to handle missing items when syncing to QBO – Create items with default income, asset, COGS accounts – Can you distinguish between inventory and non-inventory items? If not, err on the side of caution and help the user help you. Avoid irrelevant data, keep relevant data in sync KEY TAKEAWAY: Shared truth with different systems holding aspects of the same data critical to that system’s workflow is the “new normal” KEY TAKEAWAY: Let users make key choices and ensure that you understand the accounting impact of the data you sync and do not sync.
  • 20. 20 “Why isn’t this app syncing?” ”It’s working great! At least, I think so, not really sure how to check whether anything is happening” “I know it’s supposed to sync tonight, but I need to report to the owner today. Can I force it to sync?” Show the status of the sync When did you last sync? What data did you create? (deep link me to it!) When will you sync next? Any errors I should know about? Let me manage the sync schedule/turn off sync I know the pace of my business and how important “real time” data is, let me choose how often you sync. Let me review and change my sync settings I thought I had it right when I set things up initially, but my accountant schooled me at our quarterly review, I need to change some things up. Let me force a sync You may usually only sync once a day, but sometimes I need data that is accurate up to the minute, when that happens let me force it. Insight and control Give the user insight into and control of the state of the sync and settings
  • 21. 21 Downtime happens 3 systems with 99.95% uptime mean a total of ½ day of downtime/year 47,311 seconds across the 3 systems (99.953) • Be prepared, and retry later, don’t just skip that day Data is not always consistent Ex: Paypal “total” doesn’t always match to the total of the line items • Notify the user and be clear on what actions you took • Avoid skipping transactions unless there is a very easy way to review skips and fix them. • Use adjusting lines to ensure that bottom lines match and adjustments are easy to find via reports. User errors / misunderstandings remove critical data Ex: An account/customer/etc. configured in your settings is deleted from QuickBooks • Notify the user and be clear on what happened, what actions you took and what they need to do to fix the sync Be resilient, handle the unexpected Even the best systems fail, typical integration involves at least 3 systems. KEY TAKEAWAY: Errors happen, handle them gracefully and make sure the user knows what happened.
  • 22. 22 Two distinct purposes • Billing – Marked billable – Has a billable customer – Has a rate and/or a service item associated • Payroll – Has an employee associated Even when it’s the same time, how you pay for the time may differ from how you bill for the time. Time keeps on ticking…
  • 23. 23 Be careful of time zones! • QBO is manifestly bad here: time is recorded and displayed in server time (which varies depending on the region: PST, GMT, AEST, etc.) • Study your users and understand their expectations, adjust what you send QBO to meet user expectations between your system and ours. Be cognizant of other systems that may be writing time data and handle appropriately • Does your system expose an approval workflow for time? Should the user have the option of approving time written to QuickBooks through the API from other apps? • What time is written to QuickBooks? (Approved only, billable only, payroll only, etc.) Time/date gotcha’s KEY TAKEAWAY: Time data is surprisingly complex, understand your use-cases and QuickBooks user-cases deeply.
  • 25. 25 Summary KEY TAKEAWAY: Errors happen, handle them gracefully and make sure the user knows what happened. KEY TAKEAWAY: If your data doesn’t match the bank data, you got it wrong! KEY TAKEAWAY: The user should leave setup confident that the accounting is correct! KEY TAKEAWAY: Accuracy is paramount. Don’t take shortcuts! KEY TAKEAWAY: Accounting should be an invisible result of running the business. KEY TAKEAWAY: Let users make key choices and ensure that you understand the accounting impact of the data you sync and do not sync. KEY TAKEAWAY: Shared truth with different systems holding aspects of the same data critical to that system’s workflow is the “new normal” KEY TAKEAWAY: Time data is surprisingly complex, understand your use-cases and QuickBooks user-cases deeply.
  • 26. 26 Apps published on the QuickBooks App Store between 8/16/16 and 8/15/17 are eligible to enter Ten finalists demo and pitch at QuickBooks Connect San Jose Nov 15-17 Grand prize winner gets $100K USD $100K Small Business App Showdown smallbusinessappshowdown.com
  • 28. Thanks for coming! We’d love your feedback. Before you head out, take a minute to rate this session in the QuickBooks Connect mobile app. Keep the conversation going developer.intuit.com/hub/quickbooks-connect Access Session Slides Engage with Speakers and Fellow Developers Get Questions Answered
  • 29. Access the presentation materials via: The QuickBooks Connect 2017 Conference App or Slideshare at: http://www.slideshare.com/tag/QBCUK17

Editor's Notes

  1. This is a sample AGENDA using the Agenda layout. Placeholder text boxes that appear as part of the selected layout have predefined fonts, sizes and colors. To change the appearance of any line of text, on the Home tab, in the Paragraph group, click Increase Indent or Decrease Indent. The selected text will reformat to the predefined size according to its indent level. Note: Any changes to the color, size, spacing or font in the placeholder text box will break its connection to the Master style. It will no longer automatically conform when switching between layouts or when imported into another presentation.
  2. If you are moving money on behalf of a customer (i.e. a payments system, or an expense reimbursement app) you should be creating the corresponding business transaction in QBO so that when the user goes to bank feed, deposits from the bank match to business deposits, and withdrawals or checks from the bank match the business transaction that explains why that money was spent.
  3. This one is so important that we’re modifying QuickBooks to accept negative deposits, so you can record the fact that payments received were deposited, but that because of refunds, holdbacks, fees, etc. the payment service is actually taking money BACK from your account.
  4. This one is so important that we’re modifying QuickBooks to accept negative deposits, so you can record the fact that payments received were deposited, but that because of refunds, holdbacks, fees, etc. the payment service is actually taking money BACK from your account.