# Auto-bid on Freelancer.com with OpenAI and Telegram: n8n workflow

> Started by an incoming Telegram message, and works across Telegram and n8n data table. It hands the judgement calls to OpenAI.

Source: https://millionrounds.com/workflow/auto-bid-on-freelancer-com-with-openai-and-telegram (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Money admin](https://millionrounds.com/workflows?category=Money+admin#library)

# Auto-bid on Freelancer.com with OpenAI and Telegram

Started by an incoming Telegram message, and works across Telegram and n8n data table. It hands the judgement calls to OpenAI. 64 steps, 11 branches, 1 loop or waits: large, and worth reading before you trust it with anything live.

Large Calls a model: OpenAI

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fauto-bid-on-freelancer-com-with-openai-and-telegram)

**64 steps** Large: read it before trusting it with anything live

**11** Branches: places the flow splits

**1** Loop or waits

**2** Services it connects to

## The flow

Starts it 5 Model 2 Logic 31 Service 22

The steps in the order they run, from what starts it. The first 60 of 64.

- 1 **On Telegram Command** Telegram trigger *Starts it*
- 2 **When Called by freelancerMain** Execute Workflow trigger *Starts it*
- 3 **OpenAI Chat Model** Lm Chat Open Ai *Model*
- 4 **Every 30 min** Schedule trigger *Starts it*
- 5 **Error Trigger** Error trigger *Starts it*
- 6 **Every 6 Hours** Schedule trigger *Starts it*
- 7 **Setup Main (EDIT ME)** Set *Logic*
- 8 **Get My Freelancer ID** Http Request *Service*
- 9 **Write Proposal With AI** Agent *Model*
- 10 **Setup Tracker (EDIT ME)** Set *Logic*
- 11 **Send Error Message** Telegram *Service*
- 12 **Parse Chat Command** Code *Logic*
- 13 **Normalise Run Inputs** Set *Logic*
- 14 **Report Error To Telegram** Execute Workflow *Logic*
- 15 **Place Bid On Freelancer** Http Request *Service*
- 16 **Read Pending Bids** Data Table *Service*
- 17 **Is Help Command?** If *Logic*
- 18 **Is Link Mode?** If *Logic*
- 19 **Record Bid In Table** Data Table *Service*
- 20 **Extract Bid Error** Code *Logic*
- 21 **Build Status Query** Code *Logic*
- 22 **Send Command List** Telegram *Service*
- 23 **Run Freelancer Bot** Execute Workflow *Logic*
- 24 **Fetch Linked Projects** Http Request *Service*
- 25 **Search Projects** Http Request *Service*
- 26 **Send Bid Confirmation** Telegram *Service*
- 27 **Send Bid Error** Telegram *Service*
- 28 **Fetch Bid Status** Http Request *Service*
- 29 **Map Linked Projects** Code *Logic*
- 30 **Any Projects Found?** If *Logic*
- 31 **Loop Over Items** Split In Batches *Logic*
- 32 **Detect Status Changes** Code *Logic*
- 33 **Any Linked Projects?** If *Logic*
- 34 **Split Out Projects** Split Out *Logic*
- 35 **Build Run Report** Code *Logic*
- 36 **Loop Finished** Limit *Logic*
- 37 **Compute Bid Amount** Set *Logic*
- 38 **Was Bid Awarded?** If *Logic*
- 39 **Mark Projects Seen** Data Table *Service*
- 40 **Extract Posted Date** Set *Logic*
- 41 **Send Run Summary** Telegram *Service*
- 42 **Is Auto Bid On?** If *Logic*
- 43 **Ask To Accept Award** Telegram *Service*
- 44 **Mark Bid Closed** Data Table *Service*
- 45 **Build My Bids Query** Code *Logic*
- 46 **Drop Closed Or Crowded** Code *Logic*
- 47 **Ask Approval On Telegram** Telegram *Service*
- 48 **Was Award Accepted?** If *Logic*
- 49 **Notify Bid Closed** Telegram *Service*
- 50 **Fetch My Existing Bids** Http Request *Service*
- 51 **Read Skipped Projects** Data Table *Service*
- 52 **Is Approved?** If *Logic*
- 53 **Accept Award On Freelancer** Http Request *Service*
- 54 **Mark Awarded Not Accepted** Data Table *Service*
- 55 **Remove Already Bid On** Code *Logic*
- 56 **Remove Skipped Projects** Code *Logic*
- 57 **Was It Skipped?** If *Logic*
- 58 **Mark Bid Accepted** Data Table *Service*
- 59 **Any New Projects?** If *Logic*
- 60 **Any Left To Offer?** If *Logic*

## How it's built

- **Starts on:** An incoming Telegram message
- **Steps:** 64, with 11 branches, 1 loop or waits
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Telegram, n8n data table
- **Model:** OpenAI

## Questions

What does it need to run?

An n8n account, plus your own Telegram account, and a key for OpenAI. You connect your own accounts after importing it; none are included.

What starts it?

It starts on an incoming Telegram message.

Does it use AI?

Yes. It calls OpenAI. Model calls are billed by the provider, not by n8n.

How long does it take to set up?

Take your time. At 64 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 64 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fauto-bid-on-freelancer-com-with-openai-and-telegram)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Connects to

Each opens the other workflows that use it.

[Telegram](https://millionrounds.com/workflows?service=Telegram#library)[n8n data table](https://millionrounds.com/workflows?service=n8n+data+table#library)

## Workflows like it

Also money admin, with the same services where possible, closest in size first.

- [**Handle Telegram support, payments, and logo orders** 51 steps · calls a model · Google Sheets, Telegram](https://millionrounds.com/workflow/handle-telegram-support-payments-and-logo-orders)
- [**AI-powered receipt and expense tracker with Telegram** 45 steps · calls a model · Google Sheets, Redis](https://millionrounds.com/workflow/ai-powered-receipt-and-expense-tracker-with-telegram)
- [**Real-time sales quote creation in Odoo with Telegram** 43 steps · calls a model · Telegram](https://millionrounds.com/workflow/real-time-sales-quote-creation-in-odoo-with-telegram)
- [**Automate SaaS operations with OpenAI** 33 steps · calls a model · Gmail, n8n data table](https://millionrounds.com/workflow/automate-saas-operations-with-openai)
- [**GPT 4.1-mini proposal to payment lifecycle management** 33 steps · calls a model · Gmail, n8n data table](https://millionrounds.com/workflow/gpt-4-1-mini-proposal-to-payment-lifecycle-management)
- [**Automated expense tracking with Google Sheets** 31 steps · calls a model · Google Drive, Google Sheets](https://millionrounds.com/workflow/automated-expense-tracking-with-google-sheets)
