Onboard a client

From a domain to rank tracking, a site audit, analytics, a scheduled report and a portal link — every step as a tool call.

Embed
Preview of the card
<a href="https://seolyticize.com/docs/onboard-a-client"><img src="https://seolyticize.com/docs/_api/public/orgs/71cb2b7a-a719-4003-b3ea-6321dc1db8ab/spaces/3bf2dbf7-3faa-473c-ba3b-30588f5f8de4/pages/26d4913e-157f-40a2-bfec-c89330f57fe8/social-card.svg?v=3e7ae33eec8b" alt="Onboard a client" width="600" height="315"></a>

The whole onboarding of one client, in order. It needs an admin credential for the steps marked admin; the rest work with less. Keep the ids each step returns — later steps need them.

  1. Create the client (admin)

    create_client {name, domain, keywords?, monthlyBudgetUsd?} makes the client, a project, its site and a rank tracker in one call, and starts tracking any keywords given. It returns clientId, projectId, siteId and trackerId. Every tracked keyword is a paid lookup on every run, so set monthlyBudgetUsd if the client has a budget.

  2. Connect Google — ideally without a sign-in

    The quickest route an agent can finish itself: get_google_service_account returns the agency's own service account email. Ask your person to have the client's property owner add it — Search Console: Settings → Users and permissions, Restricted; GA4: Admin → Property access management, Viewer. Then call connect_search_console_service_account {clientId} (the site is tried as a Domain property, then https:// and https://www.) and connect_google_analytics_service_account {clientId, propertyId}. Each checks with Google first; if access isn't granted yet, the refusal says exactly what the owner must do.

  3. Or ask a person to sign in

    Search Console and Google Analytics can only be connected by someone who can sign in to the client's Google account. get_connection_link {clientId, service} with service search_console (pass the property as propertyUrl) or google_analytics (pass ga4PropertyId, the numeric property id, not a G- measurement id) returns the link, what the person will approve, the steps, and what is connected now. Send the link to your person and carry on; check later with get_client_integrations {clientId}. Also available: search_console_sitemaps, yandex_webmaster, google_business_profile. For Yandex, get_connection_link also returns the steps for a person to make a token, and connect_yandex_with_token {clientId, token} connects what they hand you.

  4. Install analytics without Google

    For a site with no GA4, set_up_web_analytics {clientId, hostnames?} turns on Seolyticize's own cookieless analytics and returns the snippet to put in the site's <head>. Read the results later with get_web_analytics_summary {clientId}.

  5. Set up rank tracking

    create_client made one tracker. Add keywords with add_tracked_keywords {clientId, trackerId, terms}, competitors with add_competitors {clientId, trackerId, domains}, and change device or frequency with update_rank_tracker. More trackers (another engine, location or device) come from create_rank_tracker {clientId, name, engine?, device?, frequency?, locationCode?, languageCode?}. To find keywords worth tracking: keyword_explorer {clientId, seed} (paid), get_keyword_gap / get_content_gap {clientId, competitorDomains}, and find_serp_competitors {clientId, keywords} (paid) to find who else ranks.

  6. Audit the site (admin)

    start_crawl {clientId} crawls the site with 129 checks. Poll get_crawl_status {clientId, crawlId} until it is complete, then read get_audit_summary {clientId, crawlId} and list_crawl_issues {clientId, crawlId} — each issue says how to fix it and how to check the fix.

  7. Track AI visibility

    save_ai_visibility_setup {clientId, addBrands, addPrompts} names the brand (and competitors) and the questions a buyer would ask; suggest_ai_prompts {clientId} (paid) drafts questions. estimate_ai_visibility_cost {clientId} quotes a run, run_ai_visibility_check {clientId, maxCostMicros} runs one, and set_ai_visibility_schedule {clientId, cadence, engines} repeats it. Which assistants are measured depends on the provider keys the agency has connected.

  8. Build and schedule the report (admin)

    create_report {clientId, title, sections} saves a report from rank-summary, share-of-voice, keyword-movers, backlink-summary, traffic, core-web-vitals, site-health, audit-summary. schedule_report {clientId, reportId, recipients, cadence} sends it monthly or weekly. A report goes only to its schedules' recipients: send_report {clientId, reportId} sends one now to all of them, so schedule before sending.

  9. Give the client a portal link (admin)

    create_portal_link {clientId, label} returns an address that shows the client their own dashboard under the agency's name, with no account. It is in that response once; send it to the client and keep it out of logs. revoke_portal_link {clientId, linkId} ends it.

  10. Set alerts

    create_alert_rule {clientId, kind, threshold, channel, …} — kind is rank-drop, traffic-drop, new-critical-issues, backlinks-lost or site-unreachable; channel is email (with emailRecipients), slack or webhook (with webhookUrl) or telegram (with telegramChatId).

  11. Write down what you learned

    update_client_brief {clientId, overview, goal, positioning, audience, voice} keeps the client's context where every teammate and agent reads it first (get_client_brief). draft_client_brief {clientId} (paid) drafts one from the site.

Updated