Complete and Improve a ServiceChannel Provider Profile

Site fixxbook.servicechannel.comTask complete-provider-profileVersion v1Updated Jul 30, 2026Category account-management

Navigate ServiceChannel's provider-profile completion flow, update profile sections, coverage, and business information, and verify completion status. This skill was captured from a live agent session on fixxbook.servicechannel.com and publishes here verbatim, exactly as an agent receives it.

NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.

Purpose

Complete the authenticated provider profile on ServiceChannel and improve its completeness score by reviewing coverage, industries, clients, and business information.

When to Use

Use for any provider-profile completion or profile-score improvement task on fixxbook.servicechannel.com. The caller must supply the actual business information and coverage choices; never invent profile data.

Workflow

  1. Navigate directly to https://fixxbook.servicechannel.com/Company/ProviderProfile in the existing authenticated session.
  2. Run the extractor below to identify incomplete sections, completion controls, and available profile navigation.
  3. If the page exposes button[aria-label="Complete Profile"], activate it once; otherwise open the relevant section's Update Information or Update Coverage control.
  4. For coverage updates, use button[aria-label="Update Coverage"], then select the caller-provided coverage options in the opened dialog. The profile flow exposes a div[aria-label="Detailed"] view; use it when detailed coverage selection is required. Save using the dialog's visible Save/Update action, not an arbitrary button.
  5. Review profile navigation for Profile, Industries, and Clients. Complete only the sections requested or needed for the score, using the caller's supplied values.
  6. For business information, choose the appropriate button[aria-label="Update Information"] associated with the Business Information section. The business-description field observed in this flow is input[name="35"]; replace its value with {business-description} and dispatch input/change events before saving. Do not assume this field is the only required field.
  7. If the UI routes to the staged wizard, the observed direct wizard URLs are https://fixxbook.servicechannel.com/Company/ProviderProfileWizard?stage=4, ?stage=6, and ?stage=9. Use a stage URL only after confirming the corresponding incomplete section from the current page; stage numbers are navigation shortcuts, not semantic labels.
  8. Return to https://fixxbook.servicechannel.com/Company/ProviderProfile, wait for the page to settle, and run the extractor again to verify that the relevant section status or score improved.

Concrete extractor (run with evaluate() on the loaded profile or wizard page):

(() => {
  const text = (s) => (s || "").replace(/\\s+/g, " ").trim();
  const leaf = [...document.querySelectorAll("*")].filter(
    (e) => e.children.length === 0,
  );
  const sectionLeaves = leaf.filter((e) =>
    /^(Business Information|Coverage|Industries|Clients|Profile)\\s*:/i.test(
      text(e.textContent),
    ),
  );
  const sections = sectionLeaves.map((e) => {
    const container =
      e.closest('section,article,[role="region"],div') || e.parentElement;
    return {
      heading: text(e.textContent),
      containerText: text(container && container.innerText).slice(0, 800),
      updateButtons: [...(container ? container.querySelectorAll("button") : [])]
        .map((b) => ({
          aria: b.getAttribute("aria-label"),
          text: text(b.innerText),
        }))
        .filter((b) => b.aria || b.text),
    };
  });
  return {
    url: location.href,
    completeProfileVisible: !!document.querySelector(
      'button[aria-label="Complete Profile"]',
    ),
    updateCoverageVisible: !!document.querySelector(
      'button[aria-label="Update Coverage"]',
    ),
    updateInformationCount: document.querySelectorAll(
      'button[aria-label="Update Information"]',
    ).length,
    businessDescriptionField: (() => {
      const e = document.querySelector('input[name="35"]');
      return e
        ? {
            value: e.value,
            disabled: e.disabled,
            visible: !!(e.offsetWidth || e.offsetHeight),
          }
        : null;
    })(),
    wizardStage: new URL(location.href).searchParams.get("stage"),
    profileNavigation: [...document.querySelectorAll("a")]
      .map((a) => ({ text: text(a.textContent), href: a.href }))
      .filter((a) => /^(Profile|Industries|Clients)$/i.test(a.text)),
    sections,
  };
})();

Site-Specific Gotchas

  • The profile destination is a separate fixxbook.servicechannel.com host from the ServiceChannel console; direct navigation works only with the appropriate authenticated session.
  • The console's profile card resolves to /Company/ProviderProfile; avoid replaying console navigation when the destination URL is already known.
  • The completion flow uses ProviderProfileWizard?stage={number} URLs. Stage numbers are opaque and should be selected from observed incomplete-section links rather than guessed.
  • Coverage and information edits open dialogs or staged forms. Scope button selection to the active dialog or section; generic button:nth-of-type(...) selectors are fragile.
  • input[name="35"] was observed for the business-description field, but field identifiers may be implementation-specific. Confirm its surrounding label before editing.
  • Preserve existing profile values unless the caller explicitly requests a change, and do not fabricate industries, clients, coverage, or business claims.

Expected Output

Return the final profile URL, the sections updated, the resulting completion/score status when visible, and any sections that remain incomplete or require caller-provided information.

Call it

GET https://production-sfo.browserless.io/skills?token=TOKEN-HERE&domain=fixxbook.servicechannel.com&task=complete-provider-profile