Running Campaigns
Start a batch, control how many tabs run at once, and read the queue while it works. Credits are only spent on forms that actually go out.
Once your agent is set up and your URLs are imported, starting a batch takes one click. Here is exactly what happens from click to first form submission.
1. Prerequisites
Before you can start a batch, three things must be true:
- You are signed into the extension. Check the side panel; you should see your queue, not a sign-in screen.
- URLs are in the queue. From a pasted list, a CSV, TXT or Excel file, or one of My lead lists (Find websites). If the queue is empty, add URLs first.
- You have website credits. New accounts get 10 free; paid plans have their included quota plus any purchased extras. If your balance is zero, buy credits before starting.
2. Pick The Active Agent
- Open the extension side panel.
- If you have one agent, it is used automatically.
- If you have several, a Select Profile & Start Sending Messages list appears when you press Start sending; pick the agent for this batch there.
The agent you pick decides the sender identity, pitch, subject, and whether AI Personalization applies to this batch. All URLs in the batch use the same agent, unless an A/B test is on.
3. Click Start
- The Start sending button sits in the run panel at the top of the Send tab.
- Click it. There is no confirmation dialog; sending starts right away, except in these cases:
– You have several agents: pick one first. – You have fewer website credits than queued websites: a panel offers Send N now, which stops after N successful sends. – The agent uses AI and your AI balance is empty or may not cover the run: a sheet offers Add credits (or Continue anyway when the balance is not empty).
4. What Happens First
The moment you click Start, contactID:
- Checks you have enough credits. contactID does not pre-charge or reserve anything up front. A credit is spent only when a form is actually filled, so you are charged as the batch runs, one credit per successful submission.
- Opens the first tabs. Up to your Form Filling Concurrency setting (default 5), starting at most one website on the same domain every 45 seconds. Each tab opens the target URL in the background.
- Runs the content script on each page. The script detects the contact form, fills it, and submits.
- Marks the URL as Sent or Failed based on the outcome.
- Advances to the next URL. As each tab finishes, a new one opens to keep the concurrency window full.
5. Watching Progress
The Send tab updates in real time:
- Progress bar at the top shows overall completion.
- Each URL row shows its current status (Queued, Processing, Sent, Failed).
- Live counters show the success rate, sent, failed, and a rough estimate of the time left.
You can leave the tab and work on other things; the batch runs in the background as long as Chrome stays open.
6. Finishing The Batch
When the last URL is processed:
- The run panel shows COMPLETE and the button changes to Start again.
- Each website keeps its own status (Sent, Failed or No form) in the list.
- No summary email is sent; the results stay on the Send tab.
- Full results are also on the dashboard’s Analytics page (View Analytics in the run menu).
7. Starting A Second Batch On The Same Device
You can start a new batch as soon as the previous one finishes. Add new URLs on the Targets tab (or load one of My lead lists), pick the agent, click Start sending. Only Queued websites are sent; websites from the previous batch stay in the list with their status until you clear them (Clear Completed or Clear All in the run menu).
Related questions:
The Send tab lists every website with a status. Filter chips at the top show the counts.
1. The Statuses
- Queued: contact form found, waiting to be sent.
- Processing: open in a background tab right now. The card shows the stage (filling, solving CAPTCHA, submitting) and a Force close button.
- Sent: the form was submitted and the site confirmed it (a thank-you message or page, or the form’s own answer). One credit was used.
- Sent, not confirmed: the form was submitted and no error appeared, but the site showed no confirmation. It counts as sent and is not sent again; no credit was used. If the confirmation shows up a few seconds later, the card changes to Sent.
- Failed: the form was found but the submission did not complete (a field the sender lacks, a rejected value, a CAPTCHA that could not be solved). No credit is used. Retry sends it again: Continue keeps the URL, Replace URL points it at another page.
- No form: the website has no usable contact form. No credit is used. Retry, Open, or Add the direct contact page URL from the Targets tab.
- Trash: websites you removed. Restore returns them to the queue.
2. The Run Panel
Above the list: state (Ready, Sending, Paused, Complete), done of total, the success rate, sent, failed and left, which agent is sending, whether AI messages are on, and Start sending, Pause, Resume and Stop. The More actions menu (three dots) holds Retry Completed Forms, View Analytics, Clear Completed, Clear All and Advanced Export.
3. Bulk Actions
Each filter has its own bar: Retry (Failed and No form), Export (CSV or TXT, every filter except All), Trash (Failed and No form), Delete (every filter except All and Trash) and Empty trash (Trash). Excel, JSON and other formats are in Advanced Export in the run menu. Clear Completed removes sent websites from the list without touching your analytics.
4. Card Details
Under Settings you choose what the cards show: last attempt, language, agent name, category, error message, proxy used, user agent, processing stage, attempt count.
Related questions:
The Form Filling Concurrency setting decides how many websites the extension processes simultaneously. Tuning it matters for speed, memory use, and success rate. Here is how to pick the right number.
1. Where To Change It
- Open the extension side panel.
- Click your avatar (top right) and choose Settings.
- Under Execution, Form Filling Concurrency is a number field. The default is 5; the field’s arrows stop at 5, but you can type a lower number (for example 3), and there is no upper limit.
- Change it and click Save; the new setting takes effect on the next tab opened.
2. What Each Level Does
- 5 tabs (default). Up to five websites are filled at the same time.
- More than 5. Faster on a strong computer with a fast connection, but each extra tab costs memory, and many background tabs at once can make slow sites time out.
- Same-domain pacing. Whatever the number, contactID starts at most one website on the same domain every 45 seconds, so pages of one site are spread out.
3. How Concurrency Affects Speed
Rough throughput at each level:
- 1 tab: ~4 URLs per minute.
- 3 tabs: ~10 URLs per minute.
- 5 tabs: ~15 URLs per minute.
- 8 tabs: ~20 URLs per minute.
Actual throughput depends on how fast target sites load and how much the AI takes on each request.
4. Per-Domain Pacing
There is no per-minute or daily sending cap on your account. The only pacing is per domain: contactID starts at most one website on the same domain every 45 seconds (counted from when the previous one started). A list with many pages on one site therefore runs slower than the setting suggests. AI Personalization has its own limit of 20 AI requests per minute; see Understanding AI Placeholders Like {sell}.
You do not need to worry about this; it self-regulates.
5. Memory Impact
Each tab uses about 100 to 300 MB of RAM. At 5 concurrent tabs, contactID uses 500 MB to 1.5 GB during a batch. Combined with the rest of Chrome, this can make a laptop slow.
If you see Chrome getting laggy, set concurrency back to the default of 5 and close other heavy tabs.
6. When To Reduce Concurrency
Lower it when:
- Your laptop only has 8 GB RAM.
- You want to do other work in Chrome during the batch.
- You are on unstable internet where multiple concurrent requests cause timeouts.
- Success rate is unusually low; lower concurrency sometimes helps flaky sites.
7. When To Raise Concurrency
Higher only if:
- You have 16 GB+ RAM.
- Your internet is fast and stable.
- You will not be using Chrome for anything else during the batch.
Most users keep the default of 5.
8. Concurrency Is Per Device
Each device has its own concurrency setting. If you run batches on two devices simultaneously with 5 tabs each, that is 10 concurrent tabs from your account across the two devices. There is no account-wide sending limit on top of that.
Related questions:
Pausing lets you take a break without losing your queue. Stopping ends the run; websites that were not sent yet stay Queued for a later run. Here is how to do each and when to pick which.
1. Pause From The Extension
The fastest way:
- Open the extension side panel.
- Click Pause in the run panel at the top of the Send tab.
- All new tabs stop opening. Tabs currently Processing finish their current form.
- The batch enters PAUSED state.
2. Resume From Pause
- With the batch paused, the button changes to Resume.
- Click it.
- The concurrency window fills again; batch continues.
You can pause and resume as often as you want. There is no cost or penalty.
3. Stop A Batch
To end the run:
- Click Stop in the run panel (pausing first is not needed).
- Confirm.
Open tabs close right away. Websites that were Processing go back to Queued, and Queued websites stay in the list; nothing is marked cancelled. To remove them, use Clear All in the run menu or Delete under the Queued filter.
4. What Happens To Your Credits On Pause Or Stop
contactID never reserves credits, so there is nothing to release. On pause or stop:
- Credits already spent stay spent. These are the ones for URLs that were successfully submitted.
- Nothing else is charged. URLs that had not been sent yet cost nothing.
You are only ever charged for sends a site confirmed.
5. Pause Vs Stop: Which To Pick
- Pause if you plan to come back to this batch soon. The queue stays intact and Resume continues it.
- Stop if you want to end the run, change the agent, or start a different batch. The websites not sent yet stay Queued, and Start sending picks them up again with the agent you choose.
6. Long Pauses
A paused batch stays paused as long as Chrome is open. If you close Chrome or restart the computer:
- The queue is preserved in your local extension storage; websites that were Processing go back to Queued.
- When you reopen the extension, the queue is still there, but the run itself has ended.
- Click Start sending to continue.
Queued websites are never cleared automatically; they stay until you send, trash or delete them.
7. Only The Extension Controls A Run
The dashboard has no pause or stop for a run. Use Pause or Stop on the Send tab of the browser that is sending. Closing Chrome on that computer also ends the run, and its queue waits for the next Start sending.
Related questions:
A failure costs nothing: credits are used only for sends a site confirms. What you get is the reason and a way to try again.
1. Two Kinds Of Failure
- No form (the website could not be used): no contact page, only a mailto link, a bot check on the page, a login required, a timeout. These show on the Targets tab with the reason in plain language, and under the No form filter on Send.
- Failed (the form was there but the submission did not complete): the form required a field your sender left empty, a value was rejected, a CAPTCHA could not be solved, the page blocked the submission, the site answered that the message was not sent (“Your message could not be sent”, in any of the main languages), the form showed its own error message, or the site’s firewall blocked the message. The card shows the error.
2. What To Do
- Missing field: the Agent tab’s coverage card tells you which fields forms ask for. Add it and Retry.
- Wrong page: Retry and choose Replace URL to point contactID at the site’s real contact page.
- CAPTCHA: solving is always automatic. In Settings, check your own 2Captcha or Anti-Captcha key if you entered one (or clear it to solve through the contactID server), then Retry.
- Timeouts and bot checks: Retry later; some sites simply refuse automation.
3. When To Stop
If most websites in a batch fail for the same reason (for example a missing phone), pause, fix the sender, and press Retry in the bar under the Failed filter (it asks which agent to use and starts sending).
Related questions:
contactID does not retry a failed website on its own. Every retry is yours to trigger, so you never burn time or credits on a site that keeps failing for the same reason. The one exception is AI Personalization: when contactID’s server cannot check your AI wallet, or the agent’s model is unavailable, the website is tried again automatically, at most 3 times, and then marked Failed (see “Billing System Temporarily Unavailable” Error).
1. One Website
On a Failed card press Retry. On a No form card (Targets tab) press Retry, or Add URL to give the direct contact page. Reprocess on a Sent card sends again with the same or a new URL.
2. Many Websites
Under the Failed filter, Retry asks which agent to use, re-queues every failed website and starts sending. Under the No form filter, Retry checks those websites for a form again. The run menu’s Retry Completed Forms re-queues every Sent website with the agent you pick (useful after changing your message).
3. During A Run
A website you retry from its own card, or with Retry under the No form filter, is checked again and joins the end of the queue; websites retried with Retry under the Failed filter, or with Retry Completed Forms, keep their place in the queue. All are processed with the same concurrency and per-domain pacing as the rest.
4. Payment Retries Are Different
If a subscription payment fails, Stripe retries the card automatically on its own schedule; that is unrelated to website retries. See “Failed Payment: Grace Period Explained”.
Related questions:
There is no automatic circuit breaker that stops a run for you. Instead, contactID warns you before the run and gives you the controls during it.
1. Before The Run
- The coverage card on the Agent tab scores how many forms your sender can fill and lists what is missing, ranked by how often forms ask for it.
- The deliverability check flags spam-trigger wording, too many links, all caps, missing personalization, leftover [hints] and unknown tags.
- The pre-flight report shows websites with no form and websites you already contacted, so they can be skipped.
- The Send tab repeats the two most important warnings for the agent that is about to send.
2. During The Run
Pause stops new websites from starting and lets the current ones finish; Resume continues; Stop ends the run. The run panel shows the success rate live, so a batch that is failing for the same reason is visible within the first few websites.
It does stop or pause on its own in a few cases, never because websites fail: it stops when your website credits run out, when your credit balance cannot be read, or when the number you picked with Send N now is reached (queued websites stay saved), and when you sign out or switch accounts; it pauses when your AI credits run out or an AI budget limit is reached (add credits or change the limit in the AI Wallet, then press Resume).
3. Credits Are Safe
Credits are only used for submitted forms. Failed attempts and websites with no form never cost anything.
Related questions:
contactID auto-appends its signature to free-account messages, but it also checks whether the signature is already present to prevent duplicates. Here is how detection works and what to do if you see two signatures in a message.
1. The Signature Line
On free accounts, every send ends with this line:
It is plain text with no link, formatted as small, muted text on a new paragraph. A free account here means one that has never paid: any successful payment (a credit pack, a plan, an AI top-up or a lead pack) removes the line for good unless it is refunded or charged back, and a live subscription, a gift plan or a referral waiver removes it while it lasts. For those accounts any copy of the line still in a saved message is taken out at send time.
2. When Auto-Detection Triggers
At send time contactID scans your message for signature markers. Detection is triggered by any of:
- The phrase “Sent via contactID”, with or without “extension” (also “Sent via the contactID extension”).
- The legacy rb.gy/q35m7f shortlink (from the oldest version of the signature).
- The phrase “Sent via brandID extension” (legacy, from the pre-rename period).
- Any variant with different casing on those markers.
Every copy it finds is removed and, on a free account, one line is added back at the very end, so the message goes out with exactly one signature, at the bottom. Accounts without the signature send none.
3. Why This Matters
Two signatures in a single message reads badly:
- Confuses the recipient about the source.
- Looks like an editing mistake.
- Some spam filters flag repeated identical text.
Auto-detection prevents this in the common case where you paste your pitch from a doc that already had the signature line.
4. What The Detection Does Not Catch
Detection is intentionally strict on the specific markers. It does NOT trigger for:
- A different automated-signature line (“Sent via Outreach Tool” or similar).
- The words “contactID” or “contactID extension” mentioned in the body of your pitch (only “Sent via contactID” counts).
- Your own referral link (a contactid.brandid.app/r/ address, or a watchthemlive.com/r/ address from before the move).
- The words “extension” or “Sent via” appearing alone.
If you write “I loved your recent post on Chrome extensions”, “extension” alone will not trigger detection.
5. Fixing A Doubled Signature
When contactID knows your account’s signature status (the usual case), a new send cannot carry two signatures: at send time every copy is removed and, on a free account, one is added back. If an older send had two:
- Nothing needs to change for future sends.
- To tidy the saved message anyway, open the agent on the Agent tab and save it; a free account keeps one locked line at the end.
If contactID cannot read your account’s signature status at send time, the message goes out exactly as saved. Past sends cannot be changed.
6. Preserving Legacy Sends
If you have historic sends with the old “brandID extension” signature (from before the contactID rename), those stay as they were. New sends use the contactID signature.
Detection recognizes both, so a pasted brandID-era line is replaced by the contactID line (or removed, for accounts without the signature) and never doubles up.
7. Can Detection Be Disabled?
No. Detection is on for every account and cannot be turned off. This prevents accidental double-signing at scale.
If you want to intentionally include multiple signatures (rare), you would need to include one variant that does not match the detection markers, but this is discouraged.
Related questions:
Many contact forms carry a captcha or sit behind a bot check. contactID solves the captchas for you in most cases; some full-page bot checks still stop a submission. Here are the systems you will encounter and what contactID does about each.
1. The Common Protection Systems
These are the ones you will meet most:
- reCAPTCHA (v2 and v3, including Enterprise). Google’s captcha; v2 is the “I am not a robot” checkbox, v3 is invisible scoring.
- hCaptcha. Widely used image or checkbox captcha.
- Cloudflare Turnstile. Cloudflare’s captcha widget on a form.
- FunCaptcha (Arkose Labs). A puzzle captcha used by larger sites.
- Picture captchas. “Type the letters you see” pictures, such as Really Simple CAPTCHA in Contact Form 7, Securimage and SI CAPTCHA. Sliders and drag puzzles are not solved.
- Spam questions. A question the form asks to keep robots out: “What is 3 + 4?”, “What color is the sky?”.
- Full-page bot checks. Cloudflare’s “Just a moment” or “Verifying you are human” page, and services such as Akamai, PerimeterX or DataDome that judge behavior instead of showing a captcha.
2. What contactID Does About Them
contactID solves captchas on contact forms for you:
- Automatic solving is on by default. When a form shows reCAPTCHA, hCaptcha, Turnstile or FunCaptcha, contactID sends what the captcha-solving service needs through the contactID server and fills in the answer before it submits. A picture captcha is read the same way, from the picture as the page shows it, and its letters are typed. Each captcha on a page is solved once. There is nothing to set up and no extra charge.
- Spam questions. A sum is answered on the page. Any other question (“What color is the sky?”) is sent, as text only, to contactID’s AI, and the short answer is typed. A question only the website can answer (“What is the name of our dog?”) is never guessed: the website is skipped before anything is sent, with the question in the reason. A required question the AI cannot answer for you (or cannot be reached for) is listed under Fields we could not fill on the Send tab: answer it once and press Send again; from then on your answer is typed and the AI is not asked. An optional one is left empty and the form is sent. A Contact Form 7 quiz is never answered once (its questions change from visit to visit), nor a question about the website itself (“our office dog”), nor a captcha’s own box (“Captcha”, “Security code”). The sum of Captcha by BestWebSoft is worked out on the page (“eight – 3 = ?”, “3 + ? = six”); one drawn as pictures skips the website before anything is sent.
- Your own solver key (optional). In Settings, Captcha, you can enter a 2Captcha or Anti-Captcha API key; contactID then solves through your own account, picture captchas too.
- Always automatic. Every website is filled in a background tab that nobody is watching, so contactID never waits for you to solve a captcha by hand.
- Full-page bot checks. Every website opens in a real Chrome tab, which passes many Cloudflare “Just a moment” pages on its own. contactID does not try to defeat behavior-based bot detection.
When a captcha cannot be solved, the website is marked Failed with the reason. When a bot check blocks the page while contactID is still looking for the form, it shows under No form instead, and the Targets tab gives the reason as “Blocked by a bot check”. Either way no credit is used.
3. How contactID Detects Them
- Captcha widgets on the page (reCAPTCHA, hCaptcha, Turnstile and FunCaptcha frames and scripts; FunCaptcha only by Arkose Labs’ own markers, and only when it belongs to the form: an Arkose login box elsewhere on the page is not solved), a captcha picture beside a box for its letters, and a quiz or anti-spam question in the form.
- Bot-check pages while it looks for the contact page (Cloudflare, Akamai, PerimeterX and similar markers); it then opens the site in a real tab instead of reading it in the background.
- Error text after submitting (for example a captcha that was not accepted), which makes the send count as Failed, never as a success.
4. What The Failure Detail Shows
Open a Failed website on the Send tab, or its detailed view in Analytics, to see the reason (for example “Automatic CAPTCHA solving failed”, “the form’s picture captcha could not be read” or “The form asks a question we cannot answer”) and how the captcha was handled.
5. Should You Retry?
Usually once. Solving services occasionally time out, and Cloudflare sometimes challenges a first visit and lets the next one through. If the same website fails again for the same reason, move on.
6. Websites That Still Fail Most Often
- Sites behind a full-page bot check that judges behavior (some banks, government and healthcare sites).
- Forms whose captcha changes on every attempt, or that need a login.
Send 20 to 50 websites from a new list first: the failure reasons tell you whether the rest of the list is worth sending.
7. Alternative Contact Methods
For websites that keep failing:
- Email directly. If the site publishes a contact email address, use it via your normal email tool.
- LinkedIn outreach. For B2B, a LinkedIn message reaches the same people.
- Manual submission. Open the site, fill the form by hand, and submit.
Related questions:
Still stuck? We’re happy to help.
Install the extension, open your dashboard, or reach out to support.




