{
  "slug": "skyvia",
  "url": "https://apps.sectorgrowth.com/integrations/skyvia/",
  "name": "Skyvia",
  "vendor": "Devart",
  "aliases": [
    "Skyvia Data Integration",
    "Devart Skyvia",
    "Skyvia ETL",
    "Skyvia agent"
  ],
  "website": "https://skyvia.com/",
  "category": {
    "slug": "data-and-sync-platforms",
    "name": "Data and sync platforms",
    "url": "https://apps.sectorgrowth.com/categories/data-and-sync-platforms/"
  },
  "summary": "Skyvia runs a mapping and a schedule over a database it reaches through an agent, with no service to host and no deployment pipeline to own.",
  "answer": "Yes. Skyvia publishes its own app in the HubSpot App Marketplace as of September 2026, and it is the right answer when the source is reachable over SQL, the mapping is stable and an hour of latency is acceptable. It stops being the right answer when the rules change every quarter, or when a record has to arrive in seconds, which is where a custom service earns its keep.",
  "nativeApp": {
    "status": "vendor-built",
    "name": "Skyvia",
    "developer": "Skyvia",
    "verifiedAt": "2026-09-22"
  },
  "api": {
    "style": "rest",
    "auth": "oauth2",
    "webhooks": "no",
    "changedSince": "yes",
    "sandbox": "no",
    "rateLimit": "Set by the Skyvia plan as records loaded per month and the number of scheduled integrations, not as calls per second",
    "docsUrl": "https://docs.skyvia.com/"
  },
  "objects": [
    {
      "source": "Customer",
      "hubspot": "company",
      "direction": "to_hubspot",
      "key": "Source customer number in a custom HubSpot property",
      "notes": "The customer number is stable. The company name is not."
    },
    {
      "source": "Contact",
      "hubspot": "contact",
      "direction": "to_hubspot",
      "key": "Source contact identifier, with email as a tie breaker"
    },
    {
      "source": "Order or ticket",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Order number",
      "notes": "Orders flow one way. The source system stays the system of record."
    },
    {
      "source": "Order line",
      "hubspot": "line_item",
      "direction": "to_hubspot",
      "key": "Order number plus line sequence, built as a composite key"
    },
    {
      "source": "Item",
      "hubspot": "product",
      "direction": "to_hubspot",
      "key": "Stock keeping unit"
    },
    {
      "source": "Delivery location",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Customer number plus location code",
      "notes": "A custom object, because a location is not a company."
    },
    {
      "source": "Invoice balance",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Document number matched to the order number on the deal",
      "notes": "A zero balance is what advances a deal to closed won."
    }
  ],
  "approaches": [
    {
      "kind": "skyvia",
      "fit": "recommended",
      "why": "A managed workspace covers a stable mapping on a schedule, with no service to host, no deployment pipeline and no on-call rotation. The client owns the subscription and we own the chain."
    },
    {
      "kind": "custom",
      "fit": "possible",
      "why": "A written service is worth its cost when the rules change often, when a record has to move in seconds, or when the mapping needs branching logic that an expression field cannot express."
    },
    {
      "kind": "data-sync",
      "fit": "avoid",
      "why": "HubSpot Data Sync cannot reach a database inside a client network, and its mapping is fixed. It is a good answer for the SaaS products it lists, and no answer at all here."
    }
  ],
  "effort": {
    "discoveryHours": [
      4,
      8
    ],
    "buildHours": [
      15,
      30
    ],
    "buildBand": "15 to 30 hours",
    "typicalElapsed": "1 to 2 weeks"
  },
  "pattern": "sql-managed-sync",
  "faqs": [
    {
      "q": "Is Skyvia a HubSpot-built app or a third-party service?",
      "a": "Skyvia publishes its own listing in the HubSpot App Marketplace, so it is a vendor-built app rather than one HubSpot maintains. You authorize it against your portal with OAuth from inside Skyvia, and an API key is the alternative. The subscription sits with the client, not with us."
    },
    {
      "q": "How does Skyvia reach a database that is not on the internet?",
      "a": "Through the Skyvia Agent, a small application installed on a machine inside the network that can see both the database and the internet. Its documentation states that data moves between the agent and Skyvia encrypted, without a dedicated external address or port, and usually without firewall changes. Read-only credentials are enough for a source."
    },
    {
      "q": "How does Skyvia know which records changed since the last run?",
      "a": "By filtering the source on its created and modified timestamps against the timestamp of the previous run, which Skyvia exposes as a relative constant. Where a view carries no modified timestamp, the choice is a full reload of that object or a timestamp column added at the source. We size the reload before we promise the schedule."
    },
    {
      "q": "Can Skyvia build HubSpot associations from a source identifier?",
      "a": "Yes, with lookup mapping. Skyvia resolves the HubSpot record that carries a business key, then writes the association during the load, so an order lands attached to the right company without a separate association job. The parent object has to load first, which is why the chain runs in a fixed order rather than on independent schedules."
    },
    {
      "q": "How often can a Skyvia package run?",
      "a": "Frequency comes from the plan, from hourly on the mid tiers down to per-minute at the top. Most managed workspaces run nightly or hourly because the source system posts its day's work on a schedule of its own. Chasing minutes on a packaged sync is usually a sign that the shape is wrong."
    },
    {
      "q": "What happens when a Skyvia package fails overnight?",
      "a": "The run history records the failure with a per-record error file, and Skyvia can email a notification at most once an hour per integration. The fix is almost never a retry of the whole chain. We read which step failed, correct the mapping or the source row, then re-run from that step so the ordering into HubSpot is preserved."
    },
    {
      "q": "When is Skyvia the wrong choice for a HubSpot integration?",
      "a": "When the reaction has to be immediate, when business rules branch per record, when the source is only reachable over SOAP or a file drop, or when two systems both claim the same field. A packaged sync gives you a mapping and a schedule. Anything that needs a place to put rules needs somewhere to run them."
    },
    {
      "q": "What does Sector Growth do on a managed Skyvia sync each month?",
      "a": "We watch the run history rather than the inbox, re-run failed steps in order, read the per-record error files, adjust the mapping when the source schema shifts, and reconcile row counts between the source and the portal. We also keep the execution order honest as objects are added, because that ordering is what keeps associations intact."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect Skyvia to HubSpot",
      "anchor": "#why-teams-connect-skyvia-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#why-teams-connect-skyvia-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#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/skyvia/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "Nulls from a changed source view",
      "anchor": "#nulls-from-a-changed-source-view",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#nulls-from-a-changed-source-view"
    },
    {
      "depth": 3,
      "text": "Views with no modified timestamp",
      "anchor": "#views-with-no-modified-timestamp",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#views-with-no-modified-timestamp"
    },
    {
      "depth": 3,
      "text": "Deal stages dragged back",
      "anchor": "#deal-stages-dragged-back",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#deal-stages-dragged-back"
    },
    {
      "depth": 3,
      "text": "Two writers on the same records",
      "anchor": "#two-writers-on-the-same-records",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#two-writers-on-the-same-records"
    },
    {
      "depth": 3,
      "text": "Duplicates from the wrong key",
      "anchor": "#duplicates-from-the-wrong-key",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#duplicates-from-the-wrong-key"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/skyvia/#our-approach"
    }
  ],
  "caseStudies": [
    "https://apps.sectorgrowth.com/case-studies/counterpoint-hubspot-skyvia-managed-sync/"
  ],
  "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": "HubSpot Integration - ETL, Reverse ETL - Skyvia Connector",
      "url": "https://skyvia.com/connectors/hubspot"
    },
    {
      "title": "Data Integration",
      "url": "https://docs.skyvia.com/data-integration/"
    },
    {
      "title": "Agent Connections",
      "url": "https://docs.skyvia.com/connections/agent-connections.html"
    },
    {
      "title": "How to Perform UPSERT Operation",
      "url": "https://docs.skyvia.com/data-integration/import/how-to-guides/performing-upsert-operation.html"
    },
    {
      "title": "How to Import Only Recently Added or Changed Data from Cloud Sources",
      "url": "https://docs.skyvia.com/data-integration/import/how-to-guides/importing-only-recently-added-or-changed-data-from-cloud-sources.html"
    }
  ]
}