Module: MailchimpAPI::Audience::Segments::APIs

Includes:
Pagination::ListEachItemHelper
Included in:
MailchimpAPI::Audience::Segments, MailchimpAPI::Audience::Segments
Defined in:
lib/mailchimp-api/resources/audience/segments.rb

Overview

Module with endpoints for Segments APIs

Instance Method Summary collapse

Instance Method Details

#batch_add_or_remove_members(list_id, segment_id, query: nil, body: nil, headers: nil) ⇒ Response

Batch add or remove members from a static segment

Examples:

Add and remove members from a segment

segments.batch_add_or_remove_members('list123', 'segment456', body: {
  members_to_add: ['[email protected]'],
  members_to_remove: ['[email protected]']
})

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • segment_id (String)

    The ID of the segment

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Members to add/remove

  • headers (Hash) (defaults to: nil)

    Optional request headers

Options Hash (body:):

  • :members_to_add (Array<String>)

    Array of emails to add

  • :members_to_remove (Array<String>)

    Array of emails to remove

Returns:

  • (Response)

    API response containing update status



101
102
103
104
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 101

def batch_add_or_remove_members(list_id, segment_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/segments/#{segment_id}"
  client.post(path, query: query, body: body, headers: headers)
end

#create(list_id, query: nil, body: nil, headers: nil) ⇒ Response

Create a new segment

Examples:

Create a static segment

segments.create('list123', body: {
  name: 'Premium Customers',
  static_segment: ['[email protected]', '[email protected]']
})

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Segment attributes

  • headers (Hash) (defaults to: nil)

    Optional request headers

Options Hash (body:):

  • :name (String)

    The name of the segment

  • :conditions (Array<Hash>)

    Segment conditions

Returns:

  • (Response)

    API response containing the created segment



38
39
40
41
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 38

def create(list_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/segments"
  client.post(path, query: query, body: body, headers: headers)
end

#delete(list_id, segment_id, query: nil, body: nil, headers: nil) ⇒ Response

Delete a segment

Examples:

Delete a segment

segments.delete('list123', 'segment456')

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • segment_id (String)

    The ID of the segment to delete

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:



82
83
84
85
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 82

def delete(list_id, segment_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/segments/#{segment_id}"
  client.delete(path, query: query, body: body, headers: headers)
end

#each(list_id, query: nil, body: nil, headers: nil) {|Hash| ... } ⇒ Object

Iterate through all segments for a list

Examples:

Iterate through segments

segments.each('list123') do |segment|
  puts segment[:name]
end

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Yields:

  • (Hash)

    Each segment



116
117
118
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 116

def each(list_id, query: nil, body: nil, headers: nil, &block)
  list_each_item(:segments, list_id, query: query, body: body, headers: headers, &block)
end

#list(list_id, query: nil, body: nil, headers: nil) ⇒ Response

List segments for a specific list

Examples:

Get segments for a list

segments.list('list123')

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:

  • (Response)

    API response containing segments



20
21
22
23
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 20

def list(list_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/segments"
  client.get(path, query: query, body: body, headers: headers)
end

#show(list_id, segment_id, query: nil, body: nil, headers: nil) ⇒ Response

Show details for a specific segment

Examples:

Get details for a segment

segments.show('list123', 'segment456')

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • segment_id (String)

    The ID of the segment

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:

  • (Response)

    API response containing segment details



52
53
54
55
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 52

def show(list_id, segment_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/segments/#{segment_id}"
  client.get(path, query: query, body: body, headers: headers)
end

#update(list_id, segment_id, query: nil, body: nil, headers: nil) ⇒ Response

Update a segment

Examples:

Update a segment name

segments.update('list123', 'segment456', body: {
  name: 'Updated Segment Name'
})

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • segment_id (String)

    The ID of the segment to update

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Updated segment attributes

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:

  • (Response)

    API response containing updated segment



68
69
70
71
# File 'lib/mailchimp-api/resources/audience/segments.rb', line 68

def update(list_id, segment_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/segments/#{segment_id}"
  client.patch(path, query: query, body: body, headers: headers)
end