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
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
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!
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
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.
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.
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.
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.