Skip to main content
This guide builds a working answering agent for a home-services business (HVAC, plumbing, electrical — same shape), backed by your field-service software. It recognizes returning customers, captures new jobs straight into your system, tells callers when their tech is coming, and escalates emergencies to a person. Every step is one API call against https://builder.flowyte.com/api/v1.
Authenticate every request with a secret API key: Authorization: Bearer flowyte_sk_…. See Authentication to mint one.

What you’ll wire up

ActionEndpointScope
Create the agentPOST /agentsagents:write
Add knowledgePOST /agents/{id}/knowledge/sourcesknowledge:write
Connect your field-service softwarePOST /integrations/{kind}/connectintegrations:write
Provision its skillsPOST /agents/{id}/integrations/{kind}/provisionskills:write
Add a transfer skillPOST /agents/{id}/skillsskills:write
PublishPOST /agents/{id}/publishagents:write
SimulatePOST /agents/{id}/simulateagents:read
Assign a numberPOST /numbers/{id}/assignnumbers:write
1

Create the agent

Give it a name and a primary language. Capture data.id as your AGENT_ID.
curl -X POST https://builder.flowyte.com/api/v1/agents \
  -H "Authorization: Bearer $FLOWYTE_API_KEY" -H "Content-Type: application/json" \
  -d '{ "name": "Capital Comfort Heating & Air", "primaryLanguage": "en" }'
2

Give it knowledge

Add your service area, pricing, and FAQs. Ingestion is asynchronous — poll the source until status is indexed.
curl -X POST https://builder.flowyte.com/api/v1/agents/$AGENT_ID/knowledge/sources \
  -H "Authorization: Bearer $FLOWYTE_API_KEY" -H "Content-Type: application/json" \
  -d '{ "kind": "url", "label": "Services & pricing", "url": "https://capitalcomfort.com/services" }'
3

Connect your field-service software

Find your provider’s kind in GET /integrations/catalog, then start the connection. For an OAuth provider this returns an authorization link — open it once to approve access to your account.
curl -X POST https://builder.flowyte.com/api/v1/integrations/$KIND/connect \
  -H "Authorization: Bearer $FLOWYTE_API_KEY"
# → { "data": { "oauthUrl": "https://provider.example.com/oauth/authorize?…" } }
4

Provision its actions as skills

Turn the connected account into skills on the agent in one call. By default it provisions the key actions — recognize a customer (find_client), capture a request (create_lead), and check a job’s status (get_job_status).
curl -X POST https://builder.flowyte.com/api/v1/agents/$AGENT_ID/integrations/$KIND/provision \
  -H "Authorization: Bearer $FLOWYTE_API_KEY"
Now the agent can greet a returning caller by name, open a request for a new job, and read back a customer’s next scheduled visit.
5

Add an emergency transfer

For a burst pipe or a no-heat call, add a transfer skill that routes to your on-call person.
curl -X POST https://builder.flowyte.com/api/v1/agents/$AGENT_ID/skills \
  -H "Authorization: Bearer $FLOWYTE_API_KEY" -H "Content-Type: application/json" \
  -d '{
        "name": "Transfer to on-call",
        "description": "Transfer the caller to a person for emergencies like no heat, a gas smell, or a flooding leak.",
        "skillType": "transfer",
        "executionConfig": { "destination": "+14155550199" }
      }'
6

Publish

Editing changes a draft; phone and chat serve the last published version. Publish to freeze a version your channels can serve.
curl -X POST https://builder.flowyte.com/api/v1/agents/$AGENT_ID/publish \
  -H "Authorization: Bearer $FLOWYTE_API_KEY"
7

Simulate a call

Test before a real caller hits it. simulate streams over SSE — read it with fetch() streaming and stop on event: done.
curl -N -X POST https://builder.flowyte.com/api/v1/agents/$AGENT_ID/simulate \
  -H "Authorization: Bearer $FLOWYTE_API_KEY" -H "Content-Type: application/json" \
  -d '{ "message": "Hi, my furnace stopped working and I need someone out today.", "draftMode": false }'
8

Put it on a number

Buy a number and point it at the agent (search → reserve → purchase → assign). See Buy a number & go live.
No field-service integration? You can still capture requests by email or webhook and book to a connected calendar — the same shape, different skills.