elsa-workflows / elsa-workflows/elsa-extensions

Add Quickbooks Integration

Open
#9 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **QuickBooks** in Elsa Workflows. The module should allow workflows to interact with QuickBooks, supporting invoicing, transactions, customer management, and event monitoring.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.QuickBooks`
- [ ] Implement **Workflow Activities**:
- [ ] **CreateBill** - Creates a bill.
- [ ] **CreateCreditCardPayment** - Creates a credit card payment.
- [ ] **CreateCreditMemo** - Creates a credit memo.
- [ ] **CreateCustomer** - Creates a customer.
- [ ] **CreateDeposit** - Creates a deposit.
- [ ] **CreateJournalEntry** - Creates a journal entry.
- [ ] **CreatePayment** - Creates a payment.
- [ ] **CreatePurchase** - Creates a purchase.
- [ ] **CreatePurchaseOrder** - Creates a purchase order.
- [ ] **CreateRefundReceipt** - Creates a refund receipt.
- [ ] **CreateSalesReceipt** - Creates a sales receipt.
- [ ] **CreateTextAttachment** - Creates a note.
- [ ] **CreateTimeActivity** - Creates a time activity.
- [ ] **CreateVendor** - Creates a vendor.
- [ ] **CreateAccount** - Creates an account.
- [ ] **CreateEstimate** - Creates an estimate.
- [ ] **CreateInvoice** - Creates an invoice.
- [ ] **CreateItem** - Creates an item.
- [ ] **DeleteBill** - Deletes a bill.
- [ ] **DeleteCreditMemo** - Deletes a credit memo.
- [ ] **DeleteDeposit** - Deletes a deposit.
- [ ] **DeleteJournalEntry** - Deletes a journal entry.
- [ ] **DeletePayment** - Deletes a payment.
- [ ] **DeletePurchase** - Deletes a purchase.
- [ ] **DeletePurchaseOrder** - Deletes a purchase order.
- [ ] **DeleteRefundReceipt** - Deletes a refund receipt.
- [ ] **DeleteSalesReceipt** - Deletes a sales receipt.
- [ ] **DeleteTimeActivity** - Deletes a time activity.
- [ ] **DeleteAttachment** - Deletes an attachment.
- [ ] **DeleteEstimate** - Deletes an estimate.
- [ ] **DeleteInvoice** - Removes an invoice.
- [ ] **DownloadFile** - Downloads a file.
- [ ] **DownloadPayment** - Downloads a payment.
- [ ] **DownloadSalesReceipt** - Downloads a sales receipt.
- [ ] **DownloadEstimate** - Downloads an estimate.
- [ ] **DownloadInvoice** - Downloads an invoice.
- [ ] **GetMyCompany** - Returns info about a company.
- [ ] **GetBill** - Returns info about a bill.
- [ ] **GetCreditMemo** - Returns info about a credit memo.
- [ ] **GetCustomer** - Returns info about a customer.
- [ ] **GetDeposit** - Returns info about a deposit.
- [ ] **GetJournalEntry** - Returns info about a journal entry.
- [ ] **GetPayment** - Returns info about a payment.
- [ ] **GetPurchase** - Returns info about a purchase.
- [ ] **GetPurchaseOrder** - Returns details about a purchase order.
- [ ] **GetRefundReceipt** - Returns info about a refund receipt.
- [ ] **GetSalesReceipt** - Returns details about a sales receipt.
- [ ] **GetTimeActivity** - Returns info about an activity.
- [ ] **GetVendor** - Returns info about a vendor.
- [ ] **GetAccount** - Returns info about an account.
- [ ] **GetEstimate** - Returns info about an estimate.
- [ ] **GetInvoice** - Returns info about an invoice.
- [ ] **GetItem** - Returns info about an item.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **NewEvent** - Triggers when a new event is created.
- [ ] **SearchAccounts** - Searches for accounts.
- [ ] **SearchAttachments** - Searches for attachments.
- [ ] **SearchBills** - Searches for bills.
- [ ] **SearchCreditMemos** - Searches for credit memos.
- [ ] **SearchCustomers** - Searches for customers.
- [ ] **SearchDeposits** - Searches for deposits.
- [ ] **SearchEstimates** - Searches for estimates.
- [ ] **SearchInvoices** - Searches for invoices.
- [ ] **SearchItems** - Searches for items.
- [ ] **SearchJournalEntries** - Searches for journal entries.
- [ ] **SearchPayments** - Searches for payments.
- [ ] **SearchPurchaseOrders** - Searches for purchase orders.
- [ ] **SearchPurchases** - Searches for purchases.
- [ ] **SearchRefundReceipts** - Searches for refund receipts.
- [ ] **SearchSalesReceipts** - Searches for sales receipts.
- [ ] **SearchTimeActivities** - Searches for time activities.
- [ ] **SearchVendors** - Searches for vendors.
- [ ] **SendSalesReceipt** - Sends a sales receipt.
- [ ] **SendEstimate** - Sends an estimate.
- [ ] **SendInvoice** - Sends an invoice.
- [ ] **UpdateBill** - Updates a bill.
- [ ] **UpdateCreditMemo** - Updates a credit memo.
- [ ] **UpdateCustomer** - Updates a customer.
- [ ] **UpdateDeposit** - Updates a deposit.
- [ ] **UpdateJournalEntry** - Updates a journal entry.
- [ ] **UpdatePayment** - Updates a payment.
- [ ] **UpdatePurchase** - Updates a purchase.
- [ ] **UpdatePurchaseOrder** - Updates a purchase order.
- [ ] **UpdateRefundReceipt** - Updates a refund receipt.
- [ ] **UpdateSalesReceipt** - Updates a sales receipt.
- [ ] **UpdateTimeActivity** - Updates a time activity.
- [ ] **UpdateVendor** - Updates a vendor.
- [ ] **UpdateAccount** - Updates an account.
- [ ] **UpdateEstimate** - Updates an estimate.
- [ ] **UpdateInvoice** - Updates an invoice.
- [ ] **UpdateItem** - Updates an item.
- [ ] **UploadFile** - Uploads a file.
- [ ] **WatchPayments** - Triggers when a new payment is created.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [QuickBooks API Docs](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used)
- 🛠️ [QuickBooks .NET SDK](https://www.nuget.org/packages/Intuit.Ipp.Core/)

## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via OAuth 2.0.
- Ensure proper handling of event monitoring for real-time updates.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.