Skip to content

adamakhtar/tincanz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Tincanz

** Notice - I’ve stopped working on this project for the forseeable future. It isn’t in any useable state so please look for an alternative. You may be interested in my other project github.com/robodisco/hightower which allows you to watch out for certain user behavour and automatically respond.**

# What is Tincanz

Tincanz is the better way to communicate with your users and keep them engaged. It’s a very simple open source version of intercom.io.

Tincanz has two big features

  • Communicate with your users directly within your app

  • Segment your users based on predetermined behaviour and automatically send them messages when they behave like that.

## Communicate with your users

Tincanz creates a little intercom button at the bottom right of your views. When clicked your users will be presented with a message widget where they can message you and read your replies.

## Segment your users

Tincanz lets you define user behaviours. When a user behaves as defined, a predefined message can be automatically sent to them.

Possible usecases

  • Behaviour: user who has just signed up

  • Message: ‘Welcome aboard…’

  • Behaviour: user who signed up but hasnt created any projects

  • Message: ‘Create your first project in seconds…’

## How it Works

*Proposed usage - will probably change*

First define user behaviours in the Behaviour class

class Behaviour

define 'just signed up', message: :welcome  do |c|
  User.joined_today
end

end

Then define your message in a Messenger class

class UserMessenger

def welcome(user)
  message[:subject] = 'Welcome Aboard'
end

end

And the actual message body in its view file

#tincanz/messengers/user/welcome.txt.erb

Hi {{user.first_name}},

Welcome to the app.….

## Works great with events

To get the most out of tincanz you’ll probably want some way of representing events such as

  • user created first task

  • user signed in

  • user destroyed a project

So in your tasks controller you could write

def create

...
if @task.save
  Event.create('task created')
  ...
...

end

and then in your Behaviour class you can define

class Behaviour

define 'created first task', message: :task_shortcuts_howto do
  User.include(:events).where('events.name' => 'task created').....
end

end

Tincanz doesnt include event functionality as end users will probably already have something in place. Perhaps your own custom rolled Event Model or you use a gem such as the exellent Ahoy.

**Behviour based messages** are sent only once regardless of how many times a user repeats the behaviour. This avoids the risk of spamming a user.

## Install

“‘ruby gem ’tincanz’ “‘

“‘ bundle install “`

In your apps application_controller.rb

“‘ruby def tincanz_user

current_user # or your own method that returns the current user

end helper_method

:tincanz_user

“‘

“‘ruby class User

def self.tincanz_admin
  User.where(:admin => true)
end

end “‘

## Roadmap

  • Setup basic inapp messaging

  • Rollout behaviours

  • Automaticaly email message updates and allow admin and users to reply via email

About

Segment and message users based on behavior. A simple open source intercom.io.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors