Troubleshooting
Solutions to the most common contactID extension, form-fill, session, AI, and billing issues, updated for the September 2026 redesign.
The extension not filling forms is the most common troubleshooting call. It usually comes from a few specific issues. Work through this list in order.
1. First: Is The Extension Actually Running?
- Check that contactID’s icon in your Chrome toolbar is not greyed out.
- Open the side panel; you should see your queue, not a sign-in screen.
- If greyed out or blank: reload the extension via chrome://extensions/.
2. Second: Are You Signed In?
- Look at the top right of the side panel.
- Signed in, it shows your photo or initial (point at it to see your email), with the credits meter below.
- If you see Get Started instead: press it and sign in (Google, an email code, or your password). Signing in on the dashboard in the same Chrome profile signs the extension in too.
3. Third: Do You Have Credits?
- Check the credit balance in the credits meter of the side panel, or on the dashboard’s Overview page.
- If it says 0: buy PAYG credits or subscribe before continuing.
- Free tier accounts have 10 credits; make sure they’re not exhausted.
4. Fourth: Is A Sender Selected?
- Look at the dark run panel at the top of the Send tab.
- It should say “as” followed by your sender’s name, not “no sender selected”.
- If you have no sender yet: create one on the Agent tab (or on the Agents page of the dashboard). With several senders, Start asks which one to use.
5. Fifth: Did You Click Start?
- Start sending is replaced by Pause and Stop once a batch is running.
- If you don’t see a Pause button: the batch hasn’t started.
- Add websites on the Targets tab and click Start sending (it stays greyed out while nothing is queued).
6. Sixth: Is Chrome In “Efficiency Mode” Or Sleep? Some Chrome versions pause background tabs when the browser is minimized:
- Bring the Chrome window to the foreground.
- Extensions and side panels resume.
Also check chrome://flags/#memory-saver-mode; disable memory saver if it’s causing background tabs to be paused.
7. Seventh: Is The Target Site Actually Reachable? Sometimes a batch of URLs fail because the URLs themselves are broken:
- Manually open one URL from your queue in a new tab.
- Confirm the site loads.
- Confirm there’s actually a contact form on the page.
- If the site doesn’t load or has no form, contactID cannot fill it.
8. Eighth: Reload The Extension When in doubt, reload:
- Go to chrome://extensions/.
- Find contactID.
- Click the Reload icon.
- Try again.
9. Ninth: Read The Success Rate On The Run Panel If most websites fail for the same reason, pause the run, fix the sender (the coverage card on the Agent tab tells you which field forms ask for), and press Retry under the Failed filter (it retries every failed website). contactID has no automatic circuit breaker; you decide when to pause.
10. Still Broken? Contact support with:
- Your contactID account email.
- Extension version (from chrome://extensions/).
- Chrome version (from Help > About Chrome).
- A screenshot of the side panel.
- A specific URL that isn’t being filled.
- The failure reason shown on that website’s card (or under Failure reason when you click the website on the dashboard’s Analytics page).
Related questions:
You may see the extension fill some fields but skip others. Usually caused by an unusual form layout the detector doesn’t recognize yet. Here is how to spot and work around.
1. Common Field Types That Don’t Detect
- File uploads. contactID cannot upload files.
- Some forms in steps. Forms in steps are filled step by step (see section 9), but a step form whose Next button loads a new page (Gravity Forms aside) or also sends the form is not followed step by step.
- Some custom select widgets. contactID sets dropdowns drawn by Select2, Chosen, Nice Select and Choices.js and dropdowns built as ARIA comboboxes or listboxes; other pickers built without those roles cannot be set.
- Date pickers. contactID writes a date only for your date of birth, in the format the date box shows or declares (14/05/1990, 14.05.1990, 1990-05-14). A calendar whose box only takes clicks may not keep it.
- Address autocomplete. Google Places-style dropdowns that require typing to trigger.
- Conditional fields. Fields that appear only after another field is filled.
2. What Happens On Undetected Fields
- Before submitting, a final pass answers what is still empty, honestly: your agent’s detail when the field’s words name one (city, website, job title and so on), a value from a matching field (such as a confirm email field), or a usual answer (“Online search” for “How did you hear about us?”, a general inquiry or Other in a topic list, “No” to a newsletter question). It never makes up a value: no sample names, numbers, addresses or a list’s first option.
- Consent and terms boxes and “I am human” boxes are ticked; newsletter and marketing opt-ins and “send me a copy” are not, unless the form requires them; hidden, password, file and honeypot fields are left alone, and so are a box whose label says to leave it blank, a disabled box, a read-only box the site already filled, and a value the site put in a field your agent has nothing for.
- A quiz or anti-spam question is answered: a simple calculation (“What is 3 + 4?”) on the page, any other question (“What color is the sky?”) by contactID’s AI, or the answer you gave once for it. A question only the website can answer stops the send before submitting, with the question in the error; another one the AI cannot answer, you can answer once under Fields we could not fill. A picture captcha’s box gets the letters the captcha service reads from the picture.
- A required field with no honest answer skips the website before anything is submitted: no credit is used, and the reason names the field (see A Website Was Skipped: The Form Asked Something Your Agent Cannot Answer).
- If a required field still cannot be filled, the send fails.
- The failure reason on the website’s card then reads like “Pre-submission validation failed: Required field “[field name]” is still empty after filling”, with the field’s name or id from the page.
3. Diagnosing A Specific Site
- Open the target URL manually.
- Inspect the contact form (right-click > Inspect).
- Look at the field types.
- If you see standard input, textarea, select tags with common labels: should work.
- If you see complex custom widgets: probably won’t fill.
4. When Detection Should Work But Doesn’t Sometimes standard fields aren’t detected. Common reasons:
- The form is inside an iframe. contactID checks every frame of the page for up to 12 seconds and fills the frame that holds the contact form (one with an email or phone box and a message box comes first), so most embedded forms (HubSpot, Marketo, Pardot, JotForm and similar) work, also in a frame drawn after the page loaded. The page’s contact form wins over a bigger booking widget in a frame, and the frames of chat, captcha, payment, video, map and ad services are never filled. When the page shows no contact form yet and a known form system is still drawing one (HubSpot, JotForm, Ninja Forms, Marketo, Typeform), contactID waits for it. A frame that takes longer than 12 seconds to show its form can be missed.
- The form loads dynamically after the page. contactID waits up to 5 seconds for a late form (12 seconds when it sees a HubSpot, Marketo, Pardot or Webflow form loading, or a Ninja Forms, Typeform or JotForm form loading on a page with nothing else to fill); longer delays fail.
- The form is in a closed pop-up. When the contact form waits in a pop-up that a button opens, contactID clicks the button that names the pop-up (or Elementor’s pop-up link, or the page’s one “Contact us” button outside its menus) once and fills the form when it shows. It never follows a link to another page, never opens a chat, newsletter, review, job, booking or appointment pop-up, and fills nothing else the click shows. Forms on the page come first: a pop-up is opened only when the page shows no form to fill.
- The form is inside a web component. Forms drawn inside a web component’s open shadow root are found and filled, labels included. A closed shadow root cannot be read.
- The message box is a text editor. A message box that is an editor (a box you type in that is not a plain text box) gets your message.
5. Working Around
- Iframe forms: Check the failure reason. If the form was not found, report the website to support.
- Dynamic forms: Retry the website from its card, or add it on its own and press Start sending while you watch its tab.
- Hidden forms: A form behind a button contactID does not open (two “Contact us” buttons, a link to another page) needs its direct URL: add it if the site has one (many sites have a /contact-form URL).
6. Reporting Detection Issues
- Copy the failing URL.
- Note the specific field that isn’t being detected.
- Send to [email protected].
- Include a screenshot of the field in question.
Detection improvements ship in extension updates every 2 to 4 weeks. Common issues get fixed within one release cycle.
7. Field Matching Rules contactID matches fields to agent data via multiple signals:
- Field label (“Name”, “Full Name”, “Your Name”).
- Field name attribute (“name”, “full_name”, “your_name”).
- Field placeholder text.
- Field id (“name_field”, “contact_name”).
- Adjacent text nodes.
If none of these signals point to a known type (name, email, phone, company, website, subject, message, address, role, industry, social profiles and more), the field is not matched to your sender; if it is still empty before submitting, the final pass described above answers it honestly or leaves it empty.
8. Manual Override There is no per-site field override yet. All sites use the same detection rules.
Some enterprise customers get custom rules for specific target platforms (Salesforce, HubSpot forms). Contact sales if you have specific site requirements.
9. Forms In Steps Some forms ask in steps: your name and email first, then Next, then the message. contactID fills the step on screen, presses Next, waits for the next step, fills it, and sends from the last step, once.
- Covered: the step forms of Gravity Forms, WPForms, Elementor, Fluent Forms and Contact Form 7 Multi-Step, among others, and step forms a site built itself when they have a Next or Continue button and the send button only shows on the last step. Gravity Forms pages are all filled where they are and sent together, as from the last page.
- A step that does not open: when Next does not move on (the site takes only a work email, or refuses a field), nothing is submitted. The website fails with “Not sent, no credit used: the form did not go past step 1 of 2” and the site’s words, and no credit is used.
- A required question on a later step that your agent cannot answer skips the website the same way as on a one-step form (see A Website Was Skipped: The Form Asked Something Your Agent Cannot Answer).
- Not followed step by step: a step form whose Next button loads a new page (Gravity Forms aside), or whose Next button also sends the form. Such a form is sent as an ordinary form.
10. Send Buttons And Phone Boxes
- Send buttons in any language. When a form has no standard submit button, contactID presses the button whose words say send, in more than 30 languages (Send, Senden, Envoyer, Enviar, Invia, Verzenden, Wyślij, Skicka, Отправить, 送信 and others). A Reset, Clear, Cancel, Back, Close or Search button is never pressed as the send button.
- Phone boxes are read back after filling. A box that changed your number (a mask that kept only some digits, a country-flag box that read it as a local number) gets it again in a form it keeps; when no form of your number fits, the box is left empty (see Setting Up Your Personal Information, Phone Number).
Related questions:
Cloudflare Turnstile, hCaptcha and reCAPTCHA are captchas that sites put on their forms, and contactID solves them automatically in most cases. Full-page bot checks are a different matter. Here is what to do when a website keeps failing.
1. How To Recognize It
- The website is marked Failed with a captcha reason (for example “Automatic CAPTCHA solving failed” or “the form’s picture captcha could not be read”).
- The site shows a captcha widget, or a Cloudflare “Verifying you are human” page.
2. Check That Captcha Solving Is Working
- Settings, Captcha. With no API key entered, solving runs through the contactID server (the field shows “Using Server Proxy”). If you entered your own 2Captcha or Anti-Captcha key, check that it is valid and the account has balance, or clear it to go back to the server.
- Always automatic. Captchas are solved without you; contactID fills every website in a background tab and never waits for you to solve one.
3. What You Can Do
- Retry once. Solving services sometimes time out, and Cloudflare often lets a second visit through.
- Contact the site another way. Email directly, LinkedIn, or fill the form by hand.
4. Full-Page Bot Checks Cloudflare’s “Just a moment” page usually clears by itself in the real Chrome tab contactID opens. Managed challenges that need a click, and behavior-based services (Akamai, PerimeterX, DataDome), can still block a website; contactID does not try to defeat them.
5. reCAPTCHA v2 Vs v3
- v2 (checkbox “I am not a robot”): solved by the captcha service and filled in before the form is submitted.
- v3 (invisible score): solved by the service with a token for the site’s action; a site with a very strict score threshold can still reject it (Contact Form 7 then answers that the message is spam, and the reason says the form checks visitors with reCAPTCHA v3).
6. Picture Captchas “Type the letters you see” pictures are read by the captcha service, with your own key or through the contactID server, and the letters are typed before the form is sent. When the box asks for a sum (“What is the sum shown?”), the service works it out. A picture the service cannot read skips the website before anything is sent (“the form’s picture captcha could not be read”); a reading the site does not accept fails with the site’s words. Either way no credit is used. Retry once: the next picture may be clearer. A sum drawn as several pictures (Gravity Forms’ math captcha) is not read, since one reading would always be wrong: the website is skipped before anything is sent, and the reason says why.
7. Sites That Fail Most Often
- Government, banking and healthcare sites with full-page bot checks.
- Large platforms with their own bot detection.
Send a small part of a new list first; if many of these fail, leave them out of the rest.
Related questions:
This error is rare but confusing. It means contactID’s server could not check your AI wallet at that moment, so it only concerns AI personalization. Here is what causes it and how to recover.
1. Where You’d See This Error
- When you press AI sample in Preview on a site on the Targets tab: “Billing system temporarily unavailable. Please try again in a moment.”
- During a run with AI on, the affected website quietly goes back to the queue and is tried again later. If it fails 3 times, its card shows “AI billing check failed 3 times in a row. Server error, please contact support if this continues.”
- If a run cannot start because your website credits could not be read, the message is different: “Could not verify your website credits, so nothing was sent. Check your connection and try again.”
2. What It Usually Means
- The AI wallet lookup on contactID’s server failed for a moment (a server or database hiccup).
- It is not a problem with your card or with Stripe.
3. What To Do
- Wait 30 seconds to 2 minutes.
- Try the same action again.
- 99% of the time it resolves.
4. If It Persists If the error keeps happening after 5 minutes of retries, contact support (see section 8). There is no public status page.
5. Is Anything Charged During The Error?
- No. If the error appears, no charge was made.
- contactID’s payment logic is designed to fail closed: any uncertainty results in an error rather than a partial charge.
6. Your Credits During The Error If a batch was in progress when the error hit:
- The batch keeps going with the other websites.
- The affected website is tried at most 3 times, 1 minute and then 2 minutes apart, and is then marked Failed.
- No credits are lost. Because you are only charged per successful send, nothing is held or stuck. Retry the website from its card later.
7. Not Caused By A Declined Card A declined auto-recharge does not cause this error. When your AI wallet cannot cover a send, sending pauses (the run panel shows PAUSED) and the AI wallet opens instead.
- Fix: update the payment method or top up manually, then press Resume.
8. Contacting Support If this error blocks you for more than 30 minutes:
- Contact [email protected].
- Include: exact error message, time it started, screenshot.
- Support can check your wallet on our side.
Related questions:
Sometimes the extension or the dashboard signs you out with “Your session ended. Please sign in again.” (in the extension: “Your session ended. If you signed out on the dashboard or another device, sign in again here.”). Here is what causes it and how to prevent it.
1. What It Actually Means Your session is no longer valid on contactID’s server. Reasons include:
- 30 days without use (the sliding window expired).
- You signed out on the other side. The extension and the dashboard share one sign-in: signing out on either side signs the other out at once and ends the session on the server.
- You signed in to another account on either side; the other side switches to that account.
- The account was deleted.
2. Sliding Window Reminder contactID uses a 30-day sliding session:
- Each valid use extends the session by another 30 days.
- Session-extension writes are throttled to once per 60 minutes.
- If you’re active daily, you effectively never see this error.
3. Fixing It
- Sign in again with Google, a 6-digit email code, or your password if you set one.
- Signing in on either the extension or the dashboard signs both in.
- Your data (agents, credits, activity) is preserved.
4. Why It Might Feel Random Usually because you pressed Sign out on the dashboard (or in the extension) and the other side followed. Changing your password does not sign you out anywhere.
5. Preventing Frequent Expiries
- Use contactID at least once every 30 days in each browser.
- To leave the dashboard without signing the extension out, close the tab instead of pressing Sign out.
6. Session Errors During A Batch If the session ends or the account changes mid-batch:
- Sending stops at once (like Stop) and the side panel says why.
- Websites that were being sent go back to Queued; no URLs are lost.
- Sends that already finished belong to the account that ran the batch.
- Sign in and press Start sending to continue.
7. Extension And Dashboard Signed Out Together That is the shared sign-in: one sign-out ends both. There is no sessions page and no two-factor authentication. If you did not sign out yourself, contact support at [email protected].
8. Frequent Expiry Reports If session expiries feel excessive:
- Report to support with dates/times.
- Support can check server-side logs for the actual cause.
- Sometimes reveals a bug we can fix.
9. Account Suspended If the extension shows Account suspended, or signing in fails with “Your account has been suspended”, contactID has suspended the account: its sessions are ended and new sign-ins are refused. Your data, credits and subscription are kept. If you think this is a mistake, email [email protected].
Related questions:
Occasionally users report that the extension keeps opening the same URL over and over. Current versions limit the most common cause (see section 3), but if it happens, here is what to do.
1. What The Symptom Looks Like
- The extension opens Tab A for URL X.
- Tab A closes (or the batch stops).
- The extension opens Tab B for URL X.
- Tab B closes.
- Tab C for URL X. Etc.
Rather than moving to the next URL, contactID keeps retrying the same URL. In current versions a website whose AI wallet check keeps failing is tried at most 3 times and then marked Failed, so a long loop points to an outdated extension or confused extension state.
2. First: Pause The Batch Immediately
- Open the side panel.
- Click Pause.
- The looping stops.
If Pause doesn’t respond, close the side panel or the Chrome window entirely.
3. What Usually Causes This
- The AI wallet check failing on the server. The extension now tries such a website at most 3 times, 1 and then 2 minutes apart, and then marks it Failed, so it can no longer loop.
- Extension state corruption. Local storage confused about queue state.
- Retrying by hand. A failed website is only tried again when you press Retry (on its card or under the Failed filter); the queue holds each address once.
4. Fixing After Pause
- Reload the extension (chrome://extensions/, click Reload).
- Sign back in if prompted.
- Find the website that was looping on the Send tab; a Failed card shows the reason.
- Understand the failure reason.
- Manually skip or address the underlying cause.
5. Preventing Repeat The recent server-side fix (“wallet pre-flight bulletproofing”) addresses the most common cause. Ensure you’re on the latest extension version:
- Go to chrome://extensions/.
- Enable Developer Mode.
- Click Update.
6. Pause Is Your Safety Net There is no automatic breaker for the run as a whole. Watch the run panel: when the success rate drops and the same error repeats, press Pause, fix the cause, then Resume, or press Retry under the Failed filter.
7. Reporting If this happens to you:
- Note the URL that was looping.
- Note the batch you were running.
- Note the extension version.
- Send to [email protected].
- Support can look at server-side logs for the specific pattern.
8. Emergency Reset For a nuclear reset:
- Go to chrome://extensions/.
- Click Remove for contactID.
- Restart Chrome.
- Reinstall contactID.
- Sign back in.
Your data (dashboard side) is preserved. Local queue is cleared.
Related questions:
You turned AI on for a sender, but the messages that went out look like your saved message, or websites failed with “the message still holds {PromptName}”. Here is how to diagnose.
1. First: Confirm AI Is On For That Sender
- On the Agent tab, open the sender and check Use AI to write personalized messages (the AI Personalization page on the dashboard has the same switch for each sender).
- AI only writes the parts of your message marked with a {PromptName} placeholder. A message without one goes out as written, with no AI cost.
If off: turn on and try again. With AI off, a message with a placeholder is not sent (the website fails with “Turn on AI for this Agent …” and no credit is used).
2. Second: Confirm Wallet Balance
- Check your AI wallet balance.
- If it is empty, contactID does not send the message without its AI part. At Start, AI-written messages need credits asks you to Add credits (when the balance covers only part of the queue, AI credits may run out also offers Continue anyway). If the wallet runs out during a run, sending pauses and the AI wallet opens.
- Top up your wallet and press Resume. A daily or monthly budget limit you set pauses sending the same way.
3. Third: Check Your AI Usage
- In the extension, open the account menu, choose AI credits, then Usage History.
- Every AI call is listed with its {PromptName}, model and cost; a call that failed is marked Failed and costs nothing.
- No calls at the time of your batch means the AI part did not run. The Analytics page on the dashboard only says what filled each field (for example “filled with your message template”), not the text itself.
4. Fourth: Why A Placeholder Can Stay A placeholder is left in the message when AI is off for the sender, when no prompt with that name exists, or when the AI provider failed for that website (that call is not charged and shows as Failed in Usage History). contactID then does not send that website: it fails with “Not sent, no credit used: the message still holds {PromptName}” and a hint (turn on AI, check the prompt name, or retry later). There is no separate fallback tag.
5. Fifth: Test With An AI Sample
- On the Targets tab, find Preview on a site and pick a website.
- Press AI sample.
- The generated message shows what would be sent. It is charged to your AI wallet like a normal send.
If the sample looks generic:
- Your prompt instruction is too broad. Refine (see the article on writing prompts).
- The AI gets your sender details, the website’s name and address and, when known, its industry, not the site’s pages, so it has little to go on beyond those.
6. Sixth: Check The Model Each sender uses the model chosen for it (on the Agent tab or the AI Personalization page). If that model is unavailable, the AI part fails instead of switching to another model; pick another model and try again.
7. Placeholder Specific Issues If using a placeholder (like {sell}):
- Confirm you’re using the exact placeholder name.
- Case-insensitive, but typos count:
{Sale}won’t fire the{sell}prompt. - Confirm a prompt with that name exists in the Prompts Library on the AI Personalization page.
Unknown placeholders are left as literal {name} in the sent message.
8. Common Fix: Improve Your Prompt Most “AI seems generic” complaints trace to a weak instruction:
- Bad: “Write a personalized opener.”
- Better: “Write a one-sentence opener for a business called {website_name}. Keep it under 20 words. Do not use ‘I hope this finds you well’.”
The better instruction is much more likely to produce distinctive output.
9. Contacting Support If personalization consistently fails despite:
- Wallet has balance.
- AI toggle is on.
- Prompt is well-written.
- The AI sample shows good output.
Contact support at [email protected] with:
- Your sender’s message.
- 3 sample target URLs.
- Screenshots of the AI sample.
Related questions:
An import that stops moving usually needs a nudge from your side, because the checking runs in your extension. Here is what to check.
1. Keep The Side Panel Open
- The server keeps your list; the websites are checked by the open side panel (or full tab), one batch at a time.
- Closing the side panel or Chrome pauses the import. Open it again to continue.
2. Look At The Progress Panel
- While an import runs, the progress panel shows the batch (for example “Batch 2 of 5”) and how many websites are ready, have no form, and are still to go.
- Hide keeps the check running while you work; Cancel Import pauses the import and keeps it for later.
3. Resume A Saved Import
- When you come back, the side panel shows Pending import detected (choose Resume Now or Pause & Keep), or the saved import card on the Targets tab (Resume or Discard).
- The card says Import running, Import waiting, Import paused or Import timed out. An import with no activity for 24 hours shows Import timed out; it can still be resumed.
4. One Import At A Time If a new import is refused with “You have an active import job. Please wait for it to complete or cancel it first.”, resume or discard the saved one first.
5. Running In Another Browser An import is checked by one browser at a time. If it is still being checked in another browser, window or Chrome profile, this one says “This import is already running in another browser or window, so it will not run here.” Continue where it is running, or close it there and resume here about two minutes later.
6. Discarding An Import
- Press Discard on the saved import card.
- Confirm.
The remaining websites of that import are deleted. Websites already checked stay in your queue.
7. Preventing Stuck Imports
- Keep the side panel open until the import finishes.
- Use UTF-8 encoding for your CSVs (Excel: Save As > CSV UTF-8).
- Clean headers (single row, simple names like “URL”).
- Stay within your plan’s import limit (50, 500, 1,000, 2,500 or unlimited websites per import); a longer list is trimmed with a notice.
8. Reporting If an import does not move after you resumed it with the side panel open:
- Note the job number on the saved import card (“job #…”).
- Note the file size and row count.
- Send to [email protected].
Support can look at the import on our side.
Related questions:
Occasionally a payment appears to fail in contactID but you see the charge on your card statement. Confusing but usually resolves quickly. Here is what to do.
1. Understand Why This Happens Typical scenario:
- contactID initiates a payment via Stripe.
- Your bank authorizes the payment (charge appears on statement).
- Something goes wrong before Stripe confirms back to contactID (network hiccup, timeout).
- contactID shows “Payment failed” and doesn’t credit your account.
- The authorized charge may either:
– Auto-refund within 5-7 days (most common outcome). – Stay charged and need manual reversal.
2. First: Check Payment History In contactID
- For a plan or website credits, go to Transaction History on the dashboard. AI credit top-ups are listed under Payment History on the Buy AI Credits page, and lead credit packs show in your lead credits (account menu in the extension, or Find websites).
- Look for the payment.
- What you find:
– Listed: contactID has your money and credited your account. Something else caused the “failed” message. – Not listed: contactID didn’t receive a successful confirmation. For plans, Stripe’s billing page (Plan & Billing, Manage payment method) also shows your invoices.
3. Second: Check Your Card Statement Look for the specific charge:
- contactID charges appear with descriptor “contactID” or “Ainfluencer Inc”.
- Look for the amount and date matching your attempt.
If the charge is present and settled on your card, but contactID shows failed: you need a resolution.
4. Waiting First (Usually Enough)
- Wait 5-7 business days.
- Watch your card statement.
- Authorization holds typically release automatically if not settled.
- You may see the charge disappear from your statement.
5. If The Charge Doesn’t Disappear Contact support:
- Email [email protected].
- Include:
– Your account email. – Amount and date of the charge. – Stripe reference ID or transaction ID from your card statement. – Screenshot of your card statement.
Support looks up the transaction on Stripe’s side and either:
- Confirms the credit is on your account (dashboard sync issue; refreshing shows it).
- Refunds the charge if it settled without credit issuance.
- Manually credits the account if the payment did succeed but the account wasn’t updated.
6. Resolution Timeframe
- Simple sync issues: Same-day resolution.
- Refunds: 3-5 business days for the refund to appear on your card.
- Manual credit issuance: Same-day resolution once support confirms.
7. Preventing This
- Avoid retrying failed payments repeatedly. Each attempt may authorize on your card.
- Wait for a clear failure message before retrying.
- Use a stable internet connection during checkout.
8. Multiple Duplicate Charges If you see multiple charges from contactID for the same purchase:
- Contact support immediately.
- Don’t file a chargeback with your bank yet; support can resolve faster.
- Provide all Stripe reference IDs.
Duplicates typically refund within 24 hours after support confirms.
Related questions:
contactID never skips a website silently. A website you added ends up in one of these places, always with a reason.
1. No Form The check could not find a usable contact form: no contact page, only a mailto link, a bot check, a login wall, or a timeout. Find it on the Targets tab (with the reason in plain words) or under the No form filter on Send. Use Retry, Open, or Add URL with the site’s direct contact page.
2. Contacted Before Websites this account already submitted to are listed in the pre-flight report. Nothing is skipped until you press Skip.
3. Over The Import Limit Lists longer than your plan’s per-import limit (50, 500, 1,000, 2,500, or unlimited) are trimmed with a notice; the rest can be imported in a second batch.
4. Only N Will Send If your remaining credits cover fewer websites than you queued, the pre-flight report says how many will send now; the rest wait in the queue until you add credits.
5. Duplicates In Your List The same address twice is queued once.
6. Not A Contact Form Blog comment forms, search boxes, log in forms and newsletter signups are never filled. When you import a page whose only forms are such forms (a blog post from a bought list, say), the import goes on to look for the site’s contact page, as it does for a page with no form. When a queued page has only such forms, the website fails with a reason such as “Not sent, no credit used: the only form on this page is a blog comment form, not a contact form.”.
7. On Your Do-Not-Contact List Websites listed under Settings, Do not contact, are never checked or sent to; they show with the reason and no credit is used.
8. A Question Your Agent Cannot Answer The form requires something your agent does not have. The website fails before anything is sent, with “Not sent, no credit used” and the question named. See A Website Was Skipped: The Form Asked Something Your Agent Cannot Answer.
Related questions:
Sign-in issues in the extension have a few common causes distinct from the dashboard. Here is the checklist.
1. First: Sign In On The Dashboard
- Open the contactID dashboard in a normal tab of the same Chrome profile.
- Sign in there with the same email (Google, an email code, or your password).
- The extension shares this sign-in: once the dashboard is signed in, the extension signs in to the same account at once.
- If dashboard sign-in fails too: request a new email code or reset your password. Wrong tries never lock the account; a code allows 5 tries and a new one can be sent after 2 minutes. If you see “Your account has been suspended”, contact [email protected].
If dashboard works but extension doesn’t: continue.
2. Reload The Extension
- Go to chrome://extensions/.
- Find contactID.
- Click the Reload icon.
- Try signing in again.
Fixes a lot of state-related issues.
3. Clear The Extension’s Saved Sign-In
- Open the account menu (top right of the side panel), choose Sign out, then sign in again. This signs the dashboard out in this browser too.
- If that does not help, remove contactID on chrome://extensions/ and install it again. This clears what the extension stored on this computer, including the queue; your account, senders and credits stay on the server.
Chrome has no “reset extension data” button, and contactID’s options page only holds the contact page queue switch.
4. Sign-In With Google Isn’t Working If you signed up with Google:
- Click Continue with Google in the extension sign-in screen.
- Or sign in with a 6-digit code sent to the same email; it works for every account.
- A password works only if you set one on the Security page.
If the Google sign-in window does not appear:
- The extension opens it as its own small window, so a pop-up blocker does not stop it; check whether it opened behind your Chrome window.
- If you close it you see “Google sign-in was cancelled”; after 5 minutes it closes with “Google sign-in timed out. Please try again.” Try again, or use an email code.
5. Two-Step Verification On Your Google Account contactID itself has no two-factor authentication. If your Google account uses two-step verification, complete it inside the Google window; the extension signs you in as soon as Google confirms.
6. Sign-In Loop If the extension shows you signed in briefly then reverts to the sign-in prompt:
- Check that you did not just sign out on the dashboard: the most recent sign-in or sign-out wins on both sides, so sign in again on either side.
- If it keeps happening, remove and reinstall the extension (step 3), then try again.
7. “Invalid Credentials” But They Are Correct
- Confirm you’re using the same email you signed up with.
- Check for typos in email (subtle: gmial.com vs gmail.com).
- Try resetting the password.
- Try in an incognito Chrome window (rules out extension conflicts).
8. Chrome Profile Issues Extensions are per-Chrome-profile. If you have multiple Chrome profiles:
- Confirm you’re in the profile where contactID is installed.
- Install contactID in the other profile if needed.
9. Contacting Support If none work:
- Try the extension in a fresh Chrome profile (rules out data corruption).
- Try in Brave or Edge (rules out Chrome-specific issues).
- Report to support with details of what you tried.
Related questions:
You’ve imported URLs, chosen an agent, and clicked Start, but nothing happens. Here are the common causes.
1. Confirm Prerequisites Every batch needs:
- You are signed in to the extension.
- URLs in the queue (check the Send tab).
- A sender (the run panel on the Send tab shows “as” and its name; with several senders, Start asks which one).
- Website credits (check the balance display).
Missing any of these blocks the batch.
2. Confirm You Actually Clicked Start
- Start sending is replaced by Pause and Stop when a batch is running.
- If it still says Start sending: your click didn’t register, or the button is greyed out because nothing is queued (or an A/B test split does not add up to 100%).
- Try clicking again.
3. A Previous Run Is Still Paused If the run panel shows Paused, press Resume to continue or Stop to end it, then Start sending again.
4. Chrome Window Not In Focus Chrome pauses background tabs when the browser is out of focus for extended periods:
- Bring Chrome to the foreground.
- Try starting the batch.
5. Wallet Empty
- If your website credit balance is 0: batches cannot start.
- Buy PAYG credits or subscribe.
6. No Sender Yet If you have no sender, Start shows “No Agent profiles created yet. Create one to start sending messages.” Create one on the Agent tab. Missing details in a sender do not block the start (only its name is required to save it); a website whose form requires a missing detail is skipped (nothing sent, no credit used), and the coverage card on the Agent tab shows which details forms ask for.
7. Import Still Running If you just imported URLs:
- Websites join the queue as the import checks them; you can press Start sending as soon as some are Queued.
- If nothing is Queued yet, wait until the progress panel shows websites as ready.
- Websites with no form never join the queue (see the No form filter).
8. No Sending Limits To Wait For contactID has no per-minute or daily sending cap, so a recent batch never blocks a new one. Within a run, two websites on the same domain are spaced about 45 seconds apart.
9. Extension Version Outdated
- Very old extension versions can have start-failure bugs.
- Update via chrome://extensions/ > Update.
10. Server-Side Issue
- If Start says “Could not verify your website credits, so nothing was sent. Check your connection and try again.”, contactID’s server could not be reached; check your connection and try again in a minute.
- If it keeps happening, contact support at [email protected] (there is no public status page).
11. Reset And Retry If nothing else works:
- Pause any active batch.
- Sign out of the extension.
- Reload the extension.
- Sign back in.
- Retry the batch.
Related questions:
Before filling, contactID clears cookie banners, consent dialogs and newsletter or sign-up pop-ups so they cannot cover the form. On a consent dialog it presses the accept button (Accept, Agree, Allow) and never opens settings or preference panels; on a few consent managers (Didomi, TrustArc) it may press their “continue without agreeing” or “required only” button, which also closes the dialog. It does so both on the page itself and inside the frames some consent managers use (TrustArc, OneTrust, Cookiebot, Sourcepoint, Didomi and others). Other frames on the page (chat widgets, ads, analytics) are left alone. A full-screen overlay without any button is hidden as a last resort; the contact form itself is never touched.
If a dialog still blocks a form, open the website (click its address on the card, or Open in the No form list on the Targets tab), accept the dialog once, and retry: the choice is usually remembered by the site.
Related questions:
Some forms require a choice that is not a text field:
- A group of checkboxes marked required as a group (for example “Reason for inquiry*” with Product, Services, Partner, Pricing, Other). contactID ticks exactly one option: a general inquiry when the list has one, otherwise a business or partnership inquiry, otherwise Other or Not sure. It never picks the first option just to fill the group.
- Dropdowns such as Job Function or Job Title. contactID picks the option closest to the sender’s job title (a founder or CEO gets C-Level, Executive or Owner; a marketer gets Marketing), then a management or director option for a senior title, then the choice you picked once on the Send tab for that job title, then Other.
- Dropdowns drawn by Select2, Chosen, Nice Select or Choices.js are answered like any list: contactID chooses in the real list they draw over, and their box shows the choice.
- Country and state dropdowns follow the sender’s address. A country list is read in the page’s language (“Deutschland”, “Vereinigtes Königreich”, “Canadá”) and by country codes (“GB”, “CA”). When the list does not offer the sender’s country, no other country is picked: the website fails with the list named. On the Send tab you can then pick once the choice that says your country (England for the United Kingdom); it is used for that country only, never after you change the agent’s country.
- Email and phone fields are recognised by their type, so a field labelled “Business Email” always receives the email address, never the company name.
If a required choice has no honest option, nothing is submitted: the website fails with “Not sent, no credit used” and the field named; open the website’s card to see it. Answer it once under Fields we could not fill on the Send tab, where the choices the website offers are listed, then press Send again; your answer is used on every website that asks the same question (a list you type in is not offered there, see A Website Was Skipped: The Form Asked Something Your Agent Cannot Answer). With Settings > Required questions set to Answer neutrally, the first ordinary option is picked instead (never a newsletter or marketing choice, never a country, a state, a gender, a budget or a company size).
Related questions:
A website counts as Sent when the site confirms the send after the submit:
- a confirmation appears that was not on the page before (a thank-you message, a success block or a form plugin’s confirmation box that became visible),
- or the page navigates to a confirmation page,
- or the form plugin answers that it sent the message (Contact Form 7, below).
When the form was submitted and no error appeared, but none of these happened, the website is Sent, not confirmed: it counts as sent and costs no credit. contactID keeps looking while the tab is open (it does not wait longer for it), so a confirmation that arrives a few seconds later, or a move to a confirmation page in the same tab, turns it into Sent, and the credit is used then.
The address counts too, but only after contactID submitted the form, and only when the confirmation words are new: the page moved to an address that reads like a confirmation (for example /thank-you or /success in the path, or ?submitted=1 in the query) that the form’s own page did not have. A page whose address only looks like one (a site at /thank-you-for-visiting/, or “success stories”) never counts by itself. Addresses in your list that already carry such words (for example ?contact_posted=true or #contact_form) are cleaned when you import them.
contactID submits a form once. It never clicks the button a second time; when the click visibly did nothing, it asks the form to submit itself once, which runs the site’s own checks.
When the site refuses a field. Sites often check the form after the submit and mark the fields they will not take, next to each field. contactID reads those marks, in any language, and corrects what it can correct truthfully, then submits one more time, never a third:
- Your phone number written another way. When the site shows the format it wants (“(555) 555-5555”) or says how (“digits only”, “include your country code”, “10 digits”), your own number is typed in that form. A site that wants another country’s format (“UK numbers only” for a +1 number) gets nothing: your number is never changed into another one.
- Your message shortened. When the site names a limit (“120 characters at most”, “no more than 50 words”), the message is shortened at the end of a sentence to fit.
- A box the site requires that the form did not mark. It is answered the way a marked required box is: with your agent’s detail, a usual honest answer, a box ticked only when the site requires it, or the neutral answer when you chose that in Settings > Required questions.
Nothing is submitted again when any refusal cannot be corrected (your email, which contactID never changes, a budget, a question only you can answer); the website fails with “Not sent, no credit used” and the field named in the site’s words. contactID also never submits again when the site may have taken the message: a confirmation of any kind, a form the site emptied after the submit, a page that started to load, a form with a captcha (its answer was used) or a form in steps.
Words that were already on the page before submitting (a marketing line such as “Thanks for visiting” or “Success stories”) never count, but a new confirmation does even when it repeats them: an intro that says “Thank you for visiting” and a “Thank you!” that replaces the form after the submit is a confirmation. Words that deny or ask never count (“Your message was not sent successfully”, “Merci de réessayer”, “Please complete all required fields. Thank you!”), and neither do parts of the page that change by themselves (a rotating testimonial, a slider, a countdown) or the words you typed when the page only shows them back (a “check your entries” step).
Error messages after submit (a rejected field, a CAPTCHA that was not accepted, “This field is required”) make the attempt Failed (a field the site refused is named on the card with the site’s words), and so does a site that answers that the message was not sent, in the main languages (“Your message could not be sent”, “Une erreur s’est produite”, “El mensaje no se ha enviado”), when it confirmed nothing. No credit is used for a failed attempt. A help line on a thank-you page is not an error: “If you have not received a confirmation email, please try again”, “Error while sending? Call us”, or a failed copy of the confirmation email. Neither is a note that was on the page before contactID typed anything (“All fields are required.” above the form), as long as it shows no more often after the submit and does not appear in an error or alert box.
A form plugin’s own error box counts in any language. Gravity Forms, WPForms, Elementor, Ninja Forms, Formidable, Fluent Forms, Forminator, HubSpot, Webflow, Squarespace, Drupal and Avada show their errors in boxes of their own; when one of them appears in the form after the submit (“Ce champ est obligatoire”, “Bitte überprüfen Sie Ihre Angaben”), the attempt is Failed with the form’s words. A message that was already showing before the submit does not count.
The site’s own answer to the submit counts too. When the site’s firewall refuses the post (a block page such as Cloudflare’s “Sorry, you have been blocked”, Sucuri, Wordfence or ModSecurity, or an HTTP 403, 406 or 429 answer to the form’s own post), the message never arrived: Failed, and no credit is used. A security check that the browser can pass (“Just a moment…”, “Verifying you are human”) is not a block. When the server answers the post with an error of its own (HTTP 500 and the like), the message may or may not have arrived: Sent, not confirmed, and no credit is used.
Contact Form 7 (WordPress) Contact Form 7 says itself whether it took the message, so contactID waits for that answer instead of reading the page’s words, in any language:
- Sent when the site answers that the message was sent.
- Failed when the site’s spam filter refuses the message (when the form checks visitors with reCAPTCHA v3, the reason says so: a low reCAPTCHA score is the usual cause), a field is rejected (the field and the site’s reason are named on the card), the terms box was not ticked, or the site accepted the form but could not send the email. A rejected field or an unticked terms box that contactID can correct is corrected and the form submitted one more time, as above.
- Failed when the site never answers the form post within 30 seconds (usually a firewall or a server error blocked it), or when the form never posts at all because the site’s own check stopped it; the card then shows the site’s message when there is one.
A Contact Form 7 quiz is answered: a simple calculation (“What is 3 + 4?”) on the page, any other question (“What color is the sky?”) by contactID’s AI. A question contactID cannot answer stops the send before anything is submitted, and the card shows the question. A Really Simple CAPTCHA picture is read by the captcha service and its letters are typed.
Related questions:
On the Send tab, a Failed website’s card has Retry. Continue tries the same URL again: the website is re-checked and, if it passes, queued again with its category, its custom message and its merge fields kept; the attempt count is kept too. Replace URL lets you paste a better address (for example the site’s direct contact page): the new address is queued straight away as a fresh website, without the category, custom message or merge fields of the old one.
Retry above the list (under the Failed filter) moves every failed website straight back to the queue at once, keeping its category, custom message and merge fields, with the attempt count reset; it first asks which sender to use. Sending starts when your credits allow.
Related questions:
Since September 17, 2026 the loader spins and the bar advances on every machine, including Windows computers with “Animation effects” turned off (which used to freeze them), and the bar moves as each page of businesses arrives rather than at the end.
If it still looks frozen for more than a minute: refresh the page (the unlock keeps going in the background; nothing is lost), check the “elapsed” and “of” numbers on the card (they change even when the animation does not), and if the list has not turned Ready after ten minutes, write to support with the list name.
Related questions:
Before 3.6.1, opening the dashboard could replace the Google photo in the extension with your initial. Update the extension to 3.6.1 or later; the next time you open it, the photo comes back by itself (no sign-out needed). If it does not, sign out of the extension and sign in with Google again.
Related questions:
Some forms require an answer only you can give: a budget, a company size, a service you need, a project name, an order number. contactID never makes such an answer up. Most of them you answer once, and contactID uses your answer on every website that asks the same question.
1. What You See The website fails before anything is submitted. Its reason starts with “Not sent, no credit used” and names what was missing, for example:
- “Not sent, no credit used: the form requires “Budget”, which contactID cannot answer for you. Answer it once in “Fields we could not fill” on the Send tab.”
- “Not sent, no credit used: it asks for your phone number, which this Agent does not have. Add it to the Agent to send to this website.”
- “Not sent, no credit used: its list “Country” has no choice for your country (United Kingdom). Answer it once in “Fields we could not fill” on the Send tab.” The form only takes some countries (or states); contactID never picks another one on its own.
- “Not sent, no credit used: the form’s “Budget” has no choice like your answer “Under $5,000”. Change your answer in “Fields we could not fill” on the Send tab.” Your saved answer is not one of this form’s choices.
- “Not sent, no credit used: its “Website” box does not take your website.” The box is too short for it, or takes another kind of value.
No credit is used, and the website stays in the Failed list so you can send it again.
Some forms say a box is required only after the submit (“This field is required” under a box with no asterisk). contactID then answers it the same way and submits one more time; when it cannot answer it, the website fails with the same reason and nothing more is submitted.
2. Answer Once: Fields We Could Not Fill On the Send tab, the card Fields we could not fill lists each question once, with the websites that asked it and the choices they offer.
- Pick your answer in the list (or Another answer… to type one) and press Save. A question with no choices takes what you type.
- A website whose list has no choice like your saved answer brings the question back with its own choices: pick the one that says the same. Your answers are kept together, and a list takes the first of them it offers.
- A list with no choice for your country, state, gender, job title or industry: pick the one that says it (for example England for the United Kingdom).
- An answer to a question about your country, state, gender, job title or industry is kept for the agent’s value as it is (or for none, while the agent has none). After you change that detail, a list of that detail itself (a country list) is offered for Send again, to try your new value; any other such question is asked again for the new value.
- A detail a website asked for that belongs in your agent (your phone number, your job title) shows as “Your phone number” with Open Agent: add it to the agent there.
- Send again to N websites puts back in the queue the websites that now have every answer they need, each with the agent it was skipped with (your first agent, if that one was deleted), and starts sending: during a paused run they wait until you resume it, and with no website credits left they wait in the queue (pressing Start sending yourself then uses the agent you start with). A website skipped for something the card cannot answer (a phone box that takes another kind of number, a box too short for your website) is not offered: it keeps its reason.
From then on, contactID uses your answers on every website, whether the question is required or not: after your agent’s own details and the usual answers below, before Other, Not sure or a neutral answer. An answer is never cut to fit a box: a required box too short for it skips the website with the reason.
3. Your Saved Answers Answers are kept for each agent, in the browser where you gave them; they are not stored with the agent on the contactID server. The Agent tab lists them under Answers to form questions: remove one answer with its ×, or every answer to a question with the bin. Duplicating an agent copies its answers; deleting an agent deletes them.
4. What Is Never Answered Once
- A box for one of your agent’s details (email, phone, name, company, address, website, social links): those come from the agent.
- A question that two boxes of one form share.
- Words that ask nothing on their own: “Please specify”, “Other”, “Details”, “Comments”, “Select an option”, “Title”, “Q1”.
- A question that follows another one: “If other, please specify”, “Please provide details”, “Which one?”.
- A question about the website asking it, or its place: “Have you worked with us before?”, “Which of our offices?”, “Is your company based in this country?”. “How did you hear about us?” is the exception: it gets the same answer everywhere.
- A part of a date on its own: “Month” is named with its question (“Preferred start date (Month)”).
- A number or a code of one website’s own records: an order, invoice, booking, ticket, case or customer number, a reference, a promo code. Another website’s is never the same one.
- A list you type in (a box that suggests choices as you type): the card does not offer it. It still takes an answer you gave to the same question for another website when its list offers that answer. Some of these lists are marked required in a way contactID cannot check once they are answered; a website with one is skipped, as before.
Such a website is still skipped with its reason.
5. Other Ways
- The form asks for one of your details (phone, city, state, country, job title, website): add it to the agent on the Agent tab, then press Send again on the card, or Retry on the website’s card.
- Answer such questions neutrally: in Settings, set Required questions to Answer neutrally. contactID then writes N/A in a required text field and picks Other, Not sure or the first ordinary choice in a required list. It still never makes up your email, phone, name, company, address, country, state or gender, and never answers a budget, a company size, a timeline or a date of birth on its own: a form that requires a budget, a company size or a timeline is still skipped until you answer it once on the Send tab, and a date of birth comes from the agent.
6. What contactID Answers On Its Own Usual questions get a usual, honest answer whatever the setting: “Online search” (or the matching choice) for “How did you hear about us?”, a general inquiry (otherwise a business inquiry, otherwise Other) in a topic or reason list, “No” to “Are you an existing customer?” and to a newsletter question, “Email” as the preferred way to be contacted, and a tick in consent and “I am human” boxes. Your agent’s details are used wherever a field asks for them.
Related questions:
Still stuck? We’re happy to help.
Install the extension, sign up, or reach out to support directly.




