Use um arquivo temporário:
scratch="$(mktemp)"
trap 'rm -f "$scratch"' EXIT
cat > "$scratch" << EOF
{
"channel": "#deploybots",
"username": "${GIT_BRANCH}-BOT",
"text": "Message --> ${1}",
"icon_emoji": ":${EMOJI}:"
}
EOF
curl -X POST --data-urlencode payload@"$scratch" https://hooks.slack.com/[...]