{
  "slug": "microsoft-fabric",
  "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/",
  "name": "Microsoft Fabric",
  "vendor": "Microsoft",
  "aliases": [
    "Fabric",
    "MS Fabric",
    "OneLake",
    "Fabric lakehouse"
  ],
  "website": "https://www.microsoft.com/en-us/microsoft-fabric",
  "category": {
    "slug": "data-and-sync-platforms",
    "name": "Data and sync platforms",
    "url": "https://apps.sectorgrowth.com/categories/data-and-sync-platforms/"
  },
  "summary": "A Fabric lakehouse already holds the operational tables, so notebooks can carry them into HubSpot and take a form submission back the other way.",
  "answer": "Yes, but not from HubSpot or Microsoft. The only Fabric app in the HubSpot App Marketplace as of September 2026 is Microsoft Fabric Integration from Datawarehouse.io, a third party, and it suits reporting loads rather than a two-way sync. Where a lakehouse already holds the data, we build notebooks that read it and call HubSpot directly, a 300 to 450 hour build.",
  "nativeApp": {
    "status": "third-party",
    "name": "Microsoft Fabric Integration",
    "developer": "Datawarehouse.io",
    "verifiedAt": "2026-09-22"
  },
  "api": {
    "style": "rest",
    "auth": "oauth2",
    "webhooks": "partial",
    "changedSince": "yes",
    "sandbox": "paid",
    "rateLimit": "200 calls per minute per identity for each unified quota group, in a fixed 60 second window",
    "docsUrl": "https://learn.microsoft.com/en-us/rest/api/fabric/articles/"
  },
  "objects": [
    {
      "source": "Prospect table",
      "hubspot": "contact",
      "direction": "to_hubspot",
      "key": "Source prospect identifier in a custom HubSpot property",
      "notes": "Email is not an identity here, since households share one address."
    },
    {
      "source": "Contact table",
      "hubspot": "contact",
      "direction": "to_hubspot",
      "key": "Source contact identifier, never the email address"
    },
    {
      "source": "Opportunity table",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Source prospect identifier, one deal per prospect",
      "notes": "The stage is set on creation only, so a salesperson's move survives."
    },
    {
      "source": "Activity history table",
      "hubspot": "engagement",
      "direction": "to_hubspot",
      "key": "Activity identifier, recorded in an append-only sent ledger",
      "notes": "Custom behavioural events, because history belongs on a timeline."
    },
    {
      "source": "Site reference table",
      "hubspot": "company",
      "direction": "to_hubspot",
      "key": "Site or property code",
      "notes": "A flag on each row decides whether that site syncs at all."
    },
    {
      "source": "Outbound queue table",
      "hubspot": "contact",
      "direction": "to_source",
      "key": "Our own reference, stamped on every record we create"
    }
  ],
  "approaches": [
    {
      "kind": "custom",
      "fit": "recommended",
      "why": "Notebooks in the lakehouse read the operational system, hold the identity keys and call HubSpot, so the rules live beside the data rather than in a second runtime nobody owns."
    },
    {
      "kind": "ipaas",
      "fit": "possible",
      "why": "The listed third-party Fabric connector moves lakehouse tables into HubSpot on a schedule, which is enough for a reporting-shaped load with no write-back and no associations logic."
    },
    {
      "kind": "data-sync",
      "fit": "avoid",
      "why": "HubSpot Data Sync has no lakehouse source, so it cannot see a Fabric table at all. It is the right tool for the SaaS products it lists, and the wrong one here."
    }
  ],
  "effort": {
    "discoveryHours": [
      20,
      40
    ],
    "buildHours": [
      300,
      450
    ],
    "buildBand": "300 to 450 hours",
    "typicalElapsed": "8 to 14 weeks"
  },
  "pattern": "polling-watermark",
  "faqs": [
    {
      "q": "Is there a HubSpot app for Microsoft Fabric?",
      "a": "Not from HubSpot or Microsoft. Two third-party listings sit in the HubSpot App Marketplace, Microsoft Fabric Integration and Power BI Integration, both published by Datawarehouse.io. A scheduled table load is what they are for. Anything involving write-back, associations or per-record rules is a build rather than an install."
    },
    {
      "q": "How fresh is HubSpot data when Fabric sits in the middle?",
      "a": "As fresh as the schedule, and the schedule is a choice. Inbound streams usually run every few hours because the source pull is the slow part. Outbound, where a form submission has to become a record in the operational system, runs hourly or faster. Nothing here is instant, and a lakehouse in the middle is the reason."
    },
    {
      "q": "Can Fabric notebooks write back to the operational system as well as to HubSpot?",
      "a": "Yes, and that is usually the harder half. The notebook stages each change in a queue table, transforms it to whatever the source accepts, checks it against the safety gates, sends it, then reads the record back to confirm the write landed. Every attempt is recorded with its result, so nothing is sent twice."
    },
    {
      "q": "What stops a Fabric notebook from writing to the wrong HubSpot portal?",
      "a": "A portal gate in the shared code. Before any write, the job asks HubSpot which portal the token belongs to and refuses unless it matches the allowed identifier. The same check runs against the source system endpoint. Both fail closed, so a mistaken credential stops the run rather than quietly filling production with test data."
    },
    {
      "q": "Does the lakehouse have to hold a copy of HubSpot data?",
      "a": "It holds what the sync needs to be safe: a watermark per stream, a ledger of everything sent, a queue of pending writes and a dead letter table. It does not need a full mirror of the CRM. Keeping that state in the lakehouse is what makes a replay cheap instead of frightening."
    },
    {
      "q": "How does a Fabric sync avoid creating duplicate HubSpot contacts?",
      "a": "Every object upserts on the identifier the source system already owns, held in a custom HubSpot property, and the associations run as a separate pass afterwards. Matching on email creates duplicates the first time two people share an address, and merges two real people the first time a shared mailbox appears."
    },
    {
      "q": "Do we need a paid Fabric capacity to run a HubSpot integration?",
      "a": "For anything ongoing, yes. Microsoft offers a 60 day trial capacity, and its own documentation says the trial is for evaluation and testing rather than production. A trial is a fine place to prove the shape of the pipeline. The live integration needs a capacity the business is paying for anyway."
    },
    {
      "q": "What does a Microsoft Fabric to HubSpot integration take to build?",
      "a": "A two-way sync across five or more streams runs 20 to 40 hours of discovery and 300 to 450 hours of build. Most of that is not HubSpot. It goes on proving what the operational interface really accepts, modelling identity, and building the replay and reconciliation machinery that makes the thing operable."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect Microsoft Fabric to HubSpot",
      "anchor": "#why-teams-connect-microsoft-fabric-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#why-teams-connect-microsoft-fabric-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#three-ways-to-connect"
    },
    {
      "depth": 2,
      "text": "What breaks and how we prevent it",
      "anchor": "#what-breaks-and-how-we-prevent-it",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "Fabric’s fixed 60 second window",
      "anchor": "#fabrics-fixed-60-second-window",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#fabrics-fixed-60-second-window"
    },
    {
      "depth": 3,
      "text": "A 429 with two meanings",
      "anchor": "#a-429-with-two-meanings",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#a-429-with-two-meanings"
    },
    {
      "depth": 3,
      "text": "A three hour history pull",
      "anchor": "#a-three-hour-history-pull",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#a-three-hour-history-pull"
    },
    {
      "depth": 3,
      "text": "Tables invisible to the SQL endpoint",
      "anchor": "#tables-invisible-to-the-sql-endpoint",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#tables-invisible-to-the-sql-endpoint"
    },
    {
      "depth": 3,
      "text": "Identical test and live identifiers",
      "anchor": "#identical-test-and-live-identifiers",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#identical-test-and-live-identifiers"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/microsoft-fabric/#our-approach"
    }
  ],
  "caseStudies": [
    "https://apps.sectorgrowth.com/case-studies/yardi-voyager-hubspot-microsoft-fabric/"
  ],
  "guides": [
    "https://apps.sectorgrowth.com/guides/choose-a-hubspot-integration-approach/"
  ],
  "builtBySectorGrowth": true,
  "status": "published",
  "verifiedAt": "2026-09-22",
  "updatedAt": "2026-09-25",
  "authors": [
    {
      "name": "Prash",
      "role": "Lead of Technical Integrations and AI Solutions"
    }
  ],
  "sources": [
    {
      "title": "Microsoft Fabric REST API references",
      "url": "https://learn.microsoft.com/en-us/rest/api/fabric/articles/"
    },
    {
      "title": "Throttling in Microsoft Fabric",
      "url": "https://learn.microsoft.com/en-us/rest/api/fabric/articles/throttling"
    },
    {
      "title": "What is the SQL analytics endpoint for a lakehouse?",
      "url": "https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-sql-analytics-endpoint"
    },
    {
      "title": "Fabric trial capacity",
      "url": "https://learn.microsoft.com/en-us/fabric/fundamentals/fabric-trial"
    },
    {
      "title": "Explore Fabric events in Fabric Real-Time hub",
      "url": "https://learn.microsoft.com/en-us/fabric/real-time-hub/explore-fabric-events"
    },
    {
      "title": "Data Analytics Platform | Microsoft Fabric",
      "url": "https://www.microsoft.com/en-us/microsoft-fabric"
    }
  ]
}