# Templates

Templates are starter projects for voice, SMS, and AI use cases. Each template includes a README with setup instructions — that README is your getting-started guide for that template.

## Browse Templates

```bash
sinch templates list                          # all templates
sinch templates list --runtime node           # Node.js only
sinch templates list --runtime csharp         # C# only
sinch templates show node/simple-voice-ivr    # full details
```

Templates are also browsable in the dashboard.

## Create a Function from a Template

```bash
sinch functions init simple-voice-ivr --name my-ivr
```

Downloads the template, creates the directory, installs dependencies, and prompts for required variables and secrets.

## sinch.json

Every template includes a `sinch.json` that configures the function:

```json
{
  "name": "my-ivr",
  "runtime": "node",
  "description": "A voice IVR for handling inbound calls",
  "variables": {
    "COMPANY_NAME": "Acme Corp",
    "FORWARD_NUMBER": "+15559876543"
  }
}
```

| Field | Required | Description |
|  --- | --- | --- |
| `name` | Yes | Function name, used as the deployment identifier |
| `runtime` | Yes | `node` or `csharp` |
| `description` | No | Human-readable description |
| `variables` | No | Non-secret environment variables |


After the first deployment, the CLI adds `functionId` so subsequent commands find the function automatically.