Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.


10 - Fireball



Fun thing. I've asked ChatGPT to create an alteryx macro. ChatGPT ( Here is the answer : 


"Create an Alteryx macro that calculate end of month dates"


Here is a possible solution to your problem using the Alteryx Python SDK:



import Alteryx, datetime

# define the macro class
class AyxPlugin:
  # define the main method
  def pi_init(self, ayx_engine, plugin_config):
    # store the Alteryx engine object for later use
    self.ayx_engine = ayx_engine

    # define the input and output field definitions
        "name": "Date",
        "type": "datetime"
        "name": "End of Month",
        "type": "datetime"

  # define the method that will be called for each record
  def pi_push_all_records(self, record_info, data):
    # loop through the records
    for record in data:
      # get the date value from the record
      date = record[0]

      # calculate the end of the month for the given date
      eom =, date.month, 1) + datetime.timedelta(days=32)
      eom = eom.replace(day=1) - datetime.timedelta(days=1)

      # output the date and end of month values
      self.ayx_engine.output_record([date, eom])

  # define the method that will be called after all records have been processed
  def pi_close(self, shutdown_type):
    # complete the output




to use this code, save it to a file named and then create a new Alteryx macro using the Alteryx Python SDK. In the macro configuration, set the entry point to and the class name to AyxPlugin.

In your workflow, you can then use this macro to calculate the end of month dates for a given set of dates. The macro will take a date field as input and output two fields: the original date and the corresponding end of month date.



The answer is clearly far from perfect but its impressive that he leveraged Alteryx SDK ahah


@NicolasSz , thanks for the contribution to the community. this is a great share of knowledge!


Please mark this reply as the solution so that we can clean up the threads and make it easier for other members of the community to benefit from this great post.