A daily journal template that stays short

Updated 2026-10-30

A paper journal is often abandoned by the second week. A form on your phone asks for a few lines, and the answers pile up as rows. I would rather keep it small today and read the whole log later.

Before the day starts

Pick who owns the log. It is you, or a coach who reads it with your consent. Save the public link on your phone. Choose a time that fits, such as after dinner.

While you write

Start with the easy part: one thing you are grateful for, one small win and one word for today. Then rate mood and energy and note your sleep. The hard-moment box is optional, and so is the helped box. Last, set one small intention for tomorrow.

Prefer to talk? Your AI might ask "What went well today?" Then "How is your mood, from 1 to 5?" Then "What will you do tomorrow?" It shows the whole entry and sends it only after a yes. Read about agent-fillable forms.

After a few weeks

Download the CSV. Read the gratitude column on a grey day, and look for patterns in sleep and mood. Therapists can ask a client to bring the log to a session. See forms for therapists and forms for creators. Creators can run a community journaling challenge with one form per person.

Check your local privacy rules before collecting health data. This is a form, not medical advice, and not an emergency service. If you are in crisis, call your local emergency number. A therapy intake form suits a first session, and a therapist referral form helps pass a client on.

Questions

How do I see my mood over time?

Download the responses as CSV and chart the mood_today column against entry_date in a spreadsheet. The energy and sleep columns line up on the same rows.

Can a coach or group use one journal link?

Yes, but every answer goes to the form owner. Use one form per person if entries should stay private. A group can share a link only when everyone is happy to be read.

Can my AI help me write the entry?

Yes. Paste the agent prompt into your own chat and talk about your day. The AI asks the questions, shows the full entry and submits only after you say yes.

Try the form

Live demo ยท nothing is saved

Today's journal

Take a few minutes. Write what is true today, not what sounds good. Short answers are fine.

How is my mood today?

1 is low and 5 is high.

How is my energy?

1 is flat and 5 is full.

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Today's journal",
  "description": "Take a few minutes. Write what is true today, not what sounds good. Short answers are fine.",
  "fields": [
    {
      "id": "entry_date",
      "label": "Date",
      "type": "date",
      "required": true
    },
    {
      "id": "grateful_for",
      "label": "One thing I am grateful for",
      "type": "short_text",
      "required": true,
      "max_length": 300
    },
    {
      "id": "also_grateful",
      "label": "Another thing I am glad about",
      "type": "short_text",
      "max_length": 300
    },
    {
      "id": "todays_win",
      "label": "One win today, however small",
      "type": "short_text",
      "max_length": 300
    },
    {
      "id": "mood_today",
      "label": "How is my mood today?",
      "type": "rating",
      "help": "1 is low and 5 is high.",
      "min": 1,
      "max": 5
    },
    {
      "id": "energy_today",
      "label": "How is my energy?",
      "type": "rating",
      "help": "1 is flat and 5 is full.",
      "min": 1,
      "max": 5
    },
    {
      "id": "hours_slept",
      "label": "Hours of sleep last night",
      "type": "number",
      "min": 0,
      "max": 24
    },
    {
      "id": "hard_moment",
      "label": "What was hard today?",
      "type": "long_text",
      "max_length": 1500
    },
    {
      "id": "what_helped",
      "label": "What helped, even a little?",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "word_for_today",
      "label": "One word for today",
      "type": "short_text",
      "max_length": 50
    },
    {
      "id": "tomorrow_intention",
      "label": "One thing I will do tomorrow",
      "type": "short_text",
      "max_length": 300
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Today'\''s journal","description":"Take a few minutes. Write what is true today, not what sounds good. Short answers are fine.","fields":[{"id":"entry_date","label":"Date","type":"date","required":true},{"id":"grateful_for","label":"One thing I am grateful for","type":"short_text","required":true,"max_length":300},{"id":"also_grateful","label":"Another thing I am glad about","type":"short_text","max_length":300},{"id":"todays_win","label":"One win today, however small","type":"short_text","max_length":300},{"id":"mood_today","label":"How is my mood today?","type":"rating","help":"1 is low and 5 is high.","min":1,"max":5},{"id":"energy_today","label":"How is my energy?","type":"rating","help":"1 is flat and 5 is full.","min":1,"max":5},{"id":"hours_slept","label":"Hours of sleep last night","type":"number","min":0,"max":24},{"id":"hard_moment","label":"What was hard today?","type":"long_text","max_length":1500},{"id":"what_helped","label":"What helped, even a little?","type":"long_text","max_length":1000},{"id":"word_for_today","label":"One word for today","type":"short_text","max_length":50},{"id":"tomorrow_intention","label":"One thing I will do tomorrow","type":"short_text","max_length":300}]}'

JSON definition

json
{
  "title": "Today's journal",
  "description": "Take a few minutes. Write what is true today, not what sounds good. Short answers are fine.",
  "fields": [
    {
      "id": "entry_date",
      "label": "Date",
      "type": "date",
      "required": true
    },
    {
      "id": "grateful_for",
      "label": "One thing I am grateful for",
      "type": "short_text",
      "required": true,
      "max_length": 300
    },
    {
      "id": "also_grateful",
      "label": "Another thing I am glad about",
      "type": "short_text",
      "max_length": 300
    },
    {
      "id": "todays_win",
      "label": "One win today, however small",
      "type": "short_text",
      "max_length": 300
    },
    {
      "id": "mood_today",
      "label": "How is my mood today?",
      "type": "rating",
      "help": "1 is low and 5 is high.",
      "min": 1,
      "max": 5
    },
    {
      "id": "energy_today",
      "label": "How is my energy?",
      "type": "rating",
      "help": "1 is flat and 5 is full.",
      "min": 1,
      "max": 5
    },
    {
      "id": "hours_slept",
      "label": "Hours of sleep last night",
      "type": "number",
      "min": 0,
      "max": 24
    },
    {
      "id": "hard_moment",
      "label": "What was hard today?",
      "type": "long_text",
      "max_length": 1500
    },
    {
      "id": "what_helped",
      "label": "What helped, even a little?",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "word_for_today",
      "label": "One word for today",
      "type": "short_text",
      "max_length": 50
    },
    {
      "id": "tomorrow_intention",
      "label": "One thing I will do tomorrow",
      "type": "short_text",
      "max_length": 300
    }
  ]
}