> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentlinkops.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Use your existing CRM and email sender

> Prepare campaign drafts for your existing CRM and email sender, map records before writing, and check reported placements against dated backlink evidence.

Keep relationships in your CRM and delivery, replies and suppression in your sender. Your agent prepares the campaign; AgentLinkOps supplies backlink checks and monitoring. A local ledger or SQLite CRM is optional.

This guide uses fictional records and the toolkit's `qualified-campaign-handoff` and `placement-reconciliation` recipes, version `1.0.4`, reviewed September 14, 2026. No CRM or sender connection has been tested for this guide. The steps describe a portable handoff, with destination access supplied by your own tools.

## Choose the task and the records

Give your agent the asset URL and publication state, audience, publisher pages, campaign purpose and outreach constraints. Choose an existing CRM, file or shared document for the handoff.

Ask your agent to prepare reviewed drafts and preview the destination mapping. Keep missing facts unknown. If destination access is missing, save a portable handoff. Sending or activating a sequence requires its own authorization.

<Accordion title="Optional: use a toolkit skill">
  If your supplied toolkit includes a setup skill, ask:

  ```text theme={null}
  Use the setup skill and qualified-campaign-handoff
  with my supplied publisher records.
  Check the asset's publication state, evidence and exclusions.
  Prepare reviewed drafts and preview the destination mapping.
  Keep missing facts unknown; save a portable handoff if access is missing.
  Do not send messages or activate a sequence.
  ```

  The released `agentlinkops` CLI has no `setup` command; a toolkit that supplies one prints a read-only checklist and writes nothing. Without it, use the recipe directly. See [CLI access](/guides/connect-cli).

  Preparing supplied inputs needs no AgentLinkOps account. Fresh checks need page access. Hosted operations need account permission and available service access; installing a skill grants neither.
</Accordion>

## Qualify before handing off

Inspect each exact publisher page. Record its relevant context, retrieval date and evidence limits. Keep eligible, rejected and unresolved candidates separate, with reasons. A domain alone cannot establish page relevance. The [campaign workflow](/campaign-workflows) covers audience fit and published contact routes.

Check the sender's current reply and suppression records. Missing access leaves the handoff unready for sending. Do not guess addresses or infer deliverability from a published address.

Review sources, humanize the draft and run the site's final content review. Claims about inspecting a page, owning an asset or representing its author need supporting evidence.

## Map a portable handoff

Preserve stable record references and existing external IDs. These labels describe a document, not vendor fields or an import schema.

| Record              | Fictional supplied value                        |
| ------------------- | ----------------------------------------------- |
| Reference           | `campaign-demo-001`                             |
| Publisher page      | `https://publisher.example/resources`           |
| Asset URL           | `https://brand.example/guide`                   |
| Recipe and draft    | `qualified-campaign-handoff@1.0.4`, `r1`        |
| Qualification       | Unresolved: page and suppression checks pending |
| Destination mapping | Not inspected                                   |
| CRM write           | Not attempted                                   |
| Sender state        | Unknown                                         |
| Link observation    | Not checked                                     |

Inspect the destination's field schema and lookup behavior. Preview the selected rows, mapping and changes before an authorized write. A CSV export, your agent's vendor connection and a hosted AgentLinkOps command have different capabilities. This guide supplies no native sender connector or vendor-specific import command.

After saving a draft, keep the receipt and read the destination. Follow all cursor pages needed to locate the selected IDs. Compare saved fields with the intended revision; report accepted, rejected and unchanged rows separately. Success or a zero-change receipt alone does not prove the draft exists.

If access is unavailable, save the document with its actual state and next action.

## Reconcile a claimed placement

Get the exact publisher page and expected target URL from the placement report. Follow [check a placement](/guides/check-placement) through your connected AgentLinkOps client, then read the dated observation. A reply alone supplies no link evidence.

For a one-time check with the supplied CLI, use [the local check guide](/guides/first-result). Replace its example URLs with the actual pair. Read the observation, reason, method and timestamp; an incomplete check remains unknown. A single-check exit zero means a result returned. See [evidence states](/evidence).

After any required write authorization, update the selected CRM record or companion document and read it back. Keep draft, delivery and reply facts separate from the observation. Preserve historical observation dates even when a later check is unknown.

If you use a ledger, [sync and export](/guides/sync-and-export) explains optional monitoring uploads. `sync --dry-run` makes no network request and previews ledger uploads only; it makes no CRM writes.

## Resume without duplicating records

After a write timeout, record `outcome unknown` with the original operation identifier. Read that operation, then the destination. Keep the receipt and field comparison separately. Do not create a new record to bypass an ambiguous result.

Failed writes can have partial effects. An empty lookup does not prove nothing was saved. Keep unresolved fields unknown, retain the intended revision and record the next permitted recovery step. Use `not attempted` only when no write occurred. Restored access permits another read; it does not establish that the earlier write failed.
