Yardım merkezi API
Yardım merkezi modülünün tüm işlemleri (8) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Müşterileriniz ve destek ekibiniz için kategorilere ayrılmış yardım makaleleri.
Modül kodu help_center · 8 işlem · 2 veri modeli · 7 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: help_center (hepsi), help_center:read (yalnız okuma) ya da help_center:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
help_articles | help_article | /api/v1/help_articles | |||
help_categories | help_category | /api/v1/help_categories |
Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.
İşlemler
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
help_center.archive_article | help_center:write | Arşivle |
help_center.create_article | help_center:write | Makale taslağı yaz |
help_center.delete_article | help_center:manage | Makaleyi sil |
help_center.delete_category | help_center:manage | Kategoriyi sil |
help_center.publish_article | help_center:write | Yayımla |
help_center.save_category | help_center:manage | Kategoriyi kaydet |
help_center.unpublish_article | help_center:write | Taslağa geri al |
help_center.update_article | help_center:write | Makaleyi düzenle |
help_center.archive_article
Arşivle — Bir makaleyi silmeden kullanımdan kaldırır.
Gereken izin help_center:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/help_articles/{id}/actions/archive_article- Asıl adres:
POST /api/v1/actions/help_center.archive_article
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Makale · kimliği: help_article |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_article_not_found | Makale bulunmalı. |
help_article_already_in_state | Makale zaten bu durumda olmamalı. |
Yayımladığı olaylar: help_center.article_archived
Neye yazar: help_article (update) — Marks it archived
curl -X POST https://app.getera.io/api/v1/help_articles/HELP_ARTICLE_ID/actions/archive_article \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"help_center.article_archived"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpArticles.archiveArticle("HELP_ARTICLE_ID")era help_articles archive_article HELP_ARTICLE_ID{
"name": "era__help_center__archive_article",
"arguments": {
"id": "HELP_ARTICLE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_article_not_found, help_article_already_in_state · 429 çok sık istek
help_center.create_article
Makale taslağı yaz — Taslak olarak yeni bir yardım makalesi.
Gereken izin help_center:write · veriyi değiştirir
https://app.getera.io/api/v1/help_articles/actions/create_article- Asıl adres:
POST /api/v1/actions/help_center.create_article
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
title | string | evet | Başlık · en çok 300 |
description | string | Özet · en çok 1000 | |
content | string | İçerik · en çok 200000 | |
categoryId | uuid | Kategori · kimliği: help_category | |
locale | string | Dil · en çok 10 | |
position | number | Konum | |
metaTitle | string | Arama başlığı · en çok 255 | |
metaDescription | string | Arama açıklaması · en çok 1000 | |
metaTags | object / array | Etiketler |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_category_not_found | Belirtilen kategori bulunmalı. |
help_article_invalid_tags | Etiketler en fazla 30 kelimelik bir liste olmalı. |
Yayımladığı olaylar: help_center.article_created
Neye yazar: help_article (insert) — Writes the draft
curl -X POST https://app.getera.io/api/v1/help_articles/actions/create_article \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"help_center.article_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpArticles.createArticle({
title: "Title"
})era help_articles create_article \
--title "Title"{
"name": "era__help_center__create_article",
"arguments": {
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_category_not_found, help_article_invalid_tags · 429 çok sık istek
help_center.delete_article
Makaleyi sil — Makaleyi kalıcı olarak kaldırır. Saklamak için arşivleyin.
Gereken izin help_center:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/help_articles/{id}/actions/delete_article- Asıl adres:
POST /api/v1/actions/help_center.delete_article
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Makale · kimliği: help_article |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_article_not_found | Makale bulunmalı. |
Yayımladığı olaylar: help_center.article_deleted
Neye yazar: help_article (delete) — Deletes the article
curl -X POST https://app.getera.io/api/v1/help_articles/HELP_ARTICLE_ID/actions/delete_article \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"help_center.article_deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpArticles.deleteArticle("HELP_ARTICLE_ID")era help_articles delete_article HELP_ARTICLE_ID{
"name": "era__help_center__delete_article",
"arguments": {
"id": "HELP_ARTICLE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_article_not_found · 429 çok sık istek
help_center.delete_category
Kategoriyi sil — Boş bir kategoriyi kaldırır.
Gereken izin help_center:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/help_categories/{id}/actions/delete_category- Asıl adres:
POST /api/v1/actions/help_center.delete_category
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Kategori · kimliği: help_category |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_category_not_found | Belirtilen kategori bulunmalı. |
help_category_in_use | Yayında makaleleri olan bir kategori kalır. |
Yayımladığı olaylar: help_center.category_changed
Neye yazar: help_category (delete) — Deletes the category
curl -X POST https://app.getera.io/api/v1/help_categories/HELP_CATEGORY_ID/actions/delete_category \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"help_center.category_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpCategories.deleteCategory("HELP_CATEGORY_ID")era help_categories delete_category HELP_CATEGORY_ID{
"name": "era__help_center__delete_category",
"arguments": {
"id": "HELP_CATEGORY_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_category_not_found, help_category_in_use · 429 çok sık istek
help_center.publish_article
Yayımla — Makaleyi herkese açık yapar; içerik zorunludur.
Gereken izin help_center:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/help_articles/{id}/actions/publish_article- Asıl adres:
POST /api/v1/actions/help_center.publish_article
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Makale · kimliği: help_article |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_article_not_found | Makale bulunmalı. |
help_article_already_in_state | Makale zaten bu durumda olmamalı. |
help_article_needs_content | Yayımlanmış bir makalenin içeriği vardır. |
Yayımladığı olaylar: help_center.article_published
Neye yazar: help_article (update) — Marks it published
curl -X POST https://app.getera.io/api/v1/help_articles/HELP_ARTICLE_ID/actions/publish_article \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"help_center.article_published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpArticles.publishArticle("HELP_ARTICLE_ID")era help_articles publish_article HELP_ARTICLE_ID{
"name": "era__help_center__publish_article",
"arguments": {
"id": "HELP_ARTICLE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_article_not_found, help_article_already_in_state, help_article_needs_content · 429 çok sık istek
help_center.save_category
Kategoriyi kaydet — Bir yardım kategorisi oluşturur ya da yeniden adlandırıp taşır.
Gereken izin help_center:manage · veriyi değiştirir
https://app.getera.io/api/v1/help_categories/{id}/actions/save_category- Asıl adres:
POST /api/v1/actions/help_center.save_category
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | Doldurulduğu yer: adresteki {id} · Kategori · kimliği: help_category | |
name | string | Ad · en çok 200 | |
description | string | Açıklama · en çok 2000 | |
parentId | uuid | İçeride · kimliği: help_category | |
locale | string | Dil · en çok 10 | |
icon | string | Simge · en çok 40 | |
position | number | Konum |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_category_not_found | Belirtilen kategori bulunmalı. |
Yayımladığı olaylar: help_center.category_changed
Neye yazar: help_category (upsert) — Writes the category
curl -X POST https://app.getera.io/api/v1/help_categories/HELP_CATEGORY_ID/actions/save_category \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"help_center.category_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpCategories.saveCategory("HELP_CATEGORY_ID", {
name: "Name"
})era help_categories save_category HELP_CATEGORY_ID \
--name "Name"{
"name": "era__help_center__save_category",
"arguments": {
"id": "HELP_CATEGORY_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_category_not_found · 429 çok sık istek
help_center.unpublish_article
Taslağa geri al — Yayımlanmış veya arşivlenmiş bir makaleyi taslağa geri alır.
Gereken izin help_center:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/help_articles/{id}/actions/unpublish_article- Asıl adres:
POST /api/v1/actions/help_center.unpublish_article
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Makale · kimliği: help_article |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_article_not_found | Makale bulunmalı. |
help_article_already_in_state | Makale zaten bu durumda olmamalı. |
Yayımladığı olaylar: help_center.article_unpublished
Neye yazar: help_article (update) — Marks it a draft
curl -X POST https://app.getera.io/api/v1/help_articles/HELP_ARTICLE_ID/actions/unpublish_article \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"help_center.article_unpublished"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpArticles.unpublishArticle("HELP_ARTICLE_ID")era help_articles unpublish_article HELP_ARTICLE_ID{
"name": "era__help_center__unpublish_article",
"arguments": {
"id": "HELP_ARTICLE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_article_not_found, help_article_already_in_state · 429 çok sık istek
help_center.update_article
Makaleyi düzenle — Makalenin başlığını, özetini, içeriğini veya kategorisini değiştirir.
Gereken izin help_center:write · veriyi değiştirir
https://app.getera.io/api/v1/help_articles/{id}/actions/update_article- Asıl adres:
POST /api/v1/actions/help_center.update_article
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Makale · kimliği: help_article |
title | string | Başlık · en çok 300 | |
description | string | Özet · en çok 1000 | |
content | string | İçerik · en çok 200000 | |
categoryId | uuid | Kategori · kimliği: help_category | |
position | number | Konum | |
metaTitle | string | Arama başlığı · en çok 255 | |
metaDescription | string | Arama açıklaması · en çok 1000 | |
metaTags | object / array | Etiketler |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
help_article_not_found | Makale bulunmalı. |
help_category_not_found | Belirtilen kategori bulunmalı. |
help_article_needs_content | Yayımlanmış bir makale içeriğini korur. |
help_article_invalid_tags | Etiketler en fazla 30 kelimelik bir liste olmalı. |
Yayımladığı olaylar: help_center.article_updated
Neye yazar: help_article (update) — Rewrites the article
curl -X POST https://app.getera.io/api/v1/help_articles/HELP_ARTICLE_ID/actions/update_article \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"help_center.article_updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.helpArticles.updateArticle("HELP_ARTICLE_ID", {
title: "Title"
})era help_articles update_article HELP_ARTICLE_ID \
--title "Title"{
"name": "era__help_center__update_article",
"arguments": {
"id": "HELP_ARTICLE_ID",
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde help_center:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 help_article_not_found, help_category_not_found, help_article_needs_content, help_article_invalid_tags · 429 çok sık istek
Veri modelleri
HelpArticle
Tablo help_article · Kaynak help_articles
GET /api/v1/help_articlesGET /api/v1/help_articles/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
category_id | string (uuid) · uuid | evet | help_category | |
title | string · text | |||
description | string · text | evet | ||
content | string · text | |||
status | string · text | draft, published, archived | ||
slug | string · text | |||
locale | string · text | |||
position | integer · int4 | |||
views | integer · int4 | |||
author_user_id | string (uuid) · uuid | evet | app_user | |
published_at | string (date-time) · timestamptz | evet | ||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
meta_title | string · text | evet | ||
meta_description | string · text | evet | ||
meta_tags | string[] · text[] |
Birincil anahtar: id
Tekil: workspace_id, locale, slug
Denetimler:
CHECK ((cardinality(meta_tags) <= 30))CHECK (((meta_title IS NULL) OR (length(meta_title) <= 255)))CHECK (((status <> 'published'::text) OR (length(TRIM(BOTH FROM content)) > 0)))CHECK ((slug ~ '^[a-z0-9]+(-[a-z0-9]+)*$'::text))CHECK ((length(TRIM(BOTH FROM title)) > 0))
HelpCategory
Tablo help_category · Kaynak help_categories
GET /api/v1/help_categoriesGET /api/v1/help_categories/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
parent_category_id | string (uuid) · uuid | evet | help_category | |
name | string · text | |||
description | string · text | evet | ||
slug | string · text | |||
locale | string · text | |||
icon | string · text | evet | ||
position | integer · int4 | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
is_public | boolean · bool |
Birincil anahtar: id
Tekil: workspace_id, locale, slug
Denetimler:
CHECK ((length(TRIM(BOTH FROM name)) > 0))CHECK ((slug ~ '^[a-z0-9]+(-[a-z0-9]+)*$'::text))
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
help_center.article_archived | Bir yardım makalesi arşivlendi. | id |
help_center.article_created | Bir yardım makalesi taslağı hazırlandı. | id, ownerUserId |
help_center.article_deleted | Bir yardım makalesi silindi. | id |
help_center.article_published | Bir yardım makalesi yayımlandı. | id |
help_center.article_unpublished | Bir yardım makalesi taslağa döndü. | id |
help_center.article_updated | Bir yardım makalesi düzenlendi. | id |
help_center.category_changed | Bir yardım kategorisi oluşturuldu, değiştirildi ya da silindi. | id |