CRM migration

Migrate from FotoNotes to HubSpot

Field-level mapping, validation, and rollback between FotoNotes and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.

FotoNotes logo

FotoNotes

Source

HubSpot

Destination

HubSpot logo

Compatibility

90%

9 of 10

objects map 1:1 between FotoNotes and HubSpot.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

FotoNotes organizes property-inspection data under a Container/Containee model — Properties hold Work Orders, Photos, and Vendor assignments. HubSpot uses a flat CRM object graph: Companies, Contacts, Deals, and Tickets. The migration maps FotoNotes Properties to HubSpot Companies (preserving address, type, size, and unit count fields), Work Orders to HubSpot Tickets (using custom property fields for FotoNotes-specific attributes like work_order_type, priority, and assignment_status), and Photos to HubSpot Files with their original FotoNotes URLs stored as custom URL properties on the linked Ticket. Vendors and Customers in FotoNotes migrate as HubSpot Contacts, with FotoNotes role metadata (vendor, customer, manager) preserved as a custom pick-list field. Container/Containee parent-child relationships are maintained through HubSpot Company-to-Ticket associations and a junction object for multi-Photo-to-Work-Order links. Batch PDF reports are preserved as HubSpot File attachments with original download URLs. We use FotoNotes REST API for structured record extraction and HubSpot Bulk API for high-volume contact and company ingestion. Workflows, automations, and third-party integrations do not exist in FotoNotes's data model and therefore have no migration counterpart — they are not in scope.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

FotoNotes logo

FotoNotes

What's pushing teams away

  • Status updates on work orders sometimes fail to sync across the web portal and mobile app, causing field supervisors to lose visibility on which properties have been completed.
  • The platform rebranded from FotoNotes to SiteCapture in 2022, and the two product names cause confusion during vendor evaluation and support escalation — existing customers on the legacy FotoNotes branding struggle to locate updated documentation and pricing pages.
  • Batch report generation is an admin-only feature, so front-line field managers who need on-demand PDF summaries must request exports from a portal admin rather than generating them independently.
  • Custom fields created via templates are per-account and not easily documented — when migrating off platform, the complete field schema requires manual enumeration from within the portal admin settings.

Choosing

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How FotoNotes objects map to HubSpot

Each row shows how a FotoNotes object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

FotoNotes

Property (Container)

maps to

HubSpot

Company

1:1
Fully supported

FotoNotes Properties map directly to HubSpot Companies. The property address, type, size, unit count, year built, and status fields migrate as standard and custom Company properties. Parent/child property hierarchies in FotoNotes map to HubSpot Parent Company associations for accurate reporting.

FotoNotes

Work Order (Containee)

maps to

HubSpot

Ticket

1:1
Fully supported

Work Orders migrate as HubSpot Tickets. FotoNotes work_order_type, priority, assignment_status, vendor_assignment, and manager_assignment map as custom Ticket properties. Ticket pipeline stages are configured in HubSpot's Service Hub to mirror FotoNotes work order statuses. Ensuring consistent workflow tracking across all records.

FotoNotes

Photo

maps to

HubSpot

HubSpot File + Custom Property

1:1
Fully supported

FotoNotes photo records carry URLs pointing to the FotoNotes cloud. Each photo migrates as a HubSpot File attachment linked to its parent Ticket (Work Order). The original FotoNotes photo URL is preserved as a custom URL property on the file attachment for re-access if FotoNotes access is revoked post-migration.

FotoNotes

Vendor

maps to

HubSpot

Contact (or Company)

many:1
Fully supported

FotoNotes Vendors can be organizations or individual contractors. Organizational vendors map to HubSpot Companies with a Vendor_Type__c custom pick-list. Individual vendors map to HubSpot Contacts with a role field set to 'Vendor'. Both receive the FotoNotes vendor metadata as custom properties.

FotoNotes

Customer

maps to

HubSpot

Contact

1:1
Fully supported

FotoNotes Customers map 1:1 to HubSpot Contacts. FotoNotes's customer-view-only permission is not a data field — it is enforced by HubSpot's sharing rules and contact-visibility settings post-migration. Customer contact information, email, and phone transfer directly. To ensure continuous data continuity.

FotoNotes

Portal Admin / Manager / User

maps to

HubSpot

HubSpot User

1:1
Fully supported

FotoNotes internal users (Portal Admin, Manager, User, Field User) are matched to HubSpot Users by email address. FotoNotes role metadata is preserved as a custom pick-list field on the HubSpot User record. Unmatched users are flagged before migration for manual HubSpot account creation.

FotoNotes

Container/Containee Relationship

maps to

HubSpot

Company → Ticket Association

1:1
Fully supported

FotoNotes Container/Containee parent-child hierarchy is translated to HubSpot Company-to-Ticket associations. A Property (Company) is associated with its Work Orders (Tickets) via HubSpot's native ticket-association model. The hierarchy depth is preserved in a custom text field on the Ticket for reference.

FotoNotes

Photo-to-Work-Order N:1 Relationship

maps to

HubSpot

Junction Object

1:1
Fully supported

HubSpot Tickets do not natively support many-to-many Photo attachments. We create a custom junction object (Ticket_Photo_Link__c) linking each Work Order Ticket to its associated Photo File records. This preserves the N:1 cardinality from FotoNotes. Ensuring accurate photo-to-work-order linkage across all migrated records.

FotoNotes

Batch Report / Bulk PDF

maps to

HubSpot

HubSpot File

1:1
Fully supported

FotoNotes Batch Reports (bulk PDF exports of multiple Work Orders) are re-downloaded from FotoNotes during migration and uploaded as HubSpot Files. Each file is associated with the parent Property Company record. Original batch report metadata (report date, record count) is preserved as file description custom properties.

FotoNotes

Activity Log / Comments

maps to

HubSpot

HubSpot Engagement / Note

1:1
Fully supported

FotoNotes Work Order comments and activity log entries migrate as HubSpot Engagements on the parent Ticket. Original timestamps, comment text, and author (mapped to HubSpot User by email) are preserved. FotoNotes flagging actions are recorded as HubSpot engagement notes. For audit.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

FotoNotes logo

FotoNotes gotchas

High

Container-to-contained field inheritance is implicit

Medium

Batch PDF reports are the only bulk export mechanism

Medium

Vendor sub-accounts require hierarchical mapping

Low

FotoNotes is now SiteCapture — documentation split

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • Container/Containee hierarchy flattens into Company/Ticket association

    FotoNotes Properties (Containers) and Work Orders (Containees) carry a strict parent-child relationship enforced by FotoNotes's data model. HubSpot Companies and Tickets are independent objects linked by association rather than containment. We translate the Container/Containee link to a HubSpot Company-to-Ticket association and preserve the hierarchy depth in a custom text field on each Ticket. However, FotoNotes's template inheritance — where container fields automatically populate contained work orders — has no HubSpot equivalent and must be replicated manually using HubSpot workflow actions after migration.

  • Photo blob storage does not transfer; only URLs migrate

    FotoNotes stores 100+ million photos in its own cloud infrastructure. HubSpot does not host external photo blobs natively. We download each FotoNotes photo during migration, re-upload it as a HubSpot File, and store the original FotoNotes URL as a custom URL property on the file attachment. If FotoNotes access is revoked before migration completes, those URLs become dead links — we flag this risk in the pre-migration audit and recommend preserving FotoNotes read access through the delta-pickup window.

  • FotoNotes vendor role model has no direct HubSpot owner equivalent

    FotoNotes distinguishes between Portal Admin, Manager, Field User, Customer, Vendor Admin, and Vendor Field User — six distinct roles with overlapping permissions. HubSpot uses a simpler Owner model (one per record) with Contact associations. We map each FotoNotes role to a HubSpot User record and preserve role metadata in a custom pick-list. But FotoNotes's permission-gating on hidden fields and documents does not translate — sensitive fields visible to a Portal Admin but hidden from a Vendor Admin must be reconfigured using HubSpot's field-level security and team-based sharing rules post-migration.

  • Batch PDF reports require re-download and re-upload as HubSpot Files

    FotoNotes Batch Reports aggregate multiple Work Order records into a single PDF for portfolio-level review. These PDFs live in FotoNotes's report storage, not as structured data fields. HubSpot has no native batch-report equivalent — reports in HubSpot are per-record exports. We re-download all batch PDFs from FotoNotes during migration and upload them as HubSpot File attachments associated with the parent Property Company record. Report date and record count metadata is preserved in file description custom fields.

  • FotoNotes custom work order fields require HubSpot custom properties before migration

    FotoNotes administrators can create unlimited custom fields on Work Orders (Containees) — work_order_type, priority, assignment_status, and others are not always standard fields. HubSpot Tickets have a fixed set of standard properties; all FotoNotes custom fields must be pre-created as HubSpot custom properties before data lands. We deliver a custom-property creation plan based on the FotoNotes schema export, and the HubSpot admin must create these properties before the test migration runs.

Migration approach

Six steps for a successful FotoNotes to HubSpot data migration

  1. Audit FotoNotes schema and export record structure

    FlitStack AI connects to FotoNotes via REST API and exports the full object schema: all Properties, Work Orders, Photos, Vendors, Customers, and Users with their field definitions. We identify custom fields, photo URL inventory, batch report count, and parent-child relationship depth. This audit produces a FotoNotes-to-HubSpot schema mapping document that the HubSpot admin uses to pre-create custom properties and configure ticket pipelines before migration data arrives.

  2. Configure HubSpot ticket pipelines and custom properties

    Based on the schema audit, we deliver a HubSpot setup plan: ticket pipelines mapped to FotoNotes work_order_status values, custom property definitions for work_order_type, priority, assignment_status, vendor_contact_id, fotonotes_role, and original_create_date, and a junction object (Ticket_Photo_Link__c) for photo-to-work-order associations. The HubSpot admin creates these before the migration run. We also recommend testing pipeline stage transitions in a sandbox environment to confirm expected ticket routing.

  3. Migrate parent records first: Properties → Companies, Vendors/Customers → Contacts

    We sequence the migration to respect foreign-key dependencies. Companies migrate first ( FotoNotes Properties with all address, type, size, and unit count fields). Contacts for Vendors and Customers migrate next, matched by email and annotated with their FotoNotes role metadata. This ordering ensures that when Work Orders migrate as Tickets, the vendor_contact_id and owner_id lookups resolve correctly against already-existing HubSpot records.

  4. Migrate Work Orders to Tickets and re-upload Photos as HubSpot Files

    Work Orders migrate as HubSpot Tickets with all standard and custom properties populated. During migration, each FotoNotes photo URL is fetched, downloaded, and re-uploaded as a HubSpot File. The Ticket_Photo_Link__c junction object is populated to preserve the N:1 relationship. Batch PDF reports are similarly downloaded and uploaded as Company-level file attachments with report-date metadata. This ensures data integrity and traceability throughout the process.

  5. Run sample migration with field-level diff, then delta-pickup cutover

    A representative slice (typically 100–500 records across Properties, Work Orders, Photos, and Contacts) migrates first. We generate a field-level diff between FotoNotes source values and HubSpot destination fields so you can verify work_order_type mapping, photo URL preservation, vendor resolution, and priority value mapping before the full run commits. After validation, the full migration runs with a 24–48 hour delta-pickup window to capture any FotoNotes records modified during cutover. Audit log captures every operation, and one-click rollback is available if reconciliation fails.

Platform deep dives

Context on both ends of the pair

FotoNotes logo

FotoNotes

Source

Strengths

  • Photo-first inspection workflow with mobile app capture and cloud sync across devices
  • Container/containee data model reduces duplicate property data across large portfolios
  • Supports seven distinct user roles including vendor admin and customer read-only access
  • Batch PDF report exports allow portfolio-level review across multiple properties at once
  • Field user mobile app works offline and syncs when connectivity is restored

Weaknesses

  • The FotoNotes-to-SiteCapture rebranding splits web presence and creates documentation gaps for legacy customers
  • Granular role-based permissions require careful mapping during migration — vendor admin and customer roles do not map directly to standard CRM roles
  • Custom work type templates vary by account, making schema extraction non-trivial without direct portal admin access
  • Status synchronization issues between web and mobile are an ongoing pain point reported in user reviews
  • No publicly documented public API means programmatic data export relies on the admin batch report feature rather than a REST endpoint
HubSpot logo

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across FotoNotes and HubSpot.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    FotoNotes: Not publicly documented.

  • Data volume sensitivity

    B

    FotoNotes doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your FotoNotes to HubSpot migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about FotoNotes to HubSpot data migrations

Answers to the questions buyers ask most during FotoNotes to HubSpot migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your FotoNotes to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most FotoNotes-to-HubSpot migrations complete in 48–72 hours of clock time for under 50,000 records. Larger FotoNotes setups with 500k+ records, complex Container/Containee hierarchies, or batch PDF report inventories exceeding 500 files per property extend to 5–7 days. Configuring HubSpot ticket pipelines and custom properties before migration data arrives is the longest planning step. The actual migration window may be shorter if data is pre-validated.

Adjacent paths

Related migrations to explore

Ready when you are

Move from FotoNotes.
Land in HubSpot, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day