Company & Seller Mapping
Every survey response DQC receives is a transaction between two companies:
- the company that hosts the survey (usually you), and
- the seller — the supplier/panel that fills the survey with respondents (e.g. Cint, Dynata, PureSpectrum).
DQC needs them for every respondent. This page has two parts: your Company (one static value) and the Seller (three ways to identify it).
DQC identifies companies by a canonical name/code. Use the Company Names and Codes search tool to look up the exact records. If a name you send doesn't match, DQC won't drop it silently — it's flagged so we can follow up and map it correctly.
The names you type here sit inside a Python string in an <exec> block, which Decipher parses as XML. A literal &, <, or > in a company or seller name will break the survey. When you hand-type a name that contains one, replace it with its XML entity:
| Character | Type this instead |
|---|---|
& | & |
< | < |
> | > |
For example, Smith & Jones becomes:
addDQCField("buyerName", lambda: "Smith & Jones")
The interactive builder in the Decipher XML Generator escapes these for you automatically — this only matters when you edit the XML by hand.
Company (the survey host)
This is your company — the one hosting the survey. It's almost always the same, so you set it once as a static value in buyerName:
addDQCField("buyerName", lambda: "Your company name") # the company hosting the survey
That's the only option here — the host company doesn't change from respondent to respondent. Because it's always your company, you can reuse the same buyerName across all of your surveys.
Seller (the supplier)
The seller is the company that supplied the respondent — the panel/supplier the person came through. This can change per respondent, so there are three ways to identify it. Pick whichever fits how you work.
Every response must identify its seller. Every send already carries vlistSellerName (the sample source's title), so Option 1 needs nothing extra — Options 2 and 3 add an explicit seller on top, and that value takes precedence on DQC's side.
Option 1 — Map by sample source (list) (Recommended)
When respondents arrive from several suppliers, each one enters through a sample source you define in your survey's <samplesources> block. Decipher exposes which source a respondent used via the list value in the entry URL (?list=2).
Name each source after its supplier and you're done — there is no mapping to hand-maintain in the script. send_results_dqc() resolves the title of the source the respondent came through and sends it as vlistSellerName, so a respondent entering with ?list=1 is attributed to that supplier:
addDQCField("vlistSellerName", lambda: dqcVListSellerName())
Build your sources below — add one row per supplier, then copy the block into your survey. This is the same editor the Decipher XML Generator uses.
samplesource list="N") — include every source, even 0. The title becomes the seller DQC records.<samplesources default="0">
<samplesource list="0">
<title></title>
<invalid>You are missing information in the URL. Please verify the URL with the original invite.</invalid>
<completed>It seems you have already completed this survey.</completed>
<exit cond="terminated">Thank you for taking our survey.</exit>
<exit cond="qualified">Thank you for taking our survey. Your efforts are greatly appreciated!</exit>
<exit cond="overquota">Thank you for taking our survey.</exit>
</samplesource>
</samplesources>
0)Every <samplesource list="N"> needs a title, and it's easy to forget the default source — the one Decipher uses when a respondent arrives with no list in the URL, usually 0. A source with an empty title has no supplier name to resolve, so the entry check stops the survey — every participant gets an error page instead of the first question, not only the ones from that source. See what that looks like, and test each of your source links once before going live.
Option 2 — Static seller name
If you only ever work with one supplier, hard-code it — type the name below and copy the line into send_results_dqc():
addDQCField("sellerName", lambda: "") # TODO: add your sellerName
A static seller only fits when every respondent in this survey comes from one supplier. If you copy this script into a survey that uses a different supplier, remember to change sellerName — a leftover value misattributes the seller.
Option 3 — Supplier index (your own IDs)
DQC can only turn an index into a supplier if we already know what your indexes mean — on its own, a value like 2 tells us nothing. So this option starts with a conversation: contact the DQC team and send us your list of indexes and the supplier behind each one (the table below). Until we have that list, the responses arrive without a supplier we can identify.
It also only works if your indexes mean the same thing in every survey you run, so the same index always points to the same supplier. Let us know whenever you add a new one.
If you already track your suppliers in your own system — each with a stable id/index — send that identifier instead of a name. Because the index is stable, the same value always refers to the same supplier, so DQC recognizes it consistently across responses:
addDQCField("supplierIndex", lambda: yourVariableInDecipher) # the variable holding this respondent's supplier index
addDQCField("isSupplierIndex", lambda: "true") # tells DQC to resolve an index, not a name
addDQCField("sellerName", lambda: "Your supplier name") # optional — send it too if you have it
Replace yourVariableInDecipher with whatever carries the index in your survey — a sample source <var>, an entry in extraVariables, or gv.request.variables.get("yourParam", ""). Send isSupplierIndex as "true" alongside it so DQC knows to look the value up in your mapping.
Use this when your platform assigns every supplier a unique id/index. supplierIndex is required for this option; sellerName is optional — DQC already knows the name from the mapping you share, so the index alone is enough.
How the index resolves to a supplier
The lookup lives on DQC's side, not in your survey. You send DQC a one-time table of the ids/indexes your system uses and the supplier each one refers to:
Your supplierIndex | Supplier |
|---|---|
1 | Company A |
2 | Company B |
3 | Company C |
Once we have that table, your survey only needs to send the index: a respondent whose
yourVariableInDecipher resolves to 2 is attributed to Company B automatically, with no company name
in the payload. That makes this a good approach when you'd rather not send company names directly.
✅ Summary
- Every response is a Company (host) → Seller (supplier) transaction; DQC needs both.
- Company — one static value,
buyerName(the company hosting the survey). - Seller (required) — three options: by sample source (each
<samplesource>title becomes the seller, nothing to script), a staticsellerName, or asupplierIndex(your own stable id, withsellerNameoptional alongside it). - Title every sample source, including
0— an untitled source has no seller to send. - Look up exact company records with the Company Names and Codes tool.