Helpdesk migration
Field-level mapping, validation, and rollback between Agile CRM and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
Agile CRM
Source
Salesforce Service Cloud
Destination
Compatibility
13 of 14
objects map 1:1 between Agile CRM and Salesforce Service Cloud.
Complexity
CModerate
Timeline
4-6 weeks
Overview
Moving from Agile CRM to Salesforce Service Cloud is a migration from a flat all-in-one model to a structured, object-relational service platform. Agile CRM stores Cases, Tasks, Companies, and Contacts in a single-record-per-entity schema with limited field-level typing; Salesforce Service Cloud uses a separate Case object with threaded EmailMessages, a Contact-Account hierarchy, and Queue-based routing. We resolve the entity-order dependency (Companies must exist before Contacts can reference them), migrate case conversation threads as Salesforce EmailMessage records, and map Agile Groups to Service Cloud Queues with the correct case assignment rules. Agile's REST API exposes contacts, companies, deals, and cases fully but does not expose workflow definitions, so every automation trigger and routing rule requires manual documentation and destination-native rebuild. We deliver that documentation as part of the standard handoff package.
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.
Source platform
Agile CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Agile CRM.
Destination platform
Salesforce Service Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Salesforce Service Cloud.
Data migration guide
The complete Salesforce Service Cloud migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Salesforce Service Cloud migration checklist
Pre- and post-cutover tasks for moving onto Salesforce Service Cloud.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Agile CRM object lands in Salesforce Service Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Agile CRM
Company
Salesforce Service Cloud
Account
1:1Agile CRM Company records map directly to Salesforce Account. The Company domain_name or website field becomes the Account Website. Company is imported first because every Contact in Salesforce must reference an Account (or be converted from a Lead). We use Company name as the dedupe key and resolve any duplicate Company names by domain match before insert to prevent duplicate Account creation.
Agile CRM
Contact
Salesforce Service Cloud
Contact
1:1Agile CRM Contacts map to Salesforce Contacts with AccountId resolved from the Company mapping. All native fields (FirstName, LastName, Email, Phone, Title) map directly. Custom fields migrate as custom Contact fields (__c) with type preserved (text, number, date, picklist). We set AccountId via a pre-computed lookup map keyed on Company name before Contact insert to satisfy the required relationship.
Agile CRM
Deal
Salesforce Service Cloud
Opportunity
1:1Agile CRM Deals map to Salesforce Opportunity. The deal's custom_milestone property maps to StageName; custom_deal_track maps to RecordType and Sales Process that we configure in Salesforce before migration. Deal value, expected close date, owner, and linked Contact and Company associations migrate with WhatId resolved to AccountId and WhoId to ContactId. Closed-Lost reason custom fields become LossReason.
Agile CRM
Helpdesk Case
Salesforce Service Cloud
Case
1:1Agile CRM Helpdesk Cases map to Salesforce Case with Case Number preserved as an external reference field, Status mapped to Case Status, Priority mapped to Case Priority, and Origin mapped from the Agile case channel field (email, phone, chat). Case conversation threads migrate as EmailMessage records linked to the Case via ParentId. Agent assignments resolve by email match to Salesforce User records in the Case OwnerId field.
Agile CRM
Group
Salesforce Service Cloud
Queue
1:1Agile CRM Groups function as team-based access partitions and case queues. We migrate Group membership and map it to Salesforce Queues (Group object with Type = Queue) plus Case Assignment Rules. Assignment Rule entries are configured to route cases to the correct Queue based on case Origin, Priority, or a custom field. Group names that conflict with existing Salesforce Profile or Permission Set names are renamed during scoping to avoid permission conflicts.
Agile CRM
Label
Salesforce Service Cloud
Tag
lossyAgile CRM Labels are used to tag and categorize Contacts, Deals, and Cases. We migrate Labels as Salesforce Tags (Topic object with TopicAssignment records linked to the parent record) for content classification, or as multi-select picklist custom fields if the customer prefers a structured field over a free tagging model. The customer selects the strategy during scoping.
Agile CRM
Task
Salesforce Service Cloud
Task
1:1Agile CRM Tasks map to Salesforce Task with Status, Priority, ActivityDate, Subject, and Description preserved. Task assignment resolves by matching Agile owner email to Salesforce User Id in the OwnerId field. Tasks linked to Contacts resolve WhoId; tasks linked to Deals resolve WhatId as the Opportunity Id. Due dates and reminders transfer to Salesforce Task fields.
Agile CRM
Activity: Call
Salesforce Service Cloud
Task (TaskSubtype = Call)
1:1Agile CRM call activity records map to Salesforce Task with TaskSubtype = Call. Call disposition, duration in seconds, and recording URL migrate to custom Task fields. ActivityDate is preserved from the Agile timestamp to maintain chronological ordering in the Salesforce Activity timeline.
Agile CRM
Activity: Email
Salesforce Service Cloud
EmailMessage + Task
1:1Agile CRM email engagements migrate to Salesforce EmailMessage records (the message content and headers) linked to a parent Task record (the timeline entry). The WhoId on Task points to the Contact; the ParentId on EmailMessage points to the Case if the email is case-related. We use the Bulk API 2.0 for this phase given typical email volume.
Agile CRM
Activity: Meeting
Salesforce Service Cloud
Event
1:1Agile CRM meeting engagements map to Salesforce Event with StartDateTime, EndDateTime, Subject, Location, and Description preserved. Attendees migrate as EventRelation records linking the Event to the Contact or Account. Calendar invites and body content transfer as Salesforce Notes attached to the Event record.
Agile CRM
Activity: Note
Salesforce Service Cloud
Note
1:1Agile CRM Notes (engagement type NOTE) migrate to Salesforce Note records linked via ContentDocumentLink to the parent Contact, Account, Opportunity, or Case. Note body transfers as rich text with image attachments preserved as ContentDocument records. We resolve the parent record reference at migration time using the pre-built lookup map.
Agile CRM
Document
Salesforce Service Cloud
ContentDocument
1:1Agile CRM file attachments stored per record (Contact, Company, Deal, or Case) migrate as Salesforce ContentDocument records attached via ContentDocumentLink to the parent record. We export binary attachments via the Agile CRM file export endpoint, upload to Salesforce via the Connect API, and re-associate by matching the parent record's external ID to the Salesforce record ID resolved during migration.
Agile CRM
Custom Field
Salesforce Service Cloud
Custom Field (__c)
1:1Agile CRM custom fields on Contacts, Companies, Deals, and Cases are exposed with type=CUSTOM in the REST API. We discover all custom fields during the export audit, map them to Salesforce custom fields of equivalent type (Text, Number, Date, Picklist, Checkbox, Formula), pre-create the Salesforce custom fields in a Sandbox org for validation, then deploy to production before the data migration phase begins.
Agile CRM
Owner
Salesforce Service Cloud
User
1:1Agile CRM owners (user IDs on Contacts, Companies, Deals, Cases, and Tasks) are resolved by email match against the Salesforce destination User table. Any Agile owner without a matching Salesforce User goes to a reconciliation queue and the customer's admin provisions the missing Users before record import resumes. OwnerId is a required reference on Opportunity and Case, making this step a hard gate before those phases begin.
| Agile CRM | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Company | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Helpdesk Case | Case1:1 | Fully supported | |
| Group | Queue1:1 | Fully supported | |
| Label | Taglossy | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Activity: Call | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Activity: Email | EmailMessage + Task1:1 | Fully supported | |
| Activity: Meeting | Event1:1 | Fully supported | |
| Activity: Note | Note1:1 | Fully supported | |
| Document | ContentDocument1:1 | Fully supported | |
| Custom Field | Custom Field (__c)1:1 | Fully supported | |
| Owner | User1: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.
Agile CRM gotchas
Contact ceiling by tier silently drops overflow records on import
API rate limits throttle bulk export and import speeds
Workflow automations cannot be exported via REST API
Deleting a user permanently removes all their associated records
Campaign node limits constrain email automation complexity
Salesforce Service Cloud gotchas
Data Export 512MB file size cap breaks large org exports
API Daily Request Limits vary by license edition
No automatic data backup in base Salesforce
Picklist dependencies silently break records when unmapped
Workflow rules fire unexpectedly during data load
Pair-specific challenges
Migration approach
Discovery and record-volume audit
We audit the source Agile CRM account across tier (Free/Starter/Regular/Enterprise), total record counts by object (Contacts, Companies, Deals, Cases, Tasks, Activities), active automation rule count, campaign node count, Group membership list, and any custom field definitions in Admin Settings. We pair this with a Salesforce Service Cloud edition assessment: Professional ($75/user) covers standard case management and queues; Enterprise ($165/user) adds Assignment Rules, Macros, and Service Console customization; Unlimited ($330/user) adds 24x7 support and unlimited custom apps. The discovery output is a written migration scope and a Salesforce edition recommendation.
Schema design and Queue-Assignment Rule mapping
We design the destination schema in Salesforce Service Cloud. This includes provisioning custom objects and custom fields (with __c API names matched to Agile CRM custom field names), Record Types and Sales Processes for Deals-to-Opportunities migration, Case Assignment Rules mapping each Agile Group to a Salesforce Queue, and Page Layouts scoped per Record Type. Schema is deployed via Salesforce metadata API or change set into a Sandbox org first for validation. We also map Agile Label strategy to either Salesforce Tags or custom multi-select picklist fields based on customer preference.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's Service Cloud admin reconciles record counts (Cases in, Contacts in, Accounts in, Opportunities in, Activities in), spot-checks 25-50 random records against the Agile CRM source, and reviews Queue assignment correctness. Any mapping corrections happen in Sandbox before production migration begins. We also validate that Agile Group-to-Queue mapping covers all active groups with no orphaned assignments.
Owner reconciliation and User provisioning
We extract every distinct Agile CRM owner referenced on Contact, Company, Deal, Case, and Task records and match by email against the Salesforce destination org's User table. Any Agile owner without a matching Salesforce User goes to a reconciliation queue. The customer's admin provisions missing Users before record import resumes. OwnerId is a required reference on Case and Opportunity, so User provisioning is a hard gate before those phases begin.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Agile Companies), Contacts (with AccountId resolved via the Company name lookup map), Users (validated), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Cases (with OwnerId resolved to the correct Queue), Activity history (Tasks, Events, EmailMessages via Bulk API 2.0 with chunking and exponential backoff), Documents (via ContentDocument upload and re-association), Custom Objects (last, because they often have lookups to standard objects), and Labels/Tags (as Topics or custom fields). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and workflow handoff
We freeze Agile CRM writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce Service Cloud as the system of record. We deliver the Workflow and Automation Inventory document to the customer's admin team covering every active Agile CRM automation with trigger conditions, actions, and recommended Salesforce Flow equivalents. We support a one-week hypercare window where we resolve reconciliation issues raised by the service team. We do not rebuild Agile CRM workflows as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Agile CRM
Source
Strengths
Weaknesses
Salesforce Service Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 1 of 7 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Agile CRM and Salesforce Service Cloud.
Object compatibility
1 of 7 objects need a manual workaround.
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
Agile CRM: 500/day (Starter) to 25,000/day (Enterprise) — daily resets, not per-minute. Not publicly documented in a machine-readable format..
Data volume sensitivity
Agile CRM 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 Agile CRM to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Agile CRM to Salesforce Service Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Agile CRM
Other ways to arrive at Salesforce Service Cloud
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.