npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@author-today-tools/n8n-nodes-api

v0.1.4

Published

n8n nodes for Author.Today platform integration

Downloads

386

Readme

@author-today-tools/n8n-nodes-api

n8n workflow nodes for Author.Today platform integration

License: MIT npm version

Features

  • Native n8n Integration: Seamlessly integrate Author.Today into your n8n workflows
  • Built on Official API: Uses @author-today-tools/api for reliable API interactions
  • Type-Safe: Full TypeScript support with comprehensive type definitions
  • Comprehensive Operations: Manage notifications, interactions, comments, and likes
  • Production Ready: Thoroughly tested with 100+ tests

Table of Contents

Installation

n8n Cloud

  1. Open your n8n instance
  2. Go to SettingsCommunity Nodes
  3. Click Install and search for @author-today-tools/n8n-nodes-api
  4. Click Install to add the nodes to your instance

Self-Hosted n8n

Install the package in your n8n installation:

npm install @author-today-tools/n8n-nodes-api

Or using pnpm:

pnpm add @author-today-tools/n8n-nodes-api

After installation, restart your n8n instance. The nodes will appear in the node palette under the "Author.Today" category.

Credential Setup

Before using the nodes, you need to configure your Author.Today credentials:

1. Create New Credential

  1. Open any Author.Today node in your workflow
  2. Click Create New Credential in the Credential dropdown
  3. Select Author.Today API from the list

2. Enter Your Credentials

Fill in the following fields:

  • Email: Your Author.Today account email address

  • Password: Your Author.Today account password

    • This is securely encrypted by n8n
  • Remember Me: Whether to keep the session active for an extended period

    • Default: true
    • Enable this for long-running workflows

3. Test Connection

Click the Test button to verify your credentials. A successful test will show:

✓ Successfully authenticated with Author.Today API

4. Save Credential

Click Save to store the credential. You can now use it across all Author.Today nodes in your workflows.

Security Notes

  • Your password is encrypted by n8n and never stored in plain text
  • The credential system uses Bearer token authentication
  • Tokens are automatically refreshed as needed
  • Consider creating a dedicated account for automation workflows

Available Nodes

Author.Today Notifications

Manage notifications for your Author.Today account.

Operations

1. Get All Notifications

Retrieve all notifications with pagination support.

Parameters:

  • Return All (boolean): Whether to return all results or limit to a specific number

    • Default: false
  • Limit (number, 1-100): Maximum number of notifications to return (when Return All is false)

    • Default: 50

Additional Fields:

  • Grouped (boolean): Group related notifications together

    • Default: false
  • Page (number): Starting page number for pagination

    • Default: 1

Example Output:

{
  "id": 12345,
  "type": "new_comment",
  "title": "New comment on your work",
  "message": "User123 commented on Chapter 5",
  "read": false,
  "createdAt": "2026-02-03T10:30:00Z",
  "workId": 67890,
  "userId": 54321
}
2. Get Notification

Retrieve a single notification by its ID.

Parameters:

  • Notification ID (number, required): The ID of the notification to retrieve

Example Output:

{
  "id": 12345,
  "type": "new_follower",
  "title": "New follower",
  "message": "Author456 started following you",
  "read": true,
  "createdAt": "2026-02-02T15:20:00Z"
}
3. Mark Notifications as Read

Mark one or more notifications as read.

Parameters:

  • Notification IDs (string, required): Comma-separated list of notification IDs
    • Example: 123,456,789

Example Output:

{
  "success": true,
  "markedCount": 3,
  "notificationIds": [123, 456, 789]
}

Author.Today Interactions

Interact with works through likes and comments.

Resources

The Interactions node supports two resources:

  1. Work: Like/unlike operations
  2. Comment: Add and retrieve comments

Work Operations

1. Like Work

Add a like to a work.

Parameters:

  • Work ID (number, required): The ID of the work to like

Example Output:

{
  "success": true,
  "workId": 67890,
  "likes": 42,
  "userLiked": true
}
2. Unlike Work

Remove your like from a work.

Parameters:

  • Work ID (number, required): The ID of the work to unlike

Example Output:

{
  "success": true,
  "workId": 67890,
  "likes": 41,
  "userLiked": false
}

Comment Operations

1. Get All Comments

Retrieve all comments for a work with pagination.

Parameters:

  • Work ID (number, required): The ID of the work
  • Return All (boolean): Whether to return all comments or limit to a specific number
    • Default: false
  • Limit (number, 1-100): Maximum number of comments to return (when Return All is false)
    • Default: 50

Additional Fields:

  • Page (number): Starting page number for pagination
    • Default: 1

Example Output:

{
  "id": 98765,
  "workId": 67890,
  "userId": 54321,
  "userName": "Reader123",
  "content": "Great chapter! Can't wait for the next one.",
  "createdAt": "2026-02-03T12:45:00Z",
  "likes": 15,
  "replies": 3,
  "parentCommentId": null
}
2. Add Comment

Add a comment to a work or reply to an existing comment.

Parameters:

  • Work ID (number, required): The ID of the work
  • Comment Content (string, required): The content of your comment
    • Supports multi-line text
  • Parent Comment ID (number, optional): The ID of the parent comment for replies
    • Leave empty for top-level comments

Example - Top-Level Comment:

{
  "id": 98766,
  "workId": 67890,
  "content": "Fantastic story development!",
  "createdAt": "2026-02-03T14:30:00Z",
  "parentCommentId": null
}

Example - Reply:

{
  "id": 98767,
  "workId": 67890,
  "content": "I agree! The plot twist was unexpected.",
  "createdAt": "2026-02-03T14:35:00Z",
  "parentCommentId": 98766
}

Example Workflows

Example 1: Daily Notification Digest

Send yourself a daily summary of unread notifications.

┌─────────────────────┐
│  Schedule Trigger   │ (Every day at 9 AM)
│  (Cron: 0 9 * * *)  │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Get All            │
│  Notifications      │ (Return All: true)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Filter             │ (Filter where "read" = false)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Send Email         │ (Summary of unread notifications)
└─────────────────────┘

Example 2: Auto-Like New Works from Followed Authors

Automatically like new works from authors you follow.

┌─────────────────────┐
│  Schedule Trigger   │ (Every hour)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Get All            │
│  Notifications      │ (Filter type: "new_work")
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Filter             │ (Last hour only)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Like Work          │ (Use workId from notification)
└─────────────────────┘

Example 3: Comment Response Monitor

Get notified when someone replies to your comments.

┌─────────────────────┐
│  Schedule Trigger   │ (Every 15 minutes)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Get All            │
│  Notifications      │ (Type: "comment_reply")
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Filter             │ (Unread only)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Send Telegram      │ (Notify via Telegram)
│  Message            │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Mark Notifications │
│  as Read            │
└─────────────────────┘

Example 4: Automated Work Commenting

Post scheduled comments on your own works for engagement.

┌─────────────────────┐
│  Schedule Trigger   │ (Weekly on Monday)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Code Node          │ (Prepare comment data)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Add Comment        │ (workId, content)
└─────────────────────┘

Example 5: Bulk Notification Management

Mark all notifications as read after review.

┌─────────────────────┐
│  Manual Trigger     │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Get All            │
│  Notifications      │ (Return All: true)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Code Node          │ (Extract all IDs)
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Mark Notifications │ (Comma-separated IDs)
│  as Read            │
└─────────────────────┘

Troubleshooting

Common Issues

1. Authentication Failed

Error: Authentication failed or Invalid credentials

Solutions:

  • Verify your email and password are correct
  • Check if you can log in to author.today with the same credentials
  • Try disabling and re-enabling the "Remember Me" option
  • Create a new credential from scratch
  • Ensure your account is not locked or suspended

2. Nodes Not Appearing

Error: Author.Today nodes don't appear in the node palette

Solutions:

For n8n Cloud:

  • Ensure the package is installed in SettingsCommunity Nodes
  • Refresh your browser
  • Log out and log back in

For Self-Hosted:

  • Restart your n8n instance after installation
  • Verify the package is in your node_modules folder
  • Check n8n logs for any loading errors: docker logs n8n (if using Docker)
  • Ensure you're using n8n version 1.0.0 or higher

3. Rate Limiting

Error: Too many requests or Rate limit exceeded

Solutions:

  • Add delays between operations using the Wait node
  • Reduce the frequency of scheduled triggers
  • Use pagination instead of fetching all records at once
  • The Author.Today API has rate limits; space out your requests

4. Work ID Not Found

Error: Work not found or Invalid work ID

Solutions:

  • Verify the work ID is correct and exists
  • Ensure the work is not deleted or made private
  • Check if your account has permission to access the work
  • Work IDs should be numbers, not strings

5. Pagination Issues

Issue: Not getting all results when using "Return All"

Solutions:

  • Check if there's a maximum limit set in your n8n instance
  • For very large datasets, consider fetching in batches
  • Use the "Page" parameter to manually control pagination
  • Monitor memory usage when fetching thousands of records

6. Comment Formatting

Issue: Comments not displaying correctly or HTML tags visible

Solutions:

  • The API may return HTML content; use the HTML or Code node to format
  • Some special characters may need escaping
  • Check if the content is being truncated by character limits

Getting Help

If you encounter issues not listed here:

  1. Check the Logs: Enable debug logging in n8n to see detailed error messages
  2. GitHub Issues: Report bugs at github.com/maderwin/author-today
  3. n8n Community: Ask in the n8n community forum
  4. API Documentation: Refer to the Author.Today API docs

Debug Mode

To enable detailed logging:

  1. Open your workflow
  2. Click Settings (gear icon)
  3. Enable Save Execution Data
  4. Enable Save Manual Executions
  5. Run your workflow and check the execution logs

Development

Project Structure

packages/n8n-nodes/
├── src/
│   ├── credentials/
│   │   ├── AuthorTodayApi.credentials.ts  # Credential definition
│   │   └── authortoday.svg                # Credential icon
│   ├── nodes/
│   │   ├── Interactions.node.ts           # Interactions node
│   │   ├── Notifications.node.ts          # Notifications node
│   │   └── authortoday.svg                # Node icon
│   ├── utils/
│   │   └── auth.ts                        # Authentication utilities
│   ├── __tests__/                         # Test files
│   └── index.ts                           # Package entry point
├── package.json
├── tsconfig.json
└── README.md

Building

# Build once
pnpm build

# Build in watch mode (development)
pnpm dev

# Type check
pnpm type-check

# Run tests
pnpm test

# Run tests in watch mode
pnpm test:watch

Running Tests

# Run all tests
pnpm test

# Run tests with coverage
pnpm test -- --coverage

# Run specific test file
pnpm test Notifications.node.test.ts

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make your changes
  4. Run tests: pnpm test
  5. Commit using conventional commits: git commit -m "feat: add new operation"
  6. Push to your fork: git push origin feature/my-feature
  7. Create a Pull Request

API Reference

This package is built on @author-today-tools/api. For detailed API documentation, see the API package README.

Supported API Endpoints

  • POST /account/login - Authentication
  • GET /notifications - List notifications
  • GET /notifications/:id - Get notification
  • POST /notifications/read - Mark as read
  • POST /work/:id/like - Like work
  • DELETE /work/:id/like - Unlike work
  • GET /work/:id/comments - Get comments
  • POST /work/:id/comments - Add comment

Related Packages

License

MIT © Artyom Zakharov


Note: This package is an unofficial integration and is not affiliated with or endorsed by Author.Today.