# Interface: SyncTableOptions\<K, L, ParamDefsT, SchemaT, ContextT, PermissionsContextT>

Defined in: [api.ts:2309](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2309)

Input options for defining a sync table. See [makeSyncTable](../../functions/makeSyncTable/).

## Type Parameters

| Type Parameter | | --- | | `K` *extends* `string` | | `L` *extends* `string` | | `ParamDefsT` *extends* [`ParamDefs`](../../type-aliases/ParamDefs/) | | `SchemaT` *extends* [`ObjectSchemaDefinition`](../ObjectSchemaDefinition/)\<`K`, `L`> | | `ContextT` *extends* [`SyncExecutionContext`](../SyncExecutionContext/)\<`any`, `any`> | | `PermissionsContextT` *extends* `SyncPassthroughData` |

## Properties

### connectionRequirement?

> `optional` **connectionRequirement**: [`ConnectionRequirement`](../../enumerations/ConnectionRequirement/)

Defined in: [api.ts:2374](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2374)

A [ConnectionRequirement](../../enumerations/ConnectionRequirement/) that will be used for all formulas contained within this sync table (including autocomplete formulas).

______________________________________________________________________

### description?

> `optional` **description**: `string`

Defined in: [api.ts:2338](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2338)

The description of the sync table. This is shown to users in the Coda UI. This should describe what the sync table does in more detailed language. For example, the description for a 'Products' sync table could be: 'Returns products from the e-commerce platform.'

______________________________________________________________________

### displayName?

> `optional` **displayName**: `string`

Defined in: [api.ts:2331](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2331)

This is the name shown to users in the Coda UI. If not present, [SyncTableOptions.name](#name) will be used. Changing this value will not affect existing tables and only affects newly created tables.

______________________________________________________________________

### dynamicOptions?

> `optional` **dynamicOptions**: [`DynamicOptions`](../DynamicOptions/)

Defined in: [api.ts:2379](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2379)

A set of options used internally by [makeDynamicSyncTable](../../functions/makeDynamicSyncTable/), or for static sync tables that have a dynamic schema.

______________________________________________________________________

### formula

> **formula**: [`FormulaOptions`](../../type-aliases/FormulaOptions/)\<`ParamDefsT`, [`SyncFormulaDef`](../SyncFormulaDef/)\<`K`, `L`, `ParamDefsT`, `SchemaT`, `ContextT`, `PermissionsContextT`>>

Defined in: [api.ts:2369](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2369)

The definition of the formula that implements this sync. This is a Coda packs formula that returns an array of objects fitting the given schema and optionally a [Continuation](../Continuation/). (The [SyncFormulaDef.name](../SyncFormulaDef/#name) is redundant and should be the same as the `name` parameter here. These will eventually be consolidated.)

______________________________________________________________________

### identityName

> **identityName**: `string`

Defined in: [api.ts:2357](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2357)

The "unique identifier" for the entity being synced. This will serve as the unique id for this table, and must be unique across other sync tables for your pack. This is often the singular form of the table name, e.g. if your table name was 'Products' you might choose 'Product' as the identity name.

When returning objects from other syncs or formulas, you may create Coda references to objects in this table by defining an [Identity](../Identity/) in that schema that refers to this identity name.

For example, if your identity name was 'Product', another formula or sync could return shell objects that reference rows in this table, so long as they contain the id of the object, and the schema is declared as `{identity: {name: 'Products'}}`.

______________________________________________________________________

### indexing?

> `optional` **indexing**: `object`

Defined in: [api.ts:2405](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2405)

Options to control the default indexing (ingestion) behavior for this sync table when setting up a connector. Use this to exclude sync tables from ingestion by default when they aren't relevant to most users, while still allowing users to opt in.

#### Example

```
pack.addSyncTable({
  name: "MessagesSharedMailbox",
  // ...
  indexing: {
    default: sdk.DataIndexing.Exclude,
  },
});
```

#### default

> **default**: [`DataIndexing`](../../enumerations/DataIndexing/)

The default indexing status for this sync table. See [DataIndexing](../../enumerations/DataIndexing/).

______________________________________________________________________

### instructions?

> `optional` **instructions**: `string`

Defined in: [api.ts:2343](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2343)

Instructions for LLMs on how to search this sync table. This overrides the description when the sync table is used as a knowledge search tool in an agent.

______________________________________________________________________

### name

> **name**: `string`

Defined in: [api.ts:2325](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2325)

The name of the sync table. This is shown to users in the Coda UI if displayName is not present. This should describe the entities being synced. For example, a sync table that syncs products from an e-commerce platform should be called 'Products'. This name must not contain spaces.

Important: This value acts as a unique ID for the table, and updating it later is a breaking change. If you want to change the value shown to the users, set `displayName` instead.

______________________________________________________________________

### schema

> **schema**: `SchemaT`

Defined in: [api.ts:2362](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/api.ts#L2362)

The definition of the schema that describes a single response object. For example, the schema for a single product. The sync formula will return an array of objects that fit this schema.
