Work with the knowledge base
Learn how to work with the knowledge base with the Kustomer Core SDK.
You can build your own chat UI to work with the knowledge base articles, categories, and more.
Get and search for articles and categories
You can get the root category for the knowledge base.
let kb = Kustomer.kbProvider
kb.getRootCategory(lang: "en_us", knowledgeBaseID: nil) { result in
switch result {
case .success(let rootCategory):
print("Root category: \(rootCategory)")
case .failure(let error):
print("Error fetching root category! - \(error)")
}
}
Get and search for articles and categories
Get a category
You can get a category based on the category ID:
kb.getCategory(by: "CategoryID", childrenLimit: 100, lang: "en_us", knowledgeBaseID: nil) { result in
switch result {
case .success(let response):
let category = response.data
let subcategories = response.subCategories
let articles = response.articles
print("Got category: \(category) with sub categories: \(subcategories) and articles: \(articles)")
case .failure(let error):
print("Error fetching category! - \(error)")
}
}
Get an article
You can get an article based on the article ID:
kb.getArticle(by: "ArticleID", lang: "en_us", knowledgeBaseID: nil) { result in
switch result {
case .success(let article):
print("Got article: \(article)")
case .failure(let error):
print("Error fetching article! - \(error)")
}
}
Search articles
You can search for articles based on a string parameter:
kb.searchArticles(term: "forgot password", page: 1, pageSize: 100, lang: "en_us") { result in
switch result {
case .success(let articles):
print("Relevant articles: \(articles)")
case .failure(let error):
print("Error searching articles! - \(error)")
}
}
Extended knowledge base article properties and category properties (deprecated_
These properties are deprecated & not supported.
You can use the completeObject()
method on KUSKBCategory
and KUSKBArticle
objects to access extended attributes for articles and categories. While the rawJSON
property is the same, the method does not parse the rawJSON
property into a dictionary.
To view extended article properties, see KUSKBArticle.
To view extended category properties, see KUSKBCategory.
Get all categories in the root with KBProvider (deprecated)
This method is deprecated & not supported.
To get all the categories in the root category, use KBProvider.shared.getEntriesForRoot(completion: { r in
:
KBProvider.shared.getEntriesForRoot(completion: { r in
switch r {
case .success(let items):
let one = items.first
if one is KUSKBArticle {
let article = one as! KUSKBArticle
KBProvider.shared.getArticle(id: article.id!, completion: { r in
switch r {
case .success(let article):
print(article.htmlBody)
case .failure(let erro):
print(erro.localizedDescription)
}
})
} else if one is KUSKBCategory {
if one is KUSKBCategory {
let category = one as! KUSKBCategory
KBProvider.shared.getCategory(id: category.id!, completion: { r in
switch r {
case .success(let article):
print(category.title)
case .failure(let erro):
print(erro.localizedDescription)
}
})
}
}
case .failure(let err):
print(err.localizedDescription)
}
})
To learn more, see KBProvider.
Get articles and categories with KUSKBCategory (deprecated)
This method is deprecated & not supported.
To get all the child articles and categories for a given KUSKBCategory
, use KBProvider.shared.KBProvider.shared.getEntries(categoryId: "foo", search: "hello", completion: ...
.
To learn more, see KBProvider.
Updated 8 months ago