MillionSend.Segments (MillionSend v0.2.0)

Copy Markdown View Source

Dynamic segments — a saved filter over the team's contacts. A MillionSend extension with no Resend equivalent. get/2 returns a live contact_count.

MillionSend.Segments.create(%{
  name: "Pro plan",
  filter: %{match: :all, conditions: [%{field: "property:plan", op: "equals", value: "pro"}]}
})

Summary

Functions

create(client \\ MillionSend.client(), params)

@spec create(MillionSend.Client.t(), map()) ::
  {:ok, MillionSend.Segments.Segment.t()} | {:error, MillionSend.Error.t()}

POST /segments

get(client \\ MillionSend.client(), id)

@spec get(MillionSend.Client.t(), String.t()) ::
  {:ok, MillionSend.Segments.Segment.t()} | {:error, MillionSend.Error.t()}

GET /segments/:id

list()

GET /segments — accepts limit:, after:, before:.

list(client)

@spec list(MillionSend.Client.t() | keyword()) ::
  {:ok, MillionSend.List.t()} | {:error, MillionSend.Error.t()}

list(client, opts)

@spec list(
  MillionSend.Client.t(),
  keyword()
) :: {:ok, MillionSend.List.t()} | {:error, MillionSend.Error.t()}

remove(client \\ MillionSend.client(), id)

@spec remove(MillionSend.Client.t(), String.t()) ::
  {:ok, MillionSend.Segments.Segment.t()} | {:error, MillionSend.Error.t()}

DELETE /segments/:id

update(client \\ MillionSend.client(), id, params)

@spec update(MillionSend.Client.t(), String.t(), map()) ::
  {:ok, MillionSend.Segments.Segment.t()} | {:error, MillionSend.Error.t()}

PATCH /segments/:id