@author-today-tools/n8n-nodes-api
v0.1.4
Published
n8n nodes for Author.Today platform integration
Downloads
386
Maintainers
Readme
@author-today-tools/n8n-nodes-api
n8n workflow nodes for Author.Today platform integration
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
- Open your n8n instance
- Go to Settings → Community Nodes
- Click Install and search for
@author-today-tools/n8n-nodes-api - 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-apiOr using pnpm:
pnpm add @author-today-tools/n8n-nodes-apiAfter 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
- Open any Author.Today node in your workflow
- Click Create New Credential in the Credential dropdown
- Select Author.Today API from the list
2. Enter Your Credentials
Fill in the following fields:
Email: Your Author.Today account email address
- Example:
[email protected]
- Example:
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
- Default:
3. Test Connection
Click the Test button to verify your credentials. A successful test will show:
✓ Successfully authenticated with Author.Today API4. 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
- Default:
Limit (number, 1-100): Maximum number of notifications to return (when Return All is false)
- Default:
50
- Default:
Additional Fields:
Grouped (boolean): Group related notifications together
- Default:
false
- Default:
Page (number): Starting page number for pagination
- Default:
1
- Default:
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:
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:
- Work: Like/unlike operations
- 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
- Default:
- Limit (number, 1-100): Maximum number of comments to return (when Return All is false)
- Default:
50
- Default:
Additional Fields:
- Page (number): Starting page number for pagination
- Default:
1
- Default:
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 Settings → Community 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_modulesfolder - 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:
- Check the Logs: Enable debug logging in n8n to see detailed error messages
- GitHub Issues: Report bugs at github.com/maderwin/author-today
- n8n Community: Ask in the n8n community forum
- API Documentation: Refer to the Author.Today API docs
Debug Mode
To enable detailed logging:
- Open your workflow
- Click Settings (gear icon)
- Enable Save Execution Data
- Enable Save Manual Executions
- 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.mdBuilding
# 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:watchRunning Tests
# Run all tests
pnpm test
# Run tests with coverage
pnpm test -- --coverage
# Run specific test file
pnpm test Notifications.node.test.tsContributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
pnpm test - Commit using conventional commits:
git commit -m "feat: add new operation" - Push to your fork:
git push origin feature/my-feature - 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- AuthenticationGET /notifications- List notificationsGET /notifications/:id- Get notificationPOST /notifications/read- Mark as readPOST /work/:id/like- Like workDELETE /work/:id/like- Unlike workGET /work/:id/comments- Get commentsPOST /work/:id/comments- Add comment
Related Packages
- @author-today-tools/api - Core API client
- @author-today-tools/cli - Command-line interface
License
MIT © Artyom Zakharov
Note: This package is an unofficial integration and is not affiliated with or endorsed by Author.Today.
