Actionify: Transform Text into Actionable Tasks Using Generative AI and APIs

Introduction

Have you ever felt the frustration of not making progress on your goals, despite endless to-do lists?

I certainly did: I have a journaling habit, in which I tend to write about challenges, goals, and project ideas. However, I sometimes struggle to put these thoughts into action. As a result, I write a lot but sometimes fail to turn these ideas into reality.

I wanted to change that. As I’m also exploring potential applications of LLMs, I got very curious about their potential to extract structured data from unstructured text.

The challenge was: how might we extract actionable tasks from unstructured text in a journal, so that we can more often take action from our thoughts?

The manual solution: Chat GPT prompts

I first tried a few ChatGPT prompts and managed to turn unstructured text into actionable tasks, like “Incorporate daily workouts into routine”.

ChatGPT prompt

image 1

ChatGPT result

image 2

A manual workflow

However this was still a manual workflow, as I still needed somehow to create tasks in my task manager (Todoist). So the idea of Actionify was born: a web interface to transform text into actionable tasks for my task manager.

The scalable solution: Actionify

Actionify is a ETL (Extract-Transform-Load) tool I’ve created (link to github project: actionify) to transform unstructured text into actionable tasks in your task manager.

  1. Extract: in this step, we capture a text input. Journaling notes are a good use case for this, as they mention challenges, goals and project ideas. However, it doesn’t need to be a note from a journal. It could also be a meeting summary transcript, from which you’d like to extract actionable tasks.
  2. Transform: in this step, we transform the raw text into a list of actionable tasks. We craft a custom prompt that calls Open AI LLM to process the text and outputs a JSON data structure of tasks.
  3. Load: in this step, we present to the user the list of actionable tasks that were detected from the text, and offer the possibility to create any of the suggested tasks in Todoist with all the associated metadata (title, rich description, priority, label…)

User flow

Write (paste) the text you want to transform

image 1

If you don’t have a text, click on “fill input with a sample journal” to have some data.

Suggest actionable tasks

Click on “suggest actionable tasks” which shows a list of task suggestions image 1

Tasks are created in Todoist

When you click on “create” for a task, it will create it in Todoist, which you can verify by going to Todoist.

image 1

As you can see, the task has been created with useful metadata.

Beyond Actionify

Zooming out from Actionify, we have the following generic process:

  1. Extract: text or other media
  2. Transform: create structured data with the help of LLM
  3. Load: with the “human in the loop” pattern, validate this structured data and send to an external tool

The “human in the loop” pattern is still necessary, as we can’t rely on LLM to extract the right data each time and trigger downstream processes with that data.

But this still opens lots of possiblities: we used to be limited to connect apps with structured data only, for example using Zapier to connect a trigger in google sheets with an action in gmail. But now with LLM we can explore new possibilities connecting processes generating unstructured data, for ex. speech, free text, files…

Other potential use cases:

These are just a few examples, as the posssibilities are endless. Happy innovating!