SaaS 平台支持台
SupDesk Team
为你的 SaaS 平台添加客户支持
SupDesk 专为需要多租户支持、API 访问和 webhooks 的 SaaS 产品而打造。无需从零构建,即可扩展你的支持体系。
面向 SaaS 产品的功能
客户门户
每个租户在 support.organization.com 上都有自己的品牌化反馈门户。
API 优先的支持 所有功能都可通过 REST API 使用。非常适合在你的管理后台中嵌入支持功能。
用量计量 跟踪每个租户的活跃用户数、反馈量和提交次数。
导出与分析 生成 CSV 报告,供利益相关方审阅。监测各租户之间的趋势。
SaaS 团队的定价
所有套餐都包含无限租户,且不按客户数量收费。查看定价
今天就构建你的 SaaS 支持系统
开始收集来自所有客户的反馈。免费开始——无需信用卡。在 supdesk.app 注册
用于后端集成的服务端SDK
从每个SDK的GitHub存储库动态加载的实时代码示例。
import { SupDesk } from "supdesk";
const supdesk = new SupDesk({ apiKey: process.env.SUPDESK_API_KEY! });
// Auto-pages: iterating walks every page for you.
for await (const submission of await supdesk.submissions.list({
status: "open",
})) {
console.log(submission.title);
}
await supdesk.submissions.create({
type: "bug",
title: "Export button does nothing",
email: "user@example.com",
body: "Clicking Export on the reports page has no effect.",
});from supdesk import SupDesk
supdesk = SupDesk() # api_key=... or $SUPDESK_API_KEY
# Auto-pages: iterating walks every page for you.
for submission in supdesk.submissions.list(status="open"):
print(submission.title)
supdesk.submissions.create(
type="bug",
title="Export button does nothing",
email="user@example.com",
body="Clicking Export on the reports page has no effect.",
)import "github.com/rabinapps/supdesk-go/supdesk"
client, err := supdesk.New(os.Getenv("SUPDESK_API_KEY"))
if err != nil {
log.Fatal(err)
}
page, err := client.Submissions.List(ctx, supdesk.SubmissionsListParams{
Status: ptr("open"),
})
if err != nil {
return err
}
// Auto-pages: All walks every page for you.
for sub, err := range page.All(ctx) {
if err != nil {
return err
}
fmt.Println(sub.Title)
}
_, err = client.Submissions.Create(ctx, supdesk.SubmissionsCreateParams{
Type: supdesk.SubmissionTypeBug,
Title: "Export button does nothing",
Email: "user@example.com",
Body: "Clicking Export on the reports page has no effect.",
})import 'dart:io';
import 'package:supdesk/supdesk.dart';
final supdesk = SupDesk(apiKey: Platform.environment['SUPDESK_API_KEY']!);
// Auto-pages: the stream walks every page for you.
final page = await supdesk.submissions.list(status: PostStatus.open);
await for (final submission in page.autoPaging()) {
print(submission.title);
}
await supdesk.submissions.create(
type: SubmissionType.bug,
title: 'Export button does nothing',
email: 'user@example.com',
body: 'Clicking Export on the reports page has no effect.',
);