📰 소개
뉴스기사를 크롤링해서 메일로 보내주는 워크플로우에 이어서, 메일에서 선택한 기사의 내용을 인스타그램 콘텐츠로 자동 생성해주는 워크플로우를 n8n으로 구현했습니다.
선택한 기사에 대해 인스타그램용 텍스트는 GPT-4o mini, 이미지 편집은 Bannerbear를 활용해 기획과 디자이너의 손을 거쳐야하는 일련의 작업을 자동화 했습니다.
⚙ 진행 방법
도구
사용 목적
n8n
전체 워크플로우
Webhook
이메일 클릭 후 기사 선택 수신
Function
인덱스로 기사 정보 매핑
OpenAI (ChatGPT)
인스타 콘텐츠용 문구 생성
Bannerbear
뉴스 이미지 편집
Gmail
결과물 메일 발송
1. webhook 노드
메일로 받은 뉴스 기사 리스트에서 하나를 선택하면 수신받아 워크플로우 실행
2. Function 노드
사용자가 클릭한 뉴스의 index를 읽고, 그걸 Flask에 넘김
3. HTTP Request 노드
Flask 서버로 해당 index를 넘겨서 뉴스 한 개 가져오기
Method:
GETURL:
http://host.docker.internal:5000/news/{{$json["index"]}}
사용자가 클릭한 뉴스의 index를 읽고, 그걸 Flask에 넘김
@app.route('/news/<int:index>', methods=['GET'])
def get_news_by_index(index):
global stored_news
if 0 <= index < len(stored_news):
return jsonify(stored_news[index])
else:
return jsonify({"error": "Invalid index"}), 404파이썬 코드
사용자가 클릭한 링크에?index=3처럼 값이 담기면, 해당 기사만 골라서 가져올 수 있음
4. AI Agent 노드
인스타그램 텍스트 생성하기
프롬프트에 수행해야할 작업에 대해 지시하고 결과 값 반환
5. Bannerbear 노드
Bannerbear 에서 만든 템플릿의 설정값을 기반으로 n8n 노드의 modifications 추가
6. Merge 후 Gmail로 메일 전달
메일에 AI Agent로 생성한 텍스트와 Bannerbear로 편집한 이미지가 같이 전송된 것을 확인할 수 있습니다.
💡 결과와 배운 점
콘텐츠 하나를 만드는 속도가 엄청나게 개선됨
클릭한 기사만 콘텐츠로 만들고, 정해진 템플릿을 사용하기 때문에 정확도 향상
🤔 아쉬운 점
인스타그램 업로드까지 자동화하는 것이 목표였으나, 이전 작업에서 시간을 많이 써서 아직 구현하지 못했지만 계속해서 끝까지 마무리해볼 생각입니다
🔗 도움 받은 글
15기 n8n 스터디 팀장님이 먼저 구현해주신 글을 참고해서 조금 더 디벨롭할 수 있었습니다!