Conversation Class

The Conversation class is located at app/conversation.rb file.

Every message that arrives and every reply sent can be handled and accessed via callbacks defined here and all the Contexts should inherit this class.

class Conversation < Kogno::Context

  before_blocks :do_something_before_blocks
  after_blocks :do_something_after_blocks

  def do_something_before_blocks
    # This will be called before the blocks method in the current context will be executed
  end

  def do_something_after_blocks
    # This will be called after the blocks method in the current context will be executed
  end

end
Callback
Description

before_blocks

after_blocks

before_exit

Accessible Instances and methods

These instances and methods are accessible from the Conversation class and also from any Context class defined in a project.

@user

It is an instance of the User model (ActiveRecord::Base) that corresponds to the user who sent the incoming message.

Usage

class Conversation < Kogno::Context

  before_blocks :log_user_platform

  def log_user_platform
    logger.info "The user's platform is #{@user.platform}"
  end

end

@message

It is the instance of the user's incoming message.

Usage

  • To see the message content: @message.text

  • Catch a button click event: @message.postback_payload and if includes parameters @message.postback_params. Read more about postbacks.

  • Check if the message is empty: @message.empty?

See the full list of methods here.

@reply

It is an instance of the Kogno::Notification class, which contains a wide variety of reply messages like text, button, url, carousel, etc. Full list here.

In Kogno, we try to unify almost all reply types for all supported platforms, so that a single code can be written for all of them.

Usage

class Conversation < Kogno::Context

  after_blocks :send_a_final_message

  def send_a_final_message
    @reply.text "I'll respond this mesage all the time."
  end


end

For more information and examples, check the Replies section.

Methods

Also methods like change_to(), delegate_to() and halt().

Last updated

Was this helpful?