Create a Segment ( mailchimp)
One script reply has been approved by the moderators Verified

Created by adam186 114 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 static_segment *(optional but either `static_segment` or `options` is required)*
 * An array of emails to be used for a static segment.
 * Any emails provided that are not present on the list will be ignored.
 * Passing an empty array will create a static segment without any subscribers.
 * This field cannot be provided with the options field.
 *
 * @param options *(optional but either `static_segment` or `options` is required)*
 * The conditions of the segment. Static and fuzzy segments don't have conditions.
 * Find more information about conditions at
 * https://mailchimp.com/developer/marketing/docs/alternative-schemas/#segment-condition-schemas
 */
export async function main(
  auth: Resource<"mailchimp">,
  list_id: string,
  name: string,
  static_segment?: string[],
  options?: {
    match: string;
    conditions: any[];
  },
) {
  const url = new URL(
    `https://${auth.server}.api.mailchimp.com/3.0/lists/${list_id}/segments`,
  );
  const body = {
    name,
    static_segment,
    options,
  };

  const response = await fetch(url, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${auth.api_key}`,
    },
    body: JSON.stringify(removeObjectEmptyFields(body)),
  });

  if (!response.ok) {
    throw Error(await response.text());
  }
  return await response.json();
}

Submitted by adam186 114 days ago

Edited 23 days ago

No comments yet

Login to be able to comment