Add Or Remove Members Tags ( mailchimp)
One script reply has been approved by the moderators Verified

Created by aureliejagg29 293 days ago Viewed 53 times 0 Points

No comments yet

Login to be able to comment
Points: 0
deno
One script reply has been approved by the moderators
Ap­pro­ved
import { Resource } from 'https://deno.land/x/windmill@v1.70.1/mod.ts'
import { removeObjectEmptyFields } from 'https://deno.land/x/windmill_helpers@v1.0.0/mod.ts'

/**
 * @param members_to_add *(optional)* An array of emails to be used for a static segment. 
 * Any emails provided that are not present on the list will be ignored. 
 * A maximum of 500 members can be sent.
 * 
 * @param members_to_remove *(optional)* An array of emails to be used for a static segment. 
 * Any emails provided that are not present on the list will be ignored. 
 * A maximum of 500 members can be sent.
 */
export async function main(
  auth: Resource<'mailchimp'>,
  list_id: string,
  segment_id: string,
  members_to_add?: string[],
  members_to_remove?: string[]
) {
  const url = new URL(`https://${auth.server}.api.mailchimp.com/3.0/lists/${list_id}/segments/${segment_id}`)
  const body = {
    members_to_add,
    members_to_remove
  }
  removeObjectEmptyFields(body, true, false)
  if(!Object.keys(body).length) {
    return 'No members were declared to be added or removed.'
  }

  const response = await fetch(url, {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${auth.api_key}`
    },
    body: JSON.stringify(body)
  })
  
  if(!response.ok) {
    throw Error(await response.text())
  }
  return await response.json()
}

Submitted by adam186 118 days ago

Edited 27 days ago

No comments yet

Login to be able to comment