Learn about the Closeio API at

I :heart:, so if you have problems using the gem or would like to see support for new endpoints, please open a GitHub issue -- I'll get it resolved as quick as I can.

Fwiw, I also run []( -- a service for building automated email sequences using

## Installation

ExCloseio is currently beta software. You can install it from Hex:

def deps do
  [ {:ex_closeio, "~> 0.0.6"} ]

## Configuration

For security, I recommend that you use environment variables for storing
your account credentials. If you don't already have an environment
variable manager, you can create a `.env` file in your project with the
following content:

export CLOSEIO_API_KEY={{ your api key }}

Then, just be sure to run `source .env` in your shell before compiling your

Alternatively, you can set the following configuration variables in your
`config/config.exs` file:

config :ex_closeio, closeio_api_key: System.get_env("CLOSEIO_API_KEY"),

Or you can pass the API key in with each request:

ExCloseio.Lead.find("lead_id_1234", "api_key_5678")

## Usage

ExCloseio comes with module for each supported API resource. For example,
the "Lead" resource is accessible through the `ExCloseio.Lead` module. Depending
on what the underlying API supports, a resource module may have the following

| Method            | Description                                                       |
| ----------------- | ----------------------------------------------------------------- |
| **all**           | Get the first page of the resource.                               |
| **paginate**      | Load all of the resource items on all pages. Use with care!       |
| **find**          | Find a resource given its id.                                     |
| **create**        | Create a resource.                                                |
| **update**        | Update a resource.                                                |
| **destroy**       | Destroy a resource.                                               |

### Supported Endpoints

ExCloseio currently supports the following Closeio endpoints:

- [Bulk Actions](
- [Contact](
- [CustomField](
- [Email](
- [EmailTemplate](
- [Lead](
- [LeadStatus](
- [Opportunity](
- [OpportunityStatus](
- [Organization](
- [SmartView](
- [Task](
- [User](

### Example

# Get all the leads in the Lead endpoint. Be warned, this will block
# until all the pages of leads have been fetched.
leads = ExCloseio.Lead.paginate(
  %{query: "custom.current_system:paypal"},

# Get the first page. The meta variable is a map of paging information
# from
{:ok, leads} = ExCloseio.Lead.all

# Find a lead
{:ok, lead} = ExCloseio.Lead.find("lead_id_1234")

# Update a lead
lead = ExCloseio.Lead.update(lead, status: "cancelled")

# Destroy a lead

## License
ExCloseio is licensed under the MIT license. For more details, see the `LICENSE`
file at the root of the repository. It depends on Elixir, which is under the
Apache 2 license.

Closeio<sup>TM</sup> is trademark of Elastic, Inc.