Skip to content

clearbit/clearbit-slack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clearbit Slack Notifier

Clean beautiful customer data. Now in Slack.

alex test

Installation

Add to your application's Gemfile:

gem 'clearbit-slack'

Configuration

Add Clearbit and Slack config vars:

# config/initializers/clearbit.rb
Clearbit.key = ENV['CLEARBIT_KEY']

Clearbit::Slack.configure do |config|
  config.slack_url = ENV['SLACK_URL']
  config.slack_channel = '#signups'
end

Clearbit Key

Sign up for a Free Trial if you don't already have a Clearbit key.

Notifications

Parameters

Field Description
company Company data returned from Clearbit
person Person data returned form Clearbit
message Used for deep link into an internal Admin/CRM
email Used to augment message data when Person not found
full_name Used to augment message data when Person not found

Streaming API

Lookup email using the Clearbit streaming API and ping Slack channel:

# app/jobs/signup_notification.rb
module APIHub
  module Jobs
    class SignupNotification
      include Sidekiq::Worker

      def perform(customer_id)
        customer = Customer.find!(customer_id)
        result = Clearbit::Enrichment.find(email: customer.email, given_name: customer.first_name, family_name: customer.last_name, stream: true)

        result.merge!(
          email: customer.email,
          full_name: "#{customer.first_name} #{customer.last_name}",
          message: "View details in <https://admin-panel.com/#{customer.token}|Admin Panel>",
        )

        Clearbit::Slack.ping(result)

        # Save Clearbit data to datastore
      end
    end
  end
end

Webhooks

Receive a webhook with Clearbit data and ping Slack channel:

# app/controllers/webhooks_controller.rb
class WebhooksController < ApplicationController
  def clearbit
    webhook = Clearbit::Webhook.new(env)
    customer = Customer.find!(webhook.webhook_id)
    result =  webhook.body

    result.merge!(
      email: customer.email,
      full_name: "#{customer.first_name} #{customer.last_name}",
      message: "View details in <https://admin-panel.com/#{customer.token}|Admin Panel>",
    )

    Clearbit::Slack.ping(result)

    # Save Clearbit data to datastore
  end
end

Contributing

  1. Fork it ( https://github.com/[my-github-username]/clearbit-slack/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

About

Clearbit enrichment data in a Slack channel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages