자동화
자동화는 언제, 어떤 조건에서, 무엇을 할지 정합니다. 작업이 “Fait”로 바뀌면 시각을 기록하고, 부정적인 후기가 들어오면 담당자에게 알리고 Slack에 글을 올리며, 매주 월요일 9시에 팀 회의 행을 만듭니다. 동작 하나로 부족할 때는 흐름을 따릅니다. 행을 찾고, 그 내용에 따라 이 분기나 저 분기로 가고, 필터에 맞는 행마다 단계를 반복하고, 앞 단계에서 찾거나 쓴 것을 다음 단계에서 다시 사용하고, 독촉 전에 사흘을 대기하고, PDF를 첨부로 보냅니다.
자동화는 사이드바 아래쪽의 열린 데이터베이스 블록에 있는 자동화에서 열며, 관리 권한이 필요합니다.

흐름은 위에서 아래로 그려집니다. 먼저 트리거, 그다음 각 단계입니다. 선 위의 + 버튼은 카테고리 — 행, 소통, 문서, AI, 로직 — 로 나뉘고 검색 기능이 있는 단계 목록을 열어, 선택한 단계를 그 위치에 추가합니다. 카드를 누르면 오른쪽에 설정이 열립니다. 트리거 하나와 동작 하나로 된 간단한 자동화는 카드 두 장이면 되고, 예전과 같은 방식으로 설정합니다.
| 트리거 | 설정 |
|---|---|
| 행 생성됨 | 테이블 |
| 행 수정됨 | 테이블, 필요하면 감시할 필드만 |
| 정해진 시각 | 매시간, 매일 또는 매주, 선택한 시각과 시간대 |
| 버튼 클릭 | 테이블의 버튼 필드 |
| 행 삭제됨 | 테이블; 단계는 삭제되기 전 상태의 행을 인용함 |
| 행이 필터에 들어옴 | 테이블과 필터: 행이 필터에 들어올 때 자동화가 시작되고, 필터에서 나간 뒤에야 다시 시작됨 — “청구서가 연체로 바뀜”이지 “연체 중인 청구서가 수정됨”이 아님 |
| 날짜가 되었을 때 | 테이블의 날짜 필드, 간격 — 3일 전, 당일, 1주 후 — 과 시각: 마감 독촉, 계약 기념일 |
| 웹훅을 수신했을 때 | 없음: 자동화가 고유 주소를 받고, 다른 프로그램이 이를 호출함 (자세히) |
행 트리거는 모든 쓰기를 봅니다. 인터페이스, API, 에이전트, 공유 양식, SQL 직접 쓰기까지 모두입니다. 자동화는 모든 쓰기를 남기는 기록에서 출발하기 때문입니다.
다음 경우에만
섹션 제목: “다음 경우에만”필터 언어로 작성하는 선택적 조건입니다
(statut eq "fait", montant gte 10000 and payee eq false). 조건은 동작하는 시점의 행을
기준으로 평가됩니다. 조건을 충족하지 않은 실행은 “건너뜀”으로 표시되며, 그 이유를 알려 줍니다.
그러면
섹션 제목: “그러면”최대 40개 단계가 순서대로 실행되며, 한 단계가 실패하면 이후 단계는 실행되지 않습니다 — 시도 블록 안에서는 예외입니다 (자세히).
| 단계 | 하는 일 |
|---|---|
| 행 수정 | 트리거한 행, 또는 앞 단계에서 찾거나 만든 행에 값을 씀 |
| 행 생성 | 이 테이블이나 데이터베이스의 다른 테이블에 행을 만듦 |
| 행 찾기 | 필터에 맞는 테이블의 첫 번째 행을 찾아, 다음 단계가 인용하거나 수정할 수 있게 함 |
| 알림 보내기 | 선택한 사람들이나 사람 필드에 지정된 사람에게 알림을 보냄 |
| 이메일 보내기 | 팀 구성원에게, 사람 필드에 지정된 사람에게, E-mail 필드의 주소로 — 고객이나 공급업체 —, 또는 직접 입력한 주소로 보냄; 제목과 본문에서 행과 이전 단계를 인용함 |
| 웹훅 호출 | 서비스로 보내는 HTTPS 요청 — 메서드, 주소, 헤더, 본문을 직접 설정 (자세히); 그 응답을 이후 단계에서 인용할 수 있음 |
| Slack으로 보내기 | 연결된 채널에 메시지를 보냄 |
| AI에게 질문 | 행과 이전 단계를 인용하는 지시문(작성, 요약, 분류)에 대한 AI 공급자의 응답을 텍스트, 숫자, 예/아니요, 날짜 또는 목록 중 선택 값으로 읽음 |
| 조건 | 여러 분기: 조건을 충족하는 첫 번째 분기로 가고, 아무것도 충족하지 않으면 “그 외”로 감. 분기는 이후 다시 합쳐짐 |
| 행 반복 | 필터에 맞는 테이블의 행마다, 포함된 단계를 한 번씩 반복 (자세히) |
| 행 삭제 | 트리거한 행, 또는 앞 단계에서 찾은 행 — 휴지통으로 이동함 |
| 집계 | 필터에 맞는 행의 개수, 합계, 평균, 최소값 또는 최대값을 구해 이후에 인용하거나 조건으로 테스트할 수 있음 |
| PDF 생성 | 행의 문서를 만들어 Document 필드에 저장하거나 이메일에 첨부함 |
| 대기 | 일정 시간 또는 필드의 날짜까지 기다림 (자세히) |
| 시도 | 여러 단계를 실행하고, 그중 하나가 실패하면 대신 실행할 다른 단계들을 둠 (자세히) |
| 자동화 실행 | 데이터베이스의 다른 자동화를 그 테이블의 한 행에 대해 실행함 |
찾기 단계가 아무것도 찾지 못해도 흐름은 멈추지 않습니다. 찾은 행을 수정해야 했던 단계는 건너뜁니다. 이 경우 다른 동작을 하려면, 찾기 단계 아래의 행을 찾지 못한 경우…에 조건을 추가해 이를 테스트합니다.
조건은 필터로 행을 테스트하거나 값을 테스트합니다 — AI의 응답, 웹훅의 코드, 합계
등입니다: “{{e2.reponse}}이 Urgent와 같음”, “{{e3.somme.montant}}이 1000 이상”. 숫자는
숫자로 비교되며, 텍스트는 발음 구별 기호와 대소문자를 구분하지 않고 비교됩니다.
행 반복
섹션 제목: “행 반복”행 반복 단계는 필터에 맞는(비어 있으면 전체) 테이블의 행을 선택한 순서로, 한도(기본
50개, 최대 200개)까지 읽은 다음, 그 안에 놓인 단계들을 각 행마다 한 번씩 실행합니다.
“매주 월요일, 미납 청구서 독촉하기”는 정해진 시각 다음 payee eq false and relancee eq false
조건의 청구서에 대한 행 반복, 그리고 반복 안에서 청구서 담당자에게 보내는 이메일과
“Relancée”를 체크하는 행 수정으로 작성합니다.
반복 안에서 단계의 식별자는 이번 회차의 행을 가리킵니다. {{e1.client}}는 그 행을
인용하고, 행 수정은 그 행을 수정할 행 후보로 제시합니다. 반복이 끝난 뒤
{{e1.nombre}}는 통과한 행 수를 나타냅니다 — 예를 들어 Slack 요약에 씁니다. 필터는 그 앞의
내용을 인용할 수 있습니다. 지불된 청구서로 트리거된 경우, facture eq {{_id}}는 그 명세
행들을 통과합니다.
한도를 넘는 나머지 행은 다음 실행을 기다리며, 그 사실이 표시됩니다. 처리된 행을 필터에서 빠지게 하세요 — 체크란 “Relancée”, 날짜 등 — 그러면 여러 번의 실행에 걸쳐 모두 처리됩니다. 반복은 다른 반복을 포함할 수 없으며, 실행은 2분 뒤에 멈춥니다.
대기 단계는 실행을 일시 중지합니다 — 세 시간, 이틀 — 또는 행의 한 필드 날짜까지, 간격과 시각을 지정해서(“마감일 전날, 9시에”). 실행은 실행 탭에서 일시 중지로 표시되며, 다시 시작할 날짜가 함께 나타납니다.
다음 단계로 이어질 때는 행을 다시 읽습니다: “견적서를 보낸 지 3일이 지났는데도 아직 승인되지 않았다면 독촉하기”는 대기 3일, 그다음 그날의 견적서 상태를 확인하는 조건으로 작성합니다. 자동화를 비활성화하면 일시 중지된 실행이 멈춥니다. 대기는 반복이나 시도 블록 안에는 둘 수 없으며, 최대 1년까지 지속됩니다.
시도 블록에는 두 개의 경로가 있습니다. 첫 번째 경로가 실행되고, 그중 한 단계가 실패하면
흐름은 두 번째 경로인 실패 시로 이어집니다. 이 경로는 실패 내용 — 코드인 {{e4.erreur}}와
단계인 {{e4.etape}} — 을 인용하고, 블록이 끝난 뒤 다시 이어집니다. 서비스가 응답하지 않을
때 전체를 멈추지 않고 누군가에게 알릴 수 있습니다.
더 간단하게는, 웹훅이 서비스 오류 후 스스로 최대 세 번까지 재시도할 수 있고, 반복은 실패한 행이 있어도 계속될 수 있습니다.
PDF와 이메일
섹션 제목: “PDF와 이메일”PDF 생성은 행의 문서를 만듭니다 — 테이블의 문서 템플릿을 사용하거나, 모든 필드를 담은 기본 문서로 — 그리고 이를 Document 필드에 저장할 수 있습니다. 이메일 보내기는 이후 Document나 Image 필드의 파일과 함께 이를 첨부할 수 있습니다:
- 각자에게 한 통씩, 또는 모두에게 한 통, 참조 수신자 포함;
- 행을 인용하는 서식 있는 텍스트 메시지(굵게, 목록, 링크);
- 답장 주소: 기본값은 본인 주소, 또는 E-mail 필드의 주소;
- 최대 50명의 수신자, 10개의 첨부 파일, 15MB.
“견적서가 승인됨으로 바뀌면 고객에게 청구서를 보내고 회계팀을 참조로 넣기”는 다음과 같이
작성합니다: statut eq "accepte" 조건의 행이 필터에 들어옴, 청구서 템플릿의 PDF 생성,
청구서를 첨부한 고객의 E-mail 필드로 이메일 보내기.
basedb를 호출하는 서비스
섹션 제목: “basedb를 호출하는 서비스”웹훅을 수신했을 때 트리거를 사용하면 자동화에 고유한 비밀 주소가 생기며, 이를 실행해야 하는 프로그램 — 온라인 상점, 외부 양식, 자동화 도구 — 에 전달합니다:
curl -X POST "https://basedb.example.com/api/v1/hooks/<secret>" \ -H "content-type: application/json" \ -d '{"client": {"nom": "Dupont"}, "total": 120}'단계에서는 전달받은 내용을 {{trigger.client.nom}}, {{trigger.total}}로 인용합니다. 양식도
마찬가지 방식으로 읽히며, 텍스트는 {{trigger.texte}}로 인용합니다. 주소는 트리거 설정에서
복사할 수 있으며, 주소 변경은 이를 새 주소로 바꾸고 이전 주소는 즉시 사용할 수 없게
됩니다. 호출은 202를 응답받고, 자동화는 그 즉시 실행됩니다.
서비스 호출
섹션 제목: “서비스 호출”웹훅 호출 단계는 기본적으로 POST로 자동화 데이터 — 선택된 행과 이전 단계가 찾거나 쓴
내용 — 를 보냅니다. 서비스가 기대하는 방식대로 말하려면 다음을 설정합니다.
- 메서드:
POST,PUT,PATCH,GET또는DELETE— 이 중 뒤의 두 방식은 본문이 없습니다. - 주소: 호스트 뒤에서 인용할 수 있으며 —
https://api.exemple.fr/clients/{{e2.numero}}— 각 값은 인코딩됩니다. - 헤더: 값에서 인용할 수 있습니다:
Idempotency-Key: {{_id}}. - 본문: 자동화 데이터, 작성할 JSON, 양식(줄마다
키=값쌍) 또는 텍스트 중 하나입니다. JSON에서는 따옴표 안의 인용은 텍스트이고, 따옴표 밖의 인용은 값 — 숫자, 예/아니요, 목록 — 입니다.
{ "facture": "{{e1.numero}}", "montant": {{e1.montant}}, "payee": {{e1.payee}} }API 키나 토큰은 시크릿 헤더(자물쇠)에 넣습니다: 인스턴스 키로 암호화되어 다시는 표시되지 않습니다 — 화면에도, API에도, Copilot에도 — 그리고 지정한 호스트로만 전송됩니다. 주소의 호스트를 바꾸면 다시 입력해야 하며, 교체로 새 값을 입력합니다.
AI에게 질문
섹션 제목: “AI에게 질문”AI 필드와 마찬가지로, 이 단계는 각 인용을 해당 값으로 바꾼 지시문을 공급자에게 보냅니다.
{{auteur}} 님의 이 후기에 우리가 조치를 취해야 하나요? {{avis}}기대하는 응답을 선택합니다. 자유 텍스트나 짧은 텍스트, 숫자, 예/아니요, 날짜, 웹 주소,
또는 목록 중 선택 값이며, 목록은 단일 선택 필드에서 가져올 수 있습니다. 모델에게도 이 형식이
전달되며, 응답에 해당 형식의 값이 없으면 단계가 실패합니다. 다음 단계는 이 응답을
{{e1.reponse}}로 인용합니다. 새로 만드는 작업의 제목이나 메시지에 넣을 수 있고, 단일 선택
필드에 넣으면 레이블이 같은 선택 값으로 들어갑니다.
지시문이 인용하는 내용은 공급자에게 전송됩니다. 그래서 이 단계는 동의를 요청하며,
지시문이 바뀌면 다시 동의해야 합니다. 모든 호출은 로그에 남고, AI 필드와 함께
BASEDB_AI_FIELD_QUOTA(기본값 시간당 300회)에 포함됩니다. AI는 스스로 아무것도 하지
않습니다. 쓰기나 알림은 그 뒤에 놓인 단계가 합니다.
값, 메시지, 필터에서는 각 텍스트 옆의 { } 버튼으로 앞선 내용을 인용합니다.
{{Titre}},{{_id}}: 트리거한 행{{e2.titre}},{{e2._id}}:e2단계가 찾거나 만들거나 수정한 행. 각 단계의 식별자는 카드에 표시됩니다.{{e3.statut}},{{e3.reponse.numero}}: 웹훅e3의 응답{{e4.reponse}}: AI 단계e4의 응답- 반복
e5안에서{{e5.client}}는 이번 회차의 행이고, 반복이 끝난 뒤{{e5.nombre}}는 통과한 행 수를 나타냅니다 {{e6.nombre}},{{e6.somme.montant}},{{e6.moyenne.montant}},{{e6.max.echeance}}:e6단계가 집계한 값{{e7.erreur}},{{e7.etape}}: 시도 블록e7이 처리한 실패 내용{{e8.nom}}:e8단계가 만든 PDF의 이름{{trigger.client.nom}}: 들어온 웹훅이 보낸 내용{{_maintenant}}: 실행 시각
인용 하나로만 이루어진 값은 값 자체를 그대로 전달합니다. 관계, 사람, 선택 값도 마찬가지입니다. 이렇게 해서 새로 만든 행을 찾기 단계가 찾은 행과 연결합니다. 필터 안의 인용은 항상 비교할 값이며, 필터 언어로 해석되지 않습니다.
단계는 자신보다 앞서 확실히 일어난 일만 인용할 수 있습니다. 한 분기에서 찾은 것은 조건 이후에는 인용할 수 없습니다. 편집기는 저장하기 전에 카드에 이를 표시합니다.
Copilot
섹션 제목: “Copilot”머리글의 Copilot을 누르면 오른쪽에 데이터베이스 자동화에 관한 자연어 대화가 열립니다. “작업이 검토 단계로 넘어가면 담당자에게 알려 줘”, “메모에 AI 요약을 추가해 줘”, “마지막 실행이 왜 실패했어?” 같은 요청을 할 수 있습니다. Copilot은 답하고, 변경 사항 목록과 함께 전체 자동화를 제안합니다. 화면에 있는 자동화를 수정한 것일 수도, 새 자동화일 수도 있습니다.
Copilot은 아무것도 저장하지 않습니다. 흐름에 적용을 누르면 제안이 편집기에 표시되고, 저장하기 전에 검토할 수 있습니다. 카드의 취소를 누르면 흐름이 원래대로 돌아갑니다. 새 자동화는 편집기에서 열리며, 직접 만들어야 합니다. 모든 제안은 저장할 때와 똑같이 검증되며, 맞지 않는 부분은 제외되고 그 사실이 표시됩니다.
기본적으로 AI 공급자에게는 대화와 함께 구조 정보만 전송됩니다. 테이블과 그 필드,
데이터베이스의 자동화, 편집기에 표시된 그대로의 현재 자동화, 그리고 최근 실행의 상태와 오류
코드이며, 값은 절대 전송되지 않습니다. 사람과 Slack 채널은 식별자 대신 표식(p1, s1)으로
전송됩니다. 데이터 읽기 허용 확인란을 선택하면 해당 대화에서 Copilot이 행을 읽을 수
있으며(읽기당 최대 50행), 읽은 내용은 각 응답 아래에 나열됩니다.
테스트와 모니터링
섹션 제목: “테스트와 모니터링”행으로 테스트는 저장된 자동화를 선택한 행에서 실제로 실행합니다. 실행 탭에는 최근 50개 실행이 30일 동안 보관됩니다. 대기 중, 진행 중, 성공, 건너뜀(이유 포함), 실패(오류 코드 포함)로 표시됩니다. 실행 하나를 선택하면 흐름 위에 표시됩니다. 거쳐 간 경로가 그려지고, 실행된 각 단계에는 무엇을 했는지와 걸린 시간이 표시되며, 나머지는 흐리게 표시됩니다. 반복 안에서는 각 단계가 몇 번 실행됐는지도 표시됩니다.
누구의 권한으로 동작하나요
섹션 제목: “누구의 권한으로 동작하나요”자동화는 마지막으로 저장한 사람의 권한으로 동작하며, 이 권한은 실행할 때마다 다시 확인됩니다. 그 사람이 권한을 잃으면 그 권한이 필요한 단계는 그냥 넘어가지 않고 실패하며, 찾기 단계는 그 사람이 읽을 수 있는 것만 찾습니다. 기록에는 “자동화 ‘Tâche terminée’ · 명의: …”로 표시되며, 자동화의 쓰기도 다른 쓰기처럼 실행 취소할 수 있습니다.
- 자동화가 쓴 내용은 다른 자동화를 트리거하지 않습니다. 연달아 일어나야 하는 동작은 하나의 흐름에 작성하거나, 자동화 실행으로 이어 붙입니다 — 최대 3단계까지.
- 찾기 단계는 첫 번째 행 하나만 반환합니다. 반복은 한 번의 실행에서 최대 200행을 통과합니다. 실행은 대기 시간을 제외하고 최대 2분까지 걸립니다.
- 스크립트는 없습니다. 이메일은 인스턴스의 발송 서버를 통해 전송됩니다.
- 데이터베이스 템플릿에는 찾기, 반복, 조건, AI 단계가 없는 자동화만 포함되며, 웹훅은 어떤 경우에도 포함되지 않습니다.
- 웹훅은 리디렉션을 따라가지 않으며, 최대 10초까지 기다립니다. 재시도 후에도 2xx 이외의 응답이면 이 단계는 실패로 처리됩니다.
- 날짜 트리거는 1분마다 확인되며, 자동화를 저장한 이후에 도달한 날짜만 집계됩니다.
- 자동화 하나당 시간당 100회까지 실행됩니다. 놓친 정시 일정은 한 번만 따라잡습니다.
- 쓰기와 동작 사이의 지연은 1초 안팎입니다.
basedb는 AI 네이티브 소프트웨어 스튜디오 Eodia가 만든 자유 소프트웨어입니다.