or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

components.mdconfiguration.mdindex.mdstreams.md

streams.mddocs/

0

# Data Streams

1

2

Available data streams for extracting different types of Zendesk Chat data with their synchronization modes and API endpoints.

3

4

## Capabilities

5

6

### Stream Discovery

7

8

Stream metadata is available through the Airbyte discover command which returns a catalog of available streams.

9

10

```bash { .api }

11

# Discover all streams and their schemas

12

docker run -v $(pwd):/config airbyte/source-zendesk-chat:1.2.16 discover \

13

--config /config/config.json

14

15

# The discover command outputs an AirbyteCatalog with stream metadata:

16

# - Stream names and namespaces

17

# - JSON schemas for each stream

18

# - Supported sync modes (full_refresh, incremental)

19

# - Primary keys and cursor fields for incremental streams

20

```

21

22

### Full Refresh Streams

23

24

Streams that extract complete datasets on each synchronization run, as defined in the manifest.

25

26

```yaml { .api }

27

# Full refresh only streams (from manifest.yaml)

28

accounts:

29

endpoint: "account"

30

http_method: "GET"

31

primary_key: ["account_key"]

32

sync_modes: ["full_refresh"]

33

description: "Account information and settings"

34

35

departments:

36

endpoint: "departments"

37

http_method: "GET"

38

primary_key: ["id"]

39

sync_modes: ["full_refresh"]

40

description: "Chat departments configuration"

41

42

goals:

43

endpoint: "goals"

44

http_method: "GET"

45

primary_key: ["id"]

46

sync_modes: ["full_refresh"]

47

description: "Chat goals and targets configuration"

48

49

roles:

50

endpoint: "roles"

51

http_method: "GET"

52

primary_key: ["id"]

53

sync_modes: ["full_refresh"]

54

description: "User roles and permissions"

55

56

routing_settings:

57

endpoint: "routing_settings/account"

58

http_method: "GET"

59

sync_modes: ["full_refresh"]

60

description: "Chat routing configuration settings"

61

62

shortcuts:

63

endpoint: "shortcuts"

64

http_method: "GET"

65

primary_key: ["id"]

66

sync_modes: ["full_refresh"]

67

description: "Predefined chat shortcuts and responses"

68

69

skills:

70

endpoint: "skills"

71

http_method: "GET"

72

primary_key: ["id"]

73

sync_modes: ["full_refresh"]

74

description: "Agent skills configuration"

75

76

triggers:

77

endpoint: "triggers"

78

http_method: "GET"

79

primary_key: ["id"]

80

sync_modes: ["full_refresh"]

81

description: "Automated chat triggers and rules"

82

```

83

84

### Incremental Streams

85

86

Streams that support incremental synchronization using cursor fields for efficient data updates.

87

88

```yaml { .api }

89

# Incremental streams (from manifest.yaml)

90

agents:

91

endpoint: "agents"

92

http_method: "GET"

93

primary_key: ["id"]

94

sync_modes: ["full_refresh", "incremental"]

95

cursor_field: "id"

96

pagination: "cursor_based"

97

description: "List of chat agents with incremental sync support"

98

99

agent_timeline:

100

endpoint: "incremental/agent_timeline"

101

http_method: "GET"

102

primary_key: ["id"]

103

sync_modes: ["full_refresh", "incremental"]

104

cursor_field: "start_time"

105

description: "Timeline events for agents with time-based incremental sync"

106

107

bans:

108

endpoint: "bans"

109

http_method: "GET"

110

primary_key: ["id"]

111

sync_modes: ["full_refresh", "incremental"]

112

cursor_field: "id"

113

custom_extractor: "ZendeskChatBansRecordExtractor"

114

description: "Banned visitors and IP addresses with custom record extraction"

115

116

chats:

117

endpoint: "incremental/chats"

118

http_method: "GET"

119

primary_key: ["id"]

120

sync_modes: ["full_refresh", "incremental"]

121

cursor_field: "update_timestamp"

122

description: "Chat conversations and message data"

123

```

124

125

### Stream Synchronization

126

127

Execute stream synchronization using the Airbyte read command with catalog configuration.

128

129

```bash { .api }

130

# Synchronize specific streams by configuring catalog.json

131

# Create configured catalog with selected streams and sync modes

132

cat > catalog.json << EOF

133

{

134

"streams": [

135

{

136

"stream": {

137

"name": "agents",

138

"json_schema": {...},

139

"supported_sync_modes": ["full_refresh", "incremental"]

140

},

141

"sync_mode": "incremental",

142

"cursor_field": ["id"],

143

"destination_sync_mode": "append"

144

}

145

]

146

}

147

EOF

148

149

# Run sync with configured catalog

150

docker run -v $(pwd):/config airbyte/source-zendesk-chat:1.2.16 read \

151

--config /config/config.json \

152

--catalog /config/catalog.json \

153

--state /config/state.json

154

```

155

156

### Pagination Configuration

157

158

Pagination is configured in the manifest and handled automatically by the connector.

159

160

```yaml { .api }

161

# Pagination configuration examples from manifest

162

cursor_pagination:

163

type: "CursorPagination"

164

cursor_value: "{{ last_record['id'] + 1 }}"

165

page_size: 100

166

stop_condition: "{{ not last_record }}"

167

page_token_option:

168

type: "RequestOption"

169

inject_into: "request_parameter"

170

field_name: "since_id"

171

172

datetime_pagination:

173

type: "CursorPagination"

174

cursor_value: "{{ response.get('end_time', {}) }}"

175

page_size: 1000

176

stop_condition: "{{ last_page_size < 1_000 }}"

177

```

178

179

### Usage Examples

180

181

```bash

182

# Discover streams to see available sync modes

183

docker run -v $(pwd):/config airbyte/source-zendesk-chat:1.2.16 discover \

184

--config /config/config.json

185

186

# Full refresh sync of departments stream

187

echo '{

188

"streams": [{

189

"stream": {"name": "departments", "json_schema": {}, "supported_sync_modes": ["full_refresh"]},

190

"sync_mode": "full_refresh",

191

"destination_sync_mode": "overwrite"

192

}]

193

}' > catalog.json

194

195

docker run -v $(pwd):/config airbyte/source-zendesk-chat:1.2.16 read \

196

--config /config/config.json \

197

--catalog /config/catalog.json

198

199

# Incremental sync of agents stream

200

echo '{

201

"streams": [{

202

"stream": {"name": "agents", "json_schema": {}, "supported_sync_modes": ["full_refresh", "incremental"]},

203

"sync_mode": "incremental",

204

"cursor_field": ["id"],

205

"destination_sync_mode": "append"

206

}]

207

}' > catalog.json

208

209

docker run -v $(pwd):/config airbyte/source-zendesk-chat:1.2.16 read \

210

--config /config/config.json \

211

--catalog /config/catalog.json

212

```

213

214

## Types

215

216

```json { .api }

217

{

218

"AirbyteStream": {

219

"type": "object",

220

"properties": {

221

"name": {"type": "string"},

222

"json_schema": {"type": "object"},

223

"supported_sync_modes": {

224

"type": "array",

225

"items": {"enum": ["full_refresh", "incremental"]}

226

},

227

"source_defined_cursor": {"type": "boolean"},

228

"default_cursor_field": {"type": "array", "items": {"type": "string"}},

229

"source_defined_primary_key": {"type": "array"}

230

}

231

},

232

"ConfiguredAirbyteStream": {

233

"type": "object",

234

"properties": {

235

"stream": {"$ref": "#/AirbyteStream"},

236

"sync_mode": {"enum": ["full_refresh", "incremental"]},

237

"cursor_field": {"type": "array", "items": {"type": "string"}},

238

"destination_sync_mode": {"enum": ["overwrite", "append", "append_dedup"]}

239

}

240

},

241

"SyncMode": {"enum": ["full_refresh", "incremental"]},

242

"DestinationSyncMode": {"enum": ["overwrite", "append", "append_dedup"]},

243

"AirbyteRecord": {

244

"type": "object",

245

"properties": {

246

"stream": {"type": "string"},

247

"data": {"type": "object"},

248

"emitted_at": {"type": "integer"}

249

}

250

}

251

}

252

```