An open API service indexing awesome lists of open source software.

https://github.com/mrz1836/go-drift

:balloon: Unofficial golang implementation for the Drift API
https://github.com/mrz1836/go-drift

api-client chat drift go golang

Last synced: 5 months ago
JSON representation

:balloon: Unofficial golang implementation for the Drift API

Awesome Lists containing this project

README

          

# 💬  go-drift

**The unofficial golang implementation for the [Drift API](https://devdocs.drift.com/docs/using-drift-apis)**


Release
Go Version
License




CI / CD   


Build
Last Commit


     Quality   


Go Report
Coverage



Security   


Scorecard
Security


     Community   


Contributors
Bitcoin




### Project Navigation



🚀 Installation


📚 Documentation


🧪 Examples & Tests




🤖 AI Usage


🛠️ Code Standards


🤝 Contributing


## 📦 Installation

**go-drift** requires a [supported release of Go](https://golang.org/doc/devel/release.html#policy).
```shell script
go get -u github.com/mrz1836/go-drift/drift
```


## 📚 Documentation

View the generated [documentation](https://pkg.go.dev/github.com/mrz1836/go-drift/drift?tab=doc)

> **Heads up!** `go-drift` is intentionally light on dependencies. The only
external package it uses is the excellent `testify` suite—and that's just for
our tests. You can drop this library into your projects without dragging along
extra baggage.


### API Coverage
- Current coverage for the [Drift API](https://devdocs.drift.com/docs/using-drift-apis)
- [x] Contacts API
- [x] Creating a Contact
- [x] Updating a Contact
- [x] Retrieving Contacts
- [x] Deleting a Contact
- [x] Unsubscribe Contacts from Emails
- [x] Posting Timeline Events
- [x] Listing Custom Attributes
- [x] Users API
- [x] Retrieving User
- [x] Listing Users
- [x] Updating a User
- [x] Get Booked Meetings
- [x] Conversations & Messages API
- [x] Creating a Message
- [x] Listing Conversations
- [x] Retrieving a Conversation
- [x] Retrieving a Conversation's Messages
- [x] Retrieving a Conversation's Transcript
- [x] Retrieving a Conversation's Attachments
- [x] Creating a new Conversation
- [x] Bulk Conversation Statuses
- [x] Accounts API
- [x] Creating an Account
- [x] Retrieving an account
- [x] Listing Accounts
- [x] Updating Accounts
- [x] Deleting Accounts
- [x] Teams API
- [x] Listing Teams (Org)
- [x] Listing Teams by User
- [x] Playbooks API
- [x] Retrieving Bot Playbooks
- [x] Retrieving Conversational Landing Pages
- [x] Admin API
- [x] Trigger App Uninstall
- [x] Get Token Information
- [x] GDPR API
- [x] GDPR Retrieval
- [x] GDPR Deletion


### Additional Documentation & Repository Management

Development Setup (Getting Started)

Install [MAGE-X](https://github.com/mrz1836/mage-x) build tool for development:

```bash
# Install MAGE-X for development and building
go install github.com/mrz1836/mage-x/cmd/magex@latest
magex update:install
```

Library Deployment

This project uses [goreleaser](https://github.com/goreleaser/goreleaser) for streamlined binary and library deployment to GitHub. To get started, install it via:

```bash
brew install goreleaser
```

The release process is defined in the [.goreleaser.yml](.goreleaser.yml) configuration file.

Then create and push a new Git tag using:

```bash
magex version:bump bump=patch push=true branch=master
```

This process ensures consistent, repeatable releases with properly versioned artifacts and citation metadata.

Build Commands

View all build commands

```bash script
magex help
```

GitHub Workflows

All workflows are driven by modular configuration in [`.github/env/`](.github/env/README.md) — no YAML editing required.

**[View all workflows and the control center →](.github/docs/workflows.md)**

Updating Dependencies

To update all dependencies (Go modules, linters, and related tools), run:

```bash
magex deps:update
```

This command ensures all dependencies are brought up to date in a single step, including Go modules and any managed tools. It is the recommended way to keep your development environment and CI in sync with the latest versions.


## 🧪 Examples & Tests

All unit tests and fuzz tests run via [GitHub Actions](https://github.com/mrz1836/go-pre-commit/actions) and use [Go version 1.18.x](https://go.dev/doc/go1.18). View the [configuration file](.github/workflows/fortress.yml).

Run all tests (fast):

```bash script
magex test
```

Run all tests with race detector (slower):
```bash script
magex test:race
```


## ⚡ Benchmarks

Run the Go benchmarks:

```bash script
magex bench
```


## 🛠️ Code Standards
Read more about this Go project's [code standards](.github/CODE_STANDARDS.md).


## 🤖 AI Usage & Assistant Guidelines
Read the [AI Usage & Assistant Guidelines](.github/tech-conventions/ai-compliance.md) for details on how AI is used in this project and how to interact with the AI assistants.


## 👥 Maintainers
| [MrZ](https://github.com/mrz1836) |
|:------------------------------------------------------------------------------------------------:|
| [MrZ](https://github.com/mrz1836) |


## 🤝 Contributing
View the [contributing guidelines](.github/CONTRIBUTING.md) and please follow the [code of conduct](.github/CODE_OF_CONDUCT.md).

### How can I help?
All kinds of contributions are welcome :raised_hands:!
The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:.
You can also support this project by [becoming a sponsor on GitHub](https://github.com/sponsors/mrz1836) :clap:
or by making a [**bitcoin donation**](https://mrz1818.com/?tab=tips&utm_source=github&utm_medium=sponsor-link&utm_campaign=go-drift&utm_term=go-drift&utm_content=go-drift) to ensure this journey continues indefinitely! :rocket:

[![Stars](https://img.shields.io/github/stars/mrz1836/go-drift?label=Please%20like%20us&style=social)](https://github.com/mrz1836/go-drift/stargazers)


### Credits

[Drift](https://devdocs.drift.com/) for their hard work on the API


## 📝 License

[![License](https://img.shields.io/github/license/mrz1836/go-drift.svg?style=flat)](LICENSE)