The Crisp API Ruby wrapper. Authenticate, send messages, fetch conversations, access your agent accounts from your Ruby code.
Copyright 2019 Crisp IM SARL. See LICENSE for copying information.
- 📝 Implements: REST API Reference (V1) at revision: 12/31/2017
- 😘 Maintainer: @valeriansaliou, @eliottvincent
You may follow the REST API Quickstart guide, which will get you running with the REST API in minutes.
Add the library to your Gemfile
:
gem "crisp-api", "~> 1.1.6"
Then, import it:
require "crisp-api"
Build a new authenticated Crisp client with your identifier
and key
tokens.
client = Crisp::Client.new
client.set_tier("plugin")
client.authenticate(identifier, key)
Then, your client is ready to be consumed!
To authenticate against the API, obtain your authentication token keypair by following the REST API Authentication guide. You'll get a token keypair made of 2 values.
Keep your token keypair values private, and store them safely for long-term use.
Then, add authentication parameters to your client
instance right after you create it:
client = Crisp::Client.new
# Authenticate to API with your plugin token (identifier, key)
# eg. client.authenticate("5c0595b2-9381-4a76-a2e0-04aa00c1ede7", "3bdb0812d0f5352bf68901ddc731434dade419b98507971905acdd2f967df61c")
client.set_tier("plugin")
client.authenticate(identifier, key)
# Now, you can use authenticated API sections.
Most useful available Crisp API resources are implemented. Programmatic methods names are named after their label name in the REST API Reference.
Thus, it is straightforward to look for them in the library while reading the REST API Reference.
In the following method prototypes, crisp
is to be replaced with your Crisp API instance. For example, instanciate client = Crisp()
and then call eg: client.website.list_conversations(website_id, 1)
.
When calling a method that writes data to the API (eg. send a message with: client.website.send_message_in_conversation()
), you need to submit it this way:
website_id = "6497e4a4-b17c-41e0-bfea-eea97ba8115a"
session_id = "session_f32bc993-f7ce-41af-bcd1-110fc147a392"
client.website.send_message_in_conversation(
website_id, session_id,
{
"type" => "text",
"content" => "This message was sent from python-crisp-api! :)",
"from" => "operator",
"origin" => "chat"
}
)
user
or plugin
, you may not be allowed to use all methods from the library. When in doubt, refer to the library method descriptions below. Most likely, you are using a plugin
token.
-
Website Conversations
- ⭐ List Conversations [
user
,plugin
]: Referenceclient.website.list_conversations(website_id, page_number)
- Search Conversations [
user
,plugin
]: Referenceclient.website.search_conversations(website_id, page_number, search_query, search_type, search_operator, include_empty, filter_unread, filter_resolved, filter_not_resolved, filter_mention, filter_assigned, filter_unassigned, filter_date_start, filter_date_end, order_date_created", order_date_updated)
- ⭐ List Conversations [
-
Website Conversation
- ⭐ Create A New Conversation [
user
,plugin
]: Referenceclient.website.create_new_conversation(website_id)
- Check If Conversation Exists [
user
,plugin
]: Referenceclient.website.check_conversation_exists(website_id, session_id)
- ⭐ Get A Conversation [
user
,plugin
]: Referenceclient.website.get_conversation(website_id, session_id)
- Remove A Conversation [
user
,plugin
]: Referenceclient.website.remove_conversation(website_id, session_id)
- Initiate A Conversation With Existing Session [
user
,plugin
]: Referenceclient.website.initiate_conversation_with_existing_session(website_id, session_id)
- ⭐ Get Messages In Conversation [
user
,plugin
]: Referenceclient.website.get_messages_in_conversation(website_id, session_id, query)
- ⭐ Send A Message In Conversation [
user
,plugin
]: Referenceclient.website.send_message_in_conversation(website_id, session_id, query)
- Update A Message In Conversation [
user
,plugin
]: Referenceclient.website.update_message_in_conversation(website_id, session_id, fingerprint, data)
- Compose A Message In Conversation [
user
,plugin
]: Referenceclient.website.compose_message_in_conversation(website_id, session_id, data)
- ⭐ Mark Messages As Read In Conversation [
user
,plugin
]: Referenceclient.website.mark_messages_read_in_conversation(website_id, session_id, data)
- ⭐ Mark Messages As Delivered In Conversation [
user
,plugin
]: Referenceclient.website.mark_messages_delivered_in_conversation(website_id, session_id, data)
- ⭐ Get Conversation Routing Assign [
user
,plugin
]: Referenceclient.website.get_conversation_routing_assign(website_id, session_id)
- ⭐ Assign Conversation Routing [
user
,plugin
]: Referenceclient.website.assign_conversation_routing(website_id, session_id, data)
- ⭐ Get Conversation Metas [
user
,plugin
]: Referenceclient.website.get_conversation_metas(website_id, session_id)
- ⭐ Update Conversation Metas [
user
,plugin
]: Referenceclient.website.update_conversation_metas(website_id, session_id, data)
- List Conversation Pages [
user
,plugin
]: Referenceclient.website.list_conversation_pages(website_id, session_id, page_number)
- List Conversation Events [
user
,plugin
]: Referenceclient.website.list_conversation_events(website_id, session_id, page_number)
- Get Conversation State [
user
,plugin
]: Referenceclient.website.get_conversation_state(website_id, session_id)
- ⭐ Change Conversation State [
user
,plugin
]: Referenceclient.website.change_conversation_state(website_id, session_id, data)
- Get Block Status For Conversation [
user
,plugin
]: Referenceclient.website.get_block_status_for_conversation(website_id, session_id)
- Block Incoming Messages For Conversation [
user
,plugin
]: Referenceclient.website.block_incoming_messages_for_conversation(website_id, session_id, data)
- Request Email Transcript For Conversation [
user
,plugin
]: Referenceclient.website.request_email_transcript_for_conversation(website_id, session_id, data)
- ⭐ Create A New Conversation [
-
Website People
- Get People Statistics [
user
,plugin
]: Referenceclient.website.get_people_statistics(website_id)
- List People Segments [
user
,plugin
]: Referenceclient.website.list_people_segments(website_id, page_number)
- ⭐ List People Profiles [
user
,plugin
]: Referenceclient.website.list_people_profiles(website_id, page_number)
- ⭐ Add New People Profile [
user
,plugin
]: Referenceclient.website.add_new_people_profile(website_id, data)
- ⭐ Check If People Profile Exists [
user
,plugin
]: Referenceclient.website.check_people_profile_exists(website_id, people_id)
- ⭐ Get People Profile [
user
,plugin
]: Referenceclient.website.get_people_profile(website_id, people_id)
- ⭐ Save People Profile [
user
,plugin
]: Referenceclient.website.save_people_profile(website_id, people_id, data)
- Find People Profile By Email [
user
,plugin
]: Referenceclient.website.find_people_profile_by_email(website_id, email)
- ⭐ Update People Profile [
user
,plugin
]: Referenceclient.website.update_people_profile(website_id, people_id, data)
- ⭐ Remove People Profile [
user
,plugin
]: Referenceclient.website.remove_people_profile(website_id, people_id)
- List People Conversations [
user
,plugin
]: Referenceclient.website.list_people_conversations(website_id, people_id, page_number)
- Add A People Event [
user
,plugin
]: Referenceclient.website.add_people_event(website_id, people_id, data)
- List People Events [
user
,plugin
]: Referenceclient.website.list_people_events(website_id, people_id, page_number)
- Get People Data [
user
,plugin
]: Referenceclient.website.get_people_data(website_id, people_id)
- Save People Data [
user
,plugin
]: Referenceclient.website.save_people_data(website_id, people_id, data)
- Update People Data [
user
,plugin
]: Referenceclient.website.update_people_data(website_id, people_id, data)
- Get People Subscription Status [
user
,plugin
]: Referenceclient.website.get_people_subscription_status(website_id, people_id)
- Update People Subscription Status [
user
,plugin
]: Referenceclient.website.update_people_subscription_status(website_id, people_id, data)
- Get People Statistics [
👉 Notice: The peopleID
argument can be an email or the peopleID
.
-
Website Base
-
Website Batch
-
Website Availability
- Get Website Availability Status [
user
,plugin
]: Referenceclient.website.get_website_availability_status(website_id)
- Get Website Availability Status [
-
Website Operator
-
Website Settings
-
Website Visitors
- Bucket URL
- Generate Bucket URL [
user
,plugin
]: Referenceclient.bucket.generate_bucket_url(data)
- Generate Bucket URL [