@helmdesk/sdk 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # @helmdesk/sdk
2
2
 
3
- Official Node.js SDK for the [Helmdesk](https://helmdesk.dev) API — helpdesk, transactional email, and knowledge base for developers.
3
+ [![npm version](https://img.shields.io/npm/v/@helmdesk/sdk.svg)](https://www.npmjs.com/package/@helmdesk/sdk)
4
+ [![license](https://img.shields.io/npm/l/@helmdesk/sdk.svg)](https://github.com/MoloksInc/helmdesk/blob/main/LICENSE)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/)
6
+
7
+ The official Node.js/TypeScript SDK for [Helmdesk](https://helmdesk.dev) -- a unified helpdesk, transactional email gateway, and knowledge base built for developers.
4
8
 
5
9
  ## Install
6
10
 
@@ -8,55 +12,248 @@ Official Node.js SDK for the [Helmdesk](https://helmdesk.dev) API — helpdesk,
8
12
  npm install @helmdesk/sdk
9
13
  ```
10
14
 
11
- ## Quick start
15
+ ## Quick Start
12
16
 
13
17
  ```ts
14
- import { HelmdeskClient } from '@helmdesk/sdk'
18
+ import { HelmdeskClient } from "@helmdesk/sdk";
19
+
20
+ const helmdesk = new HelmdeskClient({ apiKey: process.env.HELMDESK_API_KEY! });
21
+
22
+ const ticket = await helmdesk.tickets.create({
23
+ subject: "Cannot login",
24
+ body: "Getting a 403 error on the dashboard.",
25
+ customerEmail: "jane@example.com",
26
+ });
27
+ ```
28
+
29
+ ## API Reference
15
30
 
16
- const helmdesk = new HelmdeskClient({
17
- apiKey: process.env.HELMDESK_API_KEY!,
18
- })
31
+ ### Tickets
32
+
33
+ Manage support tickets -- create, list, update, and reply.
34
+
35
+ **List tickets**
36
+
37
+ ```ts
38
+ const { tickets, total } = await helmdesk.tickets.list({
39
+ status: "open",
40
+ priority: "high",
41
+ search: "login",
42
+ page: 1,
43
+ limit: 25,
44
+ });
45
+ ```
19
46
 
20
- // Send a transactional email
21
- await helmdesk.emails.send({
22
- templateKey: 'welcome',
23
- to: { email: 'user@example.com', name: 'Jane' },
24
- variables: { activationUrl: 'https://...' },
25
- })
47
+ **Get a ticket**
26
48
 
27
- // Create a support ticket
49
+ ```ts
50
+ const ticket = await helmdesk.tickets.get("ticket_id");
51
+ // Returns full detail: messages, tags, customer info
52
+ ```
53
+
54
+ **Create a ticket**
55
+
56
+ ```ts
28
57
  const ticket = await helmdesk.tickets.create({
29
- subject: 'Cannot login',
30
- body: 'Getting a 403 error...',
31
- customerEmail: 'user@example.com',
32
- })
58
+ subject: "Billing question",
59
+ body: "I was charged twice for my last invoice.",
60
+ customerEmail: "user@example.com",
61
+ customerName: "Jane Doe",
62
+ priority: "high",
63
+ category: "billing",
64
+ });
65
+ ```
66
+
67
+ **Update a ticket**
68
+
69
+ ```ts
70
+ const updated = await helmdesk.tickets.update("ticket_id", {
71
+ status: "resolved",
72
+ priority: "low",
73
+ category: "howto",
74
+ });
75
+ ```
76
+
77
+ **Add a message to a ticket**
78
+
79
+ ```ts
80
+ const message = await helmdesk.tickets.addMessage("ticket_id", {
81
+ body: "We've fixed the issue. Please try again.",
82
+ });
83
+ ```
84
+
85
+ ### Emails
86
+
87
+ Send transactional emails using Handlebars templates managed in your Helmdesk dashboard.
88
+
89
+ **Send an email**
90
+
91
+ ```ts
92
+ const result = await helmdesk.emails.send({
93
+ templateKey: "welcome",
94
+ to: { email: "jane@example.com", name: "Jane" },
95
+ variables: { activationUrl: "https://app.example.com/activate?token=abc" },
96
+ environment: "production",
97
+ });
98
+ ```
99
+
100
+ **Preview an email**
101
+
102
+ ```ts
103
+ const { subject, html } = await helmdesk.emails.preview({
104
+ templateKey: "welcome",
105
+ variables: { activationUrl: "https://example.com" },
106
+ });
107
+ ```
108
+
109
+ **Get a template's variable schema**
110
+
111
+ ```ts
112
+ const schema = await helmdesk.emails.getTemplateSchema("welcome");
113
+ // schema.variables: [{ name: 'activationUrl', type: 'string', required: true }]
114
+ ```
115
+
116
+ ### Articles
117
+
118
+ Search your published knowledge base articles.
33
119
 
34
- // Search knowledge base articles
35
- const results = await helmdesk.articles.search({ q: 'reset password' })
120
+ ```ts
121
+ const { articles, total } = await helmdesk.articles.search({
122
+ q: "reset password",
123
+ category: "account",
124
+ page: 1,
125
+ limit: 10,
126
+ });
127
+ ```
128
+
129
+ ### Customers
36
130
 
37
- // Import a Handlebars template
131
+ Track and manage customer profiles across tickets and emails.
132
+
133
+ **List customers**
134
+
135
+ ```ts
136
+ const { customers, total } = await helmdesk.customers.list({
137
+ search: "jane",
138
+ plan: "pro",
139
+ page: 1,
140
+ limit: 25,
141
+ });
142
+ ```
143
+
144
+ **Get a customer**
145
+
146
+ ```ts
147
+ const customer = await helmdesk.customers.get("customer_id");
148
+ // Includes recentTickets array
149
+ ```
150
+
151
+ **Upsert a customer**
152
+
153
+ ```ts
154
+ const customer = await helmdesk.customers.upsert({
155
+ email: "jane@example.com",
156
+ name: "Jane Doe",
157
+ plan: "pro",
158
+ metadata: JSON.stringify({ companyId: "acme-123" }),
159
+ });
160
+ ```
161
+
162
+ ## Error Handling
163
+
164
+ All API errors throw a `HelmdeskError` with structured fields for programmatic handling.
165
+
166
+ ```ts
167
+ import { HelmdeskClient, HelmdeskError } from "@helmdesk/sdk";
168
+
169
+ try {
170
+ await helmdesk.tickets.get("nonexistent_id");
171
+ } catch (err) {
172
+ if (err instanceof HelmdeskError) {
173
+ console.error(err.status); // 404
174
+ console.error(err.code); // 'not_found'
175
+ console.error(err.message); // 'Ticket not found'
176
+ }
177
+ }
178
+ ```
179
+
180
+ ## Idempotency
181
+
182
+ The `emails.send()` method accepts an optional `idempotencyKey` to safely retry email sends without duplicates. If a request with the same key has already been processed, the API returns the original result.
183
+
184
+ ```ts
185
+ await helmdesk.emails.send(
186
+ {
187
+ templateKey: "order-confirmation",
188
+ to: { email: "buyer@example.com" },
189
+ variables: { orderId: "ORD-4821" },
190
+ },
191
+ { idempotencyKey: "order-4821-confirmation" }
192
+ );
193
+ ```
194
+
195
+ ## Template Import
196
+
197
+ Import Handlebars `.hbs` files as templates, layouts, or partials directly from your codebase or CI pipeline.
198
+
199
+ **Project-scoped template**
200
+
201
+ ```ts
38
202
  await helmdesk.emails.templates.import(
39
- '<h1>Hello {{name}}</h1>',
40
- 'welcome.hbs',
41
- { type: 'template' }
42
- )
203
+ '<h1>Welcome, {{name}}</h1><p>Thanks for signing up.</p>',
204
+ "welcome.hbs",
205
+ {
206
+ type: "template",
207
+ subject: "Welcome to {{brandName}}!",
208
+ }
209
+ );
43
210
  ```
44
211
 
45
- ## Resources
212
+ **Account-scoped partial (shared across all projects)**
213
+
214
+ ```ts
215
+ await helmdesk.emails.templates.import(
216
+ '<footer>{{companyName}} | {{unsubscribeLink}}</footer>',
217
+ "footer.hbs",
218
+ {
219
+ type: "partial",
220
+ scope: "account",
221
+ }
222
+ );
223
+ ```
224
+
225
+ Import options:
226
+
227
+ | Option | Type | Description |
228
+ |---|---|---|
229
+ | `type` | `'template' \| 'layout' \| 'partial'` | File type. Defaults to `'template'`. |
230
+ | `scope` | `'project' \| 'account'` | Project-scoped or shared across all projects. Defaults to `'project'`. |
231
+ | `key` | `string` | Override the template key. Defaults to the filename without `.hbs`. |
232
+ | `name` | `string` | Override the display name. |
233
+ | `subject` | `string` | Subject line. Can also be set via a `{{!-- subject: ... --}}` comment in the template. |
234
+
235
+ ## Runtime Support
236
+
237
+ The SDK uses the native `fetch` API with no Node.js-specific dependencies.
238
+
239
+ - Node.js 18+
240
+ - Deno
241
+ - Bun
242
+ - Cloudflare Workers
243
+
244
+ ## Why Helmdesk?
46
245
 
47
- - `helmdesk.tickets` create, list, get, update, addMessage
48
- - `helmdesk.emails` — send, preview, getTemplateSchema
49
- - `helmdesk.emails.templates` — import (project or account scope)
50
- - `helmdesk.articles` — search
246
+ Most helpdesk tools are built for sales teams, not developers. They charge per seat, lock AI behind usage fees, and offer no API-first workflow.
51
247
 
52
- ## Requirements
248
+ Intercom starts at $29/seat with an additional $0.99 per AI resolution. HelpScout charges $25/user plus $0.75 per AI interaction. Crisp costs $95/workspace for their business tier.
53
249
 
54
- - Node.js 18+ (uses native `fetch`)
55
- - Works in Deno, Bun, and Cloudflare Workers
250
+ Helmdesk is $19/month for up to 5 projects. AI features are included at every tier -- no per-resolution fees, no per-seat pricing. You get a helpdesk, transactional email gateway, and knowledge base in one platform with a full API and this SDK from day one.
56
251
 
57
- ## Documentation
252
+ ## Links
58
253
 
59
- Full API docs at [helmdesk.dev/docs](https://helmdesk.dev/docs)
254
+ - [Homepage](https://helmdesk.dev)
255
+ - [Documentation](https://helmdesk.dev/docs)
256
+ - [Pricing](https://helmdesk.dev/pricing)
60
257
 
61
258
  ## License
62
259
 
package/dist/client.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { Ticket, TicketDetail, TicketListResult, TicketListFilters, CreateTicketInput, UpdateTicketInput, CreateMessageInput, TicketMessage } from './types/tickets';
2
2
  import type { SendEmailInput, SendEmailResult, PreviewEmailInput, PreviewEmailResult, TemplateSchema, ImportResult, ImportOptions } from './types/emails';
3
3
  import type { ArticleSearchResult, ArticleSearchFilters } from './types/articles';
4
+ import type { Customer, CustomerWithTickets, CustomerListResult, CustomerListFilters, UpsertCustomerInput } from './types/customers';
4
5
  export interface HelmdeskClientOptions {
5
6
  apiKey: string;
6
7
  baseUrl?: string;
@@ -11,6 +12,7 @@ export declare class HelmdeskClient {
11
12
  readonly tickets: TicketsResource;
12
13
  readonly emails: EmailsResource;
13
14
  readonly articles: ArticlesResource;
15
+ readonly customers: CustomersResource;
14
16
  constructor(options: HelmdeskClientOptions);
15
17
  /** Make a JSON API request. Used internally by resource classes. */
16
18
  request<T>(method: string, path: string, options?: {
@@ -64,6 +66,13 @@ declare class TemplatesResource {
64
66
  */
65
67
  import(fileContent: string | Blob, fileName: string, options?: ImportOptions): Promise<ImportResult>;
66
68
  }
69
+ declare class CustomersResource {
70
+ private client;
71
+ constructor(client: HelmdeskClient);
72
+ list(filters?: CustomerListFilters): Promise<CustomerListResult>;
73
+ get(customerId: string): Promise<CustomerWithTickets>;
74
+ upsert(input: UpsertCustomerInput): Promise<Customer>;
75
+ }
67
76
  declare class ArticlesResource {
68
77
  private client;
69
78
  constructor(client: HelmdeskClient);
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -5,6 +5,7 @@ export class HelmdeskClient {
5
5
  tickets;
6
6
  emails;
7
7
  articles;
8
+ customers;
8
9
  constructor(options) {
9
10
  if (!options.apiKey)
10
11
  throw new Error('apiKey is required');
@@ -13,6 +14,7 @@ export class HelmdeskClient {
13
14
  this.tickets = new TicketsResource(this);
14
15
  this.emails = new EmailsResource(this);
15
16
  this.articles = new ArticlesResource(this);
17
+ this.customers = new CustomersResource(this);
16
18
  }
17
19
  /** Make a JSON API request. Used internally by resource classes. */
18
20
  async request(method, path, options) {
@@ -165,6 +167,28 @@ class TemplatesResource {
165
167
  return this.client.upload(path, formData);
166
168
  }
167
169
  }
170
+ class CustomersResource {
171
+ client;
172
+ constructor(client) {
173
+ this.client = client;
174
+ }
175
+ async list(filters) {
176
+ return this.client.request('GET', '/customers', {
177
+ params: {
178
+ search: filters?.search,
179
+ plan: filters?.plan,
180
+ page: filters?.page?.toString(),
181
+ limit: filters?.limit?.toString(),
182
+ },
183
+ });
184
+ }
185
+ async get(customerId) {
186
+ return this.client.request('GET', `/customers/${customerId}`);
187
+ }
188
+ async upsert(input) {
189
+ return this.client.request('PUT', '/customers', { body: input });
190
+ }
191
+ }
168
192
  class ArticlesResource {
169
193
  client;
170
194
  constructor(client) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,6 @@ export type { HelmdeskClientOptions } from './client';
3
3
  export type { Ticket, TicketDetail, TicketMessage, TicketListResult, TicketListFilters, CreateTicketInput, UpdateTicketInput, CreateMessageInput, } from './types/tickets';
4
4
  export type { SendEmailInput, SendEmailResult, PreviewEmailInput, PreviewEmailResult, TemplateSchema, TemplateVariable, ImportOptions, ImportResult, } from './types/emails';
5
5
  export type { ArticleSearchResult, ArticleSearchFilters, } from './types/articles';
6
+ export type { Customer, CustomerWithTickets, CustomerListResult, CustomerListFilters, UpsertCustomerInput, } from './types/customers';
6
7
  export type { HelmdeskError } from './types/errors';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,41 @@
1
+ export interface Customer {
2
+ id: string;
3
+ email: string;
4
+ name?: string | null;
5
+ plan?: string | null;
6
+ avatarUrl?: string | null;
7
+ metadata?: string | null;
8
+ lastSeenAt?: string | null;
9
+ createdAt: string;
10
+ updatedAt: string;
11
+ }
12
+ export interface CustomerWithTickets extends Customer {
13
+ recentTickets: {
14
+ id: string;
15
+ number: number;
16
+ subject: string;
17
+ status: string;
18
+ createdAt: string;
19
+ }[];
20
+ }
21
+ export interface CustomerListResult {
22
+ customers: (Customer & {
23
+ ticketCount: number;
24
+ })[];
25
+ total: number;
26
+ page: number;
27
+ limit: number;
28
+ }
29
+ export interface CustomerListFilters {
30
+ search?: string;
31
+ plan?: string;
32
+ page?: number;
33
+ limit?: number;
34
+ }
35
+ export interface UpsertCustomerInput {
36
+ email: string;
37
+ name?: string;
38
+ plan?: string;
39
+ metadata?: string;
40
+ }
41
+ //# sourceMappingURL=customers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../src/types/customers.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;KAClB,EAAE,CAAA;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,CAAC,QAAQ,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAA;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=customers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/types/customers.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helmdesk/sdk",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Official Node.js SDK for the Helmdesk API",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",