## List template variables

`client.Sequence.ListTemplateVariables(ctx) (*SequenceListTemplateVariablesResponse, error)`

**get** `/v1/sequences/template/variables`

Lists the variables a sequence template may use: the first and last name, the contact’s and its first account’s fields of a type a message can print, and the sender’s name and email. Use an entry’s `ref` in a send step’s subject or body. A variable needs a fallback for contacts missing the value: `{{ {attr:ad_…} }}` is written `{{ coalesce({attr:ad_…}, "fallback") }}`, and one without a fallback is refused when the draft is saved. Anything else inside `{{ }}` is refused too.

**[Required scopes](/using-the-api/scopes/):** `sequences:read`, `contacts:read` and `accounts:read`

**[Rate limit category](/using-the-api/rate-limits/):** Read

### Returns

- `type SequenceListTemplateVariablesResponse struct{…}`

  - `Data []SequenceListTemplateVariablesResponseData`

    - `Field SequenceListTemplateVariablesResponseDataField`

      The field the variable reads; null for built-in variables.

      - `ID string`

        The `ad_` id of the field, as the field-definitions endpoints list it.

      - `ValueType string`

        Type of the field.

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeAddress SequenceListTemplateVariablesResponseDataFieldValueType = "ADDRESS"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeCheckbox SequenceListTemplateVariablesResponseDataFieldValueType = "CHECKBOX"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeCurrency SequenceListTemplateVariablesResponseDataFieldValueType = "CURRENCY"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeDatetime SequenceListTemplateVariablesResponseDataFieldValueType = "DATETIME"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeEmail SequenceListTemplateVariablesResponseDataFieldValueType = "EMAIL"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeFullName SequenceListTemplateVariablesResponseDataFieldValueType = "FULL_NAME"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeMarkdown SequenceListTemplateVariablesResponseDataFieldValueType = "MARKDOWN"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeMultiSelect SequenceListTemplateVariablesResponseDataFieldValueType = "MULTI_SELECT"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeNumber SequenceListTemplateVariablesResponseDataFieldValueType = "NUMBER"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeSingleSelect SequenceListTemplateVariablesResponseDataFieldValueType = "SINGLE_SELECT"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeSocialHandle SequenceListTemplateVariablesResponseDataFieldValueType = "SOCIAL_HANDLE"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeTelephone SequenceListTemplateVariablesResponseDataFieldValueType = "TELEPHONE"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeText SequenceListTemplateVariablesResponseDataFieldValueType = "TEXT"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeURL SequenceListTemplateVariablesResponseDataFieldValueType = "URL"`

        - `const SequenceListTemplateVariablesResponseDataFieldValueTypeHTML SequenceListTemplateVariablesResponseDataFieldValueType = "HTML"`

    - `Group string`

      Whose value the variable prints: the enrolled contact, its first account, or the step’s sender.

      - `const SequenceListTemplateVariablesResponseDataGroupContact SequenceListTemplateVariablesResponseDataGroup = "contact"`

      - `const SequenceListTemplateVariablesResponseDataGroupAccount SequenceListTemplateVariablesResponseDataGroup = "account"`

      - `const SequenceListTemplateVariablesResponseDataGroupSender SequenceListTemplateVariablesResponseDataGroup = "sender"`

    - `Label string`

      Name of the variable, as the editor shows it.

    - `Ref string`

      The variable, e.g. `{{ {attr:ad_…} }}`. A variable needs a fallback for contacts missing the value: `{{ {attr:ad_…} }}` is written `{{ coalesce({attr:ad_…}, "fallback") }}`, and one without a fallback is refused when the draft is saved.

  - `Object SequenceListTemplateVariablesResponseObject`

    - `const SequenceListTemplateVariablesResponseObjectList SequenceListTemplateVariablesResponseObject = "list"`

  - `TotalCount int64`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/Lightfld/lightfield-go"
  "github.com/Lightfld/lightfield-go/option"
)

func main() {
  client := githubcomlightfldlightfieldgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  sequenceListTemplateVariablesResponse, err := client.Sequence.ListTemplateVariables(context.TODO())
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", sequenceListTemplateVariablesResponse.Data)
}
```

#### Response

```json
{
  "data": [
    {
      "field": {
        "id": "id",
        "valueType": "ADDRESS"
      },
      "group": "contact",
      "label": "label",
      "ref": "ref"
    }
  ],
  "object": "list",
  "totalCount": -9007199254740991
}
```
