업무협업툴로써, 노션만한게 있을까 싶다.
하지만 팀 전체가 내가 만든 노션툴로 갈아타고, 본격적인 업무를 시작하고 보니까 몇몇의 아쉬운 점들이 눈에 띄었다.
몹시나 강력했던 아사나의 My Tasks
그 중의 하나가 아사나
에서 제공했던 강력한 기능인 My Tasks
였다.
아사나
의 My Tasks
는 나에게 할당된 모든 업무 중 오늘 진행 중인 업무를 필터링하여 보여준다.
나에게 할당된 오늘 처리해야 할 일?
여기서 오늘 처리해야 할 일
은 다음의 의미를 지닌다.
1. 착수일
이 오늘인 업무
2. 과거에 착수 시작하여 오늘 진행 중
인 업무
3. 마감일이 지났지만 아직 완료가 되지 않은
업무
내가 하고 싶은 일은 바로 이 My Tasks를 Notion에 옮기는 일이었다.
작업을 하면서 예상치 못한 난관에 부딛혔는데, 문제는 다음과 같았다.
노션의 모든 필터는 date_range의 시작일을 기반으로 필터링을 하기 때문에 원하는 데이터를 추출할 수가 없었다.
때문에, 착수일이 과거이지만 오늘 진행 중
인 나의 업무를 필터링하기 곤란한 상황이 발생한다.
대부분의 업무는 착수한 날 종료되지 않으므로, 노션의 기본 필터 기능만으로는 아사나
의 My Tasks
를 구현할 수 없었다.
이를 위해 노션의 Formula문을 활용해야 한다.
and(day(start(prop("일정"))) <= day(now()), day(end(prop("일정"))) >= day(now()))
아래는 start와 end 구문을 통해 마감일이 현재 시점보다 미래이고 착수일이 현재 시점보다 과거인 데이터를 추출한 화면이다.
이를 통해 착수일이 과거에 시작되었지만 마감일이 도래하지 않은 업무를 오늘 업무로 True체크 할 수 있다.
하지만 이 산식에도 헛점이 있다.
마감일이 지났어도 미완료된 업무를 My Tasks
에 리턴시킬 수 없다는 것인데, 이럴 경우 마감일이 지났지만 완료되지 않은 업무를 놓치게 된다. (팀 관리자 입장에서 큰 고민이 아닐 수 없다.)
이런 경우, Formula
문과 노션에서 제공하는 Filter
의 기능 조합으로 해결할 수 있다.
or(and(day(start(prop("일정"))) <= day(now()), day(end(prop("일정"))) >= day(now())), prop("상태*") != "완료")
우선, 좀 전의 산식에서 상태가 "완료"가 아닌 모든 업무를 OR구문으로 계산한다.
착수가 시작되었지만 마감일이 오지 않은 업무와 완료상태가 되지 않은 모든 업무의 합집합이 TRUE 체크 되었다.
이 상태에서 테이블 필터링을 걸어준다.
And 조건으로 다음과 같이 작업을 한다. 계산된 필드의 TRUE값 중에 상태가 완료가 아닌 업무를 필터링한다.
오늘 업무에 미완료한 모든 업무 및 오늘 진행되는 업무들이 성공적으로 나열되었다.