quickbooks connect 2016 - app integration design best practices

27
Peter Vogel, IDG Solutions Architect Peter Lavelle, IDG Solutions Engineer App integration design best practices WiFi: QBConnect Password: not required #QBConnect

Upload: intuit-developer

Post on 16-Apr-2017

257 views

Category:

Software


0 download

TRANSCRIPT

Page 1: QuickBooks Connect 2016 - App integration design best practices

Peter Vogel, IDG Solutions ArchitectPeter Lavelle, IDG Solutions Engineer

App integration design best practices

WiFi: QBConnect Password: not required#QBConnect

Page 2: QuickBooks Connect 2016 - App integration design best practices

2

Speakers

Peter VogelSolutions Architect@IPPAlphaGeek

Peter LavelleIntegration Engineer@nerdboots

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Page 3: QuickBooks Connect 2016 - App integration design best practices

Why do best practices matter?

Why do customers even want integrations?

Best practices• What• How

Summary of Takeaways

Q&A

Agenda

Page 4: QuickBooks Connect 2016 - App integration design best practices

Why do best practices matter?

Page 5: QuickBooks Connect 2016 - App integration design best practices

Software is not easy to use, lot of sync issues.”– AppCenter Reviewer

Page 6: QuickBooks Connect 2016 - App integration design best practices

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

Page 7: QuickBooks Connect 2016 - App integration design best practices

Not Sure Why Anyone Would Use This App.”

– AppCenter Reviewer

Page 8: QuickBooks Connect 2016 - App integration design best practices

8

There are 427 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

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Page 9: QuickBooks Connect 2016 - App integration design best practices

Why do customers even want integrations?

Page 10: QuickBooks Connect 2016 - App integration design best practices

10#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

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?

Page 11: QuickBooks Connect 2016 - App integration design best practices

11#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

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.

Page 12: QuickBooks Connect 2016 - App integration design best practices

Best practices

Page 13: QuickBooks Connect 2016 - App integration design best practices

13#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

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!

Page 14: QuickBooks Connect 2016 - App integration design best practices

14#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Set the context of what they are doing and why!Guide the user through the processWhen dealing with accounting setup, use QuickBooks TerminologyWhen 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 defaultsAllow 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 timeBetter 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!

Page 15: QuickBooks Connect 2016 - App integration design best practices

15#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Bank activity should match business activity

Page 16: QuickBooks Connect 2016 - App integration design best practices

16#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Take your data to the bankLots of biz transactions with no tie to the bank data = more work for the book keeper.

Bank business should be traceable to customer/vendor business

KEY TAKEAWAY: If your data doesn’t match the bank data, you got it wrong!

Page 17: QuickBooks Connect 2016 - App integration design best practices

17#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Deposit basedPreferred 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 basedUse 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

Page 18: QuickBooks Connect 2016 - App integration design best practices

18#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Not all data is relevant to all usersEx: 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 hereMany 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.

Page 19: QuickBooks Connect 2016 - App integration design best practices

19

“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 syncWhen 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 syncI 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 settingsI 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 syncYou 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

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Give the user insight into and control of the state of the sync and settings

Page 20: QuickBooks Connect 2016 - App integration design best practices

20

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

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Page 21: QuickBooks Connect 2016 - App integration design best practices

21

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…

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Page 22: QuickBooks Connect 2016 - App integration design best practices

22

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’sKEY TAKEAWAY: Time data is surprisingly complex, understand your use-cases and QuickBooks user-cases deeply.

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

Page 23: QuickBooks Connect 2016 - App integration design best practices

Summary of takeaways

Page 24: QuickBooks Connect 2016 - App integration design best practices

24

Summary

#QBConnect | @IntuitDev | @IPPAlphaGeek | @nerdboots

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.

Page 25: QuickBooks Connect 2016 - App integration design best practices

Questions?

Page 26: QuickBooks Connect 2016 - App integration design best practices

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 goingdeveloper.intuit.com/hub/quickbooks-connect

Access Session SlidesEngage with Speakers and Fellow DevelopersGet Questions Answered

Page 27: QuickBooks Connect 2016 - App integration design best practices