CRM migration
Field-level mapping, validation, and rollback between aACE and HighLevel. We move data and schema; workflows are rebuilt natively in HighLevel.
aACE
Source
HighLevel
Destination
Compatibility
5 of 11
objects map 1:1 between aACE and HighLevel.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from aACE to GoHighLevel is a cross-category migration: aACE is a FileMaker-based ERP consolidating accounting, CRM, order management, and inventory; GoHighLevel is a CRM and marketing automation platform for agencies and service businesses. The structural gap is significant — aACE records like Sales Orders, Invoices, Purchase Orders, and Projects have no native GoHighLevel equivalents, so we re-model them as Opportunities in custom pipelines, tagged records, or note-attached artifacts depending on their operational role. Because aACE exposes no REST API, we extract via FileMaker export scripts and cache tables, running under a dedicated migration user to avoid collisions with active users. We do not migrate workflows, automations, or document containers. We deliver a written inventory of aACE automations requiring rebuild in GoHighLevel's Workflow builder post-migration.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a aACE object lands in HighLevel, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
aACE
Account
HighLevel
Contact
1:1aACE Accounts are the primary customer and vendor records holding billing terms, payment terms, and contact references. We map them 1:1 to GoHighLevel Contacts, using the Account's primary contact name as the Contact's first and last name, and the Account's main email and phone as Contact fields. Company name becomes the Contact's company name. We preserve the aACE Account's unique ID in a custom field aace_account_id__c for reconciliation.
aACE
Account
HighLevel
Company (Contact property)
1:1aACE Accounts without a named individual contact (B2B business accounts) map to GoHighLevel Contacts with the company name populated in the Company field and no personal name fields filled. These serve as organization-level records for pipeline and task association.
aACE
Company Location
HighLevel
Contact address fields
lossyaACE supports multiple locations per Account, each with its own address. We migrate the primary billing location as the Contact address in GoHighLevel. Secondary locations are stored as a JSON blob in a custom field aace_locations__c on the Contact, flagged for the customer to configure as separate Contact records or address custom fields based on operational need.
aACE
Sales Order
HighLevel
Opportunity
1:1aACE Sales Orders are the transactional core linking a Customer Account to Line Items and spawning Invoices and Purchase Orders. We map active Sales Orders to GoHighLevel Opportunities in a custom pipeline named 'Orders' or 'Projects', preserving the order total as the Opportunity value, the order status as a custom stage, and the aACE order number in a custom field aace_order_id__c.
aACE
Sales Order Line Item
HighLevel
Opportunity Custom Fields (line_items__c)
lossyaACE line items (Item SKU, quantity, unit price, description) are serialized as a JSON array and stored in a custom Opportunity field aace_line_items__c. This preserves the item detail without requiring a separate Product2 and Pricebook configuration. Customers with complex pricing or recurring line-item reporting needs may choose to configure GoHighLevel Products separately.
aACE
Invoice
HighLevel
Opportunity (closed-won stage) or Note
lossyOpen A/R Invoices with outstanding balances are mapped to GoHighLevel Opportunities in a 'Invoiced' or 'Closed Won' stage with the invoice amount as the Opportunity value and the due date as a custom field aace_invoice_due__c. Fully paid historical invoices are stored as Notes attached to the parent Contact or Opportunity, preserving invoice number, date, and amount for audit purposes.
aACE
Purchase Order
HighLevel
Opportunity or Tag + Note
lossyaACE Purchase Orders link to Items, Vendors, and the originating Sales Order. Vendor-linked POs are re-modeled as GoHighLevel Opportunities in a 'Vendor Orders' pipeline with a tag 'Vendor-Order', or as tagged Notes on the related Contact. Partial receipts are flagged with a custom status field aace_po_status__c.
aACE
Project
HighLevel
Opportunity (Projects pipeline) or Tag
1:manyaACE Projects hold job headers and link to Tasks, Time entries, and billing records. We map active Projects to GoHighLevel Opportunities in a custom 'Projects' pipeline with stage, assigned user (resolved via email match), and a custom field aace_project_id__c. High-volume task records linked to Projects migrate as GoHighLevel Tasks tagged with the Project Opportunity.
aACE
Task
HighLevel
Task
1:1aACE Tasks linked to Projects, Accounts, or Orders map to GoHighLevel Tasks. We preserve task subject, status (OPEN, WAITING, COMPLETED), priority, due date, assignee (resolved via email match to GoHighLevel User), and any custom flag fields. Tasks without a parent link attach to the Contact record. aACE's FileMaker-based task export runs in batches under the migration user account.
aACE
Employee
HighLevel
User
1:1aACE Employee records hold name, department, and role data. We match active Employees to GoHighLevel Users by email address during migration. Any aACE Employee without a matching GoHighLevel User is held in the reconciliation queue for the customer's admin to provision the GoHighLevel user account before cutover.
aACE
Custom Fields (FileMaker)
HighLevel
Custom Fields (GoHighLevel)
lossyaACE tenants frequently add custom fields to standard objects for unique business processes. There is no metadata API to enumerate these automatically. We request the customer's FileMaker layout definitions during scoping, build the complete field list, and recreate each custom field in GoHighLevel as a Contact or Opportunity custom field of the matching type. Custom fields that have no GoHighLevel equivalent are written as text or JSON fields to prevent silent data loss.
| aACE | HighLevel | Compatibility | |
|---|---|---|---|
| Account | Contact1:1 | Fully supported | |
| Account | Company (Contact property)1:1 | Fully supported | |
| Company Location | Contact address fieldslossy | Fully supported | |
| Sales Order | Opportunity1:1 | Fully supported | |
| Sales Order Line Item | Opportunity Custom Fields (line_items__c)lossy | Fully supported | |
| Invoice | Opportunity (closed-won stage) or Notelossy | Fully supported | |
| Purchase Order | Opportunity or Tag + Notelossy | Fully supported | |
| Project | Opportunity (Projects pipeline) or Tag1:many | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Employee | User1:1 | Fully supported | |
| Custom Fields (FileMaker) | Custom Fields (GoHighLevel)lossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
aACE gotchas
No public API — FileMaker export scripts only
FileMaker cache table is shared per-user
Custom fields require manual field-discovery
Binary document containers are not migrated
HighLevel gotchas
Sub-account architecture creates isolated data silos per client
Usage-based telecom and AI costs are not in the subscription price
Workflows have no native equivalent in most destination CRMs
API rate limits cap bulk migration throughput at 100 requests per 10 seconds per sub-account
White-label configuration and branding assets do not export via API
Pair-specific challenges
Migration approach
Discovery and custom field layout audit
We review the source aACE database across all active object types (Accounts, Sales Orders, Invoices, Purchase Orders, Projects, Tasks, Employees) and request the customer share their FileMaker layout definitions for every object with custom fields. We build the complete field inventory including field names, types, and picklist values. We pair this with a GoHighLevel configuration audit to identify existing custom fields and pipelines so we can plan the re-model before any data moves. The discovery output is a written migration scope with object mapping, field mapping, and custom field creation checklist.
GoHighLevel pipeline and custom field configuration
Before any data extraction, we configure the GoHighLevel destination. This includes creating custom Opportunity pipelines named to match aACE object types (e.g., 'Orders', 'Invoices', 'Projects'), configuring pipeline stages mapped to aACE statuses, creating all required custom fields on Contact and Opportunity objects, and setting up tag categories for segmentation. Configuration is validated in the customer's GoHighLevel sandbox or trial account before production migration begins.
FileMaker export under dedicated migration user
We run aACE exports under a dedicated migration user account to avoid collisions with active users who may simultaneously be running imports. We clear the shared FileMaker cache table before each batch export, export Accounts first, then Orders, Invoices, Projects, and Tasks in sequence, and validate each batch against the aACE schema before transformation. Large exports are chunked by fiscal period or record range to stay within FileMaker's memory limits. All exports produce CSV files that feed the GoHighLevel import pipeline.
Data transformation and GoHighLevel import
We transform each aACE CSV batch before GoHighLevel import: Accounts map to Contacts, Sales Orders map to Opportunities in the custom 'Orders' pipeline, Invoices map to Opportunities in the 'Invoices' pipeline or Notes on the parent Contact, Projects map to Opportunities in the 'Projects' pipeline, and Tasks map to GoHighLevel Tasks attached to the relevant Contact or Opportunity. Custom fields are mapped per the field inventory from discovery. Owner resolution (aACE user email to GoHighLevel User) happens at this stage with unresolved owners flagged for admin reconciliation.
Sandbox validation and reconciliation
We run the full migration into the customer's GoHighLevel trial or sandbox environment first. The customer's team spot-checks 25-50 records per object type against the aACE source, verifies that pipeline stages and custom fields are populated correctly, and confirms that owner assignments match the expected GoHighLevel Users. We issue a row-count reconciliation report for each object type. Any mapping corrections are applied before the production migration is scheduled.
Production cutover and automation handoff
We schedule a cutover window during low-activity hours. aACE writes are frozen during cutover. We run a final delta migration for any records modified since the sandbox run, then set GoHighLevel as the system of record. We deliver the automation inventory document describing every aACE FileMaker script and its recommended GoHighLevel Workflow equivalent. We provide a one-week hypercare window for reconciliation issues. We do not rebuild GoHighLevel Workflows or automations inside the standard migration scope; that is a separate engagement.
Platform deep dives
aACE
Source
Strengths
Weaknesses
HighLevel
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across aACE and HighLevel.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
aACE: Not publicly documented for aACE itself. The underlying Claris FileMaker Data API caps concurrent sessions per server license, so high-volume extracts must be chunked and timed against the customer's FileMaker Server capacity (confirmed during scoping)..
Data volume sensitivity
aACE doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during aACE to HighLevel migration scoping. Not seeing yours? Book a call.
Walk through your aACE to HighLevel migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave aACE
Other ways to arrive at HighLevel
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.