Taroworks to CommCare Transition Guide
Many organizations adopt TaroWorks because they already use Salesforce and want a mobile data collection tool that integrates directly with their CRM. However, as field programs grow, teams encounter challenges that come from TaroWorks being tightly coupled to the Salesforce ecosystem.
Special thanks to GiveDirectly for sharing an open-sourced TaroWorks-to-CommCare migration tool that connects to your Salesforce org, reads TaroWorks form metadata, and generates a CommCare-compatible XForm.
Why Transition from TaroWorks to CommCare?
Many organizations adopt TaroWorks because they already run their programs on Salesforce and want mobile data collection that feeds directly into their CRM. However, as field operations scale beyond simple data capture, teams encounter challenges inherent to TaroWorks' architecture as a Salesforce managed package. Every aspect of configuration, reporting, and user management requires Salesforce expertise, and extending workflows means building Salesforce automations (Flows, Process Builder) alongside TaroWorks Jobs — two systems to maintain in parallel. Scaling to more field workers means more Salesforce licenses, and offline data availability depends on Salesforce's sync configuration and drilldown setup rather than a purpose-built mobile architecture.
Organizations switch to CommCare to consolidate their field operations into a single, purpose-built platform. They look for native case management that works fully offline, form logic that program staff can build and modify without JavaScript or Salesforce admin skills, and a cost model that scales with their program rather than their CRM seat count.
Here is a summary of the common challenges with TaroWorks and the benefits organizations gain by switching to CommCare:
Feature | TaroWorks | CommCare |
Platform dependency | Runs as a managed package inside Salesforce. Requires an active Salesforce license for every aspect of configuration, reporting, and administration. | Standalone platform purpose-built for mobile data collection and case management. No external CRM dependency. |
Data architecture | Data flows into Salesforce objects. Tracking individuals across visits requires configuring Salesforce "drilldowns" and maintaining complex object relationships. | Native case management: register once, update across visits. Case history is automatically available offline on the device. |
Form logic | Calculations and validations are written in JavaScript. Skip conditions are configured through the TaroWorks UI but have limited expressiveness. | XPath-based logic with a no-code Form Builder. Skip patterns, validations, and calculations are built visually or with simple expressions. |
Offline capability | Syncs through Salesforce Mobile. Offline data availability depends on Salesforce's sync configuration and drilldown setup. | Purpose-built offline-first architecture. Full case lists, form logic, and multimedia available without connectivity. |
Cost | Requires Salesforce platform licensing + TaroWorks subscription. Scaling to more users means more Salesforce seats. | Self-contained pricing. No third-party license required. |
Workflow complexity | Building multi-step workflows requires Salesforce automations (Flows, Process Builder) alongside TaroWorks Jobs. Two systems to maintain. | Workflows are built entirely within CommCare using modules, forms, and case management. One system. |
TaroWorks Transition Case Study: GiveDirectly
In this blog, read about why the organization GiveDirectly made the decision to switch from TaroWorks to CommCare to support their cash transfer work.
Step-by-Step Instructions
This guide provides step-by-step instructions to help organizations easily transition from TaroWorks to CommCare on their own.
1. Prepare for your Transition
Before you begin, audit your existing TaroWorks setup:
Inventory your Jobs and Forms: List all active TaroWorks Jobs and the Surveys (forms) they reference. Note which Salesforce objects each Job maps to via drilldowns.
Document your drilldown hierarchy: TaroWorks Jobs push Salesforce records to the mobile device via a "drilldown" -- a parent-child chain of Salesforce objects. These will become your CommCare case types and case relationships.
Identify field mappings: Each TaroWorks form has Question Mappings that write collected data back to Salesforce fields. Document these -- they will become CommCare case property updates.
Note JavaScript logic: TaroWorks uses JavaScript for calculations and validations. These must be rewritten as XPath expressions in CommCare. The GiveDirectly migration tool can auto-translate many common patterns, but complex JS (loops, array operations, self-references) will need manual rewriting.
Plan your Salesforce data export: If you need to bring historical data into CommCare, plan your SOQL queries or Salesforce Data Export now.
2. Re-Build Form(s) in CommCare
Option 1: Recreate your forms Manually
Remember: For any multiple choice questions within your application, ensure that the value in the cell corresponds to the "choice value" in CommCare.
Option 2: Use the Automated Migration Tool
GiveDirectly has open-sourced a TaroWorks-to-CommCare migration tool that connects to your Salesforce org, reads TaroWorks form metadata, and generates a CommCare-compatible XForm.
What the tool does:
Connects to Salesforce via JWT authentication
Queries TaroWorks metadata (Jobs, Forms, Questions, Options, Skip Conditions, Field Mappings)
Translates question types, skip logic, and JavaScript formulas to XPath
Outputs a `migrated_survey.xml` file ready to upload to CommCare
Generates a `case_properties.txt` listing Salesforce fields from drilldowns (your future case properties)
What the tool does NOT do:
Migrate submission data (only form definitions)
Wire up case property updates (field mappings are recorded as comments in the XML for manual configuration)
Handle multimedia assets stored in Salesforce
Translate all JavaScript -- complex formulas are flagged with `#form/fake_formula` and need manual XPath rewriting
After running the tool:
Copy the form to a new form (to generate a unique xmlns), then delete the original
Review and fix any questions highlighted in red (untranslated formulas)
Add calculated stop-conditions for any repeat groups
Configure case management (see Step 3)
Terminology Differences: TaroWorks vs. CommCare
When building new forms, or "app building" as we call it on CommCare, there are some differences in terminology between TaroWorks & CommCare. The table below shows most of these.