Import approved candidates and preserve the research trail
A frozen selection
Live deduplication
Reopenable evidence
Import only the approved selection
The target changes organization, not research evidence
Database only adds accepted rows to the workspace keyword pool. An existing-list target must be an active manual list. A new-list target creates a distinct manual list; when its requested name already exists, Crawl Foundry adds a suffix rather than merging into the old list. Smart and hybrid lists remain rule-driven and cannot receive a direct research import.
The import request snapshots the normalized selected keywords. It verifies that each one belongs to the selected run, so a manipulated or stale request cannot import a result from another run. Missing or foreign rows are skipped.
Large imports are resumable operations
The current client imports sequential chunks of up to 200 keywords. A single operation ID, immutable selection snapshot, target, and chunk index make retries idempotent. If the page refreshes during an active operation, the interface can resume from its next chunk. A person can also cancel the remaining work.
The compact operation snapshot expires after 30 days and stale running operations can be failed by maintenance. Keywords and list memberships already written remain in the database. Resume continues the saved selection; it does not recalculate the current filter or include rows selected later.
Current database state decides insert, restore, or skip
An active duplicate can still be added to the chosen manual list. For that reason, skipped and added-to-list totals answer different questions. Do not read every skipped row as a failed handoff or assume that it missed the target list.
| Current state | Import behavior |
|---|---|
| Not present | Create one keyword row with the available discovery fields. |
| Active keyword | Do not duplicate it. Mark the candidate as present and count it as skipped for insertion. |
| Soft-deleted keyword | Restore the existing row and count it as imported. |
| Missing or foreign result | Skip it without importing another run's evidence. |
Carry available evidence without manufacturing completeness
A new keyword can inherit display phrase, volume, CPC, difficulty, competition index, intent, monthly history, average backlinks, average referring domains, and Top 10 average rank when the research result contains them. Crawl Foundry records discovery as source and origin, computes supported derived fields, sets the import-time fetched timestamp, applies system tags, and invalidates affected opportunity inputs for later recomputation.
A restored soft-deleted row keeps its identity and receives a new fetched timestamp, but the current restore path does not overwrite every field with the research candidate. An already-active row is not silently refreshed by import. Use the Keyword Database's explicit data actions when current metrics are required.
Manual list membership is a separate outcome
After rows are inserted, restored, or found active, the import can add their normalized keywords to the chosen manual list. Existing membership is not duplicated. The operation reports how many memberships were newly added, separately from how many keyword rows were imported.
A list is an organizational scope, not proof that every member shares intent, page ownership, priority, or tracking context. Name the list for the decision it serves and review mixed markets or purposes before using it downstream.
Import does not start the next workflow for you
Open the Keyword Database to inspect current fields, add human tags, choose any paid enrichment deliberately, place keywords in the right operational view, and decide whether tracking, Site Audit evidence, a page review, or content work is justified.
- No paid keyword refresh or SERP fetch starts automatically.
- No Position Tracking schedule or recurring acquisition is created.
- No content cluster, page assignment, brief, article, or publication is approved.
- No smart-list rule is changed by adding rows to a manual list.
- No research metric becomes permanently current because it was imported.
History preserves the paid claim and its result set
The history view is paginated newest first and currently requests up to 50 rows per page under policy. It records mode, seeds or domains, country, language, candidate and import counts, status, timestamps, quote or settled charge, partial flag, error evidence, and lifecycle progress. The current schema applies no automatic TTL to research runs, so completed paid rows remain reopenable unless retention policy changes later.
The newest loaded run is selected by default. Failed or canceled rows remain useful operational evidence even though their customer charge is zero. Use their support code, stage, and Activity event to understand what happened before starting another paid claim.
Rerun prepares a new claim
Rerun is unavailable while a run is pending or running. For a terminal run, it opens the setup form with the stored mode, inputs, market, competitor row limit, and Gap only choice. Legacy mode names are mapped to the nearest current setup where possible. Nothing is charged until the person reviews the new quote and confirms.
The new run receives its own ID, reservation, worker lifecycle, result rows, settlement, and import trail. It does not replace the old evidence or update imports already made from it. Compare the two only after confirming that their setup, completion quality, and market context are compatible.
Keep the handoff reconstructable
- Run ID, mode, market, inputs, start time, terminal state, and partial evidence.
- Filters, sort, scan boundaries, selected count, and any truncation warning.
- Import operation ID, target kind, list identity, requested count, imported count, skipped count, and added-to-list count.
- Fields that came from the paid run versus intelligence joined later.
- The human reason for accepting a no-data row or rejecting a high-volume row.
- Any later enrichment, tracking, page, or content decision as a separate action.