← Обяви

QuickBooks Desktop → BigQuery Data Platform + Pricing Write-Back + HubSpot Sync (CData).

Бюджет: - HOURLY / AS_NEEDED ⭐ 4.95 (11) United States

api-integration, python, sql, data-source-integration, odbc, intuit-quickbooks

Long-term contract. Complete architecture specification already written. We are not looking for someone to design this, we are looking for someone to build exactly what is specified. We are a manufacturing company running QuickBooks Desktop Enterprise (Manufacturing edition) with roughly 13,000 inventory and non-inventory items. We are building a data platform on top of it, in three phases, using CData Sync and the CData ODBC Driver. A detailed technical specification exists (roughly 20 pages) covering the architecture, constraints, vendor confirmations, schema findings, and open decisions. It will be shared with shortlisted candidates. You will own the build. You will work against the spec and against one internal business stakeholder who owns the data definitions. You will not need to reverse-engineer our environment — the spec documents it. The three phases: Phase 1 — Warehouse. Replicate QuickBooks Desktop into Google BigQuery using CData Sync. Read-only, one direction, incremental (TimeModified). Land data into a raw dataset, then build a curated layer of business-entity models (sales, gross margin, inventory, and so on) on top. Includes deletion reconciliation via the connector's DeletedEntities and DeletedTransactions views. Phase 2 — Pricing write-back. Our pricing engine lives in Google Sheets. Today its output is pasted into QuickBooks by hand, matched on item name, ~13,000 rows at a time. You will replace that with a governed batch process: publish an immutable batch to BigQuery, validate it, require human approval, then a service reads the approved batch and writes to QuickBooks via the CData ODBC driver — keyed on QuickBooks ListID, with per-row conflict detection, per-row status, full audit history, and rollback batch generation. Phase 3 — HubSpot sync. One-way, QuickBooks → BigQuery → HubSpot via CData Sync Reverse ETL. QuickBooks customers become HubSpot Companies; QuickBooks customer contacts become HubSpot Contacts associated to their Company; every record carries the QuickBooks ListID in a custom property. Requires the three-step Company → Contact → Association sequence the HubSpot connector uses. The phases are sequential. Phase 1 is the foundation for both others. Required experience — read this carefully QuickBooks Desktop via the SDK. This is the non-negotiable one. QuickBooks Online / REST API experience does NOT transfer. QuickBooks Desktop has no cloud API; everything goes through the qbXML SDK via a locally installed gateway or driver. If you have worked with the QuickBooks Web Connector, qbXML, QBFC, or a QBDT ODBC/JDBC/ADO.NET driver, describe specifically what you built and whether it wrote to QuickBooks or only read from it. Writing to QuickBooks Desktop at volume. The SDK is single-threaded and has no transaction rollback across a batch. A job that writes 13,000 rows and fails at row 8,000 leaves 8,000 committed and 5,000 unwritten. If you have not written to QuickBooks Desktop before, this phase will teach you the hard way and we will pay for it. We do not want that. Google BigQuery — modeling, not just querying. Dataset design, schema, incremental loads, and the discipline to keep a raw layer untouched while building a curated layer on top. Python or Node against ODBC on Windows. The write-back service is real software: per-row logging, idempotency, batch sizing, conflict detection, commit handling. Windows service deployment. Scheduled execution, credential handling in a secrets manager, logging, and alerting, on a production Windows server where staff are actively working in QuickBooks during business hours. Strongly preferred: CData Sync and CData drivers specifically (we are licensing Sync Standard + the server-tier QuickBooks ODBC driver; HubSpot destination add-on for Phase 3) CData Sync Reverse ETL to a CRM destination HubSpot connector experience: custom properties, Companies/Contacts objects, Associations Google Sheets API Data warehouse layering (raw / staging / curated) and dimensional modeling Constraints you must understand before applying These are in the spec and they define the work. If any of these are unfamiliar, this is not the right job for you. QuickBooks Desktop has no cloud API. All access is local, through the SDK. Anything cloud-resident (e.g. Google Apps Script) cannot reach it. The SDK is single-threaded. One operation at a time against the company file. Jobs contend. Scheduling matters, and no job may overlap another or the nightly backup. Writes are not transactional across a batch. No rollback. Recovery is designed at the application layer via per-row status and idempotent, re-runnable writes. ListID is the only valid write key. Item names are editable, non-unique, and produce silent writes to the wrong record. The driver's UPDATE grammar accepts WHERE Id = ... and nothing else. Production accounting data is never written directly from a live spreadsheet. Writes execute from an immutable, validated, approved batch — never from the sheet itself. Also include in your proposal: - Which CData products you have used, if any. - How you would detect that someone edited a price directly in QuickBooks between when our sheet was refreshed and when the batch executed — and what your code does when it detects that. - Your approach to the Company → Contact → Association sequence when loading HubSpot via Reverse ETL. - Availability, hourly rate, and time zone. How we work: Start: we have a 30-day CData trial we do not want to waste. The clock starts on first connection, so we will not connect until the build is ready to test. Expect a short ramp on the spec before any connection. Structure: three sequential phases, milestone-based. Phase 1 must prove out before Phase 2 begins. Spec: The full technical specification goes to shortlisted candidates. It is detailed enough that two competent developers should produce very similar implementations from it. You own the build. You will have direct access to one business stakeholder for data definitions and sign-off. We expect you to tell us plainly when something in the spec is wrong. We have done our homework. We want someone who has done this specific kind of work — QuickBooks Desktop SDK writes, CData, BigQuery — and who will do it carefully.
Отвори в Upwork