by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
No description available
by Muhammad Farooq Iqbal
Automate TikTok video posting from Google Sheets & Drive with Blotato. Perfect for content creators and social media managers. ⚠️ IMPORTANT Self-hosted n8n only - requires community nodes not available in cloud version. Google Sheets Structure Required columns: ID, Media URL, Caption, Status Videos must be in Google Drive Status must be "pending" for processing Captions can include hashtags (5 max recommended) How it works Schedule Trigger → Runs every hour Fetch Data → Gets pending videos from Google Sheets Process Video → Extracts Drive ID and shares file Upload → Transfers to Blotato platform Post → Automatically posts to TikTok Update Status → Marks as "posted" in spreadsheet Requirements Self-hosted n8n instance Blotato API account Google Drive & Sheets OAuth2 credentials Community node: @blotato/n8n-nodes-blotato.blotato Use cases Automated TikTok content posting Batch video processing Content management workflows Scheduled social media distribution The workflow processes one video per hour to avoid rate limits and maintains a clear audit trail through Google Sheets integration.
by System Admin
Tagged with: , , , ,
by Przemek Chojecki
Export WordPress Posts to Spreadsheet and download .csv to your local machine.
by Harshil Agrawal
Store the data received from the CocktailDB API in JSON
by phil
This workflow automates the update of Yoast SEO metadata for a specific post or product on a WordPress or WooCommerce site. It sends a POST request to a custom API endpoint exposed by the Yoast SEO API Manager plugin, allowing for programmatic changes to the SEO title and meta description. Bulk version available here. Prerequisites A WordPress site with administrator access. The Yoast SEO plugin installed and activated. The Yoast SEO API Manager companion plugin installed and activated to expose the required API endpoint. WordPress credentials configured within your n8n instance. Setup Steps Configure the Settings Node: In the Settings node, replace the value of the wordpress URL variable with the full URL of your WordPress site (e.g., https://your-domain.com/). Set Credentials: In the HTTP Request - Update Yoast Meta node, select your pre-configured WordPress credentials from the Credential for WordPress API dropdown menu. Define Target and Content: In the same HTTP Request node, navigate to the Body Parameters section and update the following values: post_id: The ID of the WordPress post or WooCommerce product you wish to update. yoast_title: The new SEO title. yoast_description: The new meta description. How It Works Manual Trigger: The workflow is initiated manually. This can be replaced by any trigger node for full automation. Settings Node: This node defines the base URL of the target WordPress instance. This centralizes the configuration, making it easier to manage. HTTP Request Node: This is the core component. It constructs and sends a POST request to the /wp-json/yoast-api/v1/update-meta endpoint. The request body contains the post_id and the new metadata, and it authenticates using the selected n8n WordPress credentials. Customization Guide Dynamic Inputs**: To update posts dynamically, replace the static values in the HTTP Request node with n8n expressions. For example, you can use data from a Google Sheets node by setting the post_id value to an expression like {{ $json.column_name }}. Update Additional Fields: The underlying API may support updating other Yoast fields. Consult the **Yoast SEO API Manager plugin's documentation to identify other available parameters (e.g., yoast_canonical_url) and add them to the Body Parameters section of the HTTP Request node. Change the Trigger**: Replace the When clicking ‘Test workflow’ node with any other trigger node to fit your use case, such as: Schedule: To run the update on a recurring basis. Webhook: To trigger the update from an external service. Google Sheets: To trigger the workflow whenever a row is added or updated in a specific sheet. Yoast SEO API Manager Plugin for WordPress // ATTENTION: Replace the line below with <?php - This is necessary due to display constraints in web interfaces. <?php /** Plugin Name: Yoast SEO API Manager v1.2 Description: Manages the update of Yoast metadata (SEO Title, Meta Description) via a dedicated REST API endpoint. Version: 1.2 Author: Phil - https://inforeole.fr (Adapted by Expert n8n) */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Yoast_API_Manager { public function __construct() { add_action('rest_api_init', [$this, 'register_api_routes']); } /** Registers the REST API route to update Yoast meta fields. */ public function register_api_routes() { register_rest_route( 'yoast-api/v1', '/update-meta', [ 'methods' => 'POST', 'callback' => [$this, 'update_yoast_meta'], 'permission_callback' => [$this, 'check_route_permission'], 'args' => [ 'post_id' => [ 'required' => true, 'validate_callback' => function( $param ) { $post = get_post( (int) $param ); if ( ! $post ) { return false; } $allowed_post_types = class_exists('WooCommerce') ? ['post', 'product'] : ['post']; return in_array($post->post_type, $allowed_post_types, true); }, 'sanitize_callback' => 'absint', ], 'yoast_title' => [ 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', ], 'yoast_description' => [ 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', ], ], ] ); } /** Updates the Yoast meta fields for a specific post. * @param WP_REST_Request $request The REST API request instance. @return WP_REST_Response|WP_Error Response object on success, or WP_Error on failure. */ public function update_yoast_meta( WP_REST_Request $request ) { $post_id = $request->get_param('post_id'); if ( ! current_user_can('edit_post', $post_id) ) { return new WP_Error( 'rest_forbidden', 'You do not have permission to edit this post.', ['status' => 403] ); } // Map API parameters to Yoast database meta keys $fields_map = [ 'yoast_title' => '_yoast_wpseo_title', 'yoast_description' => '_yoast_wpseo_metadesc', ]; $results = []; $updated = false; foreach ( $fields_map as $param_name => $meta_key ) { if ( $request->has_param( $param_name ) ) { $value = $request->get_param( $param_name ); update_post_meta( $post_id, $meta_key, $value ); $results[$param_name] = 'updated'; $updated = true; } } if ( ! $updated ) { return new WP_Error( 'no_fields_provided', 'No Yoast fields were provided for update.', ['status' => 400] ); } return new WP_REST_Response( $results, 200 ); } /** Checks if the current user has permission to access the REST API route. * @return bool */ public function check_route_permission() { return current_user_can( 'edit_posts' ); } } new Yoast_API_Manager(); Bulk version available here : this bulk version, provided with a dedicated WordPress plugin, allows you to generate and bulk-update meta titles and descriptions for multiple articles simultaneously using artificial intelligence. It automates the entire process, from article selection to the final update in Yoast, offering considerable time savings. . Phil | Inforeole
by Mauricio Perera
📝 Description This workflow allows you to extract all links (URLs) contained in a PDF file by converting it to HTML via PDF.co and then extracting the URLs present in the resulting HTML. Unlike the traditional Read PDF node, which only returns visible link text, this flow provides the full active URLs, making further processing and analysis easier. 📌 Use Cases Extract all hyperlinks from PDF documents. Automate URL verification and monitoring within documents. Extract links from reports, contracts, catalogs, newsletters, or manuals. Prepare URLs for validation, classification, or storage. 🔗 Workflow Overview User uploads a PDF file via a web form. The PDF is uploaded to PDF.co. The PDF is converted to HTML (preserving links). The converted HTML is downloaded. URLs are extracted from the HTML using a custom code node. ⚙️ Node Breakdown 1. Load PDF (formTrigger) Uploads a .pdf file. Single file upload. 2. Upload (PDF.co API) Uploads the PDF file to PDF.co using binary data. 3. PDF to HTML (PDF.co API) Converts the uploaded PDF to HTML using its URL. 4. Get HTML (HTTP Request) Downloads the converted HTML from PDF.co. 5. Code1 (Function / Code) Parses the HTML content to extract all URLs (http, https, www). Uses a regex to identify URLs within the HTML text. Outputs an array of objects containing the extracted URLs. 📎 Requirements Active PDF.co account with API key. Set up PDF.co credentials in n8n (PDF.co account). Enable webhook to expose the upload form. 🛠️ Suggested Next Steps Add nodes to validate extracted URLs (e.g., HTTP requests to check status). Store URLs in a database, spreadsheet, or send via email. Extend the flow to filter URLs by domain, type, or pattern. 📤 Importing the Template Import this workflow into n8n via Import workflow and paste the provided JSON. If you want help adding extra steps or optimizing the URL extraction, just ask! If you want, I can also prepare this as a Canva visual template for you. Would you like that?
by Alexander Schnabl
Audit permissions in Confluence to ensure compliance This workflow scans selected Confluence spaces for public exposure risks, helping teams identify unintended access and potential data leakage. What it does Detects public exposure risks in Confluence spaces, including: Anonymous access permissions at space level Whether public links are enabled Pages with active or blocked public links Uses Confluence REST API v2 together with the Atlassian GraphQL API. Produces a consolidated per-space report containing: Anonymous access permissions Public link status Pages with public links (title, status, URL, enabled-by user) Ideal for security audits, compliance reviews, and data leakage prevention. How it works The workflow starts via a Manual Trigger. A Set Variables node defines: atlassianDomain spaceKeys (comma-separated) Get Spaces (v2)** retrieves matching spaces and splits them into individual items. For each space, three GraphQL queries run in parallel: Retrieve anonymous access permissions Check public link feature status at space level Fetch pages with public links (ON / BLOCKED) Results from all three queries are merged and normalized into a single per-space report. Setup Configure the Set Variables node: atlassianDomain → your Confluence base URL spaceKeys → comma-separated list (e.g. ENG, HR) Create an HTTP Basic Auth credential for Atlassian: Email + API token Assign it to all HTTP and GraphQL nodes Ensure the credential has permission to: Read spaces Read space permissions Access GraphQL endpoints Execute the workflow manually to generate the report. Notes Uses the Atlassian GraphQL API, which exposes permission and public-link data not fully available via REST. Pages with blocked public links are included for visibility. The GraphQL page query fetches up to 250 pages per space.
by Shahrear
Transform your expense tracking with automated AI receipt processing that extracts data and organizes it instantly. What this workflow does Monitors Google Drive for new receipt uploads (images/PDFs) Downloads and processes files automatically Extracts key data using verified VLM Run node (merchant, amount, currency, date) Saves structured data to Airtable for easy tracking Setup Prerequisites: Google Drive account, Airtable account, VLM Run API credentials, n8n instance. Install the verified VLM Run node by searching for VLM Run in the node list, then click Install. Once installed, you can start using it in your workflows. Quick Setup: Configure Google Drive OAuth2, Airtable OAuth2 Create receipt upload folder Add VLM Run API credentials Create Airtable table with columns: Customer, Merchant, Amount, Currency, Date Update folder/table IDs in workflow nodes Test and activate How to customize this workflow to your needs Extend functionality by: Adding expense categories and approval workflows Connecting to accounting software (QuickBooks, Xero) Including Slack notifications for processed receipts Adding data validation and duplicate detection This workflow transforms manual receipt processing into an automated system that saves hours while improving accuracy. > ⚠️ Disclaimer: This workflow requires a self-hosted n8n setup because it uses custom nodes (VLM Run) that are not available on the managed n8n.cloud service.
by Alok Singh
Step 1: Slack Trigger The workflow starts whenever your Slack bot is mentioned or receives an event in a channel. The message that triggered it (including text and channel info) is passed into the workflow. Step 2: Extract the Sheet ID The workflow looks inside the Slack message for a Google Sheets link. If it finds one, it extracts the unique spreadsheet ID from that link. It also keeps track of the Slack channel where the message came from. If no link is found, the workflow stops quietly. Step 3: Read Data from Google Sheet Using the sheet ID, the workflow connects to Google Sheets and reads the data from the chosen tab (the specific sheet inside the spreadsheet). This gives the workflow all the rows and columns of data from that tab. Step 4: Convert Data to CSV The rows pulled from Google Sheets are then converted into a CSV file. At this point, the workflow has the spreadsheet data neatly packaged as a file. Step 5: Upload CSV to Slack Finally, the workflow uploads the CSV file back into Slack. It can either be sent to a fixed channel or directly to the same channel where the request came from. Slack users in that channel will see the CSV as a file upload. How it works The workflow is triggered when your Slack bot is mentioned or receives a message. It scans the message for a Google Sheets link. If a valid link is found, the workflow extracts the unique sheet ID. It then connects to Google Sheets, reads the data from the specified tab, and converts it into a CSV file. Finally, the CSV file is uploaded back into Slack so the requesting user (and others in the channel) can download it. How to use In Slack, mention your bot and include a Google Sheets link in your message. The workflow will automatically pick up the link and process it. Within a short time, the workflow will upload a CSV file back into the same Slack channel. You can then download or share the CSV file directly from Slack. Requirements Slack App & Credentials: Your bot must be installed in Slack with permissions to receive mentions and upload files. Google Sheets Access: The Google account connected in n8n must have at least read access to the sheet. n8n Setup: The workflow must be imported into n8n and connected to your Slack and Google Sheets credentials. Correct Sheet Tab: The workflow needs to know which tab of the spreadsheet to read (set by name or by sheet ID). Customising this workflow Channel Targeting: By default, the file can be sent back to the channel where the request came from. You can also set it to always post in a fixed channel. File Naming: Change the uploaded file name (e.g., include the sheet title or today’s date). Sheet Selection: Adjust the configuration to read a specific tab or allow the user to specify the tab in their Slack message. Error Handling: Add extra steps to send a Slack message if no valid link is detected, or if the Google Sheet cannot be accessed. Formatting: Extend the workflow to clean, filter, or enrich the data before converting it into CSV.