Back to blog
The QCP workflow: pull, edit, diff, push (no copy/paste)
Once your org is authenticated and you have scripts in src/, CPQ DevKit™ for Salesforce gives you a clean daily loop: pull → edit → diff → push.
Pull scripts from Salesforce
CPQ DevKit™ for Salesforce: Pull QCP records from Salesforcedownloads allSBQQ__CustomScript__crecords intosrc/*.ts.CPQ DevKit™ for Salesforce: Pull active file from Salesforcerefreshes the currently open file with the org version.
Safe pulls with conflict prompts
If a local file exists and the remote code is different, the extension prompts you to choose how to proceed:
- Backup the local file first (recommended)
- Overwrite local with remote
- Skip the file (keep local)
- Apply the same choice for all conflicts
Backups are written to a date-stamped folder in the workspace root (example: 2026-01-20-local).
Push scripts to Salesforce
CPQ DevKit™ for Salesforce: Push QCP files to Salesforcelets you pick one or more local files to push.CPQ DevKit™ for Salesforce: Push active file to Salesforcepushes the open file (saving it first if needed).
What happens on push
- If a matching
SBQQ__CustomScript__crecord already exists, it is updated. - If not, the extension creates a new record.
- If your org has duplicates with the same
Name, the extension warns you—clean up duplicates to avoid pushing to the wrong record.
Diff local vs Salesforce
Use these when reviewing changes before pushing:
CPQ DevKit™ for Salesforce: Compare records and show differences(local ↔ any remote record)CPQ DevKit™ for Salesforce: Compare active file with the Salesforce record(local ↔ its mapped remote record)
Useful “open” actions
CPQ DevKit™ for Salesforce: View transpiled code for active fileopensSBQQ__TranspiledCode__cfor the current record.CPQ DevKit™ for Salesforce: View QCP record in Salesforceopens the record detail page in your org.
Push-on-save (optional)
If you want a tighter feedback loop, enable sfdcQcp.pushOnSave and you’ll be prompted to push when saving a src/*.ts file.
