# Getting Started (/docs/workflows/getting-started)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

This walkthrough builds a small workflow from scratch and puts it live. It
assumes you're in the workflow editor with a new, empty flow open. If any term is
unfamiliar, [Flow Basics](/docs/workflows/flow-basics) covers the concepts.

We'll build a voice flow that greets the caller, then routes to a live agent.

<Steps>
<Step>
### Add the first node

Click **Add Node** in the middle of the empty canvas (or right-click it, or press
`Cmd/Ctrl+K`) to search for a node, and add a **Play Message** node. This will greet the
caller.

</Step>

<Step>
### Configure it

Select the node to open the edit sidebar, and set its **Content** to a greeting —
for example:

```
Thanks for calling! Connecting you to an agent now.
```

You can personalize the greeting with a [variable](/docs/workflows/variables-and-data)
using the `$(name)` syntax if you have one available.

</Step>

<Step>
### Set the initiator

Every flow needs a starting point. Open the Play Message node's context menu and
set it as the **initiator** — this is where execution begins.

</Step>

<Step>
### Add and connect a second node

Add a **Transfer to Queue** node (this requires the Sharpen integration). Then
drag from the Play Message node's `default` exit handle to the Transfer to Queue
node to connect them. Choose the queue to route to in its fields.

</Step>

<Step>
### Check it

Choose **File → Verify Flow**. This checks the flow for problems that would block a
publish, such as an unset initiator or an empty required field. It does not execute the
flow — nothing runs until a real call arrives.

</Step>

<Step>
### Publish

When it behaves the way you want, click **Publish** to promote it to production.

<Callout type="warn">
    Publishing takes effect immediately — active traffic routed to this workflow
    starts using it right away.
</Callout>
</Step>
</Steps>

## What you built

A caller now hears your greeting and is handed to an agent queue. From here you
can branch the flow (route differently by time of day with **Time Control**, or
on a condition with **Condition**), gather and store data with
[variables](/docs/workflows/variables-and-data), or handle failures gracefully with
[error handling](/docs/workflows/error-handling).

## Next steps

<Cards>
    <Card
        title="Editing Nodes"
        href="/docs/workflows/editing-nodes"
        description="Fields, exits, and node management in depth."
    />
    <Card
        title="Variables & Data"
        href="/docs/workflows/variables-and-data"
        description="Carry data across your flow."
    />
    <Card
        title="Best Practices"
        href="/docs/workflows/best-practices"
        description="Keep growing flows readable."
    />
    <Card
        title="Node Reference"
        href="/docs/workflows/reference"
        description="Every node's fields and exits."
    />
</Cards>
