castomFLOW
Mở castomFLOW

Kết nối bất cứ thứ gì

HTTP vào, HTTP ra, những phần khó chịu đã được xử lý

Mọi công cụ tự động hóa đều quảng cáo một con số tích hợp. Con số luôn lớn và luôn là câu hỏi sai, vì hệ thống bạn thực sự cần là hệ thống được xây nội bộ năm 2014 bởi người đã rời đi. Điều quan trọng là công cụ nói giao thức nằm dưới tất cả chúng tốt đến đâu.

Các kết nối có sẵn

Các ứng dụng mà hầu hết doanh nghiệp vận hành đều có các bước được chuẩn bị sẵn: cửa hàng và chợ thương mại điện tử, kế toán và hóa đơn, bảng tính và cơ sở dữ liệu, lịch và thư, lưu trữ và nhắn tin, CRM và helpdesk, nhà cung cấp thanh toán và đơn vị vận chuyển. Bạn ủy quyền tài khoản một lần và các trường được đặt tên theo ngôn ngữ ứng dụng dùng, không phải theo ngôn ngữ JSON của nó.

Khi một ứng dụng có đặc thù của thị trường Ba Lan — hệ thống hóa đơn phải sẵn sàng cho KSeF, đơn vị vận chuyển có nhãn là tiêu chuẩn quốc gia — bước được chuẩn bị sẵn biết điều đó, vì hệ sinh thái bán vào thị trường đó và buộc phải học.

Và rồi trường hợp tổng quát

Mọi thứ còn lại là một bước HTTP, và một bước HTTP ở đây không phải phần thưởng an ủi. Nó là cùng một cơ chế mà các kết nối có sẵn được xây trên đó, với cách xử lý giống nhau cho những phần mà tự viết thì nhàm chán.

Những phần nhàm chán

Đã được xử lý, để bạn không phải viết lại

Xác thực

Khóa API, bearer token, basic auth, OAuth 2 với refresh, ký yêu cầu HMAC, TLS hai chiều. Một thông tin xác thực được lưu một lần, tham chiếu theo tên, và không bao giờ được in vào log hay bản ghi chạy.

Phân trang

Con trỏ, số trang, offset, tiêu đề Link, và API báo hết bằng cách trả về mảng rỗng. Nói nó thuộc dạng nào và bước sẽ đi qua toàn bộ tập.

Giới hạn tốc độ

Một giới hạn trên cho mỗi kết nối, được tôn trọng trong mọi quy trình sử dụng nó. Khi nhà cung cấp trả về 429 kèm Retry-After, bước đó sẽ chờ đúng khoảng thời gian đó thay vì dồn dập liên tục.

Thử lại và giãn cách

Lỗi tạm thời được thử lại với khoảng cách tăng dần và có giới hạn. Một bước là hàm thuần túy của đầu vào, nên việc thử lại sẽ chạy lại bước chứ không chạy lại toàn bộ lần chạy.

Dữ liệu khó nhằn

JSON, mã hóa biểu mẫu, XML, văn bản thuần, tải lên multipart. Phản hồi được phân tích thành các trường bạn có thể tham chiếu theo tên, kể cả những trường lồng sâu bốn cấp.

Giới hạn thời gian

Giới hạn cho từng bước, để một phụ thuộc chậm không thể giữ chân một worker trong khi mọi thứ phía sau phải xếp hàng. Điều gì xảy ra khi chạm giới hạn là quyết định của bạn, theo từng bước.

Nếu hệ thống đó nói được HTTP, cuộc trò chuyện đã bắt đầu rồi.

Webhook đến, được coi trọng đúng mức

Mọi quy trình đều có thể có một URL để khởi động. URL đó xác minh chữ ký — HMAC theo các dạng mà các nhà cung cấp phổ biến dùng, và bí mật chung ở nơi người gửi chỉ làm được vậy. Một yêu cầu không chữ ký gửi đến quy trình yêu cầu chữ ký sẽ bị từ chối và ghi lại, chứ không được xử lý lặng lẽ.

Việc khử trùng lặp dựa trên định danh riêng của payload, nên người gửi thử lại vì chưa kịp thấy 200 của bạn sẽ chỉ tạo một lần chạy thay vì ba. Payload sai định dạng được giữ lại, kèm lý do bị từ chối, vì nguyên nhân phổ biến nhất của khoảng trống bí ẩn trong tự động hóa là người gửi đã đổi ý về một trường dữ liệu.

Những hệ thống chỉ nói được CSV

Chúng tồn tại thật. Một tập tin xuất hiện trên máy chủ SFTP lúc bốn giờ sáng, hoặc đến dưới dạng tệp đính kèm, hoặc được thả vào một thư mục chung. Một quy trình có thể theo dõi nó, đọc nó, và coi mỗi dòng là một bản ghi — kể cả tập tin có dấu byte-order mark, dấu chấm phẩy làm phân cách và dòng tiêu đề bằng tiếng Ba Lan, vì bản xuất thực tế trông đúng như vậy.

Chiều ngược lại cũng hoạt động: một quy trình có thể tạo tập tin và đặt nó ở nơi hệ thống kia mong đợi tìm thấy — thường là giao diện duy nhất mà một phần mềm từ năm 2006 có.

Nguồn cấp nhà cung cấp hằng đêmSFTP → HTTP
  • ⚡Trình kích hoạtTập tin mới trên SFTP của nhà cung cấp: stock-2026-09-09.csv.
  • 2Phân tíchDấu chấm phẩy, byte-order mark, tiêu đề tiếng Ba Lan. 4 118 dòng.
  • 3Chuẩn hóaMã tiền tệ được đối chiếu với dữ liệu tham chiếu; hai mã bị từ chối vì không hợp lệ.
  • 4ĐẩyHTTP PATCH theo lô 200 bản ghi, tôn trọng giới hạn tốc độ.
  • !Ngoại lệHai dòng được chuyển cho một người xử lý, kèm số dòng và lý do. 4 116 dòng còn lại đã đi qua.

Các bước đã gọi mô hình: 0Chi phí lần chạy này: không có gì

Thông tin xác thực nằm ở đâu

Được mã hóa, tham chiếu theo tên, giới hạn trong không gian làm việc sở hữu chúng, và không bao giờ hiển thị trong nhật ký chạy, thông báo lỗi hay cuộc trò chuyện hỗ trợ. Bản ghi chạy cho thấy một bước đã xác thực với tư cách supplier-sftp; nhưng không cho thấy supplier-sftp là gì.

Một đại lý chạy một quy trình cho ba mươi khách hàng sẽ cấp cho mỗi khách hàng bộ thông tin xác thực riêng, và quy trình chỉ tham chiếu đến bộ đó thay vì bí mật. Xoay vòng khóa là một lần chỉnh sửa ở một nơi — đó là phần lớn lý do các đại lý đến với chúng tôi.

Giới hạn đáng biết: một hệ thống không có bất kỳ giao diện nào — không API, không webhook, không chỗ thả tập tin, không gì ngoài một người bấm chuột trong trình duyệt — không thể tự động hóa bằng công cụ này hay bất kỳ cách nào trung thực khác. Ở đây không có trình duyệt headless giả làm người dùng, vì thứ đó vỡ ngay lần đầu bên kia đổi chỗ một nút bấm, và nó vỡ một cách im lặng.