Helpdesk migration
Field-level mapping, validation, and rollback between ASAPP and Freshdesk. We move data and schema; workflows are rebuilt natively in Freshdesk.
ASAPP
Source
Freshdesk
Destination
Compatibility
6 of 8
objects map 1:1 between ASAPP and Freshdesk.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ASAPP to Freshdesk is a data-model translation from AI-native conversation architecture to traditional helpdesk ticketing. ASAPP organizes its core data around Conversations with AI-extracted structured-data fields and Segments; Freshdesk uses Tickets with standard and custom fields, Contacts, Companies, and Agents. We extract conversation threads and metadata via ASAPP's S3 batch, File Exporter, and real-time event APIs (reconciling gaps between channels), map them to Freshdesk Tickets, and preserve ASAPP's custom structured-data fields as Freshdesk custom fields. Agent performance records map to Freshdesk Agents, and customer profiles map to Freshdesk Contacts with Company associations. ASAPP's AI model tuning, routing rules, and workflow automations are platform-proprietary and cannot be exported; we document them as a requirements spec for Freshdesk admin rebuild. We do not migrate workflows, sequences, or automations as code.
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 ASAPP object lands in Freshdesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
ASAPP
Conversation
Freshdesk
Ticket
1:1ASAPP Conversations map to Freshdesk Tickets. Each conversation thread becomes a single ticket with the initial message as description and subsequent messages as ticket conversations (notes and replies). Channel metadata (voice, messaging, digital) maps to Freshdesk type. ASAPP conversation start time and resolution time map to created_at and updated_at on the ticket. CSAT scores from ASAPP metadata migrate to Freshdesk satisfaction rating fields if available.
ASAPP
Customer
Freshdesk
Contact
1:1ASAPP Customer profiles map to Freshdesk Contacts. Customer email, name, phone, and language migrate directly. Any ASAPP customer identity metadata that does not map to a standard Freshdesk Contact field becomes a custom Contact field (prefixed with asapp_). Customer-to-conversation associations are preserved by linking the migrated ticket to the migrated Contact via Freshdesk's requester_id.
ASAPP
Company
Freshdesk
Company
1:1ASAPP Company records (if present in the customer's data model) map to Freshdesk Companies. ASAPP company domain maps to Freshdesk domain. Company name, industry, and custom properties map to Freshdesk Company fields or become Freshdesk custom company fields. Contact-to-Company linkage is preserved via Freshdesk's contact-company relationship model after both objects are migrated.
ASAPP
Agent
Freshdesk
Agent
1:1ASAPP Agent records (performance metrics, handle time data, assignment metadata from S3 exports) map to Freshdesk Agents. Agent identity is matched by email. ASAPP agent-level performance data (average handle time, CSAT by agent) migrates to Freshdesk custom agent fields (asapp_avg_handle_time__c, asapp_csat_score__c) since Freshdesk's native agent object focuses on availability and group assignment rather than performance history. Agent group assignments migrate to Freshdesk groups and are resolved before migration.
ASAPP
Structured Data Field (custom)
Freshdesk
Custom Field (Ticket or Contact)
lossyASAPP custom structured-data fields are defined via a dedicated API and extracted from conversations. We export the full field schema before migration and create Freshdesk custom fields of equivalent type (string, number, date, dropdown) on the Ticket or Contact object depending on whether the field applies to the conversation or the customer. Field names are preserved with an asapp_ prefix to avoid collision with Freshdesk native fields. Type mismatches (e.g., ASAPP array vs Freshdesk single-select) are flagged for customer review during scoping.
ASAPP
Segment
Freshdesk
Custom Field or Tag
lossyASAPP Segments define which structured data the system extracts for specific conversation types. Segment definitions and their associated field sets are exported and mapped to Freshdesk custom fields on Ticket (segment type stored as a dropdown) or to Freshdesk Tags for classification purposes. The customer chooses segment-to-tag strategy during scoping based on whether they want segment values as filterable ticket attributes or as broad classification tags.
ASAPP
Conversation Metadata
Freshdesk
Ticket Custom Fields
1:1ASAPP conversation metadata (channel type, routing information, CSAT scores, disposition, AI confidence score) migrates to Freshdesk ticket custom fields. We create Freshdesk custom fields for each metadata dimension: asapp_channel_type__c (dropdown), asapp_routing_queue__c (string), asapp_csat_score__c (number), asapp_disposition__c (dropdown), asapp_ai_confidence__c (number). These fields allow Freshdesk agents to see conversation provenance and AI-annotation context without rebuilding the ASAPP AI layer.
ASAPP
Reports (channel inventory)
Freshdesk
Ticket Field Count and Validation
1:1ASAPP delivers reports via File Exporter API, S3 batch, and real-time event API. We query all three channels during discovery to produce a record-count reconciliation. Historical conversation counts from S3 batch reports validate ticket counts in Freshdesk post-migration. Report definitions (saved reports, dashboards) do not migrate as Freshdesk reports; we deliver a written inventory of ASAPP report names and metrics for the Freshdesk admin to rebuild using Freshdesk's reporting engine.
| ASAPP | Freshdesk | Compatibility | |
|---|---|---|---|
| Conversation | Ticket1:1 | Fully supported | |
| Customer | Contact1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Agent | Agent1:1 | Fully supported | |
| Structured Data Field (custom) | Custom Field (Ticket or Contact)lossy | Fully supported | |
| Segment | Custom Field or Taglossy | Fully supported | |
| Conversation Metadata | Ticket Custom Fields1:1 | Fully supported | |
| Reports (channel inventory) | Ticket Field Count and Validation1:1 | 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.
ASAPP gotchas
ASAPP API rate limit of 100 req/s with daily hard cap
ASAPP exports are split across three distinct reporting channels
Custom structured data fields and segments require manual schema mapping
Configuration and AI model settings are not exportable
Freshdesk gotchas
API access is blocked on the free plan
Per-minute rate limits are account-wide and endpoint-specific
Multi-channel source types do not map 1:1 to all destinations
Custom objects created in-product cannot be accessed by other apps
Contact import requires at least 10 existing tickets in the account
Pair-specific challenges
Migration approach
Discovery and data inventory
We audit the ASAPP account across all three export channels: File Exporter API, S3 batch reports, and real-time event API. We inventory conversation volume, customer count, agent count, custom structured-data field schema (via the structured-data-field API), segment definitions, and metadata dimensions. We cross-reference record IDs across all three export channels to detect duplicates and reconstruct a unified conversation timeline. The discovery output is a written scope document including estimated Freshdesk plan tier (based on agent count and required API rate limits), custom field schema design, and migration phasing recommendation.
Schema design in Freshdesk
We design the destination Freshdesk schema before any data moves. This includes creating custom ticket fields for all ASAPP conversation metadata dimensions (asapp_channel_type__c, asapp_routing_queue__c, asapp_csat_score__c, asapp_disposition__c, asapp_ai_confidence__c), creating custom contact fields for customer metadata, creating custom company fields if ASAPP Company data exists, and creating any Freshdesk Custom Objects required to preserve complex ASAPP structured-data types that do not fit standard custom fields. We also design the Freshdesk group and agent assignment model based on ASAPP agent group data.
Multi-channel export sequencing
We run ASAPP exports across all three channels in parallel, using exponential backoff and volume chunking to respect the 100 req/s spike arrest and daily API quota. Exports are sequenced across multiple days if the total volume exceeds the daily limit. We deduplicate records by comparing record IDs across File Exporter, S3, and real-time API results, and we flag any conversations that appear only in one channel (real-time-only records may represent mid-export new conversations that should be excluded from the historical migration window). The export output is a unified, deduplicated dataset validated against the three-channel record count reconciliation.
Dependency-ordered import into Freshdesk
We import into Freshdesk in strict dependency order: Companies first (if present), then Contacts (linked to Companies), then Agents (with group assignments resolved), then Tickets (with requester_id pointing to the migrated Contact, custom fields populated from ASAPP metadata and structured-data fields). Each phase emits a row-count reconciliation report before the next phase begins. We respect Freshdesk's per-endpoint sub-limits (Ticket Create, Ticket Update, Tickets List) using the rate limit for the customer's plan tier and implement exponential backoff on any 429 responses.
Cutover, validation, and configuration handoff
We freeze ASAPP writes during cutover, run a final delta migration of any conversations created or modified during the migration window, then enable Freshdesk as the system of record. We validate record counts against the ASAPP three-channel reconciliation, spot-check 25-50 migrated tickets against the source conversation data, and confirm agent assignments and group membership are correct. We deliver the AI configuration inventory document (routing rules, intent definitions, automation triggers) to the customer's Freshdesk admin team for rebuild. We do not rebuild ASAPP automations as Freshdesk automation rules inside the migration scope; that is a separate engagement.
Platform deep dives
ASAPP
Source
Strengths
Weaknesses
Freshdesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. All 7 core objects map 1:1 between ASAPP and Freshdesk.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ASAPP and Freshdesk.
Object compatibility
All 7 core objects map 1:1 between ASAPP and Freshdesk.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
ASAPP: 100 requests per second spike arrest; daily hard cap that returns 429 and can trigger token revocation.
Data volume sensitivity
ASAPP exposes a bulk API — large-volume migrations stream efficiently.
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 ASAPP to Freshdesk migration scoping. Not seeing yours? Book a call.
Walk through your ASAPP to Freshdesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave ASAPP
Other ways to arrive at Freshdesk
Same-Helpdesk migrations
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.