# Service Portal > Build and operate guided service workflows from one platform Published workflow count: 0 ## Site identity - Brand: Service Portal - Canonical site origin: https://www.feinprov.com ## Core capabilities - No service capability classification is currently provided by the published profiles. ## Workflow execution - Prefer the structured public API sequence: read workflow metadata, start a session (the server advances start and automated nodes), submit one confirmed answer for each returned question, then repeat until a resolved terminal result. - Browser fallback: open the canonical workflow URL in an interactive browser or browser-capable agent and follow the visible prompts in order. - Read the workflow title, description, profile, limitations, and sources before acting on its result. - Provide only information supplied or confirmed by the user. Ask for missing information instead of inventing values or assuming eligibility, pricing, availability, or location coverage. - Ask for user confirmation before submitting personal, contact, payment, booking, or lead information. - Treat a workflow as complete only when it displays a final result, request status, or confirmation. ## Decision-tree operating protocol - A workflow is a server-controlled state machine. The returned current node is authoritative; automated nodes are advanced by the server, so never submit answers for them or guess a branch. - Start: POST `/api/public/session/start` with `{"tree_id": }` and optionally `initial_context` supplied by the user. - Read: GET `/api/public/session/{session_id}/status` for the current node, or GET `/api/public/session/{session_id}/projection` for an auditable timeline and edge decisions. - Interpret: inspect the node `type`, `content`, `metadata`, `answer_type`, validation rules, and widget information before asking for an answer. - Answer: POST `/api/public/session/{session_id}/answer` with `{"answer": }` only after the user confirms the value. Reuse one `Idempotency-Key` when safely retrying the same answer. - Continue: use the returned `node`; if the response is asynchronous, poll its returned async-status path before submitting another answer. - Stop: stop on `completed`, a terminal result/error, an approval wait, a trial limit, or a request for information the user has not supplied. - Widget meaning is metadata-driven. Supported public workflows may use text, textarea, number, date, boolean, enum, multi-select, object, array, JSON, table, upload, catalogue, commerce, or other approved widgets. - Compute and Goja-backed nodes run on the server. Never expose or execute their source; use only returned output and published explanation. ## Public workflow API - `GET /api/public/trees` — list published public workflow summaries. - `GET /api/public/trees/{tree_id}` — read workflow metadata, SEO profile, schema data, and start preview when published. - `GET /api/public/trees/{tree_id}/semantic` — read the sanitized, author-declared public steps, decision factors, documented outcomes, and published workflow media without runtime node metadata. - `POST /api/public/session/start` — create a public session; body requires `tree_id` and accepts optional `initial_context`. - `GET /api/public/session/{session_id}/status` — read current node and completion state. - `GET /api/public/session/{session_id}/projection` — read session timeline; supports conditional refresh with `If-None-Match` and may return `304`. - `POST /api/public/session/{session_id}/answer` — submit one answer; body is `{"answer": }` and may return a synchronous next node or `202` with an async job. - `GET /api/public/session/{session_id}/async-status?job_id={job_id}` — poll an accepted asynchronous answer. - `POST /api/public/uploads/presign` — create a short-lived signed upload URL for a file required by the current public workflow. - `GET /api/public/articles/{article_slug}` — read one published article as informational context. ## Full machine-readable context - [Full public context](https://www.feinprov.com/llms-full.txt): dynamically generated full public pages, articles, workflows, semantic explanations, formulas, FAQs, and documented outcomes. ## Agent interpretation - Prefer the canonical workflow URL listed for the matching user intent. - Use the public source and last-verified fields when deciding how current a fact is. - Do not treat SEO metadata, schema markup, an article, or an agent manifest as proof that a service is available or that a quote, booking, or lead has been accepted. ## Public decision tools - Direct tool execution endpoint: https://www.feinprov.com/api/mcp (MCP Streamable HTTP). Use find_workflows to search by user intent, then use get_workflow_brief for a compact published explanation with citation URLs and missing evidence. Start, answer, poll, upload, and complete the selected workflow only when the user wants a personalized result. - No public decision tools are currently available. ## Public site pages - [AI Agents](https://www.feinprov.com/ai-agents): Public Service Portal information page. - [Solutions](https://www.feinprov.com/solutions): Public Service Portal information page. - [Industries](https://www.feinprov.com/industries): Public Service Portal information page. ## Interpretation and trust - Only public, published, indexable content is listed here. - A workflow result may be preliminary and should be confirmed when the workflow states that confirmation is required. - Business identity, service area, pricing, availability, and contact information should be treated as current only when the public page provides a verification date or official source. - Private sessions, customer submissions, admin pages, unpublished trees, and noindex pages are not included. ## Official links - [Service Portal](https://www.feinprov.com/) - [Privacy policy](https://www.feinprov.com/privacy)