Switching from GoProposal to Socket is designed to be straightforward with our import tools. Socket helps you move across your pricing, services, and current client proposals so you can continue billing without disruption.
This guide covers:
Importing services and pricing
Importing current client proposals, including the Full Proposals import mode
Importing Your Services and Pricing
Your first step is to move your pricing structure from GoProposal into Socket. Completing this step first will make your proposal import significantly smoother, because Socket uses your pricing menu to map imported GoProposal services to their Socket equivalents.
Export Pricing from GoProposal
In GoProposal, navigate to your pricing settings.
Download the pricing matrix PDF (found at the bottom of the pricing configuration page).
Import Pricing into Socket
In Socket, go to Pricing & Services in the left hand menu, then click Create New Pricing.
Under the 'I'm switching from GoProposal' heading choose Upload GoProposal Pricing Matrix PDF and then upload the file from your computer.
Choose Start Import - this may take a few minutes depending on the size of the file.
Once the import is complete you can Review Imported Pricing.
There may be issues to resolve when importing pricing. If the Red 'Caution' symbol shows, this means there is something which needs correcting, so you may need to manually correct some of the drivers that failed to import.
Service descriptions aren't exported in the Pricing Matrix PDF, so you'll either need to copy and paste these into your Socket Pricing Menu, or use Socket's built-in AI to Generate Description on the edit screen.
Once imported:
Review your services and pricing.
Check values and service groupings.
Make any small tidy-ups if required.
Importing Current Client Proposals
To ensure billing can continue as expected, current client proposals should be imported into Socket.
Rather than importing all past proposals, we strongly recommend filtering your GoProposal export to include only the proposals that are currently active and being billed.
Why Filter Proposals?
Bringing across older or inactive proposals can:
Create unnecessary clutter
Make reporting harder to interpret
Increase cleanup work after import
Focusing on current proposals ensures Socket reflects how your practice operates today.
How To Export Proposals from GoProposal
In GoProposal, go to the Proposals and Engagement Letters tab in the dashboard and click the Export to CSV button on the right-hand side.
On the export screen you'll need to make two important selections before requesting your export:
1. Select Line Items breakdown as your Export type.
This is critical, so do not use Proposals totals only. Socket needs the line item detail to map individual services during import. Without it, the Full proposals import mode will not have enough data to work with.
2. Filter by Status to include only active proposals.
We recommend selecting Won and Live statuses only, and leaving Draft, Lost, and Superseded unticked. This keeps your import clean and focused on the work you're currently billing for.
You can also filter by Type, Date created, Staff, Principal in charge, and Person responsible if you want to narrow the export further. For most practices a Status filter alone is sufficient.
Once your selections are made, click Request export. GoProposal will email you the CSV file when it's ready. Save it to your computer and rename it if needed before importing into Socket.
Bringing in quarterly, annual or weekly billing
GoProposal only ever bills monthly or as a one-off, so if you're importing a genuine GoProposal export you can skip this section entirely. Nothing changes and there's nothing to add to your file.
In practice though, this importer has become the way most practices move across from anywhere. If you're reshaping a fee schedule, a spreadsheet, or an export from another system into the GoProposal template, you may well have clients billed quarterly or annually, and those can now come through properly rather than having to be rebuilt by hand.
To use it, add an optional Billing Frequency column to your file. Leave the column out, or leave a cell blank, and that row behaves exactly as it does today.
These are the values it accepts. It isn't fussy about capitals, hyphens, underscores or spaces, so "One Off", "one-off" and "one_off" all work.
What to put in the column | How it bills | Which amount column it reads |
weekly | Weekly | Monthly Amount |
monthly | Monthly | Monthly Amount |
quarterly | Quarterly in advance | Monthly Amount |
quarterly on completion | Quarterly on completion | Monthly Amount |
annual, annually or yearly | Yearly in advance | Monthly Amount |
annual on completion | Yearly on completion | Monthly Amount |
one-off or once | Once on completion | Oneoff Amount |
one-off in advance | Once in advance | Oneoff Amount |
on acceptance | On acceptance | Oneoff Amount |
⚠️ Put the amount in the right column, and give the frequency the period price. Recurring frequencies read the Monthly Amount column, and the figure there is the amount per period, so an annual fee of £1,200 goes in as 1200 against a frequency of annual, not 100. One-off frequencies read the Oneoff Amount column. If an amount is in the wrong column, or a row has both amounts filled alongside a frequency, Socket flags it rather than guessing, and never adds the two together.
Frequencies only work on mapped services. A billing frequency can only be honoured on a line that's mapped to a service in your Socket pricing menu, so you'll need Full proposals mode and a mapping for that service. Unmapped lines come in as historical records, which are treated as monthly, so an annual amount sitting on one would bill twelve times over. Socket won't let that happen, it flags the row instead. If you see a frequency flagged for this reason, the fix is to map the service.
What happens when a row is flagged. The whole proposal is excluded on the review screen, with the reason shown, rather than being imported with a guessed billing method. Money is too important to guess at. You can either fix it, by mapping the service and using Back to Mapping, or by correcting the CSV and uploading again, or you can force it through and accept the standard monthly and one-off behaviour for that row.
Import Proposals into Socket
In Socket, go to the Proposals dashboard, choose the 3 Dots Menu in the top right corner and select Import.
Choosing Your Import Mode
On the import screen you'll see two import mode options: Historical and Full proposals.
We recommend Full proposals wherever possible. This maps your GoProposal services to your Socket pricing menu so imported proposals work exactly like proposals created natively in Socket: fully editable, reportable, and ready for renewals and adjustments without any extra work.
Historical brings proposals across as static, read-only records. Use this only if you haven't yet set up your Socket pricing menu, or for older proposals you just want to keep for reference.
If you can't see the Full proposals option, check that you have completed your pricing menu import first. Socket needs a pricing menu in place before it can offer service mapping.
Before selecting your CSV file, you'll also need to configure the following settings:
Choose how to handle multiple proposals for the same client, either mark older ones as superseded, or mark all won proposals as active.
Select which GoProposal statuses to import and map each one to its Socket equivalent. For example, Won in GoProposal maps to Won in Socket, and Live maps to Pending.
Choose how revenue range values should be handled, either Update driver and client fact (recommended, keeps Socket client data in sync) or Set driver value only.
Acknowledging before you proceed
Before Socket will let you select your CSV file, you must tick both acknowledgement checkboxes in the pink box at the bottom of the import screen:
I understand this practice is not in safe mode and any imported proposals will be entering a live system.
I understand this practice already has proposals and the import may overwrite proposals with matching proposal numbers.
These checkboxes are there to make sure you're aware that the import will affect your live account. The Select GoProposal CSV button stays greyed out until both are ticked.
Service Mapping
If you've selected Full proposals mode, the next step is the Service Mapping screen. This is where the import tool does its most important work.
Socket will show you every GoProposal service found in your CSV, along with how many proposals it appears on. Your job is to match each one to the equivalent service in your Socket pricing menu.
To speed this up, click Suggest Mappings in the top right corner. Socket's AI will automatically match GoProposal services to Socket services based on name similarity, saving you significant time on larger imports.
Click into any service to open its mapping panel, where you can:
Confirm or change which Socket service it maps to
Map each GoProposal modifier to the corresponding Socket price driver
Use Auto-map values to let Socket match driver values automatically where it can
Any service you don't map will be imported as a historical (read-only) line instead. You can filter by Mapped, Unmapped, or Partial to keep track of your progress.
Your mapping progress is saved automatically. If you need to step away at any point, you can navigate away and come back to resume the import later, and you won't lose your work.
Once you're happy with your mappings, click Confirm and Proceed.
Reviewing and Excluding Proposals
Before the import completes you'll see the Review Planned Proposals screen. This shows every proposal due to be imported, along with its import type:
Full Socket, meaning all services on the proposal were mapped successfully. The proposal will import as a fully functional Socket proposal.
Hybrid, meaning some services were mapped and some weren't. Mapped services will be live Socket services; unmapped ones will appear as historical lines.
Historical, meaning no services were mapped. The proposal will import as a static, read-only record.
Each row shows a green Included badge. You can click this on any row to toggle it to Excluded, and that proposal will be skipped when the import runs. This is useful if you've already recreated a particular proposal in Socket and don't want it overwritten.
You can also use the Exclude all rows with collisions button to bulk-exclude any proposals that would overwrite an existing Socket proposal with the same proposal number. The counter updates in real time as you make exclusions. If you change your mind, Restore All Exclusions brings everything back.
Use the Hide excluded toggle to filter the view to included proposals only once you've done your exclusions, or the Only show issues toggle to focus on proposals with warnings. Hover over the warning triangle on any row to see a tooltip explaining what the specific issue is.
If you've used the Billing Frequency column, the review grid also shows Quarterly, Annual and Weekly price columns alongside the monthly and one-off figures, so you can check the totals per frequency before you commit. For these imports Socket works the totals out from your individual rows and ignores the Total Monthly Amount and Total Oneoff Amount columns in your file, so there's no need to hand-calculate totals and no risk of them disagreeing with the lines.
Important: Proposals mapped to Won with past start dates may become Active automatically during completion. Depending on your supersede setting, older proposals for the same client may be marked as Superseded. These statuses are shown pre-completion on the review screen so you can check before confirming.
When you're satisfied, click Finish Import.
Work items for on-completion services
If your import includes services billed on completion, the Finish Import window tells you how many, and offers a tickbox to create the work items for them. It's ticked by default and we'd recommend leaving it that way.
Those work items are what lets you complete the work and raise the invoice in Socket. Without them, on-completion services can't be completed or invoiced, and the only way to add them afterwards is to run the import again with the box ticked. The reason it's a choice at all is that a large migration can create hundreds of invoiceable work items in one go, which is worth being deliberate about rather than discovering after the fact.
When a cycle's work is done, complete the job and the invoice goes out. If your old system already billed that cycle, close the job without invoicing instead. Either way, the next cycle's job appears.
Final Checks
After importing pricing and proposals:
Confirm active clients appear correctly in Socket.
Spot-check a few proposals to ensure imported data and values look right.
Begin creating new proposals directly in Socket going forward.
Don't worry about old start dates. Imported proposals will show their original GoProposal start dates, which may be months in the past. You don't need to change these. Socket will automatically skip any past billing periods and pick up from your next billing date. If you import partway through a month, billing will show from the following month onwards. If you have any questions about a specific billing period, get in touch with the team and we can help.
Start dates use the month, not the day. Whatever day you put in a Start date cell, Socket imports it as the first of that month, so 15 September 2025 comes in as 1 September 2025. Start dates are month-based throughout Socket and nothing bills off the day, so this simply keeps imported proposals consistent with everything else. Quarterly and annual billing anchors to the start month, so a September start bills in September each year.
You may also want to create your Letters of Engagement and Service Schedules from those set up in GoProposal. See our help guides below on how to create these in Socket, or use Socket Engage to generate them for you.











