Zapier proxy: action nào gắn được proxy, khi nào cần trung gian
Zapier proxy là cụm từ nhiều anh em tìm khi muốn Zap gọi website hay API từ một IP cố định hoặc đúng khu vực. Vấn đề là Zapier không có ô nhập proxy ở các action phổ biến. Bài này, ProxyVN đi qua từng action, chỉ ra chỗ nào gắn được, chỗ nào phải dựng endpoint trung gian, kèm code mẫu và cách kiểm tra lỗi trước khi chạy thật.
Zapier proxy là gì và giải quyết việc gì
Khi nói Zapier proxy, anh em thường muốn một trong hai thứ. Thứ nhất là lưu lượng từ Zapier đi ra ngoài phải mang một IP mà phía nhận biết trước. Thứ hai là Zap cần lấy dữ liệu từ một nguồn hiển thị khác nhau theo khu vực, nên phải đi qua IP ở đúng nơi đó.
Hai nhu cầu này nghe giống nhau nhưng cách xử lý khác hẳn. Nhu cầu thứ nhất thường giải quyết bằng IP tĩnh của chính Zapier. Nhu cầu thứ hai mới thật sự cần proxy bên ngoài. Tách bạch từ đầu giúp anh em không mất công dựng hệ thống thừa.
Zapier chạy ở đâu và gửi request từ IP nào
Zapier là dịch vụ đám mây, mọi action chạy trên hạ tầng của Zapier chứ không chạy trên máy anh em. Request từ một Zap đi ra Internet bằng IP thuộc hạ tầng đó. Mặc định, IP này không cố định và có thể đổi giữa các lần chạy.
Trang hướng dẫn dùng địa chỉ IP tĩnh để kết nối tới Zapier cho biết các gói Professional, Team và Enterprise có thể dùng IP tĩnh. Zapier công bố hai dải 44.214.195.64/28 cho vùng us-east-1 và 18.246.81.208/28 cho vùng us-west-2. Gói Free thêm các dải này vào danh sách cho phép cũng không được định tuyến qua IP tĩnh.
Khi nào IP tĩnh của Zapier là đủ
Nếu phía nhận là máy chủ nội bộ hay API của đối tác chỉ cho phép IP trong danh sách, IP tĩnh của Zapier thường là lời giải gọn nhất. Anh em chỉ cần thêm hai dải trên vào tường lửa. Không cần proxy, không cần thêm máy chủ nào.
Có một điểm cần đọc kỹ. Danh sách ứng dụng hỗ trợ IP tĩnh có Webhooks by Zapier và API by Zapier, nhưng Code by Zapier không nằm trong danh sách. Nếu Zap của anh em gọi API bằng Code step, đừng giả định request đó đi ra từ dải IP tĩnh.
Khi nào thật sự cần proxy bên ngoài
Proxy bên ngoài có ích khi anh em cần IP ở một quốc gia khác Mỹ, ví dụ kiểm tra giá hiển thị cho người dùng Việt Nam. Nó cũng có ích khi phía nhận cho phép đúng một IP mà anh em đang thuê. Trường hợp thứ ba là anh em muốn gom mọi request từ nhiều công cụ tự động về chung một cổng ra để dễ theo dõi.
Ngoài ba trường hợp này, thêm proxy vào Zap chỉ làm tăng độ trễ và thêm một điểm lỗi. Vậy nên trước khi làm Zapier proxy, anh em nên trả lời rõ mình cần IP để làm gì, ở đâu và ai là phía nhận.
Zapier proxy: kiểm tra từng loại action có ô proxy không
Phần này đi qua ba action hay dùng nhất để gọi ra ngoài. ProxyVN đối chiếu tài liệu chính thức của Zapier ngày 23/10/2026 và ghi lại đúng các trường cấu hình được mô tả. Kết luận chung là chưa action nào trong ba action này có trường proxy riêng.

Action nào có ô proxy
Webhooks by Zapier
Theo trang gửi webhook trong Zap, action này cho chọn sự kiện GET, POST, PUT hoặc Custom Request. Các trường được mô tả gồm URL, Data, Headers, Basic Auth và Payload Type với các lựa chọn Form, JSON, XML, Raw. Custom Request dùng khi cần PATCH, DELETE, JSON lồng nhau hoặc header tuỳ biến.
Không có trường nào để nhập địa chỉ proxy, cổng hay tài khoản proxy. Trường Basic Auth là thông tin đăng nhập gửi tới chính URL đích, không phải tới proxy. Anh em đừng nhập user và mật khẩu proxy vào đây, vì chúng sẽ bị gửi thẳng tới website đích.
- Kích thước dữ liệu tối đa cho action webhook là 5MB.
- Webhooks by Zapier nằm trong danh sách hỗ trợ IP tĩnh trên gói trả phí.
- Custom Request không gửi được tệp đính kèm.
Code by Zapier
Code step chạy Python 3.13 hoặc Node.js 22. Trang dùng Python trong Zap cho biết môi trường có sẵn thư viện requests và BeautifulSoup. Bản JavaScript có sẵn hàm fetch. Cả hai trang đều không nhắc tới proxy.
Về lý thuyết, thư viện requests nhận tham số proxies trong mỗi lần gọi. Đây là tính năng của thư viện, không phải tính năng Zapier công bố. Zapier không cam kết môi trường cho phép kết nối ra cổng proxy tuỳ ý, nên anh em phải tự thử trên tài khoản của mình trước khi dựa vào nó.
API by Zapier và action của từng ứng dụng
API by Zapier đang ở trạng thái beta và cần gói trả phí. Tab cấu hình gồm Method, URL, Query String Parameters, Headers và Body. Xác thực lấy từ kết nối ứng dụng, URL phải khớp bộ lọc tên miền của kết nối. Không có trường proxy.
Action có sẵn của từng ứng dụng như Google Sheets hay Slack cũng không cho chỉnh mạng. Chúng gọi API của ứng dụng đó theo cách Zapier đã lập trình sẵn. Muốn đổi đường mạng cho các action này là không làm được từ phía người dùng.
Bảng tổng hợp khả năng gắn proxy
Bảng dưới gom kết quả đối chiếu tài liệu. Cột cuối là hướng xử lý ProxyVN đề xuất khi anh em cần đi qua proxy.
Action |
Trường cấu hình chính |
Ô proxy |
IP tĩnh Zapier |
Hướng xử lý |
|---|---|---|---|---|
Webhooks by Zapier |
URL, Data, Headers, Basic Auth, Payload Type |
Không có |
Có, gói trả phí |
Gọi tới endpoint trung gian |
Code by Zapier (Python) |
input_data, code, output |
Không có, chỉ có tham số của requests |
Không trong danh sách |
Tự thử, giới hạn thời gian theo gói |
Code by Zapier (JavaScript) |
inputData, code, output |
Không có |
Không trong danh sách |
Gọi endpoint trung gian bằng fetch |
API by Zapier (beta) |
Method, URL, Query, Headers, Body |
Không có |
Có, gói trả phí |
Dùng IP tĩnh nếu chỉ cần allowlist |
Action ứng dụng có sẵn |
Tuỳ ứng dụng |
Không có |
Tuỳ ứng dụng |
Không đổi được đường mạng |
Đọc bảng này, anh em thấy endpoint trung gian là cách ổn định nhất khi cần proxy thật. Code step là lối tắt có thể chạy nhưng phụ thuộc môi trường và giới hạn thời gian. Phần sau đi vào từng cách cụ thể.
Chuẩn bị môi trường thử Zapier proxy
Trước khi viết code, anh em cần một Zap thử riêng, một nguồn dữ liệu biết trước kết quả và thông tin proxy đặt ở nơi an toàn. Làm thử trên Zap đang chạy cho khách hay cho đội nhóm rất dễ gây lỗi dây chuyền. Một Zap thử chỉ có trigger thủ công và một hai action là đủ.
Chọn gói Zapier và đọc giới hạn trước
Giới hạn thời gian chạy của Code step khác nhau theo gói. Trang giới hạn của Code by Zapier ghi gói Free chạy tối đa 1 giây, Professional và Team 30 giây, Enterprise 2 phút. Bộ nhớ là 512 MB cho mọi gói. Gói trả phí còn có tuỳ chọn thời gian chạy mở rộng tới 10 phút.
Con số 1 giây trên gói Free gần như loại bỏ khả năng gọi qua proxy trong Code step. Chỉ riêng bước bắt tay với proxy rồi tới website đã có thể vượt mốc này. Nếu đang dùng gói Free, anh em nên chuyển thẳng sang cách endpoint trung gian.
Chọn URL kiểm tra IP
Để biết request có đi qua proxy hay không, cần một URL trả về IP của bên gọi. Dịch vụ httpbin.org/ip là lựa chọn phổ biến cho thử nghiệm, trả về JSON có trường origin. Anh em cũng có thể dựng một endpoint nhỏ trên máy chủ của mình để in IP người gọi.
So IP trả về với IP proxy nhà cung cấp cấp cho. Nếu trùng, request đã đi qua proxy. Nếu ra một IP thuộc dải đám mây Mỹ, request vẫn đi thẳng từ hạ tầng Zapier. Bước so sánh này nên làm ở mọi cách triển khai, không chỉ một lần.
Nơi để thông tin proxy
Zapier lưu dữ liệu đầu vào và đầu ra của từng bước trong lịch sử Zap. Nếu anh em gõ chuỗi http://user:pass@host:port vào trường Input Data của Code step, chuỗi đó sẽ nằm trong lịch sử và ai có quyền xem Zap đều đọc được. Đây là rủi ro lộ tài khoản hay bị bỏ qua.
Cách an toàn hơn là để thông tin proxy trên máy chủ trung gian, đọc từ biến môi trường. Zap chỉ gửi URL cần tải và một token riêng cho máy chủ trung gian. Lỡ lộ token thì đổi token, không phải đổi cả tài khoản proxy.
- Tạo Zap thử với trigger thủ công hoặc Schedule.
- Ghi lại gói Zapier đang dùng và giới hạn thời gian của Code step.
- Chuẩn bị URL kiểm tra IP và IP proxy dự kiến.
- Không dán mật khẩu proxy vào trường nhập liệu của Zap.
Có đủ bốn thứ trên, anh em sẽ biết rõ kết quả thử là đúng hay sai. Không có điểm so sánh, mọi lần chạy đều trông giống thành công.
Zapier proxy qua Code by Zapier: ví dụ tối thiểu
Cách đầu tiên là dùng tham số proxies của requests ngay trong Code step Python. Cách này không cần máy chủ riêng nên dựng rất nhanh. Bù lại, nó chịu giới hạn thời gian theo gói và chưa được Zapier mô tả là cách chính thức.

Code step gọi qua proxy
Code step Python đi qua proxy
Đoạn dưới là ví dụ triển khai do ProxyVN viết, không lấy từ tài liệu Zapier. Code đọc URL cần tải từ input_data, gọi qua proxy nếu có, rồi trả về mã trạng thái, URL cuối và một đoạn nội dung ngắn. Biến output là cách Code step trả dữ liệu cho bước sau.
import requests
target = input_data.get("target_url", "https://httpbin.org/ip")
proxy = input_data.get("proxy_url", "").strip()
proxies = {"http": proxy, "https": proxy} if proxy else None
try:
r = requests.get(target, proxies=proxies, timeout=(5, 20))
output = {
"status": r.status_code,
"final_url": r.url,
"length": len(r.text),
"snippet": r.text[:500],
"via_proxy": bool(proxy),
}
except requests.exceptions.RequestException as exc:
output = {"status": 0, "error": type(exc).__name__, "via_proxy": bool(proxy)}
Tham số timeout gồm thời gian chờ kết nối 5 giây và thời gian chờ đọc 20 giây. Tổng hai con số này vẫn nằm trong mốc 30 giây của gói Professional. Trên gói Free, code sẽ bị dừng ở mốc 1 giây trước khi kịp trả kết quả.
Đầu vào và đầu ra mong đợi
Trong trường Input Data của Code step, anh em khai báo hai khoá target_url và proxy_url. Để thử lần đầu, target_url là https://httpbin.org/ip. Như đã nói ở phần trước, đưa mật khẩu proxy vào đây là chấp nhận nó nằm trong lịch sử Zap, nên chỉ làm với proxy thử.
Khi chạy thành công, output có status bằng 200 và snippet chứa trường origin với IP của proxy. Nếu origin là IP lạ thuộc dải đám mây, nghĩa là proxy chưa được áp dụng. Nếu output có trường error là ProxyError hoặc ConnectTimeout, môi trường không kết nối được tới proxy hoặc thông tin proxy sai.
Giới hạn của cách làm này
Trang hướng dẫn Python của Zapier khuyên nếu cần nhiều hơn 2 request HTTP hoặc request có xác thực thì nên dựng ứng dụng tuỳ chỉnh. Lời khuyên này áp thẳng vào trường hợp proxy, vì request qua proxy luôn có xác thực. Code step hợp với thử nghiệm và lưu lượng rất nhỏ.
Rate limit của Code step cũng cần tính tới. Gói Free cho 10 lần chạy mỗi 60 giây, gói Professional và Team cho 225 lần mỗi 10 giây. Vượt mức này, các lượt chạy Zap bị giữ lại tới khi giới hạn được làm mới.
- Không chạy được trên gói Free do giới hạn 1 giây.
- Thông tin proxy dễ lọt vào lịch sử Zap.
- Không nằm trong danh sách IP tĩnh, khó dự đoán IP ra khi không có proxy.
- Môi trường có thể chặn kết nối ra một số cổng, phải tự thử.
Vì bốn hạn chế này, ProxyVN chỉ xem Code step là bước thử nhanh. Khi Zap đi vào vận hành thật, anh em nên chuyển sang endpoint trung gian ở phần tiếp theo.
Zapier proxy qua endpoint trung gian
Endpoint trung gian là một dịch vụ web nhỏ do anh em tự chạy trên VPS hoặc máy chủ đám mây. Zapier gửi request tới dịch vụ này, dịch vụ gọi website đích qua proxy rồi trả kết quả về. Thông tin proxy chỉ nằm trên máy chủ, Zapier không bao giờ thấy.

Endpoint trung gian
Vì sao không dựng một proxy mở
Cách lười nhất là cài một proxy HTTP lên VPS rồi trỏ Zapier vào. Nhưng như phần trước đã chỉ ra, Zapier không có ô để nhập proxy, nên cách này không dùng được. Kể cả dùng được, một proxy mở trên Internet sẽ sớm bị kẻ lạ lợi dụng.
Endpoint trung gian đúng cách phải có ba lớp chặn. Lớp một là token bí mật trong header. Lớp hai là danh sách tên miền được phép gọi. Lớp ba là giới hạn tốc độ để một Zap lỗi lặp vô hạn không đốt hết băng thông proxy.
Code relay bằng Flask
Đoạn dưới là ví dụ triển khai do ProxyVN viết bằng Flask và requests. Dịch vụ nhận POST tại đường dẫn /fetch, kiểm tra token, kiểm tra tên miền, gọi qua proxy rồi trả JSON. Log chỉ ghi tên miền, mã trạng thái và thời gian, không ghi mật khẩu.
import hmac
import logging
import os
import time
from urllib.parse import urlparse
import requests
from flask import Flask, abort, jsonify, request
app = Flask(__name__)
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s")
RELAY_TOKEN = os.environ["RELAY_TOKEN"]
UPSTREAM_PROXY = os.environ["UPSTREAM_PROXY"]
ALLOWED_HOSTS = {h.strip() for h in os.environ.get("ALLOWED_HOSTS", "").split(",") if h.strip()}
MIN_GAP = float(os.environ.get("MIN_GAP_SECONDS", "2"))
session = requests.Session()
session.proxies.update({"http": UPSTREAM_PROXY, "https": UPSTREAM_PROXY})
session.headers.update({"User-Agent": "zap-relay/0.1"})
last_call = {"t": 0.0}
def masked_proxy():
p = urlparse(UPSTREAM_PROXY)
return f"{p.scheme}://***@{p.hostname}:{p.port}"
@app.post("/fetch")
def fetch():
token = request.headers.get("X-Relay-Token", "")
if not hmac.compare_digest(token, RELAY_TOKEN):
abort(401)
data = request.get_json(silent=True) or {}
url = str(data.get("url", ""))
parts = urlparse(url)
if parts.scheme != "https" or parts.hostname not in ALLOWED_HOSTS:
return jsonify({"ok": False, "error": "host_not_allowed", "host": parts.hostname}), 400
wait = MIN_GAP - (time.monotonic() - last_call["t"])
if wait > 0:
time.sleep(wait)
last_call["t"] = time.monotonic()
started = time.monotonic()
try:
r = session.get(url, timeout=(5, 15))
except requests.exceptions.ProxyError:
logging.warning("proxy_error host=%s via=%s", parts.hostname, masked_proxy())
return jsonify({"ok": False, "error": "proxy_error"}), 502
except requests.exceptions.Timeout:
logging.warning("timeout host=%s via=%s", parts.hostname, masked_proxy())
return jsonify({"ok": False, "error": "timeout"}), 504
elapsed = round(time.monotonic() - started, 2)
logging.info("fetch host=%s status=%s t=%ss via=%s", parts.hostname, r.status_code, elapsed, masked_proxy())
return jsonify({
"ok": r.ok,
"status": r.status_code,
"final_url": r.url,
"elapsed": elapsed,
"retry_after": r.headers.get("Retry-After"),
"body": r.text[:20000],
})
Hàm hmac.compare_digest so token theo thời gian không đổi, tránh lộ token qua đo thời gian phản hồi. Biến MIN_GAP_SECONDS tạo khoảng nghỉ tối thiểu giữa hai lần gọi. Phần thân trả về được cắt ở 20.000 ký tự để không vượt giới hạn 5MB của action webhook.
Chạy relay và đặt biến môi trường
Relay cần chạy sau HTTPS, vì token đi trong header. Anh em có thể dùng gunicorn phía sau Nginx hoặc Caddy có chứng chỉ. Ví dụ dưới đặt biến môi trường trên Linux rồi chạy bằng gunicorn với một worker cho đơn giản.
export RELAY_TOKEN='chuoi-ngau-nhien-dai-it-nhat-32-ky-tu'
export UPSTREAM_PROXY='http://USERNAME:PASSWORD@HOST:PORT'
export ALLOWED_HOSTS='httpbin.org,api.example.com'
export MIN_GAP_SECONDS='2'
pip install flask requests gunicorn
gunicorn -w 1 -b 127.0.0.1:8080 relay:app
Chạy một worker giúp biến last_call hoạt động đúng như bộ giới hạn tốc độ. Khi chạy nhiều worker, mỗi worker có biến riêng nên khoảng nghỉ không còn chính xác. Lúc đó anh em cần bộ đếm dùng chung như Redis, nhưng với lưu lượng từ Zapier thì một worker thường đủ.
USERNAME, PASSWORD, HOST và PORT là giá trị mẫu. Nếu mật khẩu chứa ký tự @ hoặc dấu hai chấm, cần mã hoá URL trước khi ghép. Bài proxy HTTP và SOCKS5 giải thích khác biệt hai giao thức nếu anh em đang phân vân nên dùng loại nào cho relay.
Kiểm tra relay trước khi nối với Zapier
Trước khi đụng tới Zapier, gọi thử relay bằng curl từ máy của anh em. Nếu relay trả đúng IP proxy, phần còn lại chỉ là cấu hình Zap. Nếu không, lỗi nằm ở relay hoặc proxy và không liên quan Zapier.
curl -s -X POST https://relay.example.com/fetch \
-H "Content-Type: application/json" \
-H "X-Relay-Token: $RELAY_TOKEN" \
-d '{"url": "https://httpbin.org/ip"}'
Kết quả mong đợi là JSON có ok bằng true, status bằng 200 và trường body chứa origin là IP proxy. Gửi thiếu token phải nhận 401. Gửi URL ngoài danh sách phải nhận 400 với lỗi host_not_allowed. Ba phép thử này xác nhận cả ba lớp chặn đều hoạt động.
Gọi endpoint trung gian từ Webhooks by Zapier
Khi relay đã chạy ổn, việc còn lại là cấu hình action trong Zap. Webhooks by Zapier là lựa chọn tự nhiên vì nó gửi được POST với header tuỳ chỉnh và nằm trong danh sách hỗ trợ IP tĩnh. Phần này mô tả cấu hình theo đúng tên trường trong tài liệu Zapier.
Cấu hình action POST
Thêm action Webhooks by Zapier, chọn sự kiện POST. Điền các trường như sau, giá trị chỉ là ví dụ để anh em thay bằng thông tin thật.
- URL: https://relay.example.com/fetch
- Payload Type: JSON
- Data: khoá url, giá trị là URL cần tải, có thể lấy từ bước trigger.
- Headers: khoá X-Relay-Token, giá trị là token đã đặt trên relay.
- Basic Auth: để trống, vì relay xác thực bằng header.
Token đặt trong Headers vẫn được Zapier lưu trong cấu hình Zap. Khác biệt so với cách dán mật khẩu proxy là token chỉ mở được relay của anh em, và relay chỉ gọi được các tên miền trong danh sách. Phạm vi thiệt hại khi lộ nhỏ hơn nhiều.
Thêm lớp chặn bằng IP tĩnh
Trên gói Professional trở lên, request từ Webhooks by Zapier đi ra từ hai dải IP tĩnh đã nêu. Anh em có thể cấu hình tường lửa hoặc Nginx của relay chỉ nhận kết nối từ hai dải này. Khi đó, kể cả người ngoài có token cũng không gọi được relay từ máy khác.
Đây là chỗ IP tĩnh của Zapier và proxy bên ngoài bổ sung cho nhau. IP tĩnh bảo vệ đầu vào của relay, còn proxy quyết định đầu ra đi tới website. Hai lớp này tách biệt và nên được kiểm tra riêng.
Đọc kết quả ở bước sau
Webhooks by Zapier tự phân tích JSON trả về thành các trường riêng. Bước sau trong Zap có thể dùng trực tiếp ok, status, final_url và body. Anh em nên thêm một bước Filter hoặc Paths để rẽ nhánh khi ok bằng false.
Nhánh lỗi có thể gửi tin nhắn cho người phụ trách hoặc ghi một dòng vào Google Sheets. Đừng để Zap tiếp tục xử lý body rỗng như thể đó là dữ liệu đúng. Lỗi im lặng là loại lỗi tốn thời gian dò nhất.
Với Zapier proxy qua relay, anh em kiểm soát được cả token, tên miền, tốc độ và log. Đó là bốn thứ Code step không cho anh em kiểm soát đầy đủ.
Xử lý lỗi và giới hạn request khi chạy Zapier proxy
Lỗi trong mô hình này rơi vào ba tầng: Zapier gọi relay, relay gọi proxy, và proxy gọi website. Mỗi tầng có mã lỗi riêng. Nhìn mã trạng thái trong output, anh em biết ngay cần sửa ở đâu.
Lỗi giữa Zapier và relay
Mã 401 nghĩa là token sai hoặc thiếu. Kiểm tra lại tên header trong Zap có khớp chính xác X-Relay-Token không, kể cả chữ hoa. Mã 400 kèm host_not_allowed nghĩa là URL không nằm trong danh sách, hoặc URL dùng http thay vì https.
Nếu Zap báo lỗi kết nối mà relay không có dòng log nào, request chưa tới được relay. Nguyên nhân thường là chứng chỉ HTTPS lỗi, tường lửa chặn, hoặc relay đang tắt. Kiểm tra bằng curl từ một máy bên ngoài sẽ cho câu trả lời nhanh nhất.
Lỗi giữa relay và proxy
Mã 502 với lỗi proxy_error nghĩa là relay không kết nối được proxy. Hai nguyên nhân hay gặp là sai cổng và sai thông tin xác thực. Bài sửa lỗi 407 Proxy Authentication Required trên blog ProxyVN liệt kê các bước dò khi proxy từ chối tài khoản.
Mã 504 với lỗi timeout nghĩa là proxy hoặc website phản hồi quá chậm. Anh em thử gọi cùng URL qua proxy từ chính máy chủ relay bằng curl để so. Nếu curl cũng chậm, vấn đề nằm ở proxy hoặc website, không phải code relay.
- 401: sai token hoặc thiếu header.
- 400 host_not_allowed: URL ngoài danh sách cho phép.
- 502 proxy_error: sai cổng, sai tài khoản hoặc proxy ngừng hoạt động.
- 504 timeout: proxy hoặc website quá chậm.
- 200 nhưng ok bằng false: website trả mã lỗi, đọc trường status.
Lỗi từ website đích và giới hạn tốc độ
Khi relay trả ok bằng false với status 403 hoặc 429, request đã tới website nhưng bị từ chối hoặc bị giới hạn. Tài liệu MDN về mã 429 mô tả header Retry-After cho biết cần đợi bao lâu. Relay đã trả trường retry_after để Zap đọc được giá trị này.
Phía Zapier cũng có giới hạn riêng. Tài liệu Zapier ghi Webhooks by Zapier trả 429 nếu vượt 20.000 request mỗi 5 phút cho mỗi người dùng. Con số này cao hơn nhiều so với mức website đích chịu được, nên giới hạn thật sự nằm ở relay và ở chính sách của website.
Đổi IP không thay cho việc giảm tốc độ. Một Zap gọi quá dày vẫn nhận 429 dù đi qua proxy nào.
Kiểm tra dữ liệu đầu ra
Mã 200 chưa có nghĩa dữ liệu đúng. Website có thể trả trang thông báo cookie, trang chọn khu vực hoặc trang bảo trì với mã 200. Anh em nên thêm kiểm tra nội dung, ví dụ body phải chứa một chuỗi đặc trưng của trang thật.
Một cách đơn giản là ghi lại độ dài body của vài lần chạy đúng. Lần nào body ngắn bất thường thì đánh dấu để xem tay. Kiểm tra này rẻ nhưng chặn được phần lớn dữ liệu rác trước khi chúng đi vào CRM hay bảng tính.
Khi nào cần Zapier proxy và checklist trước khi chạy thật
Không phải Zap nào gọi ra ngoài cũng cần proxy. Phần lớn Zap gọi API chính thức của ứng dụng, có khoá API, có giới hạn rõ ràng và không quan tâm IP bên gọi. Thêm proxy vào những Zap này chỉ làm chậm và thêm điểm lỗi.

Checklist trước khi chạy thật
Ba tình huống nên dùng
Tình huống thứ nhất là phía nhận chỉ chấp nhận một IP anh em đang thuê, không chấp nhận dải IP của Zapier. Tình huống thứ hai là cần dữ liệu hiển thị theo khu vực, như giá hay tình trạng hàng cho người dùng Việt Nam. Tình huống thứ ba là đội nhóm muốn mọi công cụ tự động đi qua một cổng ra chung để theo dõi.
Với tình huống thứ hai, loại proxy nên chọn tuỳ vào nguồn dữ liệu. Proxy dân cư tĩnh của nhà mạng Việt Nam hợp với trang hiển thị theo vùng người dùng thật. Proxy datacenter Việt Nam hợp với API hoặc trang ít kiểm tra loại IP. Bài proxy cho AI agent tự động bàn thêm về cách chọn IP cho các công cụ tự động gọi web.
Hai tình huống không nên dùng
Tình huống đầu là chỉ cần allowlist IP. IP tĩnh của Zapier trên gói trả phí làm việc này gọn hơn và không tốn thêm chi phí proxy. Tình huống thứ hai là muốn vượt giới hạn hoặc điều khoản của một nền tảng. Proxy không hợp thức hoá việc vi phạm điều khoản, và tài khoản vẫn có thể bị khoá.
Anh em cũng nên đọc điều khoản của website trước khi để Zap tải dữ liệu định kỳ. Trang công khai không có nghĩa được phép thu thập tự động. Chỉ đưa vào danh sách ALLOWED_HOSTS những nguồn anh em có quyền dùng.
Checklist trước khi bật Zap
Trước khi bật Zap cho chạy theo lịch, rà lại các mục dưới. Mỗi mục ứng với một lỗi đã nêu ở các phần trên.
- Đã xác định rõ cần IP để làm gì: allowlist hay dữ liệu theo khu vực.
- Đã thử Code step hoặc relay với URL kiểm tra IP và thấy đúng IP proxy.
- Mật khẩu proxy chỉ nằm trên máy chủ relay, không nằm trong Zap.
- Relay có token, danh sách tên miền và khoảng nghỉ tối thiểu.
- Relay chỉ nhận kết nối từ dải IP tĩnh của Zapier nếu gói cho phép.
- Zap có nhánh xử lý khi ok bằng false hoặc body ngắn bất thường.
- Log relay ghi tên miền, mã trạng thái, thời gian và đã che mật khẩu.
Khi cần mua proxy Việt Nam cho relay, anh em có thể xem các gói dân cư tĩnh Viettel, VNPT, FPT hoặc datacenter đang hiển thị trên trang chủ ProxyVN, rồi chạy thử với URL kiểm tra IP trước khi nối vào Zap thật. Mọi gói đều cấp user và mật khẩu, dùng được với tham số proxies của requests.
Theo dõi sau khi chạy
Tuần đầu, anh em nên đọc log relay mỗi ngày. Chú ý tỷ lệ lỗi 429, thời gian phản hồi trung bình và số lần body ngắn bất thường. Ba con số này cho biết tốc độ đang hợp lý hay cần giảm.
Sau khi ổn định, có thể chuyển sang kiểm tra hằng tuần. Đặt cảnh báo khi tỷ lệ lỗi vượt một ngưỡng anh em chọn, ví dụ quá một phần mười số lượt chạy trong ngày. Cảnh báo sớm giúp sửa trước khi dữ liệu sai lan vào hệ thống khác.
Biến thể Zapier proxy với JavaScript và nhiều nguồn
Không phải đội nào cũng dùng Python. Nếu Zap đang dùng Code step JavaScript, anh em vẫn gọi relay được bằng hàm fetch có sẵn. Cách này giữ mật khẩu proxy ngoài Zap, giống cách dùng Webhooks.
Gọi relay từ Code step JavaScript
Đoạn dưới là ví dụ triển khai do ProxyVN viết cho Code step JavaScript. Nó gửi POST tới relay, đọc JSON trả về rồi trả kết quả cho bước sau. Token lấy từ inputData, nên vẫn nằm trong cấu hình Zap như ở cách Webhooks.
const res = await fetch("https://relay.example.com/fetch", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Relay-Token": inputData.relayToken,
},
body: JSON.stringify({ url: inputData.targetUrl }),
});
const data = await res.json();
output = {
ok: data.ok === true,
status: data.status || res.status,
finalUrl: data.final_url || "",
length: (data.body || "").length,
};
Lưu ý Code by Zapier JavaScript không nằm trong danh sách ứng dụng hỗ trợ IP tĩnh. Nếu relay chỉ nhận kết nối từ dải IP tĩnh, request từ Code step JavaScript có thể bị chặn. Anh em cần thử thực tế hoặc chuyển sang Webhooks by Zapier cho đường gọi này.
Chia relay theo nhóm nguồn
Khi một relay phục vụ nhiều Zap gọi nhiều nguồn khác nhau, log sẽ trộn lẫn và khó đọc. Anh em có thể thêm trường job vào JSON gửi đi và ghi trường này vào log. Mỗi Zap gửi một giá trị job riêng để lọc khi cần.
Nếu một nguồn cần IP Việt Nam còn nguồn khác cần IP Mỹ, hãy cấu hình hai biến proxy và chọn theo tên miền. ProxyVN có cả datacenter Việt Nam và datacenter US, nên có thể chia theo cách này mà vẫn dùng chung kiểu xác thực user và mật khẩu.
Khi nào nên chuyển sang công cụ khác
Zapier mạnh ở khâu nối ứng dụng với nhau, không mạnh ở khâu tải trang hàng loạt. Nếu Zap phải gọi hàng trăm URL mỗi lượt, relay sẽ thành nút cổ chai và Zap sẽ tốn nhiều task. Lúc đó nên tách phần thu thập ra một script riêng chạy theo lịch, rồi chỉ đẩy kết quả vào Zapier.
Cách tách này giữ Zapier làm đúng việc của nó: nhận dữ liệu đã sạch và phân phối tới CRM, bảng tính hay kênh nhắn tin. Phần gọi web qua proxy nằm trong script mà anh em kiểm soát được thời gian chạy, số luồng và log.
Câu hỏi thường gặp về Zapier proxy
Phần này gom những thắc mắc hay gặp khi anh em bắt đầu thử. Câu trả lời ngắn, chi tiết đã nằm ở các phần trên.
Zapier có ô nhập proxy ở đâu không
Theo tài liệu ProxyVN đối chiếu ngày 23/10/2026, Webhooks by Zapier, Code by Zapier và API by Zapier đều không có trường proxy riêng. Nếu sau này Zapier bổ sung, tên trường sẽ xuất hiện trong trang hướng dẫn của từng action. Anh em nên kiểm tra lại tài liệu trước khi làm.
Dùng Basic Auth để nhập tài khoản proxy được không
Không. Basic Auth trong Webhooks by Zapier gửi thông tin đăng nhập tới URL đích. Nếu nhập tài khoản proxy vào đây, website đích sẽ nhận được user và mật khẩu proxy của anh em. Đây là cách làm lộ tài khoản nhanh nhất.
Lỗi ProxyError trong Code step nên xử lý thế nào
Đầu tiên kiểm tra lại chuỗi proxy, cổng và giao thức. Nếu chuỗi đúng mà vẫn lỗi, có thể môi trường Code step không kết nối được tới cổng đó. Bài requests.exceptions.ProxyError trình bày từng nguyên nhân, và nếu không tự thử thông được thì nên chuyển sang relay.
Zapier proxy chạy ổn khi anh em hiểu đúng giới hạn: action không có ô proxy, Code step bị giới hạn thời gian, relay là đường an toàn nhất. Hãy thử với URL kiểm tra IP trước khi bật Zap thật. Cần hỗ trợ chọn gói, anh em nhắn Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để được tư vấn cho Zapier proxy.